TimesTen学习系列之一:TT的迁移和备份

TimesTen可以使用ttMigrate进行迁移,类似于Oracle的exp/imp。

具体用法文档上写得非常详细了,或者可以执行ttMigrate --help查看。

我这里只对几个常见的使用场景进行记录。

1)导出单表:

可以使用下面格式:

ttMigrate -c|-a DSN|ConnectStr 文件名 对象名

-c表示已创建的格式导出

-a表示追加导出

导出的对象可以是cachegroup/table/sequence/view等等

例如:导出某一个表

[[email protected] ~]# ttMigrate -c TT_1122 /backup/a TEST_USER.TBL_PRODUCTS

Saving cached table TEST_USER.TBL_PRODUCTS

Cache group successfully saved.

此时该表被导出到了/backup/a。

注意如果要导出Cachegroup中的表,必须指定为CG导出,否则会报错:

[[email protected] ~]# ttMigrate -c TT_1122 /backup/a TEST_USER.TBL_PRODUCTS

ttMigrate: Error received while processing table TEST_USER.TBL_PRODUCTS -- table can only be saved by saving cache group TEST_USER.GC_TBL_PRODUCTS.

[[email protected] ~]# ttMigrate -c TT_1122 /backup/a TEST_USER.GC_TBL_PRODUCTS

Saving cache group TEST_USER.GC_TBL_PRODUCTS

Saving cached table TEST_USER.TBL_PRODUCTS

Cache group successfully saved.

导出文件可以使用ttMigrate -l/-L/-d/-D查看内容。

ttMigrate也可以用于执行恢复,具体格式为:

ttMigrate -r DSN filename

例如将刚才导出的文件进行恢复:

[[email protected] ~]# ttMigrate -r TT_1122 /backup/a

Restoring cache group TEST_USER.GC_TBL_PRODUCTS

Restoring cached table TEST_USER.TBL_PRODUCTS

ttMigrate: Error received while restoring cache group TEST_USER.GC_TBL_PRODUCTS -- 37000: [TimesTen][TimesTen 11.2.2.8.0 ODBC Driver][TimesTen]TT8224: Cache group GC_TBL_PRODUCTS already exists -- file "plittddl.c", lineno 737, procedure "plittCreate" (TimesTen
error code = 8224).

*** Cache group TEST_USER.GC_TBL_PRODUCTS was not restored.

There were errors restoring the following objects:

cache group TEST_USER.GC_TBL_PRODUCTS

此时提示TT中已经存在该CG,于是我们将CG删除之后再恢复:

Command> select count(*) from tbl_products;   ---删除前查看数据量

< 10150 >

1 row found.

Command>

Command> drop cache group TEST_USER.GC_TBL_PRODUCTS;

[[email protected] ~]# ttMigrate -r "dsn=TT_1122;uid=TEST_USER;oraclepwd=TEST_USER" /backup/a

Enter password for ‘TEST_USER‘:

Restoring cache group TEST_USER.GC_TBL_PRODUCTS

Restoring cached table TEST_USER.TBL_PRODUCTS

1/1 cached table restored.

Cache group successfully restored.

已经导入成功了。

但此时我们查看表,发现还没有从数据库中load数据。

Command> select count(*) from tbl_products;

< 0 >

1 row found.

原来,ttMigrate对于cg只会备份定义,数据还是从Oracle数据库中load

Command> alter  cache group  GC_TBL_PRODUCTS set AUTOREFRESH interval 5 seconds;

Command> call ttcachestart

> ;

Command> select count(*) from tbl_products;

< 0 >

1 row found.

1 row found.

Command> alter  cache group  GC_TBL_PRODUCTS set AUTOREFRESH interval 5 seconds;

Command> select count(*) from tbl_products;

< 0 >

1 row found.

Command> alter  cache group  GC_TBL_PRODUCTS set AUTOREFRESH state paused;

Command> load cache group GC_TBL_PRODUCTS commit every 500 rows ;

10154 cache instances affected.

Command> load cache group GC_TBL_PRODUCTS commit every 500 rows;

以上是导出单个对象的例子。

2)导出整个数据库

如果不指定要导出的对象,那么ttMigrate会将整个数据库导出,例如

[[email protected] ~]# ttMigrate -c TT_1122 /backup/a

物理备份与恢复:

Timesten对物理备份恢复使用了2个工具ttBackup和ttRestore,文档上对这2个工具的使用方法说得非常详细,

下面简单记录下对数据库做全备和恢复的过程。

Syntax:

ttBackup -dir path -type bktype -fname fileprefix DSN

例如:

[[email protected] ~]# ttBackup -dir /backup -type fileFull -fname ttbak TT_1122

Backup started ...

Backup complete

全备执行完了,此时在/backup生产了备份文件。

下面执行恢复.

systax:

ttRestore -fname ttbak -dir /backup TT_1122

[[email protected] ~]# ttRestore -fname fileprefix -dir path TT_1122

Restore started ...

Restore failed:

Error 12133: TT12133: Data store file already exists -- file "restore.c", lineno 1006, procedure "doRestore"  ---报错

[[email protected] TimesTen]# rm -rf /var/TimesTen/tt1122/TT_1122.ds*   ---删除掉ds文件

[[email protected] TimesTen]# ttRestore -fname ttbak -dir /backup TT_1122

Restore started ...

Restore failed:

Error 12134: TT12134: Log file(s) already exist -- file "restore.c", lineno 1040, procedure "doRestore"  ---报错logfile存在

You have new mail in /var/spool/mail/root

[[email protected] TimesTen]#

[[email protected] TimesTen]# rm -rf /var/TimesTen/tt1122/TT_1122.log13*   ---删除掉log文件

[[email protected] TimesTen]# ttRestore -fname ttbak -dir /backup TT_1122

Restore started ...

Restore failed:

Error 12116: TT12116: Cannot create database for restore -- file "restore.c", lineno 1808, procedure "dsCreate"

Error 839: TT0839: Cannot access data store because it is in use. A data store may be considered to be in use due to its RAM Policy setting, even though there are no active connections to it. -- file "db.c", lineno 20680, procedure "sbDbDestroy"

Error 830: TT0830: Cannot create data store file. OS-detected error: Could not destroy previous data store -- file "db.c", lineno 7788, procedure "sbDbCreate"

---此时有连接存在未释放,不允许创建DS

[[email protected] TimesTen]#

[[email protected] TimesTen]# ttDaemonAdmin -stop

TimesTen Daemon stopped.

[[email protected] TimesTen]# ttstatus

ttStatus: Could not connect to the TimesTen daemon.

If the TimesTen daemon is not running, please start it

by running "ttDaemonAdmin -start".

[[email protected] TimesTen]# ttRestore -fname ttbak -dir /backup TT_1122

ttRestore: TimesTen daemon is not running

[[email protected] TimesTen]# ttDaemonAdmin -start           ----重启Daemon

TimesTen Daemon startup OK.

[[email protected] TimesTen]# ttRestore -fname ttbak -dir /backup TT_1122

Restore started ...

Restore complete

[[email protected] TimesTen]#  ---完成restore

Command> select count(*) from x;

< 22000 >

1 row found.

Command>  ----验证数据未丢失

时间: 2024-10-05 10:30:21

TimesTen学习系列之一:TT的迁移和备份的相关文章

Jenkins系列-Jenkins升级、迁移和备份

升级Jenkins Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新).如此频繁的更新,怎么升级呢? war:下载新版的war文件,替换旧版本war文件.重启即可. 二进制:卸载旧版本,安装新版本即可. Jenkins程序下载地址:http://mirrors.jenkins-ci.org/ note:升级前,请测试该版本和你本地数据的兼容性.如何测试:将JENKINS_HOME拷贝一份到新的机器,用新版的程序启动.测试对应的插件和配置. 迁移和备

【saltstack学习系列之三】salt-master迁移

先按照正常的salt-master服务器进行安装 打包原salt-master服务器的pki目录cd /etc/salttar -czf pki.tar.gz pki 上传这个pki.tar.gz到新的salt-master服务器上的/etc/salt目录下 删除新salt-master原有pki目录(如果安装的时候有启动salt-master服务的话)解压pki.tar.gzrm -rf /etc/salt/pkitar -zxf pki.tar.gz 重启salt-master服务/etc/

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理   (7):DBSession的封装   (8):DBSession线程内唯一 前言:前面我们基本已经完成了一个Demo,我们在后面的

《一个销售的VMWARE学习系列之四:VMware Converter 迁移物理机到 ESXI虚拟机》

VMware Converter有啥用? VMware Converter 是一款能将物理电脑系统.VMware其他版本虚拟机镜像或第三方虚拟机镜像转化为一个虚拟机映像文件的工具,而且生成的映像可以在该公司的VMware虚拟机软件中使用. 为了大家能更好的理解下面的操作,先把网络环境描述一下,如下: 环境解释:就两台主机啦,没有别的啦,一台物理主机XP,一台ESXI主机,中间不要任何服务器去做转换啦:我用的是最简单.最容易.最明白的网络环境啦,哈哈!! 1.我们首先去看一下ESXI主机里面现在有

Entity Framework Code First学习系列

Entity Framework Code First学习系列目录 Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity Framework 5.0+MS SQL Server 2012,在数据库方面Entity Framework Code First在Entity Framework 5.0仅支持MS SQL Server数据库.在接下来的随笔中,均使用项目名称为Portal的控制台应用程序为例.具体的系统学习目

《一个销售的VMWARE学习系列之一 ----虚拟化的理解》

作为一个销售,面对客户的不同问题需求,为了能更好的解决客户的不同问题,以及将产品的优势展现出来,所以下定决心我也要学习VMWARE虚拟化与云服务. 首先,经常会被客户问起一些关于虚拟化的问题?如下: 1.虚拟机稳定吗? 2.为什么要使用虚拟化啊? 3.虚拟化能带来什么好处啊? 4.主机坏了,是不是所有虚拟机都不能用啊? 5.虚拟机容易管理吗? 6.可以把现在的物理机迁移到虚拟机上吗? 7.虚拟机怎样备份啊? 为了能更好的解决客户的问题,我也问了度娘很多问题,下面就简单的一一解答: 问题一:虚拟机

Asp.Net MVC5入门学习系列⑦

原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改怎么办? 添加一个字段 我们现在要给Movie实体模型类添加一个评价的字段该怎么搞!我们知道我们默认使用EF code frist生存的数据库是同步性的,这样才能便于我们更好的开发,如果实体模型和数据库不同步的话,实体框架应该会抛出异常.  code frisr设置模型库迁移 在VS里我们先移除da

《一个销售的VMWARE学习系列之三:在ESXI主机上安装WINDOWS虚拟机》

上一篇文章已经学会了怎样安装ESXI主机啦,那下面我们就要学,如何在ESXI主机上安装WINDOWS虚拟机啦:ESXI主机是基于LINUX内核啊!是不是要写命令创建WINDOWS虚拟机呢,哈!这个不用担心,VMWARE提供了vSphere Client 管理工具,而且必须使用才能创建虚拟机啊,你想写命令都不行啊. 1.首先,我们找一台客户机安装vSphere Client 管理工具先,选择"中文",确定安装,如下: 2.安装步骤都是一直"下一步"就可以啦,安装完成后

深度学习系列(2) | Global Average Pooling是否可以替代全连接层?

深度学习系列 | Global Average Pooling是否可以替代全连接层? Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模型甚至抛弃了全连接层,转而使用GAP,而在支持迁移学习方面,各个模型几乎都支持使用Global Average Pooling和Global Max Pooling(GMP). 然而,GAP是否真的可以取代全连接层?其背