达梦(7)增量备份恢复测试(一)

2014-11-24 17:07:57 · 作者: · 浏览: 0
关于增量备份的主要参考<> p273。达梦的增量必须基于一个备份才可能生成。所以如果一个 数据库还没进行去备份,而直接用“backup database increment with backupdir ...”去备份,会提示说找不到基备份。所以要做一次完整的增量备份测试,需要下面步骤:
1. 做一次完整的全库联机备份,并记下存放目录,作以后续增量备份的基备份和文件存放目录。
2. 做增量备份,并指定全库联机备份所在目录。并最好指定bakfile参数指向全库备份所在目录,以便作归档。如果没指定,会在默认目录,
数据库所在目录生成默认文件(DB_<数据库名>_<时间点>.bak).这不利于整理。
另外一个要注意的是,每一次备份时,备份集名称都要变。 把备份集交给数据库管理员负责是达梦与其它库很不同的一个地方之一。
同时dm.ini也要记得备份,恢复时会用到。
同时还作了下面测试:
1. 正常的增量备份测试
2. 尝试将基备份全库备份文件移开,再去执行增量备份看看效果
3. 尝试仅保留基备份全库备份文件,将其它增量备份文件移开,再去执行增量备份看看效果
4. 正常的增量备份恢复测试
5. 在增量备份恢复前,先在备份集目录,删除基备份,再进行恢复看效果


测试版本: V7.1.2.215-Build(2013.11.08-36626trunc)

一。检查并设置数据库为归档模式

联机备份必须处在归档模式下,可用下面两条sql查看数据库当前状态

 --查看归档是否打开
	select arch_mode from v$database;

	--查看归档日志信息
	select arch_name,arch_type,arch_dest from v$dm_arch_ini;
如何设置归档可看:达梦(3)如何设置归档模式
二。创建测试数据
-- 创建表空间test_data(数据文件TEST_DATA01.DBF大小为50m)
	 create tablespace test_data datafile 'C:\dmdbms\data\DAMENG\TEST_DATA01.DBF' size 50;

	 -- 增加用户
	 create user "TESTUSER" identified by "111111" default tablespace "TEST_DATA";

	 -- 授权
	 grant "DBA" to "TESTUSER";

	 -- 创建模式
	 create schema test_sch authorization testuser;

	 -- 创建 表
	 create table test_sch.t2(id int primary key ,name varchar(20)) storage(on test_data);

	 -- 插入数据
	-- insert into test_sch.t2 values(1,'aaa');
	 insert into test_sch.t2 values(0,'full');

	 -- 检索数据
	 select * from test_sch.t2;
三。备份数据库
基备份,必不可少,以后所有的增量都基于这个备份.

服务器[localhost:5236]:处于普通打开状态
登录使用时间: 6.205(毫秒)

disql V7.1.2.215-Build(2013.11.08-36626trunc)
Connected to: DM 7.1.2.215
SQL>select * from test_sch.t2;

行号 ID NAME
---------- ----------- ----
1 0 full

已用时间: 0.266(毫秒). 执行号:67.
SQL>backup database full to dmincord0full bakfile 'C:\xcl\inc\dmincord0full.bak' backupinfo '作为增量的基备份的全库联机备份' maxsize 50 ;
操作已执行
已用时间: 00:00:02.041. 执行号:68.
SQL>

第一次增量备份:
SQL>insert into test_sch.t2 values(1,'inc1');
	影响行数 1

	已用时间: 0.891(毫秒). 执行号:69.
	SQL>backup database increment with backupdir 'C:\xcl\inc' to dmincord1  bakfile 'C:\xcl\inc\dmincord1.bak'  backupinfo '测试增量备份1' ;
	操作已执行
	已用时间: 00:00:01.774. 执行号:70.
	SQL>insert into test_sch.t2 values(2,'inc2');
	影响行数 1

	已用时间: 0.442(毫秒). 执行号:71.
	SQL>    select * from test_sch.t2;

	行号       ID          NAME
	---------- ----------- ----
	1          0           full
	2          1           inc1
	3          2           inc2

	已用时间: 0.516(毫秒). 执行号:72.
第二次增量备份:
SQL>backup database increment with backupdir 'C:\xcl\inc' to dmincord2  bakfile 'C:\xcl\inc\dmincord2.bak' backupinfo '测试增量备份2' ;
	操作已执行
	已用时间: 00:00:01.756. 执行号:73.
	SQL>insert into test_sch.t2 values(3,'inc3');
	影响行数 1

	已用时间: 0.862(毫秒). 执行号:74.
	SQL>select * from test_sch.t2;

	行号       ID          NAME
	---------- ----------- ----
	1          0           full
	2          1           inc1
	3          2           inc2
	4          3           inc3

	已用时间: 0.411(毫秒). 执行号:75.
	SQL>
第三次增量备份:
注意:
在执行备份前,将基备份全库备份文件移开,再去执行增量备份,发现会提示找不到基备份
SQL>backup database increment with backupdir 'C:\xcl\inc' to dmincord3  bakfile 'C:\xcl\inc\dmincord3.bak' backupinfo '测试增量备份3' ;
		backup database increment with backupdir 'C:\xcl\inc' to dmincord3  bakfile 'C:\xcl\inc\dmincord3.bak' backupinfo '测试增量备份3' ;
		[-8036]:无基备份.
		SQL>backup database increment with backupdir 'C:\xcl\inc' to dmincord3  bakfile 'C:\xcl\inc\dmincord3.bak' backupinfo '测试增量备份3' ;
		操作已执行
		已用时间: 00:00:02.162. 执行号:123.
		SQL> ins