绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
达梦数据库归档、备份、还原与恢复
2022-03-30 11:07:33

相关概念原理
归档模式:
本地归档local、实时归档realtime、即时归档timely、异步归档async和远程归档
归档原理:
系统将 REDO 日志先写入联机日志文件后,根据归档的配置情况,异步地将 REDO 日志 写入本地归档日志文件,或者通过 MAL 系统发送到远程归档的目标实例,写入目标实例的 远程归档日志文件中。
远程归档失败会直接判断归档文件失效,远程节点恢复后会继续发送新的redo日志但不会补齐故障期间的redo日志,归档内容可能会不完整;本地归档失败会暂时挂起,归档内容肯定完整;
远程归档必须双向配置,单向配置时目标实例上不会接收归档日志,归档状态将会变成状态
归档恢复:

收集本地归档日志文件;
扫描归档文件,获取后一个有效 RLOG_PKG 偏移
首先,根据偏移来截取后一个本地归档日志文件中有效内容,删除掉 RLOG_PKG 偏移之后的多余内容,保留 RLOG_PKG 偏移之前的内容,并调整日志文件头信息。然后, 再创建一个新的空的归档日志文件;
扫描联机日志文件,拷贝缺失的 REDO 日志并写入新创建的归档日志文件。
指定归档恢复的执行场景主要包括:***
 将还原后处于非一致性状态的数据库恢复到一致性状态
 将已经处于一致性状态的数据库尽可能地恢复到新状态
 将数据库恢复到指定时间点状态
 将数据库恢复到指定 LSN 产生时的状态
使用 DDL CLONE 方式备份的数据库,不支持指定归档恢复。
备份:
逻辑备份核物理被封 联机备份和脱机备份 数据备份和归档日志备份
一致性备份和非一致性备份 完全备份和增量备份
还原:
逻辑还原和物理还原 数据还原和归档日志还原 完全还原和增量还原
备份方式:
1:DMAP 辅助进程方式,可支持第三方备份
2:无辅助进程方式,不依赖 DMAP,由主进程 dmserver 自身执行备份还原,但不支 持第三方备份(指定 DEVICE TYPE 为 TAPE)。
指定备份集恢复的简要过程包括:
1. 从备份集读取 REDO 日志,并生成一个临时的本地归档日志文件;
2. 利用生成的临时归档日志文件,重做 REDO 日志,并将数据修改写入磁盘;
3. 删除临时生成的归档日志文件;
4. 更新数据库日志信息,设置 CKPT_LSN 为后一个重做的 REDO 日志 LSN 值;
5. 修改数据状态为 ACTIVE,标记数据库启动时需要进行相应的回滚活动事务、 PURGE 已提交事务。

备份还原实操
归档准备工作
 联机归档:
1)修改数据库为 MOUNT 状态。

sql>alter database mount;
1
2)配置本地归档。

sql>alter database add archivelog 'dest = /home/dm_arch/arch, type = local,file_size = 1024, space_limit = 2048';
1
3)开启归档模式。

sql>alter database archivelog;
1
4)修改数据库为 open 状态。

sql>alter database open;
1
 手动归档:(配置dmarch.ini与dm.ini在同一路径)

[archive_local1]
arch_type = local
arch_dest = d:\dm_arch\arch
arch_file_size = 1024
arch_space_limit = 2048
(设置dm.ini参数arch_ini=1)

 远程归档(配置dmarch.ini)
1)本地配置

arch_type=remote
arch_dest=远程数据库实例名
arch_incoming_path=本地存储路径
1
2
3
2)远程俩节点配置(dsc0和dsc1)

[archive_local1]
arch_type = local
arch_dest = /dmdata/dameng/arch_dsc0
arch_file_size = 128
arch_space_limit = 0
[arch_remote1]
arch_type = remote
arch_dest = dsc1
arch_incoming_path = /dmdata/dameng/arch_dsc1
arch_file_size = 128
arch_space_limit = 0
——————————————————————

[archive_local1]
arch_type = local
arch_dest = /dmdata/dameng/arch_dsc1
arch_file_size = 128
arch_space_limit = 0
[arch_remote1]
arch_type = remote
arch_dest = dsc0
arch_incoming_path = /dmdata/dameng/arch_dsc0
arch_file_size = 128
arch_space_limit = 0
使用联机执行 SQL 语句进行备份还原
**
1)备份数据(默认路径dm.ini制定)

sql>backup database backupset 'db_bak_01';
1
后缀.meta(备份元数据文件)后缀.bak(备份片文件)
2)输出归档日志序列号范围

SQL>select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
1
3)备份归档

sql>backup archiveloglsn between 50414 and 50478 backupset '/home/dm_bak/arch_bak_time_14-78';
1
4)加密备份

sql>backup database backupset '/home/dm_bak/db_bak_for_encrypt' identified by "cdb546789";
sql>backup database backupset '/home/dm_bak/db_bak_for_encrypt' identified by "cdb546789" encrypt with rc4;
1
2
5)非加密备份

sql>backup database backupset '/home/dm_bak/db_bak_for_encrypt' identified by
"cdb546789" with encryption 0; 例:加密备份数据库密码“cdb546789”,加密算法“rc4”
sql>backup database backupset '/home/dm_bak/db_bak_for_encrypt_01' identified
by "cdb546789" with encryption 2 encrypt with rc4;

6)设置跟踪日志文件(可跟踪备份还原过程)

sql>backup database backupset '/home/dm_bak/db_bak_for_trac_01' trace file'/home/dm_log/db_bak_trace.log' trace level 2; (1关闭trace功能2为开启)
1
7)查看备份信息

sql>select sf_bakset_backup_dir_add('disk', '/home/dm_bak');
1
——————————————————————

#设置归档日志
alter database mount;
alter database add archivelog 'dest=/home/dmdba/arch1,type=local,file_size=1024,space_limit=2048';
alter database archivelog;
alter database open;
#全备
backup database backupset '/home/dmdba/bak/db_bak_01';
##备份表空间
backup tablespace main backupset '/home/dmdba/bak/tb_bak_01';
##增备main表空间
backup tablespace TTT backupset '/home/dmdba/bak/table/TTT_full_bak_01';
backup tablespace TTT increment backupset '/home/dmdba/bak/table/TTT_increment_bak_01';
backup tablespace TTT increment base on backupset '/home/dmdba/bak/table/TTT_full_bak_01' backupset '/home/dmdba/bak/table/TTT_increment_bak_02';
##表备份
backup table TXQ backupset '/home/dmdba/bak/table/TXQ_bak_01';
#归档备份
##查看归档日志序列号范围
select arch_lsn,clsn,path from V$ARCH_FILE;
backup archivelog all backupset '/home/dmdba/arch/arch_bak_01';
backup ARCHIVELOG LSN between 37292 and 41900 backupset '/home/dmdba/arch/arch_12.8';
#还原
##表还原
create table tab_01(txq int);
create index suoyin on tab_01(txq);
backup table tab_01 backupset '/home/dmdba/dm_bak/tab_01.bak';
##校验备份
select sf_backset_check('disk','/home/dmdba/dm_bak/tab_01.bak');
##不重建索引还原
restore table tab_01 without index from backupset '/home/dmdba/dm_bak/tab_01.bak';
##不重建约束还原
restore table tab_01 without constraint from backupset '/home/dmdba/dm_bak/tab_01.bak';
使用脱机工具 DMRMAN(命令行工具)进行备份还原
1)启动和配置DMRMAN

cd /opt/dmdbms/bin
./dmrman



configure; 查看dmrman配置项
configure 配置项 clear; 配置项恢复默认
configure clear; 清除所有配置项

配置备份集搜索目录

rman>configure default backupdir;
rman>configure default backupdir '/home/dm_bak1‟,'/home/dm_bak2';

添加或删除

rman>configure default backupdir add '/home/dm_bak3';
rman>configure default backupdir delete '/home/dm_bak3';

配置归档日志搜集目录

rman>configure default archivedir;
rman>configure default archivedir '/home/dm_arch1‟,'/home/dm_arch2';

添加或删除

rman>configure default archivedir add '/home/dm_arch3';
rman>configure default archivedir delete '/home/dm_arch3';

配置跟踪日志文件

查看trace配置 configure default trace;
配置文件、级别 configure default trace file '/home/dm_trace/trace.log ' trace level 2;

2)数据备份
根据ini进行备份配置:

backup database '/opt/dmdbms/data/dameng/ dm.ini';
1
完全备份:

backup database '/opt/dmdbms/data/dameng/dm.ini' full backupset '/home/dm_bak/db_full_bak_01';
1
增量备份:

backup database '/opt/dmdbms/data/dameng/dm.ini' increment with backupdir '/home/dm_bak'backupset '/home/dm_bak/db_increment_bak_02';
1
归档备份:

backup archive log lsn between 50000 and 120000database '/opt/dmdbms/data/dameng/dm.ini'backupset '/home/dm_bak/db_increment_bak_02';
1
3)管理备份
查看备份集信息,元数据信息(META INFO)、文件信息(FILE INFO)和数据库信息(DB INFO)可看db_magic

show backupset '/home/dm_bak/db_full_dameng_20190522_133248_000770';
1
批量查看

show backupsets with backupdir '/home/dm_bak1','/home/dm_bak2';
1
查看备份集元信息

show backupset'/home/dm_bak/db_full_dameng_20190522_133248_000770' info meta
1
以 xml 格式输出备份信息到文件

show backupset'/home/dm_bak1/db_bak_for_xml_01' to '/home/dm_info/bkp_info.txt' format xml;
1
指定相对路径校验备份集

check backupset 'db_bak_for_check_02' database '/opt/dmdbms/data/dameng/dm.ini';
1
删除备份集

remove backupset '/home/dm_bak/db_bak_for_remove_01';
1
批量删除指定时间前的备份集

remove backupsets with backupdir '/home/dm_bak' until time'2019-6-1 00:00:00';
1
导出磁盘区所有备份集

export tape=/dev/nst0 load backupsets from device type tape to backupdir '/mnt/hgfs/dmsrc/bak_dir';
1
导出备份集映射文件

dump backupset'/mnt/dmsrc/db_bak'device type diskdatabase '/opt/dmdbms/data/dameng/dm.ini'mapped file '/mnt/dmsrc/db_bak_mapped.txt';
1
3)还原和恢复
还原

restore database '/opt/dmdbms/data/dameng_for_restore/dm.ini' from backupset '/home/dm_bak/db_full_bak_for_restore';
1
备份集恢复

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' from backupset '/home/dm_bak/db_full_bak_for_recover_backupset';
1
归档恢复

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' with archivedir'/home/dm_arch/arch' use db_magic 1447060265;
1
4)数据库更新

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' update db_magic;
1
5)表空间还原恢复(通过归档)

restore archive log from backupset '/home/dm_bak/arch_all_for_restore' to database '/opt/dmdbms/data/dameng_for_restore/dm.ini' overwrite 2;
repair archivelog database '/opt/dmdbms/data/dm.ini';
1
2
使用图形化客户端工具进行备份还原
1)使用manager联机备份还原
数据备份




备份管理




数据还原(仅表备份支持)
2)使用 CONSOLE 工具进行脱机备份还原
数据备份

新建备份→配置参数→确定
1
备份管理

指定搜索目录→获取备份→属性
1
数据还原
生成映射文件
数据恢复
数据更新
归档恢复
————————————————
版权声明:本文为CSDN博主「txq000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/txq000/article/details/112027454

分享好友

分享这个小栈给你的朋友们,一起进步吧。

DaMeng
创建时间:2022-03-29 15:16:57
DaMeng
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • gaokeke123
    专家
戳我,来吐槽~