通过学习达梦数据库的物理和逻辑备份还原的过程,对物理和逻辑两种备份还原方式有了进一步的了解
1.备份恢复工具
备份工具 | 备份方式 | 恢复工具 | 备注 |
dexp | 逻辑备份 | dimp | 用于数据迁移或异机还原 |
disql | 物理备份 | disql | 热备 1.需要开启DmAPService服务 2.需要开启归档 3.一般用来备份,恢复只能恢复到级别 |
dmrman | 物理备份 | dmrman | 冷备 1.需要开启DmAPService服务 2.需要开启归档 3.需要数据库处于脱机状态,一般用来还原恢复 |
2.物理备份还原
2.1开启归档
alter database mount; alter database add archivelog 'type=local, dest=/dm8/arch,file_size=64,space_limit=0'; alter database archivelog; alter database open; |
2.2联机热备
备份数据库
backup DATABASE full to FULLBAK01 BACKUPSET '/dm8/backup/FULLBAK2023_10_25' |
备份表
backup table "TEST" to "TAB_TEST_EMP_2023_10_25_16_29_23" backupset 'TAB_TEST_EMP_2023_10_25_16_29_23'; |
备份表空间
backup tablespace "TEST" full to "TS_TEST_FULL_2023_10_25_16_30_20" backupset 'TS_TEST_FULL_2023_10_25_16_30_20'; |
备份归档
backup archivelog all to "ARCH_2023_10_25_16_30_45" backupset 'ARCH_2023_10_25_16_30_45'; |
联机还原
DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN 执行。
表还原
RESTORE TABLE TEST FROM BACKUPSET 'TAB_TEST_EMP_2023_10_25_16_29_23'; |
2.3脱机备份
启动DMRMAN:
进入数据库安装目录的 bin 目录下执行.
./dmrman |
备份数据库
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK20231025 backupset '/dm8/DAMENG/bak/FULLBAK20231025'; |
2.4脱机还原
还原数据库
备份数据库
BACKUP DATABASE BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
还原数据库
RESTORE DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
恢复数据库
RECOVER DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
恢复 db_magic
RECOVER DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC; |
表空间还原
备份表空间
BACKUP TABLESPACE MAIN BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
执行表空间脱机
ALTER TABLESPACE TS1 OFFLINE; |
还原表空间
RESTORE DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
恢复表空间
RECOVER DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' TABLESPACE TS1; |
归档还原
备份归档文件
BACKUP ARCHIVE LOG ALL BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; |
指定还原的目标归档日志目录
RESTORE ARCHIVE LOG FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; TO ARCHIVEDIR'/dm8/dmdbms/data/DAMENG/arch_dest' OVERWRITE 2; |
指定还原目标库的 dm.ini 文件路径
RESTORE ARCHIVE LOG FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/FULLBAK20231025'; TO DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' OVERWRITE 2; |
3.逻辑备份还原
3.1逻辑导出
库级导出
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=YDIRECTORY=/mnt/data/dexp |
OWNER 方式导出一个或多个用户拥有的所有对象
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dexp |
SCHEMAS 方式的导出一个或多个模式下的所有对象
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01DIRECTORY=/mnt/data/dexp |
TABLES 方式导出和导入一个或多个指定的表或表分区
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp |
3.2逻辑导入
FULL 方式导入整个数据库
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp |
OWNER 方式导入一个或多个用户拥有的所有对象
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dim |
SCHEMAS 方式的导入一个或多个模式下的所有对象
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp |
TABLES 方式导入一个或多个指定的表或表分区
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp |
更多关于达梦数据库详细内容请关注达梦在线服务平台官网:
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台