Timesten 运维笔记
- 格式:docx
- 大小:58.98 KB
- 文档页数:20
环境为:instance_name为eservice安装目录为/home/timesten/TimesTen下面这些问题是针对新手而言的,通过这些问题可以帮助刚接触timesten的人可以快速配置timesten。
如何启动/home/timesten/TimesTen/eservice/startup/tt_eservice [start|stop|restart]如何访问[timesten@rh44server ~]$ ttisqlCopyright (c) 1996-2007, Oracle. All rights reserved.Type ? or "help" for help, type "exit" to quit ttIsql.All commands must end with a semicolon character.Command> connect tt_eservice;Connection successful:DSN=TT_eservice;UID=eservice;DataStore=/home/timesten/TimesTen/eservice/info/TT_eservice;Datab aseCharacterSet=ZHS16GBK;ConnectionCharacterSet=ZHS16GBK;DRIVER=/home/timesten/TimesTen/ eservice/lib/libtten.so;TypeMode=0;(Default setting AutoCommit=1)Command>应用程序如何连接答:有三种模式:Direct Driver连接:Timesten推荐连接方式,由于没有了协议转换的开销,这种连接方式具有最高的效率。
对于JDBC应用程序,可以通过JDBC库访问ODBC的direct driver。
Timesten重建用户,datastore一、实例背景:在测试环境中需要在内存库上将bill用户下的所有对象全部删除,然后再从正式环境中将其bill用户下的对象导入测试环境的bill用户下。
二、操作总结(比较白话,没有直接写最终的操作方法,而是记录了所有错误经过)1、沿袭操作ORACLE数据库的思想,在这种情况下,一般会首先DROP掉bill用户(drop 用户的同时,删除该用户下所有对象),然后重建bill用户,再从正式环境中将其bill 用户下的对象导入测试环境的bill用户下。
操作步骤:Command> drop user bill;15167: Cannot drop a user that is currently connected第1种报错:很明显,oracle也有这样的情况,当前有链接,不能drop,停下应用应该就能避免这个错了,还这么报错的话就不知道是谁连这个库了,直接杀session吧!是不是要问怎么杀session,我当时也这么问自己的,很自然的就想当然一把,借鉴一下oracle的经验吧,从v$session系统视图里找出要杀的session,alter system kill session。
其实压根不是这么回事,因为根本就没有v$session这么个视图,怎么办呢,timesten肯定不会杀不了session的,最笨的办法就是先把tt库停了,ttDaemonAdmin –stop,(停之前做个Command>call ttckpt;)然后再起来ttDaemonAdmin –start,这样以前的不管什么session也没了;可是这样太粗鲁了,咱们还是有温柔一点的方法的,ttxactadmin dsn 这条命令就能解决啦,是不是很难记,光记个起停就很烦了,其实执行下这个命令就知道这就是查出支持那个session的系统PID,查出来直接kill,既然是要找个pid,那ps –ef 足够了。
一开始使用Recovery ManagerRMAN的功能如果备份了数据文件以及从最近一次备份开始生成的所有归档日志的副本,那么在发生任何灾难的情况下都能够完成不丢失数据的恢复操作。
此时不能恢复的唯一例外是丢失了当前联机重做日志文件的所有副本。
RMAN能够备份的对象是整个数据库多单独的表空间与数据文件。
RMAN还能够备份控制文件,服务器参数文件以及归档日志。
数据库中不能被备份的唯一部分是联机重做日志文件:这些文件通过复用受到保护。
这些备份可以是映像副本或备份集。
备份集是一种能够直接流入磁带并可选择压缩的专用格式。
RMAN能够进行增量备份,增量备份可以显著地减少备份数据量。
RMAN甚至可以将增量备份应用于全部备份,这样会使备份时间更近,从而能够减少所需的恢复时间。
与完整备份的时间相比较,增量备份的时间也将大大减少。
使用传统的方法时,还原与恢复操作的粒度为数据文件,RMAN还原与恢复的粒度可以只是一个讹误的数据文件块,从而能够显著地减少MTTR。
实际上,通过使用块级介质恢复,我们可以在不停机的情况下检测与修复受损的文件。
RMAN在扫描数据块时会验证其内容,这意味着DBA能够先于终端用户发现问题。
为了利用RMAN的所有功能,就需要集成一个磁带库,随后,整个备份与恢复操作可以被完全委派给RMAN。
RMAN能够控制这个磁带库并根据需要载入,读取,写入和清空磁带。
将RMAN与磁带库结合在一起意味着备份例程可以无限期地自动运行,同时能够完全确保恢复任何灾难。
RMAN的组件在Linux中,用于管理RMAN的交互式工具为rman。
这个工具位于ORACLE_HOME/bin目录内,并且提供了一个到RMAN得命令行接口。
它是一个与其他用户进程相似的进程,这个进程通过一个侦听器与一个服务器进程连接数据库,提示用户输入命令,并且将命令发送至实例执行。
Database Control是另一种可以使用RMAN的用户接口工具。
不管使用那一种接口,实际上都会调用PL/SQL 过程。
南京O r a c l e认证培训T i m e s T e n学习之安装篇南京Oracle认证培训 TimesTen学习之安装篇一.Linux平台安装准备工作。
1.大页设置1).修改HugePage配置值:echo 32 > /proc/sys/vm/nr_hugepages2).查看HugePage值:[root@ttdb ~]# cat /proc/meminfo | grep HugeHugePages_Total: 28HugePages_Free: 28HugePages_Rsvd: 0Hugepagesize: 2048 kB2.信号量1).查看当前值:[root@ttdb ~]# /sbin/sysctl -a | grep semkernel.sem = 250 32000 32 1282).推荐值:kernel.sem = 400 32000 100 1283).使设置生效:/sbin/sysctl -p3.共享内存kernel.shmmax=2147483648(单位:字节byte)。
如果配置大于8GB,那么也应该增加shmall参数的值,这个值应该等于SHMMAX/PAGE_SIZE,在x86系统Page的大小通常为4K,在安腾平台通常为16K,例如,在安腾64GB的数据库,应该指定以下的参数值:kernel.shmmax=68719476736kernel.shmall=41943041).配置shmmax和shmall参数:在没有重启的情况下,执行以下的命令修改共享内存的值:/sbin/sysctl -w kernel.shmmax=2147483648也可以通过以下命令修改这个值:echo 2147483648 > /proc/sys/kernel/shmmax这个命令与执行sysctl命令有相同的效果。
2).查看共享内存值:cat /proc/sys/kernel/shmmax注意:如果操作系统使用的是Redhat,从Redhat Enterprise 5.4开始,shmmax和shmall 这两个值已经足够的大,默认不需要修改。
第三讲课堂笔记一问题解答1、今天有提到commit后记录日志是为了防止数据丢失做的保护机制,在客户端commit之后,在database侧会先记录SQL语句,然后才刷数据,假如此时断电,则下次数据库起来时会重新执行已记录的SQL语句。
--是否恢复数据取值于之前是否做了commit,如果做了commit,重启后就会恢复数据,如果没有,比如我们做update后,没有执行commit,断电重启后就不会恢复update的数据。
对此机制有以下疑问:0)客户端commit之后,database是记录好日志之后就给客户端返回commit成功,同时就执行数据写入,还是要等数据完全写入才返回成功?--写日志和把数据写入datafile是异步操作,commit 成功,并不表示数据已经完全写入datafile,什么时候把数据写入datafile是我们今天要讲的内容。
1)假如我的SQL语句是插入一堆数据,并且因为键值的缘故是不能重复插入的,那么在断电时刻,我可能已经刷了一部分数据进去,断电恢复后,再次执行此SQL语句,则应该会执行失败,这时候oracle是如何处理的?--如果执行了commit,并且已经部分写入到datafile的话,下次启动后这部分数据就会恢复;如果没有执行commit,下次启动后就没有数据。
2)这个SQL语句是否也包含了procedure?假如执行的是procedure,那么里面可能会有大量的变量,而这些变量可能与运行时状态有关,procedure里每个commit之间就会产生关联,这样的情况,事务的连续性是否就必然会被破坏?--存储过程对于orale 数据库内核来说的话和一条sql语句是一样的,但是处理效率可能不一样,因为客户端频繁调用就会和后台进行频繁交互,导致有很多IO消耗。
处理复杂事务建议使用存储过程。
2、今天的课程刚开始的时候提到Server Process与Instense之间的通信是进程间的通信。
CacheGroup的基本操作:TimesT en的组成:TT由三部分来组成的,分别是TT数据库服务器、数据复制选件和高速缓存选件。
Oracle TimesTen In- Memory Database:是一个优化了的内存数据库。
Replication-TimesT en T o TimesT en:是TT的一个选件,它支持数据库之间的实时复制,这个数据库之间可以是Oracle的主备机之间,也可以是两个TT之间的数据Rep。
但不能是Oracle和TT之间的数据复制。
可以使用异步和同步的传输,可以进行冲突解决和冲突检测,以及服务器故障后的自动重新同步。
Cache Connect T o Oracle:是Oracle的一个选件,能够将Oracle中的数据加载到TT中。
然后实现Oracle和TT的双向更新。
在TT中查看CacheGroup的相关信息:>>cachegroup;//查看所有的cache的信息>>cachegroup CG_RA T_RES_ACCUMULA TOR_556 //查询单个cache的信息。
使用该命令输出的相关信息说明:手动刷新ReadOnly的CacheGroup的命令:首先要保证该CacheGroup的状态为Paused或OFF。
使用查看命令查看该Cache的状态如果是ON则需要手动修改该状态。
>>alter cache group cachegroupname set Autorefresh State paused状态正确则可以执行手动更新:>>refresh cache group cachegroupname commit every 1000 rows手动删除CacheGroup在删除CacheGroup的时候要保证CacheAgent是开启的,这样删除Cache的时候也会同步修改Oracle库中的信息,这样能保证彻底的删除,如果是在CacheAgent关闭的情况下删除的则可能造成TT的同步失败。
Timesten运维笔记********************************************************-——******************************************************** tt 现用版本:tt版本:11.2.1.9.7 HP平台:11.2.1.9.10 suse平台:11.2.1.9.8 tt出现问题,紧急收集信息:ttcapture;ttschema;call ttconfigrations;------******************************************************** ********************************************************注:ttisql登录tt库后输入命令时先使用vertical 1; 可以显示列名1. 常用命令1. 启停、加载、卸载、启动复制代理、重建、日常检查命令1》启停ttdaemonadmin -start -stop--1.启动tt:ttadmin -start -force 好像不对2》. 加载内存库到内存、卸载内存库>ttadmin -rampolicy manual accounta1 ##设置内存加载方式为手动加载>ttAdmin -noautoreload accounta1 ##设置不要自动重新加载ttadmin -ramload accounta1 ##加载ttadmin -ramunload accounta1 ##卸载ramunload前先后动执行一个checkpoint,不然会很长时间3》连接数据库3.1直连:ttisql accounta13.2 cs方式:cbe路由库:133.96.64.63 ,用户cbea 连接:alias roucbe='ttisqlcs "dsn=rouacs;uid=roudata;pwd=roudata"'ttisqlcs "dsn=userinfoa1cs;uid=ckhung;pwd=ckhung"ttisqlcs "dsn=userinfoa2cs;uid=ckhung;pwd=ckhung"3.3 高级形式:ttisqlcs -v 1 -e “dssize m;quit;” “dsn=abmmdb;uid=omc;pwd=omc“(采用-e模式执行,可以顺序执行多条命令,-v 1 表示不打印其它连接信息)ttisqlcs –f “dsn=abmmdb;uid=omc;pwd=omc“ (采用-f模式执行,适合批量执行sql 语句,将sql放在文件中,直接执行即可)ttisql -showcurrenttime accounta2 会显示命令执行的时间3.4 退出exit; quit;ctrl + d3》. 启停复制代理Command> CALL ttRepStart ;启动复制代理Command> CALL ttRepstop ;停止复制代理3》启停复制子进程ttadmin -repstop accounta2 ;ttadmin -repstart accounta2 4》. 重建重建前需启动主节点的复制代理。
Oracle TimesTen 内存数据库第一章Timesten1.1 TT的简介1.2 TT的特性1.3 TT的基本概念1.4 DataStore介绍1.5 用户级别1.6 锁机制1.7 数据持久性1.8 索引1.9 命令大全1.10 DSN属性大全1.11 环境变量第二章LINUX平台下2.1 安装2.2 启动和关闭2.3 创建数据源2.4 C/S配置2.5 CacheConnect2.6 复制配置2.7 复制异常恢复第三章WINDOWS平台下3.1 安装3.2 创建数据源3.3 初步使用3.4 C/S配置3.5 CacheConnect第一章Timesten1.1 TT的简介Oracle TimesTen 内存数据管理软件由TimesTen数据库服务器、数据复制选件和高速缓存选件三部分组成。
本文该部分简要介绍了这些产品和技术,后续部分将提供更多详细信息。
∙Oracle TimesTen In- Memory DatabaseOracle TimesTen In-Memory Database 是一个内存优化的关系数据库,它为应用程序提供了当今实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。
Oracle TimesTen In-MemoryDatabase 作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。
∙Replication – TimesTen to TimesTenReplication – TimesTen to TimesTen 是 Oracle TimesTen In-Memory Database 的一个选项,它支持服务器间的实时数据复制,以获得高可用性和负载共享。
数据复制配置可以是双机热备份 (active-standby) 或负载均衡 (active-active),可以使用异步或同步传输,可以包含冲突检测和冲突解决以及在故障服务器恢复后自动重新同步。
********************************************************-——********************************************************tt 现用版本:tt版本:11.2.1.9.7 HP平台:11.2.1.9.10 suse平台:11.2.1.9.8 tt出现问题,紧急收集信息:ttcapture;ttschema;call ttconfigrations;------****************************************************************************************************************注:ttisql登录tt库后输入命令时先使用vertical 1; 可以显示列名1. 常用命令1. 启停、加载、卸载、启动复制代理、重建、日常检查命令1》启停ttdaemonadmin -start -stop--1.启动tt:ttadmin -start -force 好像不对2》. 加载内存库到内存、卸载内存库>ttadmin -rampolicy manual accounta1 ##设置内存加载方式为手动加载>ttAdmin -noautoreload accounta1 ##设置不要自动重新加载ttadmin -ramload accounta1 ##加载ttadmin -ramunload accounta1 ##卸载ramunload前先后动执行一个checkpoint,不然会很长时间3》连接数据库3.1直连:ttisql accounta13.2 cs方式:cbe路由库:133.96.64.63 ,用户cbea 连接:alias roucbe='ttisqlcs "dsn=rouacs;uid=roudata;pwd=roudata"'ttisqlcs "dsn=userinfoa1cs;uid=ckhung;pwd=ckhung"ttisqlcs "dsn=userinfoa2cs;uid=ckhung;pwd=ckhung"3.3 高级形式:ttisqlcs -v 1 -e “dssize m;quit;” “dsn=abmmdb;uid=omc;pwd=omc“(采用-e模式执行,可以顺序执行多条命令,-v 1 表示不打印其它连接信息)ttisqlcs –f <filename> “dsn=abmmdb;uid=omc;pwd=omc“ (采用-f模式执行,适合批量执行sql 语句,将sql放在文件中,直接执行即可)ttisql -showcurrenttime accounta2 会显示命令执行的时间3.4 退出exit; quit;ctrl + d3》. 启停复制代理Command> CALL ttRepStart ;启动复制代理Command> CALL ttRepstop ;停止复制代理3》启停复制子进程ttadmin -repstop accounta2 ;ttadmin -repstart accounta24》. 重建重建前需启动主节点的复制代理。
重建后需重新设置加载策略才能加载:ttadmin -rampolicy manual dsn; ttadmin -noautoreload dsn; 还可以有verbersity -2 参数表示设置日志级别为详细的。
B:ttRepAdmin -duplicate -from accountb2 -host kdbdsb4 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn accountb2ttRepAdmin -duplicate -from acct31602 -host kdtt31602s -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn acct31602C:ttRepAdmin -duplicate -from accountc3 -host kdbdsc3 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn accountc3ttRepAdmin -duplicate -from accountc3 -host kdbdsc1 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn accountc3ttRepAdmin -duplicate -from accountc4 -host kdbdsc2 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn accountc4 #重建容灾D:ttRepAdmin -duplicate -from accountd1 -host kdbdsd1 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad "dsn=accountd1"或者:ttRepAdmin -duplicate -from accounta2 -host kdbdsa2 -uid repadmin -pwd repadmin -ramload -localhost kdbdsa1 -dsn accounta2A2:ttRepAdmin -duplicate -from accounta2 -host kdbdsa2 -uid ckhung -pwd ckhung -verbosity 2 -ramLoad -dsn accounta25》. 日常检查命令$>ttstatus ##查看tt库的主进程、server进程、端口、连接、子进程、复制进程、加载状态等信息登录dsn后vertical 1;就会显示数据项的名称和值,call ttrepstateget ##查看主备状态ttRepAdmin –bookmark DSN ##主备是否同步call ttbookmark ##主备是否同步2vertical 1; #列出字段名ttadma2@kdbdsa2:/timesten/ttadma2# ttrepadmin -receiver -list accounta2 #查看详细的receiver 信息:积压日志数,网速等Peer name Host name Port State Proto---------------- ------------------------ ------ ------- -----ACCOUNTA2 KDBDSA1 Auto Start 29Last Msg Sent Last Msg Recv Latency TPS RecordsPS Logs------------- ------------- ------- ------- --------- ----00:00:00 00:00:02 4852.19 2211 11240 41ttrepadmin –showstatus roua #查看复制代理是否启动。
命令输出如下:Replication Agent Status as of: 2014-04-17 21:50:39DSN : rouaProcess ID : 1217 (Started)Replication Agent Policy : manualHost : KYCBE3RepListener Port : 56890 (AUTO)Last write LSN : 24239.726493880Last LSN forced to disk : 24239.726476800Replication hold LSN : 24239.712540160Replication Peers:Name : ROUAHost : KYCBE4Port : 15770 (AUTO) (Connected)Replication State : STARTEDCommunication Protocol : 29call ttlogholds ##大事务Command> dssize; 或者dssize m --内存信息,使用情况Command> call ttckpthistory; --checkpoint 历史记录ipcs -map|grep timesten ##查看共享内存段(ttstatus 可以查看共享内存key)查看版本call ttversion; 或者ttadma1@kdbdsa1:/timesten/ttadma1# ttversion -m检查对象定义:ttschema accountd1call ttblockinfo; #内存碎块Command>indexes [table_name];该命令用于查看某个表相关的索引信息Command>timing [0|1];该命令用于打开计时开关,打开该开关后可以确认查询某个sql的耗时时间Command>autocommit [0|1]该命令用于设置自动提交为开或关,使用ttisql登陆的时候,默认自动提交为开Command>dssize [k|m]该命令用户查看内存库大小Command>describe [object_name];该命令用于查看某个表相关信息Command>call ttrepstateget();该命令用于查询当前内存库的主备状态Command>call ttckpthistory();该命令用于查看内存库check point的历史信息Command>call ttbookmark();该命令用户查看内存库复制信息Command>call ttlogholds();该命令用于查看当前内存库是否有长事务Command>call ttblockinfo;该命令用于查看连续内存块信息Command>call ttsqlcmdcacheinfo(sqlid);该命令用于查询事务id对应的sql语句Command>call ttsqlcmdqueryplan(); 查询sql语句的执行计划;Command>call ttrepstart;Command>call ttrepstop;Command>monitor;还可以通过以下命令查看执行计划:Command> autocommit 0;Command> showplanCommand> sql语句(例如:select * from app_users a join users_age bon a.id=b.id where a.id<5) ;执行后即可显示执行计划。