达梦数据库还原表测试(验证还原表的恢复及是否应用归档)


一、验证删除后是否能恢复
1、建测试表sysdba.test6
create table test6 as select id from sysobjects;
executed successfully

2、备份test6

SQL> backup table test6;
executed successfully

备份位置
SQL> select backup_path,type,backup_time,base_name from v$backupset; 

LINEID     BACKUP_PATH                                               TYPE       
---------- --------------------------------------------------------- -----------
           BACKUP_TIME                BASE_NAME
           -------------------------- ---------
1          /dm8/data/TEST/bak/TS_MAIN_FULL_20210104_142803_889266    0
           2021-01-04 14:28:04.725525 

3、删除test6,并恢复
SQL> drop table test6 purge;
executed successfully
restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
[-2106]:Error in line: 1
Invalid table or view name [TEST6].
4、新建一个test6表 id列与sysobjects的列类型不同
create table test6 (id varchar(10));
executed successfully
SQL> restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
[-8324]:the definition of dest table restored does not match with the one in backupset.
5、新建一个与sysobjects 的id列一致的表
SQL> desc sysobjects

LINEID     NAME     TYPE$        NULLABLE
---------- -------- ------------ --------
1          NAME     VARCHAR(128) N
2          ID       INTEGER      N
3          SCHID    INTEGER      N
4          TYPE$    VARCHAR(10)  N
5          SUBTYPE$ VARCHAR(10)  Y
6          PID      INTEGER      Y
7          VERSION  INTEGER      N
8          CRTDATE  DATETIME(6)  Y
9          INFO1    INTEGER      Y
10         INFO2    INTEGER      Y
11         INFO3    BIGINT       Y

LINEID     NAME  TYPE$           NULLABLE
---------- ----- --------------- --------
12         INFO4 BIGINT          Y
13         INFO5 VARBINARY(128)  Y
14         INFO6 VARBINARY(2048) Y
15         INFO7 BIGINT          Y
16         INFO8 VARBINARY(1024) Y
17         VALID CHAR(1)         Y

17 rows got

SQL> create table test6 (id int);
executed successfully

SQL> restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
executed successfully

二、验证是否应用归档

1、查看是否开启归档
SQL> select arch_mode from v$database;

LINEID     ARCH_MODE
---------- ---------
1          Y
已开启归档,备份是在归档开启之后做的
2、删除部分表数据
SQL> select count(1) from test6;

LINEID     COUNT(1)            
---------- --------------------
1          1365

used time: 0.875(ms). Execute id is 410.
SQL> delete from test6 where id<1000;
affect rows 286

SQL> commit;
executed successfully

SQL> select count(1) from test6;

LINEID     COUNT(1)            
---------- --------------------
1          1079
3、还原test6

SQL> restore table test6 from backupset '/dm8/data/TEST/bak/TAB_TEST6_BTREE_20210104_142949_400940';
executed successfully

SQL> select count(1) from test6;

LINEID     COUNT(1)            
---------- --------------------
1          1365

三、结论

表恢复需要存在与原结构一致的表,字段数量、类型一致

表数据恢复到备份时的数量,证明未应用归档。
官方文档也明确提示'表还原之后不需要恢复操作',也表明了恢复表是不会应用归档的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值