热门标签 | 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;

业务确认。

 


推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文介绍了如何在Django项目中使用django-crontab库来设置和管理定时任务,包括安装、配置、编写定时任务以及常见问题的解决方案。通过具体实例,帮助开发者快速掌握在Django中实现自动化任务的方法。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
  • 深入理解Quartz:Java定时任务框架详解
    Quartz是一个功能强大的调度库,适用于各种规模的应用程序。本文将详细介绍Quartz的基本概念、配置方法以及如何在Java项目中使用Quartz来管理定时任务。 ... [详细]
  • 本文探讨了Java中实现定时任务的几种常见方式,包括java.util.Timer、ScheduledExecutorService以及Spring Task,并对每种方法进行了详细的代码示例和优缺点分析。 ... [详细]
  • php写定时器避免内存泄露的方法
    小编给大家分享一下php写定时器避免内存泄露的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
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社区 版权所有