达梦数据库归档、备份、还原与恢复

本文详细介绍了数据库的归档模式,包括本地、实时、即时、异步和远程归档,以及归档原理。讨论了远程和本地归档失败的处理方式,重点阐述了归档恢复的步骤,包括数据库的一致性状态恢复、最新状态恢复等场景。同时,讲解了逻辑和物理备份、一致性和非一致性备份的区别,以及如何进行数据和归档日志的备份与还原。此外,还涵盖了使用DMRMAN工具进行备份和恢复的具体操作,以及图形化客户端工具的应用。
摘要由CSDN通过智能技术生成

相关概念原理

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

  1. 收集本地归档日志文件;
  2. 扫描归档文件,获取最后一个有效 RLOG_PKG 偏移
  3. 首先,根据偏移来截取最后一个本地归档日志文件中有效内容,删除掉 RLOG_PKG 偏移之后的多余内容,保留 RLOG_PKG 偏移之前的内容,并调整日志文件头信息。然后, 再创建一个新的空的归档日志文件;
  4. 扫描联机日志文件,拷贝缺失的 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;

2)配置本地归档。

   	 sql>alter database add archivelog 'dest = /home/dm_arch/arch, type = local,file_size = 1024, space_limit = 2048';

3)开启归档模式。

   	 sql>alter database archivelog;

4)修改数据库为 open 状态。

   	 sql>alter database open;

手动归档:(配置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=本地存储路径

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';   

后缀.meta(备份元数据文件)后缀.bak(备份片文件)
2)输出归档日志序列号范围

SQL>select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;

3)备份归档

sql>backup archiveloglsn between 50414 and 50478 backupset '/home/dm_bak/arch_bak_time_14-78';

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;       

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为开启)

7)查看备份信息

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

——————————————————————

#设置归档日志
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';

完全备份:

backup database '/opt/dmdbms/data/dameng/dm.ini' full backupset '/home/dm_bak/db_full_bak_01';

增量备份:

backup database '/opt/dmdbms/data/dameng/dm.ini' increment with backupdir '/home/dm_bak'backupset '/home/dm_bak/db_increment_bak_02';

归档备份:

backup archive log lsn between 50000 and 120000database '/opt/dmdbms/data/dameng/dm.ini'backupset '/home/dm_bak/db_increment_bak_02';

3)管理备份
查看备份集信息,元数据信息(META INFO)、文件信息(FILE INFO)和数据库信息(DB INFO)可看db_magic

show backupset '/home/dm_bak/db_full_dameng_20190522_133248_000770';

批量查看

show backupsets with backupdir '/home/dm_bak1','/home/dm_bak2';

查看备份集元信息

show backupset'/home/dm_bak/db_full_dameng_20190522_133248_000770' info meta

以 xml 格式输出备份信息到文件

show backupset'/home/dm_bak1/db_bak_for_xml_01' to '/home/dm_info/bkp_info.txt' format xml;

指定相对路径校验备份集

check backupset 'db_bak_for_check_02' database '/opt/dmdbms/data/dameng/dm.ini';

删除备份集

remove backupset '/home/dm_bak/db_bak_for_remove_01';

批量删除指定时间前的备份集

remove backupsets with backupdir '/home/dm_bak' until time'2019-6-1 00:00:00';

导出磁盘区所有备份集

export tape=/dev/nst0 load backupsets from device type tape to backupdir '/mnt/hgfs/dmsrc/bak_dir';

导出备份集映射文件

 	dump backupset'/mnt/dmsrc/db_bak'device type diskdatabase '/opt/dmdbms/data/dameng/dm.ini'mapped file '/mnt/dmsrc/db_bak_mapped.txt';

3)还原和恢复
还原

restore database '/opt/dmdbms/data/dameng_for_restore/dm.ini' from backupset '/home/dm_bak/db_full_bak_for_restore';

备份集恢复

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' from backupset '/home/dm_bak/db_full_bak_for_recover_backupset';

归档恢复

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' with archivedir'/home/dm_arch/arch' use db_magic 1447060265;

4)数据库更新

recover database '/opt/dmdbms/data/dameng_for_restore/dm.ini' update db_magic;

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)使用manager联机备份还原
数据备份
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

备份管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

新建备份→配置参数→确定

备份管理

指定搜索目录→获取备份→属性

数据还原
生成映射文件
数据恢复
数据更新
归档恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值