DM8备份还原

目录

一、准备工作

二、完全备份还原测试

三、差异增量备份还原测试

四、累积增量备份还原测试

五、归档日志恢复测试


一、准备工作

创建表空间TS及数据文件

create tablespace ts datafile '/home/dmdba/datafile/TS01.DBF' size 128,'/home/dmdba/datafile/TS02' size 128;

创建用户bak_test,并将表空间TS设置为bak_test的默认表空间

create user bak_test identified by dameng123 default tablespace ts; 

为用户bak_test赋权

grant resource,dba to bak_test; 

连接bak_test用户,创建表t1,并插入一条记录

conn bak_test/dameng123

create table t1(id int identity,name varchar(20));

insert into t1 values('tom');

commit; 

连接SYSDBA用户开启归档配置

conn SYSDBA/SYSDBA

alter database mount;

alter database add archivelog 'dest=/home/dmdba/arch,type=local,file_size=1024,space_limit=0';

alter database archivelog;
alter database open;

查询归档配置

select arch_mode from v$database;

select arch_lsn,clsn,path from v$arch_file;

二、完全备份还原测试

进行完全备份

backup database full to full_bak_01 backupset '/home/dmdba/dmbak/full_bak_01' backupinfo '完全备份01';

添加备份搜索目录

select sf_bakset_backup_dir_add('disk','/home/dmdba/dmbak');

select backup_name,backup_path,begin_lsn,end_lsn,desc# from v$backupset;

模拟数据文件丢失

mv TS01.DBF TS01.DBF.bak

重启数据库,查看表

DmServiceDMSERVER restart
disql

alter database open;

conn bak_test/dameng123
select * from t1;

alter tablespace ts online;

关闭数据库,使用完全备份01还原数据文件TS01.DBF

DmServiceDMSERVER stop
dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

exit

启动数据库,查看表t1

DmServiceDMSERVER start

disql
conn bak_test/dameng123
select * from t1;

三、差异增量备份还原测试

插入一条记录

insert into t1 values('jerry');

commit;

select * from t1;

进行差异增量备份 

backup database increment base on backupset '/home/dmdba/dmbak/full_bak_01' to inc_bak_01 backupset '/home/dmdba/dmbak/inc_bak_01' backupinfo '差异增量备份01'; 

select backup_name,backup_path,begin_lsn,end_lsn,desc# from v$backupset; 

模拟损坏数据文件

mv TS01.DBF TS01.DBF.bak1

ll

重启数据库,查看表T1

DmServiceDMSERVER restart
disql bak_test/dameng123
alter database open;
select * from t1;
alter tablespace ts online; 

使用差异增量备份01还原

DmServiceDMSERVER stop

dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/inc_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/inc_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

重启数据库,查看T1表

四、累积增量备份还原测试

由于累计增量备份只能使用完全备份作为基备份,因此进行一次完全备份

 backup database full to full_bak_02 backupset '/home/dmdba/dmbak/full_bak_02' backupinfo '完全备份02';

 插入一条记录

insert into t1 values('cumulative');
commit;

select * from t1;

使用完全备份02作为基备份进行累积增量备份

backup database increment cumulative base on backupset '/home/dmdba/dmbak/full_bak_02' to cum_bak_01 backupset '/home/dmdba/dmbak/cum_bak_01' backupinfo '累计增量备份01';

select sf_bakset_backup_dir_add('disk','/home/dmdba/dmbak');
select backup_name,backup_path,begin_lsn,end_lsn,desc# from v$backupset; 

模拟损坏数据文件

重启数据库,查看表

DmServiceDMSERVER restart
disql bak_test/dameng123
alter database open;
select * from t1;
alter tablespace ts online; 

关闭数据库,使用累积备份01进行还原

DmServiceDMSERVER stop
dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/cum_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/cum_bak_01';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

启动数据库,查看数据

DmServiceDMSERVER start
disql bak_test/dameng123
select * from t1;

五、归档日志恢复测试

插入三条记录,用于完全备份 

insert into t1 values('full01');
insert into t1 values('full02');
insert into t1 values('full03');
commit;

backup database full to full_bak_03 backupset '/home/dmdba/dmbak/full_bak_03' backupinfo '完全备份03';
select sf_bakset_backup_dir_add('disk','/home/dmdba/dmbak');
select backup_name,backup_path,begin_lsn,end_lsn,desc# from v$backupset; 

插入三条记录,用于归档日志基于lsn恢复 

insert into t1 values('lsn01');
insert into t1 values('lsn02');
insert into t1 values('lsn03');
commit;

select file_lsn from v$rlog;

插入三条记录,用于归档日志基于时间恢复

insert into t1 values('time01');
insert into t1 values('time02');
insert into t1 values('time03');
commit;
select sysdate;
select file_lsn from v$rlog;

模拟数据文件丢失

重启数据库,查看表

DmServiceDMSERVER restart

disql bak_test/dameng123
alter database open;
select * from t1;
alter tablespace ts online; 

关闭数据库,使用完全备份03还原数据文件

DmServiceDMSERVER stop
dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_03';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_03';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic; 

启动数据库,查看表,发现只恢复到了完全备份03的数据(多出来的full01是上一次测试没删干净,与这次测试无关)

DmServiceDMSERVER start
disql bak_test/dameng123
select * from t1; 

关闭数据库,使用归档日志基于lsn恢复

DmServiceDMSERVER stop
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_03';
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/home/dmdba/arch' until lsn 46922;
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

启动数据库,查看表,lsn小于46922之前的数据全部恢复

DmServiceDMSERVER start
disql bak_test/dameng123
select * from t1; 

关闭数据库,使用归档日志基于时间进行恢复

DmServiceDMSERVER stop
dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_03';
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/home/dmdba/arch' until time '2022-06-20 15:31:18';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic; 

启动数据库,查看表,时间早于2022-06-20 15:31:18之前的数据全部恢复

DmServiceDMSERVER start
disql bak_test/dameng123
select * from t1; 

 更多资讯请到达梦社区地址了解:

https://eco.dameng.com

 ​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值