TimesTen数据库的备份和恢复
建立不支持增量备份的全备份
做一个全备份,fileFull为不支持增量的全备份
$ ttbackup -type fileFull -dir /tmp/backupdir sampledb_1122
(ttbackup -type fileFull -dir 指定存放目录 要备份的表明)
恢复到原数据库
$ ttrestore -dir /tmp/backupdir sampledb_1122
Restore started ...
Restore failed:
Error 12133: TT12133: Data store file already exists -- file "restore.c", lineno 1006, procedure "doRestore"
恢复时原数据库必须不存在
$ ttdestroy sampledb_1122
$ ttrestore -dir /tmp/backupdir sampledb_1122
Restore started ...
Restore complete
$ ttisql -v1 sampledb_1122
Command> select * from test;
< 1, 2016-04-05 05:35:53.000000 >
恢复到另一数据库
**必须用-fname指定文件前缀,否则以sampledb1_1122为前缀**
$ ttrestore -fname sampledb_1122 -dir /tmp/backupdir/ sampledb1_1122
Restore started ...
ttRestore: SQL Error: Failed to connect to data store
*** [TimesTen][TimesTen 11.2.2.6.2 ODBC Driver][TimesTen]TT6200: New value for permanent data partition size ignored since smaller than current value of 40 megabytes -- file "db.c", lineno 10239, procedure "sbDbConnect"
*** ODBC Error = 01000, TimesTen Error = 6200
*** [TimesTen][TimesTen 11.2.2.6.2 ODBC Driver]Invalid value (AL32UTF8) for DatabaseCharacterSet connection attribute -- value must be the same as the current data store value (US7ASCII)
*** ODBC Error = 08004, TimesTen Error = 6228
ttRestore: Failed connecting to data store after restore
虽然有很多警告,不过备份还是成功了,警告为:
- 恢复库的字符集不一致,忽略。因为字符集必须一致
- 恢复库的PermSize较备份库小,忽略. 如果较大则没有问题
$ ttisql -v1 sampledb1_1122
Warning 6226: Ignoring value requested for first connection attribute 'PermSize' -- value currently in use: 40, requested value: 32
Command> select * from test;
< 1, 2016-04-05 05:35:53.000000 >
备份中到底包含哪些内容
备份的内容包含三部分,最近一次的checkpoint文件,transaction log文件和.sta元数据文件
$ ls -l /tmp/backupdir
total 43880
-rw------- 1 oracle oracle 28834840 Apr 5 06:27 sampledb_1122.0.bac
-rw------- 1 oracle oracle 16039936 Apr 5 06:27 sampledb_1122.0.bac0
-rw------- 1 oracle oracle 720 Apr 5 06:27 sampledb_1122.sta
从元数据文件中可得到备份的DataStore的信息
$ strings sampledb_1122.sta
/home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122
tt1122
然后可以与DataStore中的checkpoint和日志文件核对
$ ll /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122*
-rw-rw---- 1 oracle oracle 28834840 Apr 5 06:27 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.ds0
-rw-rw---- 1 oracle oracle 28834840 Apr 5 06:27 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.ds1
-rw-rw---- 1 oracle oracle 16039936 Apr 5 06:27 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.log0
-rw-rw---- 1 oracle oracle 67108864 Apr 5 06:21 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.res0
-rw-rw---- 1 oracle oracle 67108864 Apr 5 06:21 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.res1
-rw-rw---- 1 oracle oracle 67108864 Apr 5 06:21 /home/oracle/TimesTen/tt1122/info/DemoDataStore/sampledb_1122.res2
使用流式全备份和恢复
流式备份的特点是输出到stdout,因此可以定向到文件或磁带等,或在线压缩如:
备份:ttbackup -type streamfull sampledb_1122|gzip > sampledb1122.ttb.gz
恢复:gunzip -c sampledb1122.ttb.gz | ttrestore -i sampledb1122
$ ttbackup -type streamfull sampledb_1122 > sampledb_1122.ttb
Backup started ...
Backup complete
$ ll sampledb_1122.ttb
-rw-rw-r-- 1 oracle oracle 44842736 Apr 5 06:18 sampledb_1122.ttb
$ ttdestroy sampledb_1122
$ ttrestore -i sampledb_1122 < ./sampledb_1122.ttb
Restore started ...
Restore complete
$ ttisql -v1 sampledb_1122
Command> select * from test;
< 1, 2016-04-05 05:35:53.000000 >
增量备份和恢复
ttbulkcp结合ttschema进行逻辑备份和恢复
ttbulkcp可以将表中的数据导出成ASCII文件,反向亦可。
但每次只能导出一个表,如果批量导需要自己写批处理文件,如下面示意:
$ ttisql -v1 -e "tables;exit" plsqldb|while read tab; do
> echo ttbulkcp $tab
> done;
ttbulkcp ORACLE.COUNTRIES
ttbulkcp ORACLE.DEPARTMENTS
ttbulkcp ORACLE.EMPLOYEES
ttbulkcp ORACLE.JOBS
ttbulkcp ORACLE.JOB_HISTORY
ttbulkcp ORACLE.LOCATIONS
ttbulkcp ORACLE.REGIONS
ttbulkcp ORACLE.T1
ttbulkcp ORACLE.TT_TEST
导出:
ttbulkcp -o 导出后的文件名 表的明=========>整张表导出
$ ttbulkcp -o plsqldb employees employees.dump107/107 rows copied
$ more employees.dump
##ttBulkCp:DATEMODE=TIMESTAMP
#
# ORACLE.EMPLOYEES, 11 columns, dumped Tue Apr 5 18:35:46 2016
# columns:
# 1. EMPLOYEE_ID NUMBER(6)
# 2. FIRST_NAME VARCHAR2(20 BYTE)
# 3. LAST_NAME VARCHAR2(25 BYTE)
# 4. EMAIL VARCHAR2(25 BYTE)
# 5. PHONE_NUMBER VARCHAR2(20 BYTE)
# 6. HIRE_DATE DATE
# 7. JOB_ID VARCHAR2(10 BYTE)
# 8. SALARY NUMBER(8,2)
# 9. COMMISSION_PCT NUMBER(2,2)
# 10. MANAGER_ID NUMBER(6)
# 11. DEPARTMENT_ID NUMBER(4)
# end
#
100,"Steven","King","SKING","515.123.4567",1987-06-17 00:00:00,"AD_PRES",24000,N
ULL,NULL,90
101,"Neena","Kochhar","NKOCHHAR","515.123.4568",1989-09-21 00:00:00,"AD_VP",1700
0,NULL,100,90
导入:
ttbulkcp -i导出后的文件名 表的明=========>整张表导出(导入导出就是参数不一样,一个-i,一个-o)
$ ttbulkcp -i -connstr "dsn=sampledb_1122;uid=tthr" employees employees.dump
Enter password for 'tthr':
ttBulkCp: Error received while retrieving information about table employees -- Table not found.
由于目标库的表结构还不存在,这时我们可以用ttschema导出表定义
$ ttschema plsqldb oracle.employees > employees.sql
Warning: objects may not be printed in an order that can satisfy foreign key reference constraints or other dependencies
$ cat employees.sql
-- Database is in Oracle type mode
Warning: objects may not be printed in an order that can satisfy foreign key reference constraints or other dependencies
create table "ORACLE".EMPLOYEES (
EMPLOYEE_ID NUMBER(6) NOT NULL,
FIRST_NAME VARCHAR2(20 BYTE) INLINE,
LAST_NAME VARCHAR2(25 BYTE) INLINE NOT NULL,
EMAIL VARCHAR2(25 BYTE) INLINE NOT NULL UNIQUE,
PHONE_NUMBER VARCHAR2(20 BYTE) INLINE,
HIRE_DATE DATE NOT NULL,
JOB_ID VARCHAR2(10 BYTE) INLINE NOT NULL,
SALARY NUMBER(8,2),
COMMISSION_PCT NUMBER(2,2),
MANAGER_ID NUMBER(6),
DEPARTMENT_ID NUMBER(4),
primary key (EMPLOYEE_ID)
);
create index "ORACLE".EMP_MANAGER_IX on "ORACLE".EMPLOYEES (MANAGER_ID);
create index "ORACLE".EMP_NAME_IX on "ORACLE".EMPLOYEES
(LAST_NAME, FIRST_NAME);
不过我们看到ttschema导出的文件中包含了用户名,如果需要在另一个用户如tthr的schema下建表,则需要使用vi替换一下
(1,$ s/ORACLE/TTHR/g)
$ ttisql -connstr "dsn=sampledb_1122;uid=tthr;pwd=tthr" -f employees.sql
$ ttbulkcp -i -connstr "dsn=sampledb_1122;uid=tthr" employees employees.dump
Enter password for 'tthr':
employees.dump:
107 rows inserted
107 rows total
借鉴:https://blog.csdn.net/stevensxiao/article/details/51067958
TimesTen数据库的备份和恢复的更多相关文章
- SQL数据库的备份和恢复
SQL数据库的备份和恢复 一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studi ...
- mysql数据库的备份和恢复
Mysql数据库的备份和恢复 1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下: 语法:mysqldump –u <用户名> -p ...
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- postgresql 数据库的备份和恢复 (pg_dump 和 pg_restore)
pg_dump 用来备份数据库: pg_restore 用来恢复数据库: 备份出来的文件可以用 XZ (linux 自带的压缩工具压缩). XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您 ...
- Linux系统下MySQL数据库的备份和恢复
当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务 ...
- Db2数据库的备份和恢复
DB2数据库备份与恢复 1. 备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 C:\Documents and Settings\Administra ...
- MongoDB数据库的备份和恢复
MongoDB数据库备份方式: 1.整库备份 2.单表备份 1.整库备份 备份整个数据库: mongodump -h 127.0.0.1:27000 -d park --authenticationD ...
- MySQL 数据库的备份和恢复
1.DOS命令 mysqldump /*DOS命令生成文本文件*/ mysqldump -u username -h host -ppassword dbname [tbanme1,tbname2,. ...
随机推荐
- .net core 2.0 报错:error NU1102: Unable to find package 。。。
这种是nuget无法还原的问题.解决问题的方法: 在项目文件所在的目录下创建文件:NuGet.Config 里面内容: "?> <configuration> <pa ...
- Eclipse 开发设置编码格式--4个修改地方完美
背景:本人用这么久,因为大部分都是设定为UTF-8 就可以了,但是一些老项目居然是GBK格式,所以 工作空间.通常文件类型的编码都是UTF-8. 针对特殊项目设定特定格式,实际中本人对整个项目设定并不 ...
- rethinking imageNet pre-training
paper url: https://arxiv.org/abs/1811.08883  当在数据量足够和训练iterations足够的情况下,ImageNet pretrain不会对最后的性能有帮 ...
- 2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告
2018-2019-2-20175225 实验一 <Java开发环境的熟悉>实验报告 一.实验内容及知识点 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编 ...
- 【原创】Linux基础之vi
vi配置文件 ~/.vimrcor/etc/vimrc 模式 命令模式(Command Mode) 1 上/下/左/右移动光标 i/k/j/l 2 跳到文件末尾 G 3 跳到文件开头 gg 4 向下搜 ...
- Uni-app页面生命周期
学习任何框架必须将其生命周期了然于胸. uni-app支持如下页面生命周期函数: onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为object(用于页面传参),示例中可参考 onSh ...
- 成环的概率dp(初级) zoj 3329
原题地址:https://vjudge.net/problem/ZOJ-3329 题目大意: 有三个骰子,分别有k1,k2,k3个面,初始分数是0.第i骰子上的分数从1道ki.当掷三个骰子的点数分别为 ...
- 认识 Linux 文件权限
Linux 之所以是比较安全的操作系统,和它丰富的文件权限设定是有关系的,学习 Linux 操作系统一定要懂文件的权限识别和设置.通过这篇博文我们了解 Linux 操作系统的文件权限. 拥有者 / ...
- PADS Router VX.2.3 设置光标的类型
操作系统:Windows 10 x64 工具:PADS Router VX.2.3 菜单:Tools > Options...(快捷键:Ctrl + <Enter>) 在Option ...
- syslog-ng源码安装问题
title: 2019-4-22 tags: 新建 author:yangxiaoyi --- 问题:在源码安装syslog-ng软件时执行./configure遇到如下报错, require eve ...