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

2022-04-07 00:00:00 用户 数据库 磁盘 内存 回车
  背景介绍 

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 (<CR>=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 <install_dir>/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.. The installer has created links to the 4.1. library in the
      <install_dir>/lib directory and to the 4.1. server binary in the
      <install_dir>/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. 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.
  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
来自:https://mp.weixin.qq.com/s/qzBR4hy2xfQXMzIQyeGJjQ

相关文章