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;
六、查看数据,数据全部恢复
标签:dmdba,01,database,备份,实操,DM8,home,bak 来源: https://www.cnblogs.com/tazimi/p/16634510.html