文档章节

TimesTen内存数据碎片回收

yuanhotel
 yuanhotel
发布于 2015/12/30 16:52
字数 1295
阅读 45
收藏 0

内存是TimesTen内存数据库中最重要的资源,就好比我们熟悉的Oracle数据库中只有一个System表空间一样;遗憾的是TimesTen的内存资源不单类似Oracle数据库只有一个System表空间一样的特例,TimesTen的不单只有一个表空间,还是一个不支持在线扩容更不能自动扩展的表空间。TimesTen的扩容很简单,只需要修改sys.odbc.ini中的PermSize参数并重新装载即可,但是毕竟内存资源是有限的,我们在实际运维中,经常会出现为了回收内存而需要进行内存碎片回收,类似Oracle对表空间的内存碎片回收,但是由于TimesTen内存碎片回收并不能像Oracle的表空间高水位回收那么智能,为了帮助有需要的童鞋,分享实际运维中的内存碎片回收方法。

一、迁移并重建主节点,对主节点进行内存碎片回收

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、使用重建备机脚本直接重建备机

参考《重建备机操作》http://blog.itpub.net/24930246/viewspace-1172765/

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版本中存在内存碎片回收后无法进入主备模式的情况,建议进行内存碎片回收前分析是否可以正常进入主备模式。


本文转载自:http://blog.itpub.net/24930246/viewspace-1449934/

上一篇: akka学习
yuanhotel
粉丝 7
博文 50
码字总数 12401
作品 0
西安
架构师
私信 提问
Oracle TimesTen & Sybase ASE

内存数据库(或IMDB)可以是一个独立的数据库管理系统(DBMS),如Oracle的TimesTen,或者从属于DBMS的一个特殊数据库,如SAP Sybase Adaptive Server Enterprise (ASE)。 IMDB的目标是通过使用计...

旺旺的钥匙
2012/06/08
0
0
Ignite内存计算平台与Oracle TimesTen Scaleout对比

1.产品介绍 Ignite Ignite内存计算平台是一个高性能、集成化、混合式的企业级分布式架构解决方案,功能强大,有先进的集群管理功能,对于分布式内存数据库、流处理技术、分布式计算、分布式服...

李玉珏
2018/08/09
0
0
Ignite是否可以实现分布式内存数据库?

@李玉珏 你好,想跟你请教个问题: Ignite是否可以通过Cluster中每个Node连接一个H2内存数据库方式,实现分布式内存数据库,既解决了redis的ACID事务性问题,又支持SQL,从而达到替换昂贵的T...

莫莫水心
2017/08/11
326
1
timesten服务丢失问题

timesten 安装服务后,开机经常出现服务丢失的情况,为什么???本人很菜,求高人指导。。

菜菜菜鸟小凯
2014/03/14
115
0
java连接远程TimesTen是否必须要设置Client DSN

如题。 从官方文档描述看是必须的,在网上看了很多例子,也都是需要设置Client DSN,但在使用sql developer连接时,只设置了Server DSN,即可使用TTC_Server=hostname;TTC_Server_DSN=Server...

yangrfa
2015/12/15
315
1

没有更多内容

加载失败,请刷新页面

加载更多

任务调度-单体应用定时任务解决方案

1. 应用场景: 单体应用(并发少、就公司内部使用)、业务比较简单、单一、稳定,传统行业首选,项目初期。 2. 主要方式: Spring XML配置方式,timer。 <bean id="cycleBonusTimer" class="...

秋日芒草
12分钟前
0
0
EditText中singleLine过期替代方法

android:lines="1" android:inputType="text"

球球
26分钟前
0
0
删除 Tomcat-webapps 目录自带项目

本文将 %CATALINA_HOME% 目录称为“tomcat”目录。 1.webapps目录中的项目 在 Tomcat 8.0 的 tomcat/webapps 目录中,含有 5 个 Tomcat 自带的 Web 项目,如下所示: docs 有关于 Tomcat 的介...

Airship
30分钟前
2
0
好文:华杉:我等用功,不求日增,但求日减。减一分人欲,则增一分天理,这是何等简易!何等洒脱!

#写在前面1.怎么理解“减一分人欲,则增一分天理,这是何等简易!”?1)华杉提倡 “一劳永逸” 排除浪费,少干活,多赚钱,一战而定,降低作业成本。2)华杉提倡学海无涯,回头是岸...

阿锋zxf
40分钟前
3
0
vue 的bus总线

bus声明 global.bus = new Vue() 事件发送 controlTabbar () {global.bus.$emit('pickUp', 'ddd')}, 事件接收 global.bus.$on('pickUp', (res) => {this.isFocus = true})......

Js_Mei
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部