一、迁移并重建主节点,对主节点进行内存碎片回收
l 使用TT内存库自带的ttMigrate工具迁移备节点内存库
1、停止备节应用及其他进程
a)、检查应用进程
ps -fu timesten ##除了TT数据库进程,其余进程全部停止
b)、检查备节点的其他进程
ttstatus
c)、停止备节点的TTSERVER进程
ttdaemonadmin -stopserver ##这里需要注意是否多个DSN
d)、核查主备节点checkpoint进程是否全部完成
call ttckpthistory
停止主备节点复制进程:
ttadmin -repstop $DSN
2、使用ttMigrate工具迁移备节点内存数据库
ttMigrate -c $DSN /ttbackup/m$DSNstandby.dat
l 删除备节点DSN
1、备份TT内存库对象的创建脚本
ttSchema $DSN
2、unload备节点DSN
call ttckpt; ##unload前先做两次checkpoint
call ttckpt;
ttadmin -ramunload $DSN
3、删除备节点DS
ttdestroy $DSN
4、停止daemon,检查内存段释放情况
ttdaemonadmin -stop ##这里停止daemon需要注意是否有多个DSN
ipcs -map |grep timesten
ps -fu timesten
topas
l 采用之前迁移的备份文件重建备节点DS
1、使用ttisql拉起实例
ttdaemonadmin -start
ttisql $DSN ##这里需要确定autocreate参数是否等于1
Command> host ttadmin -rampolicy manual $DSN
2、使用管理账号把之前迁移出去的备节点备份迁移回来
ttMigrate -r -connstr "dsn=$DSN;uid=timesten" /ttbackup/m$DSNstandby.dat
3、启动主备节点的复制进程并检查主备复制
主节点:
ttadmin -repstart $DSN
call ttrepstatget;
call ttlogholds; ##这里的目的是检查主节点是否出现长事务,引起主备节点不同步
备节点:
ttadmin -repstart $DSN
Command> call ttRepStateGet;
< STANDBY, NO GRID >
1 row found.
4、检查内存碎片是否释放,检查主备复制是否正常
备节点:
Command> dssize m;
Command> call ttblockinfo;
ttadmin -noautoreload $DSN ##设置不自动加载
ttstatus -debug|grep -i auto
主节点:
call ttbookmark;
ttstatus
检查主备节点的tterror.log日志
二、主备切换,迁移并重建主节点内存库
检查主节点内存库是否正常,检查复制进程是否正常。
检查主备同步是否正常
1、停止主备节点的复制进程
停止主备节点复制进程:
ttadmin -repstop $DSN
l 删除新备节点DSN
1、备份备节点对象的创建脚本
ttSchema $DSN
2、unload备节点DSN。
call ttckpt; ##unload前先做两次checkpoint
call ttckpt;
ttadmin -ramunload $DSN
3、删除备节点DS
ttdestroy $DSN
4、停止daemon,检查内存段释放情况
ttdaemonadmin -stop ##这里停止daemon需要注意是否有多个DSN
ipcs -map |grep timesten
ps -fu timesten
topas
l 使用重建备机脚本直接重建备机(新的备节点)
1、使用重建备机脚本直接重建备机
2、启动新备节点的复制进程
ttadmin -repstart $DSN
Command> call ttRepStateGet;
< STANDBY, NO GRID >
1 row found.
3、检查高水位是否释放,检查新主备复制是否正常
新备节点:
Command> dssize m;
Command> call ttblockinfo;
ttadmin -noautoreload $DSN ##
ttstatus -debug|grep -i auto
新主节点:
call ttbookmark;
ttstatus
检查主备节点的tterror.log日志
4、新备节点高水位回收已完成,启动并检查业务是否正常运行。
至此,主备节点的内存碎片回收操作已经完成。
注意事项:
1、在实施备节点内存碎片回收操作如果出现备节点IDLE,可以检查主节点是否存在长事务,如果存在长事务,先处理长事务。
2、在实施过程中如果出现任何异常,采用紧急重建备机的方式回退。
3、在11.2.1.x版本中存在内存碎片回收后无法进入主备模式的情况,建议进行内存碎片回收前分析是否可以正常进入主备模式。