达梦数据库归档、备份、还原与恢复
相关概念原理
归档模式:
本地归档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
相关文章