热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TimesTen的碎片整理

针对双向复制的tt数据进行碎片整理,有两个方式:ttmigrate和ttrepadmin-duplicate本文主要讲第二种使用克隆的方式进行碎片整

针对双向复制的tt数据进行碎片整理,有两个方式:

ttmigrate和ttrepadmin -duplicate

本文主要讲第二种使用克隆的方式进行碎片整理,前提是源库已经做过碎片整理了。

环境说明:

两台本地虚机,系统centos7.6,tt版本11.2.2.8.0:

复制器:

tt两个库都已经创建好用户ocs,密码ocs。

tt状态:

步骤:

tt备机碎片整理步骤

 

1、业务切换到主机(通过集群操作) root(如果本来就在主机则跳过此步)

          Switch business to standby (through cluster operation)

确保切换成功

cli

service-migrate

 

check list :

检查清单

 

a、备机(rootttocs用户下的crontab都检查下)

检查tt相关crontab,如果有停止掉,主要是避免连接。

业务确认。

 

b、备机

检查tt删除数据脚本,不能在备机运行。有可能是zmc清理,也有可能是crontab清理,需要确认如果是zmc清理,那么确认zmc是否是连的tt的浮动ip,如果是可以无需处理,否则需要停掉;如果是crontab清理,确保备机的定时任务不会运行。

业务确认。

 

c、备机

停备机的ocs进程,因为ocs进程会有连接连到tt,导致无法卸载tt内存。

业务确认。

 

d、备机

停备机的网管,确保网管不会连接备机的tt

业务确认。

 

e、主机

停掉备机的复制器后,tt同步日志会在主节点积压,需要观察文件系统使用增长率,估算是否满足操作时间;

get_ttlogfile_increase.sh”可以获取最近一个小时内的TT事务日志文件增长大小。

#!/usr/bin/bashcd /gfs01/tt/tmp/echo "
set serveroutput on
spool awk_ttckpthistory.log
call ttckpthistory;
spool off
"|ttisql ocs;ckptbytes&#61;&#96;awk -F"," &#39;{a&#43;&#61;$16}END{print a}&#39; awk_ttckpthistory.log&#96;maxtime&#61;&#96;awk -F"," &#39;{ gsub(/<|>|-|:| |Command/,""); print $0 }&#39; awk_ttckpthistory.log | awk -F"," &#39;{if($4 !&#61; null ) print $0}&#39; | awk -F"," &#39;{y1&#61; substr($1,1,4); m1&#61;substr($1,5,2); d1&#61;substr($1,7,2);h1&#61;substr($1,9,2);M1&#61;substr($1,11,2);s1&#61;substr($1,13,2); time1 &#61; strftime("%s",mktime(y1" "m1" "d1" "h1" "M1" "s1));{print time1}}&#39;|head -n 1&#96;
mintime&#61;&#96;awk -F"," &#39;{ gsub(/<|>|-|:| |Command/,""); print $0 }&#39; awk_ttckpthistory.log | awk -F"," &#39;{if($4 !&#61; null ) print $0}&#39; | awk -F"," &#39;{y1&#61; substr($1,1,4); m1&#61;substr($1,5,2); d1&#61;substr($1,7,2);h1&#61;substr($1,9,2);M1&#61;substr($1,11,2);s1&#61;substr($1,13,2); time1 &#61; strftime("%s",mktime(y1" "m1" "d1" "h1" "M1" "s1));{print time1}}&#39;|tail -n 1&#96;difresult&#61;$(($maxtime-$mintime))sumbytes&#61;$(($ckptbytes/$difresult*3600/1024/1024))
echo "Transaction logfile increase is:"$sumbytes" MB"

 

2、查看状态 主备机 tt

          Check the main ocs server TT database status

$ ttstatus

 

3、停tt服务&#xff0c;主要是为了确保tt当前的连接都被断开。

$ttdaemonadmin -stopserver

 

4、调用过程确保更改都被写入两个数据库&#xff0c;在备机上操作。tt用户&#xff08;哪个库需要被碎片整理就在哪个库上执行&#xff09;

此处是gfs02主机上的tt需要被碎片整理&#xff0c;所以就在gfs02上执行。

>call ttRepSubscriberWait(NULL,NULL,&#39;ocs&#39;,&#39;gfs01&#39;, 100);

参数1&#xff1a;需要操作的复制器的名称&#xff0c;为空表示所有的复制器。

参数2&#xff1a;需要操作的复制器的所有者&#xff0c;为空表示所有复制器的所有者。

参数3&#xff1a;订阅数据库的DS名称&#xff0c;为空表示订阅主机的所有DS

参数4&#xff1a;订阅数据库的主机名&#xff0c;为空表示所有的订阅数据库的主机。

参数5&#xff1a;等待时间&#xff0c;单位秒。-1表示永久等待。就是等待订阅数据库同步完成的时间。

 

5、停复制器&#xff0c;只能停备机的复制器&#xff0c;主机的复制器必须要保证是起着的&#xff0c;这样后面的duplicate操作才能进行。&#xff08;tt用户&#xff09;

          stop the main ocs server replicator .

$ttadmin -reppolicy manual ocs

$ttadmin -repstop ocs

 

6、卸载内存&#xff08;备机tt&#xff09;

          unload the tt database memory

$ttadmin -ramPolicy manual ocs

$ttadmin -ramUnload ocs

 

7、备机上destroy数据库

$ttdestroy ocs

 

8、通过主机上的ocs克隆到备机&#xff08;备机上执行&#xff09;

ttRepAdmin -duplicate -from ocs -host gfs01 -UID ocs -PWD ocs -setMasterRepStart ocs

-setMasterRepStart 在数据从源端到目标端传送的时候&#xff0c;保证不会丢失更新。

 

9、启动复制器&#xff08;备机 tt&#xff09;

           start replicator and modify the replication policy

$ttadmin -repstart ocs

$ttadmin -reppolicy always ocs

 

10、内存加载策略&#xff08;备机 tt&#xff09;

           Modify memory loading policy

$ttadmin -ramPolicy always ocs

 

11、起tt服务

ttdaemonadmin -startserver

 

12、检查表数据一致性&#xff0c;验证用户、权限、数据一致性

                   Check for table data consistency

 

13、验证tt同步情况

启动复制器后&#xff0c;需要验证tt的同步情况&#xff0c;必须数据同步后才能切机&#xff1b;

Command> call ttlogholds;

ttstatus;

 

14、手工checkpoint

操作完成后需要手工调整checkpoint&#xff0c;错开checkpoint时间点&#xff0c;错开IO&#xff0c;避免IO争用&#xff0c;如果是本地SSD&#xff0c;可以不用做这个操作&#xff1b;

                  

15、操作完成后恢复crontab&#xff0c;考虑job是否补跑&#xff0c;启动网管等&#xff1b;

业务确认。

 


推荐阅读
author-avatar
心痛则痛1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有