Loading

DM8备份与还原实操

一、了解DM8备份与还原

逻辑备份与物理备份的差别:

逻辑备份:备份数据库实例的对象,即对数据库的表空间、表、视图等的备份,可以使用dexp、dexpdp导出,dimp、dimpdp导入;
物理备份:备份数据库实例在磁盘中的物理数据,即数据文件、日志文件、控制文件等,可以使用dmrman进行脱机物理备份;

脱机备份与联机备份的差别:

脱机备份:数据库实例关闭后进行的备份,可以使用达梦的dmrman工具对数据库进行脱机备份;
联机备份:数据库实例打开状态下进行的备份,需要打开归档和设置归档路径;

备份方式:

完全备份:备份整个数据库;
BACKUP DATABASE FULL BACKUPSET '备份名称';
增量备份:分为差异增量备份与累计增量备份,在基备份的基础上继续进行备份的备份方式;关键字INCREMENT指定备份方式为增量备份,默认为差异增量备份,增加关键字CUMULATIVE则为累计增量备份。WITH BACKUPDIR指定基备份集的搜索目录,或者可以使用BASE ON BACKUPSET指定具体的基备份
差异增量备份:可以将完全备份或增量备份作为基备份;
BACKUP DATABASE INCREMENT WITH BACKUPDIR '基备份搜索备份目录' BACKUPSET '备份名称';
累计增量备份:只能以完全备份为基备份;
BACKUP DATABASE INCREMENT CUMULATIVE WITH BACKUPDIR '基备份搜索备份目录' BACKUPSET '备份名称';

二、查看是否开启归档

select arch_mode from v$database;

三、创建测试数据

创建表空间users
create tablespace users datafile '/home/dmdba/dmdata/user01.dbf' size 128 autoextend on next 64 maxsize 4096,'/home/dmdba/dmdata/user02.dbf' size 128 autoextend on next 64 maxsize 4096;

创建用户
create user bak_test identified by 123456789 default tablespace users;

赋权
grant dba,resource to bak_test;

创建表及插入数据
create table t1(id int identity,name varchar2(20));
insert into t1 values('tom');
commit;

四、联机备份 ###

进行联机备份前,需要先设置归档路径与开启归档,否则报以下错误

设置归档路径,开启归档
alter database mount;
alter database add archivelog 'type=local,dest=/home/dmdba/dmarch,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;


插入数据
insert into t1 values('jerry');
commit;
select * from t1;

进行差异增量备份(以完全备份01为基备份)
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';

模拟磁盘损坏数据文件丢失,更改user01数据文件名

五、还原恢复

使用完全备份进行还原恢复
./dmrman
restore database '/home/dmdba/dmdbms/data/DMOA/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_01';
recover database '/home/dmdba/dmdbms/data/DMOA/dm.ini' from backupset '/home/dmdba/dmbak/full_bak_01';
recover database '/home/dmdba/dmdbms/data/DMOA/dm.ini' update db_magic;

提示服务器正在运行,关闭服务器之后再次尝试。


提示文件读写出错,切换为dmdba用户在此尝试。



查看数据,只恢复到完全备份的数据,而后面增加的数据没有恢复

使用差异增量备份进行恢复
restore database '/home/dmdba/dmdbms/data/DMOA/dm.ini' from backupset '/home/dmdba/dmbak/inc_bak_01';
recover database '/home/dmdba/dmdbms/data/DMOA/dm.ini' from backupset '/home/dmdba/dmbak/inc_bak_01';
recover database '/home/dmdba/dmdbms/data/DMOA/dm.ini' update db_magic;


六、查看数据,数据全部恢复

posted @ 2022-08-28 23:55  tazimi  阅读(259)  评论(0编辑  收藏  举报