资讯专栏INFORMATION COLUMN

TimesTen Classic系统及其与Oracle的用户缓存部署(上篇)

IT那活儿 / 3290人阅读
TimesTen Classic系统及其与Oracle的用户缓存部署(上篇)
  背景介绍 

Oracle内存数据库TimesTen是一个优化内存的关系数据库,提供了响应时间极短且吞吐量极高的应用程序,可满足各行业应用程序的需求,特别是拥有实时业务的企业(例如,资本市场)的需求。
相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。
内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。内存数据库从某种角度上来看,也是一种Cache机制,是磁盘数据库的‘Cache’,通过物理内存中的数据存储区的直接操作,减少了到磁盘间的 I/O 交互。

  关于本文 

由于此文是个人线下学习结合工作中生产环境的经验总结试验而成,其中涉及的库表对象均为个人及网上大神定义,Timesten采用18.1.4.5.0版本单节点,Oracle采用19.3.0.0版本单节点(本人电脑性能有限,在数据库版本新旧以及系统性能的限制下只能权衡利弊,虚拟机内存分配过多会导致宿主机卡顿,故如此)。

一、 创建TimesTen Classic系统

1. 创建用户、目录、更改主机名、固定ip


1) 创建目录:

mkdir /etc/TimesTen
chmod 770 /etc/TimesTen
mkdir -p /timesten/ttuser/datads
mkdir -p /timesten/ttuser/logds
chmod 775/timesten/ttuser/datads
chmod 775 /timesten/ttuser/logds


2) 创建用户:

groupadd -g 10000 ttadmins
useradd -u 55000 -g ttadmins -d /timesten/ttuser -m ttuser
echo "ttuser"|passwd --stdin ttuser
chgrp -R ttadmins /etc/TimesTen
chgrp -R ttadmins /timesten/ttuser/datads
chgrp -R ttadmins /timesten/ttuser/logds


3) 更改主机名:

hostnamectl set-hostname timesten1


4) 固定ip:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

更改:

BOOTPROTO=static

添加:

IPADDR=192.168.56.108

NETMASK=255.255.255.0


2. 配置环境变量、内核参数、用户限制

1) 配置环境变量ttuser:

[ttuser@timesten1 datads]$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export TT_HOME=/timesten/ttuser/tt181
export LD_LIBRARY_PATH=$TT_HOME/lib
export CLASSPATH=$TT_HOME/lib/ttjdbc8.jar
export THREADS_FLAG=native
export PATH=$TT_HOME/bin:$PATH
export TMPDIR=/tmp
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
. $TT_HOME/bin/ttenv.sh


2) 更改内核参数:

[ttuser@timesten1 datads]$ cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

kernel.sem = 400 32000 100 128
net.ipv4.tcp_rmem=4096 4194304 4194304
net.ipv4.tcp_wmem=98304 4194304 4194304
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=4194304
net.ipv4.tcp_window_scaling=1
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_rmem=4096 4194304 4194304
net.ipv4.tcp_wmem=98304 4194304 4194304
net.core.rmem_default=65535
net.core.wmem_default=65535
net.core.rmem_max=4194304
net.core.wmem_max=4194304
net.ipv4.tcp_window_scaling=1
sysctl -p  ----刷新内核参数


3)解除用户限制ttuser:

vi /etc/security/limits.conf

添加:

instanceadmin soft memlock 50331648
instanceadmin hard memlock 50331648

3.  解压缩安装文件、安装实例

解压缩文件:
unzip -q timesten181450.server.linux8664.zip
安装:
修改解压文件权限:
chown ttuser:ttadmins -R tt18.1.4.5.0
  su - ttuser
  cd tt18.1.4.5.0
  ./setup.sh


NOTE: Each TimesTen installation is identified by a unique instance name.
      The instance name must be a non-null alphanumeric string, not longer
      than 255 characters.

  Please choose an instance name for this installation? [ tt181 ] tt181 --输入实例名,回车
  Instance name will be tt181.
  Is this correct? [ yes ] yes --回车

  Of the three components:

    [1] Client/Server and Data Manager
    [2] Data Manager Only
    [3] Client Only

  Which would you like to install? [ 1 ] --回车

  Of the following options :

    [1] /timesten/ttuser
    [2] /oracle/soft_install
    [3] Specify a location
    [q] Quit the installation

  Where would you like to install the tt181 instance of TimesTen? [ 1 ] 1  --选择,回车
  Where would you like to create the daemon home directory? [ /timesten/ttuser/tt181/info ] --回车

  The daemon logs will be located in /timesten/ttuser/tt181/info
  Would you like to specify a different location for the daemon logs? [ no ] yes
  Where would you like the daemon logs to be written? [ /timesten/ttuser/tt181/info ] /timesten/ttuser/logs
  Are you sure you want the daemon logs to be written to /timesten/ttuser/logs? [ yes ] yes
  Installing into /timesten/ttuser/tt181 ...
  Uncompressing ...

  NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the
      daemon port number must be the same across all TimesTen installations
      managed within the same Oracle Clusterware cluster.

  NOTE: All installations that replicate to each other must use the same daemon
      port number that is set at installation time. The daemon port number can
      be verified by running ttVersion.

  The default port number is 53396.

  Do you want to use the default port number for the TimesTen daemon? [ yes ] no
  Please enter a unique port number for the TimesTen daemon (=list)? [ ] 53388

  NOTE: For security, we recommend that you restrict access to the
      TimesTen installation to members of a single OS group. Only members of
      that OS group will be allowed to perform direct mode connections to
      TimesTen, and only members of that OS group will be allowed to perform
      operations that access TimesTen data stores, TimesTen files and shared
      memory. The OS group defaults to the primary group of the instance
      administrator. You can default to this group, choose another OS group
      or you can make this instance world-accessible. If you choose to make
      this instance world-accessible, all database files and shared memory
      are readable and writable by all users.

  Restrict access to the the TimesTen installation to the group ttusers? [ yes ] --回车

  NOTE: Enabling PL/SQL will increase the size of some TimesTen libraries.

  Would you like to enable PL/SQL for this instance? [ yes ] yes --回车

  In order to use the Oracle TimesTen Application-Tier Database Cache feature in any databases
  created within this installation, you must set a value for the TNS_ADMIN
  environment variable. It can be left blank, and a value can be supplied later
  using /bin/ttModInstall.

  Please enter a value for TNS_ADMIN (s=skip)? [ ] s --输入s,回车


  NOTE: It appears that you are running version 4 or higher of the g++
      compiler. TimesTen ships with multiple sets of client libraries and server
      binaries : one built for compatibility with g++ 3.4.6 and one with
      g++ 4.1.0. The installer has created links to the 4.1.0 library in the
      /lib directory and to the 4.1.0 server binary in the
      /bin directory. If you want to use a different compiler,
      please modify the links to point to the desired library and server binary.

  Installing server components ...
  What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 53389 ] --回车
  Do you want to install the Quick Start Sample Programs and the TimesTen Documentation? [ no ] --回车
  Would you like to install the documentation (without the Quick Start Sample Programs)? [ yes ] --回车
  Where would you like to create the doc directory? [/timesten/ttuser/tt181/doc ] --回车
  The TimesTen documentation has been installed in /timesten/ttuser/tt181/doc.
  Installing client components ...

  Would you like to use TimesTen Replication with Oracle Clusterware? [ no ] --回车

  NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.

  Run the setuproot script :
      cd /timesten/ttuser/tt181/bin
      ./setuproot -install
  This will move the TimesTen startup script into its appropriate location.

  The startup script is currently located here :
    /timesten/ttuser/tt181/startup/tt_tt181.

  The 18.1.4.5.0 Release Notes are located here :
    /timesten/ttuser/tt18.1.4.5.0/README.html

  Starting the daemon ...
  TimesTen Daemon startup OK.
  End of TimesTen installation.


4. 配置dns

cd /timesten/ttuser/tt181/conf
vi sys.odbc.ini
修改:
[ODBC Data Sources]
sampledb=TimesTen 18.1 Driver
#sampledbCS=TimesTen 18.1 Client Driver

[sampledb]

Driver=/timesten/ttuser/tt181/install/lib/libtten.so
DataStore=/timesten/ttuser/datads/sampledb
PermSize=512
TempSize=128
LogBufMB=256
LogFileSize=256
LogDir=/timesten/ttuser/logds/logs
DatabaseCharacterSet=AL32UTF8
OracleNetServiceName=ordb


#[sampledbCS]
#TTC_SERVER=sampledb_CS
#TTC_SERVER_DSN=sampledb
注:用户在创建dns时会首先扫描用户主目录下是否有.odbc.ini用户配置,如果有则直接加载,如果没有才会扫描实例目录下的 sys.odbc.ini系统配置。


5. 启停守护进程、实例装载卸载

1) 启停守护进程
ttdaemonadmin -start -force
ttdaemonadmin -stop
注:如果希望进程自动启动:
ttadmin -rampolicy always sampledb

2)实例装载:

设置加载策略为手动:
ttadmin -rampolicy manual sampledb
加载数据库:
ttadmin -ramload sampledb


6. 设置与Oracle数据库的连接:

1)设置tns串:

vi /timesten/ttuser/tt181/conf/tnsnames.ora
  chmod u+w $TIMESTEN_HOME/conf/tnsnames.ora
按需要添加:
ORDB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = pdbordb)
        )
      )


2)修改tns_admin使sqlplus可以找到tnsnames.ora

执行:ttinstancemodify

Instance Info
  -------------
  
  Name: tt181
  Version: 18.1.4.1.0
  Location: /timesten/ttuser/tt181/conf
  Installation: /timesten/ttuser/tt18.1.4.1.0
  Daemon Port: 6624
  Server Port: 6625
  
  Would you like to change the installation that this instance points to? [ no ]
  
  The daemon for instance tt181 is currently configured to use port 6624.
  Would you like to change this port? [ no ]
  The server for instance tt181 is currently configured to use port 6625.
  Would you like to change this port? [ no ]
  TNS_ADMIN for the instance tt181 is currently not set.
  Would you like to change TNS_ADMIN for this instance? [ no ] yes
  Please enter a value for TNS_ADMIN (q=quit)? [ ] /timesten/ttuser/tt181/conf
  
  Do you want to restart the daemon using the new configuration? [ yes ]
  Restarting the daemon ...
  TimesTen Daemon (PID: 6392, port: 6624) stopped.
  TimesTen Daemon (PID: 15305, port: 6624) startup OK.
  The instance tt181 is now configured with :
  TNS_ADMIN=/timesten/ttuser/tt181/conf
  Would you like to configure TimesTen Replication with Oracle Clusterware? [ no ]

3) 退出终端后重新登录

验证:
sqlplus 用户/密码@连接串名字 as sysdba

未完待续


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129920.html

相关文章

  • 向云而进,重构数据库新格局

    摘要:大势所趋,云原生数据库的崛起不过,在全球数据库领域,目前恐怕还不止这两股力量。在年数据库系统的魔力象限中,阿里云数据库被列入远见者象限,这是国产数据库首次进入魔力象限。从传统数据库到云原生数据库,这50年来,数据库行业到底都发生了怎样的变化?以Oracle为代表的传统数据库厂商,不断迈向云化的过程,从中尝到了甜头。不仅可以让用户Oracle数据库迁移到Oracle云上,顺带也把用户业务带上O...

    ctriptech 评论0 收藏0
  • PaaS大战一触即发 Oracle剑拔弩张

    摘要:和联合总裁及董事会成员将在下周宣布更多的战略。曾在去年月的大会上宣布了公共云计划,其中包含了和的相关功能,以及云服务和数据库云服务。目前已经表示将会把和整合进自身的公有云之中。但截至到目前,这些组件仍然处在预览阶段。 在当前的云计算时代,PaaS领域已经成为各大巨头必争之地。PaaS提供应用服务引擎,用户基于该应用服务引擎可构建该类的应用,典型的案例有Google App Engine、...

    刘永祥 评论0 收藏0
  • 壮士断腕?甲骨文裁员是为了重振其云端雄心吗?

    摘要:甲骨文的一名代表拒绝证实裁员消息的细节,但表示公司将继续寻求平衡资源,并围绕其云产品以重组我们的开发团队。甲骨文并不是今年唯一一家裁员的主要云软件供应商。被甲骨文称为基于的最初。自年发布第二代称为,以来,甲骨文基本上已经淘汰了。过去一周,不少社交媒体和论坛上的许多帖子都提到了甲骨文(Oracle)裁员的事情,这些人声称自己被甲骨文解雇了,或者了解其他人被甲骨文解雇的事情。目前,该裁员风波波及...

    superw 评论0 收藏0
  • 架构~微服务

    摘要:接下来继续介绍三种架构模式,分别是查询分离模式微服务模式多级缓存模式。分布式应用程序可以基于实现诸如数据发布订阅负载均衡命名服务分布式协调通知集群管理选举分布式锁和分布式队列等功能。 SpringCloud 分布式配置 SpringCloud 分布式配置 史上最简单的 SpringCloud 教程 | 第九篇: 服务链路追踪 (Spring Cloud Sleuth) 史上最简单的 S...

    xinhaip 评论0 收藏0
  • [转]nodejs Stream使用手册

    摘要:方法也可以接收一个参数表示数据请求着请求的数据大小,但是可读流可以根据需要忽略这个参数。读取数据大部分情况下我们只要简单的使用方法将可读流的数据重定向到另外形式的流,但是在某些情况下也许直接从可读流中读取数据更有用。 介绍本文介绍了使用 node.js streams 开发程序的基本方法。 We should have some ways of connecting programs ...

    luffyZh 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<