然后对MYTEST库进行完全恢复,利用sf_get_bak_by_name函数找到备份路径,恢复前要把需要恢复的数据脱机。
[root@ test ~]# rlwrap /u01/dmdb/dmdbms/bin/isql SYSDBA/SYSDBA@localhost
isql V6.0.2.51-Build(2009.12.23)
login success
SQL>select sf_get_bak_by_name('/u01/dmdb/mytest_bak01','mytest');
1 /u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak
1 rows got
time used: 0.303(ms).
SQL>restore database mytest full from '/u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak';
time used: 1787.245(ms).
SQL>alter database mytest set online;
alter database mytest set online
time used: 1028.146(ms).
SQL>set current database mytest;
设置当前数据库为 'mytest'
time used: 0.145(ms).
SQL>select name,type from systables where type!='S';
name type
1 bk_2 U
2 test_backup U
3 test_backupDMBLOB V
4 test_context U
5 test_contextDMBLOB V
6 test_part V
7 test_part00DMPART P
8 test_part01DMPART P
9 test_part2 H
10 test_part3 R
10 rows got
time used: 0.313(ms).
isql V6.0.2.51-Build(2009.12.23)
login success
SQL>select sf_get_bak_by_name('/u01/dmdb/mytest_bak01','mytest');
1 /u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak
1 rows got
time used: 0.303(ms).
SQL>restore database mytest full from '/u01/dmdb/dmdbms/data/mytest_20100330223956_1.bak';
time used: 1787.245(ms).
SQL>alter database mytest set online;
alter database mytest set online
time used: 1028.146(ms).
SQL>set current database mytest;
设置当前数据库为 'mytest'
time used: 0.145(ms).
SQL>select name,type from systables where type!='S';
name type
1 bk_2 U
2 test_backup U
3 test_backupDMBLOB V
4 test_context U
5 test_contextDMBLOB V
6 test_part V
7 test_part00DMPART P
8 test_part01DMPART P
9 test_part2 H
10 test_part3 R
10 rows got
time used: 0.313(ms).
可以看到,现在有10张表,已经恢复到了新建bk_001表之前的状态。那么我们在进行增量恢复
SQL>set current database system;
设置当前数据库为 'SYSTEM'
time used: 0.128(ms).
SQL>alter database mytest set offline;
time used: 1.181(ms).
SQL>select sf_get_bak_by_name('/u01/dmdb/mytest_bak02','mytest');
1 /u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak
1 rows got
time used: 0.312(ms).
SQL>restore database mytest increment from '/u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak';
time used: 11.065(ms).
SQL>alter database mytest set online;
time used: 1027.506(ms).
SQL>set current database mytest;
设置当前数据库为 'mytest'
time used: 0.123(ms).
SQL>select name,type from systables where type!='S';
name type
1 bk_001 U
2 bk_2 U
3 test_backup U
4 test_backupDMBLOB V
5 test_context U
6 test_contextDMBLOB V
7 test_part V
8 test_part00DMPART P
9 test_part01DMPART P
10 test_part2 H
11 test_part3 R
11 rows got
time used: 0.304(ms).
设置当前数据库为 'SYSTEM'
time used: 0.128(ms).
SQL>alter database mytest set offline;
time used: 1.181(ms).
SQL>select sf_get_bak_by_name('/u01/dmdb/mytest_bak02','mytest');
1 /u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak
1 rows got
time used: 0.312(ms).
SQL>restore database mytest increment from '/u01/dmdb/dmdbms/data/mytest_20100330224024_1.bak';
time used: 11.065(ms).
SQL>alter database mytest set online;
time used: 1027.506(ms).
SQL>set current database mytest;
设置当前数据库为 'mytest'
time used: 0.123(ms).
SQL>select name,type from systables where type!='S';
name type
1 bk_001 U
2 bk_2 U
3 test_backup U
4 test_backupDMBLOB V
5 test_context U
6 test_contextDMBLOB V
7 test_part V
8 test_part00DMPART P
9 test_part01DMPART P
10 test_part2 H
11 test_part3 R
11 rows got
time used: 0.304(ms).
可以看到,已经完全恢复。
物理增量备份和恢复功能对于大型数据库系统而言是一个具有标志性意义的功能,由以上的备分实例可以看出, DM6的备份和恢复功能还是比较完善的。
五、总结
以上是我对DM6的使用体验,通过以上的三个测试可以看出,DM6的功能,总的来说还是比较完善的,在数据库的主要功能方面基本能够满足一般企业级数据库的各种应用。同时还提供了一个比较特别的垂直分区功能,值得大家去关注一下。另外由于本文目的是体验DM6数据库,并没有对DM6的性能和稳定性进行测试,在实际环境中,DM的性能和稳定性到底如何,还需要在实践中不断的摸索和总结。