DM8 备份数据库还原

摘要

DM 备份的本质是从数据库文件中拷贝有效的数据页保存到备份集中,这些有效数据页包括数据文件的描述页和被分配使用的数据页。

还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定LSN。

1. DM8备份还原的方法

1.1 备份还原工具

  • disql工具:用于联机数据备份与还原,包括库备份、表空间备份、表备份与还原。
  • DMRMAN 工具:用于脱机数据库备份还原与恢复。
  • 客户端工具 MANAGER和CONSOLE:
    对应命令行工具DIsql和DMRMAN的功能,分别用于联机和脱机备份还原数据。

1.2 使用DISQL进行联机备份

1.2.1 配置归档

配置归档的方式有两种:
1.联机配置
在数据库实例启动情况下,使用 SQL 语句完成 dmarch.ini ARCH_INI 配置。

SQL语句配置本地归档的语法如下:

ALTER DATABASE <ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句>;
 
<归档配置语句>::= 'DEST = <归档目标>,TYPE = <归档类型>'
 
<归档类型>::=<local 方式>|<remote 方式>
<local 方式>::=LOCAL [,FILE_SIZE = <文件大小>]
[,SPACE_LIMIT = <空间大小限制>]
<remote 方式>::=REMOTE [,FILE_SIZE = <文件大小>]
[,SPACE_LIMIT = <空间大小限制>],INCOMING_PATH = <归档存放路径>

在DISQL中执行以下指令:

alter DATABASE MOUNT  ##修改数据库为Mount状态
ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048';  ##配置本地归档
ALTER DATABASE ARCHIVELOG; ##开启归档模式
ALTER DATABASE OPEN;  ##修改数据库为Open状态

2.修改INI文件打开归档
在数据库实例未启动的情况下,手动编写 dmarch.ini 文件和设置参数 ARCH_INI。

配置步骤如下:

  1. 在 dm.ini 所在目录,创建 dmarch.ini 文件。dmarch.ini 文件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL                 ##REDO日志归档类型,LOCAL表示本地归档,REMOTE表示远程
ARCH_DEST = /home/dm_arch/arch    ##REDO日志归档目标,LOCAL对应归档文件存放路径;REMOTE对应远程目标节点实例名
ARCH_FILE_SIZE = 1024             ##单个REDO日志归档文件大小,取值范围(64M~2048M),缺省1024M,即1G
ARCH_SPACE_LIMIT = 2048           ##REDO日志归档空间限制,当所有本地归档文件达到限制值时,系统自动删除最老的归档文件。0表示无空间限制,取值范围(1024M~2147483647M),缺省为0
  1. 编辑dm.ini 文件,设置参数ARCH_INI=1
  2. 重启数据库
1.2.2数据库备份(联机)

在设置完归档后可执行以下语句进行备份

BACKUP DATABASE BACKUPSET 'db_bak_01';  

备份可分为:

完全备份
数据库完全备份中包含了指定库的全部有效数据页,为了保证数据安全应该对数据库定期执行完全备份。

增量备份:

增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改的数据页。

最简单的数据库备份语句:
SQL> BACKUP DATABASE BACKUPSET 'db_bak_01';  --单引号内也可指定备份路径

FULL参数可省略,默认为完全备份:
SQL> BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

增量备份:基于全库备份操作的,指定全库备份目录即可
SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/db_increment_bak_02'; 

指定备份集路径、设置备份名、指定介质类型、添加备份描述、限制备份片大小、备份压缩、并行备份:
SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET ‘/home/dm_bak/db_bak_3_02’ DEVICE TYPE TAPE  BACKUPINFO ‘完全备份’MAXPIECESIZE 300  COMPRESSED LEVEL 5 PARALLEL 8;
1.2.3数据库备份(脱机)

DMRMAN 中输入以下命令:

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

命令中的 FULL 参数表示执行的备份为完全备份,也可以不指定该参数,DMRMAN 默认执行的备份类型为完全备份。命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dm.ini 中BAK_PATH 的配置值,若未配置,则为 SYSTEM_PATH 下的 bak 目录。

注意:使用DMRMAN工具进行备份时必须保证数据库为脱机状态,并且DmAPService是运行状态

1.2.4数据库还原

数据库的恢复还原操作只能脱机进行,使用dmrman

./dmrman CTLSTMT="RESTORE DATABASE '/dm/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_01'" 
./dmrman CTLSTMT="RECOVER DATABASE '/dm/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_01'" 
./dmrman CTLSTMT="RECOVER DATABASE '/dm/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC" 
一次恢复,两次还原(注意:新库只需要还原一次即可,还原DB_MAGIC)
两个指定:指定dm.ini文件,指定备份集路径

小结

数据库备份是日常工作最重要的工作之一,数据库备份是为了在数据库发生故障时,通过备份还原,将数据库恢复到可用状态

DM8支持三种方式的备份:逻辑备份、使用联机SQL命令进行备份、DMRMAN工具的备份

更多技术支持与交流请访问达梦在线服务平台 https://eco.dameng.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值