达梦数据库备份与还原

  • 物理备份与还原
  • 物理备份
  • 冷备
  • 条件
  • console工具备份
  • DMRMAN工具备份
  • 热备
  • 条件
  • 用manager管理工具做热备
  • 用disql工具做热备
  • 物理还原
  • 整库还原
  • console工具还原(图形化)
  • DMRAMN工具还原(命令)
  • 表空间还原
  • console工具还原(图形化)
  • DMRMAN工具还原
  • 逻辑备份与还原
  • 导出
  • 全库导出
  • 用户导出
  • 导出表
  • 导入
  • 全库导入


数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的
安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。

从备份模式的角度来说,分为 物理备份 和 逻辑备份 ,也就是我们通常所说的基于文件级的备份和基于数据块级别的备份。

物理备份与还原

物理备份

冷备

条件
  • 不需要开启归档
  • 针对整库做备份
  • 需要开启DmAP服务
  • 需要关闭数据库实例

console工具备份

达梦数据库 docker 还原dmp 达梦数据库还原数据库_数据库

达梦数据库 docker 还原dmp 达梦数据库还原数据库_图形化_02

DMRMAN工具备份

DMRMAN工具在安装目录下的bin目录下

[dmdba@localhost tool]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup';

热备

条件
  • 需要开启归档
  • 数据库需要联机
  • 需要开启DmAP服务
  • 可以备份数据库,表空间,表,归档日志文件

查看数据库归档模式:

SQL> select name,arch_mode from v$database;
行号 NAME	ARCH_MODE
---------- ------ ---------
1	DAMENG Y

用manager管理工具做热备

  1. 整库备份
  2. 达梦数据库 docker 还原dmp 达梦数据库还原数据库_达梦数据库 docker 还原dmp_03

  3. 数据库增量备份
  4. 达梦数据库 docker 还原dmp 达梦数据库还原数据库_图形化_04

  5. 表空间备份(只能联机,还原时只能脱机还原)
  6. 达梦数据库 docker 还原dmp 达梦数据库还原数据库_达梦数据库 docker 还原dmp_05

  7. 表备份
  8. 达梦数据库 docker 还原dmp 达梦数据库还原数据库_表空间_06

  9. 归档日志备份
  10. 达梦数据库 docker 还原dmp 达梦数据库还原数据库_图形化_07

用disql工具做热备

  1. 整库备份
[dmdba@localhost bin]$ ./disql sysdba/Dameng123
SQL> backup database full backupset '/dm8/backup';
  1. 数据库增量备份
backup database increment base on backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_2021_04_28_14_35_02'	to "DB_DAMENG_INCRE_2021_04_28_14_46_35"	backupset
'DB_DAMENG_INCRE_2021_04_28_14_46_35';
  1. 表空间备份
backup tablespace "DMHR" full to "TS_DMHR_FULL_2021_04_28_14_52_27" backupset 'TS_DMHR_FULL_2021_04_28_14_52_27';
  1. 表备份
backup table "DMHR"."EMPLOYEE" to "TAB_DMHR_EMPLOYEE_2021_04_28_14_56_09" backupset 'TAB_DMHR_EMPLOYEE_2021_04_28_14_56_09';
  1. 归档日志备份
backup	archivelog	all	to	"ARCH_2021_04_28_14_58_59"	backupset
'ARCH_2021_04_28_14_58_59';

物理还原

在还原之前先检查备份有效性

达梦数据库 docker 还原dmp 达梦数据库还原数据库_表空间_08

整库还原

#还原之前先关闭数据库实例
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
console工具还原(图形化)
  • console工具还原
  • 达梦数据库 docker 还原dmp 达梦数据库还原数据库_表空间_09

  • 恢复
  • 达梦数据库 docker 还原dmp 达梦数据库还原数据库_表空间_10

  • 更新DB_MAGIC

达梦数据库 docker 还原dmp 达梦数据库还原数据库_表空间_11

DMRAMN工具还原(命令)
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

表空间还原

[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
console工具还原(图形化)

达梦数据库 docker 还原dmp 达梦数据库还原数据库_图形化_12

DMRMAN工具还原
RMAN>restore database '/dm8/data/DAMENG/dm.ini' tablespace main from backupset '/dm8/backup';
RMAN>recover database '/dm8/data/DAMENG/dm.ini' tablespace main;

逻辑备份与还原

备份的是数据库对象
dexp/dimp
逻辑备份可以用来数据迁移,历史数据归档,数据的重新组织库级别用户级别模式级别表级别查看帮助手册:

#dexp/dimp在数据库安装文件bin目录下
[dmdba@localhost bin]$dexp help
[dmdba@localhost bin]$dimp help

导出

全库导出

[dmdba@localhost bin]$ ./dexp SYSDBA/Dameng123 DIRECTORY=/dm8/backup FILE=full_exp.dmp FULL=Y TABLESPACE=N DROP=N LOG=exp_2021_04_28_16_15_22.log LOG_WRITE=N

用户导出

[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 owner=sysdba file=sysdba.dmp directory=/dm8/backup log=sysdba_exp.log

导出表

[dmdba@localhost bin]$ ./dexp SYSDBA/Dameng123 DIRECTORY=/dm8/backup FILE=exp_employee1.dmp TABLES=DMHR.EMPLOYEE LOG=exp_2021_04_28_16_24_361.log

导入

全库导入

[dmdba@localhost bin]$ ./dimp SYSDBA/Dameng123 DIRECTORY=/dm8/backup FILE=full_exp.dmp FULL=Y LOG=imp_2021_04_28_16_28_43.log