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 vdatabase;selectarchlsn,clsn,pathfromvarch_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;


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

作者:tazimi

出处:https://www.cnblogs.com/tazimi/p/16634510.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   tazimi  阅读(296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示