注册
DM8 备份操作全攻略:从归档配置到备份管理
技术分享/ 文章详情 /

DM8 备份操作全攻略:从归档配置到备份管理

秧秧 2026/08/07 247 0 0

数据无价,备份先行。本文带你全面掌握达梦DM8数据库的联机备份操作。

一、为什么要重视数据库备份

在日常生产环境中,数据库备份是DBA最重要的工作之一。无论是地震、火灾等自然灾害,还是人为误操作、硬件故障,都可能导致数据丢失。而数据库备份,就是为数据买的一份“保险”——它是数据库在某个时间点的完整副本,能够在灾难发生时将数据恢复到可用状态。
DM8数据库支持物理备份和逻辑备份两种方式。物理备份是对操作系统物理文件(数据文件、控制文件、日志文件等)的备份;逻辑备份则是对数据库对象(表、索引、视图、存储过程等)的备份。本文重点介绍联机物理备份,即在数据库运行状态下通过SQL语句进行的备份操作。

二、归档模式:联机备份的前置条件

在进行联机库级备份、表空间备份和归档备份时,必须保证数据库处于归档模式,否则联机备份无法进行。
为什么联机备份必须开启归档?因为联机备份时,大量事务处于活动状态,为确保备份数据的一致性,需要同时备份备份期间产生的REDO日志。REDO日志是循环使用的,写满就会被覆盖;而归档日志正是将写满的REDO日志复制保存下来,避免因覆盖而丢失历史记录。

2.1 联机配置归档(SQL方式)

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

2.2 手动配置归档

如果数据库实例未启动,也可以手动配置归档:

步骤1:在dm.ini所在目录创建dmarch.ini文件,内容如下:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dm_arch/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048

步骤2:编辑dm.ini文件,设置ARCH_INI=1。
步骤3:启动数据库实例,数据库即运行于归档模式。

小贴士:配置完成后,可以通过SELECT ARCH_MODE FROM V$DATABASE;查看归档模式是否已开启。

三、数据库备份

数据库备份是最完整的备份方式,支持完全备份和增量备份。

3.1 完全备份

最简单的数据库完全备份语句

SQL> BACKUP DATABASE BACKUPSET 'bak_full01';

指定备份集路径、设置备份名、添加描述、限制备份片大小、压缩、并行备份:

SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK 
     BACKUPSET '/home/dm_bak/db_bak_3_02' 
     DEVICE TYPE DISK 
     BACKUPINFO '完整备份' 
     MAXPIECESIZE 300 
     COMPRESSED LEVEL 5 
     PARALLEL 8;

几个关键参数说明:

  • MAXPIECESIZE:限制备份片大小,单位为MB,最小128MB
  • COMPRESSED LEVEL:压缩级别,取值范围0~9
  • PARALLEL:并行备份的线程数
  • DDL_CLONE:数据库克隆参数,只备份定义不备份数据,仅用于数据库级完全备份

注意:MOUNT模式下不允许数据库备份。

3.2 增量备份

DM8增量备份分为差异增量备份和累积增量备份两种,缺省为差异增量备份。
差异增量备份的基备份集可以是增量备份集,也可以是全量备份集。累积增量备份的基备份集则只能是全量备份集。
增量备份示例(使用WITH BACKUPDIR指定基备份集搜索目录):

SQL> BACKUP DATABASE INCREMENT 
     WITH BACKUPDIR '/home/dm_bak' 
     BACKUPSET '/home/dm_bak/db_increment_bak_02';

如果执行增量备份时遇到错误[-8036]:无基备份或无匹配基备份,说明系统在默认路径或指定路径找不到基备份集,需要使用WITH BACKUPDIR明确指定基备份集的搜索目录。
:

四、表空间备份

表空间备份允许对特定表空间进行备份,更加灵活高效。
最简单的表空间备份:

SQL> BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';

完全备份(FULL可省略):

SQL> BACKUP TABLESPACE MAIN FULL BACKUPSET '/home/dm_bak/ts_full_bak_01';

增量备份(指定基备份目录):

SQL> BACKUP TABLESPACE MAIN INCREMENT 
     WITH BACKUPDIR '/home/dm_bak' 
     BACKUPSET '/home/dm_bak/ts_increment_bak_02';

基于指定基备份集的增量备份

SQL> BACKUP TABLESPACE MAIN INCREMENT 
     BASE ON BACKUPSET 'ts_full_bak_01' 
     BACKUPSET 'ts_increment_bak_02';

注意:备机状态、MOUNT状态、MPP和RAC环境均不允许表空间备份。

五、表备份

表备份均为联机完全备份,不需要备份归档日志,也不存在增量备份。
最简单的表备份:

SQL> BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';

注意:备机状态、MOUNT状态、MPP和RAC环境均不允许表备份还原。表备份支持联机还原,还原过程中表空间中其他表可以正常操作。

六、归档备份

归档备份用于拷贝指定归档目录下的所有归档文件到备份集中。备份归档的前提是服务器已配置归档。

SQL> BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';

归档备份的价值在于:归档日志目录有大小限制,超过限制会自动删除最早的归档日志。通过对归档日志进行备份,可以让归档日志不受目录大小限制,保持更长久的时间,从而让数据回溯的时间点更加久远。

七、备份加密

对于敏感数据,DM8支持备份加密功能。以下示例为数据库完全备份,使用密码"cdb546"和RC4加密算法:

SQL> BACKUP DATABASE 
     BACKUPSET '/home/dm_bak/db_bak_for_encrypt_01' 
     IDENTIFIED BY "cdb546" 
     WITH ENCRYPTION 2 
     ENCRYPT WITH RC4;

参数说明:

  • WITH ENCRYPTION:加密强度,默认值为1(简单加密)
  • ENCRYPT WITH:加密算法,默认为AES256_CFB

八、备份管理

8.1 备份目录管理

  • SF_RMAN_ADD_BACKUP_DIR:添加备份目录
  • SF_RMAN_REMOVE_BACKUP_DIR:删除内存中的备份目录
  • SF_RMAN_REMOVE_BACKUP_DIR_ALL:删除内存中全部备份目录

8.2 备份集管理

  • SF_RMAN_BAKEST_CHECK:校验指定的备份文件
  • SF_RMAN_BAKEST_REMOVE:删除指定的备份集
  • SP_RMAN_BATCH_DEL_DB_BAKEST:批量删除数据库备份集
  • SP_RMAN_BATCH_DEL_TS_BAKEST:批量删除表空间备份集
  • SP_RMAN_BATCH_DEL_TAB_BAKEST:批量删除表备份集

注意:调用删除备份等函数或查看动态视图时,需要先调用SF_BAKSET_BACKUP_DIR_ADD添加备份目录,否则仅搜索默认备份路径下的备份集。基备份不能删除。

8.3 备份信息查询(动态视图)

  • V$BACKUPSET:备份集基本信息
  • V$BACKUPSET_DBINFO:备份集的数据库相关信息
  • V$BACKUPSET_DBF:备份集中数据文件的相关信息
  • V$BACKUPSET_ARCH:备份集的归档信息
  • V$BACKUPSET_RLOG:备份集的日志信息
  • V$BACKUPSET_BKP:备份集的备份片信息
  • V$BACKUPSET_SEARCH_DIRS:备份集搜索目录
  • V$BACKUPSET_TABLE:表备份集中备份表信息
  • V$BACKUPSET_INDEX:表备份集中备份索引信息
  • V$BACKUPSET_SUBS:并行备份中生成的子备份集信息

九、备份策略建议

  1. 归档先行:联机备份前务必确认归档模式已开启。
  2. 全量与增量结合:如果数据库体量较大,建议每周一次全量备份,其余时间做增量备份。如果数据库较小、空间充足,也可以每天全备。
  3. 备份文件隔离存放:建议将备份文件和数据文件放置在不同磁盘,避免磁盘损坏导致数据库和备份一起丢失。
  4. 定期清理:合理分配备份空间,根据业务需求设定备份文件的保留周期。
  5. 权限注意:备份操作应使用安装数据库时创建的用户(如dmdba)执行,用root用户操作会遇到权限问题。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服