达梦数据库提供了多种数据库备份还原方法,用户可根据不同场景自主选择。以下对DM数据库备份还原方法进行详细介绍。
目录
一、准备工作
1.环境对备份还原的限制
2.归档配置
二、Disql工具进行联机备份还原
1.数据库备份
2.表空间备份
3.表备份
4.归档备份
三、DMRMAN工具进行脱机备份还原
四、图形化工具进行备份还原
一、准备工作
1.环境对备份还原的限制
环境/状态/模式 | 支持与限制 | |
联机备份 | 联机还原 | |
MPP环境 | 仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持DDL CLONE; | 不支持 |
DSC环境 | 支持库级备份、表空间备份和表备份,要求 DSC 环境的所有节点都处于 OPEN 状态; | 支持 |
MOUNT状态 | 仅支持归档备份; | / |
SUSPEND状态 | 所有备份均不支持; | 所有还原均不支持 |
OPEN状态 | 支持所有备份,支持 DDL CLONE; | 支持 |
PRIMARY模式 | 支持所有备份,支持 DDL CLONE; | / |
STANDBY模式 | 仅支持库级、表空间级和归档备份,支持 DDL CLONE; | / |
DDL CLONE | 必须备份归档,不允许指定 WITHOUT LOG。 | / |
2.归档配置
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。因此在进行备份还原操作前,要先进行归档配置。
归档配置分为本地归档和远程归档
其中本地归档配置有两种方式:联机归档配置,手动配置归档
远程归档只适用于DSC环境中。以下只介绍本地归档方法:
(1)联机归档配置
修改数据库为mount状态:SQL>alter database mount;
配置本地归档:SQL>alter database add archivelog ‘dest=/../dm_arch/arch,type=local
alter database add archivelog 'dest=/dm8/samples/ini_script,type=local,file_size=1024,space
_limit=2048';
开启归档模式:SQL> alter database archivelog;
修改数据库状态为open状态:SQL> alter database open;
(2)手动配置归档:手动编辑dmarch.ini文件,之后保存在dm.ini所在目录,dmarch.ini文件内容如下:
编辑dm.ini文件,手动修改ARCH_INI=1,并保存。
启动数据库实例,此时已运行与归档模式。
二、Disql工具进行联机备份还原
1.备份数据库
DM8的数据库备份可以设置基备份搜索目录、基备份目录、备份路径、介质类型、介质参数、备份描述、备份片限制大小、密码、压缩级别等。
常见数据库备份有完全备份和增量备份
(1)完全备份
备份:backup database full backupset '/dm8/data/bak/db_full_bak_01 ';
准备目标库:./dminit path=/dm8/data db_name=DAMENG1
脱机校验备份:RMAN>check backupset '/dm8/data/bak/db_full_bak_01 ';
还原数据库:数据库还原只能通过脱机还原
RMAN>restore database '/dm8/data/DAMENG1/dm.ini' from backupset '/dm8/data/bak
/db_full_bak_01 ';
恢复数据库:
RMAN>recover database '/dm8/data/DAMENG1/dm.ini' from backupset'/dm8/data/bak
/db_full_bak_01 ';
更新数据库:
RMAN>recover database '/dm8/data
/DAMENG1/dm.ini' update db_magic;
(2)增量备份
backup database increment with backupdir '/dm8/data/bak' backupset '/dm8/data/bak/db_increment_bak_01';
2.备份表空间
(1)完全备份
例如:完全备份用户main表空间,指定base on参数执行增量备份
备份:backup tablespace main backupset '/dm8/data/bak/ts_full_bak_01 ';
还原:RMAN>restore database '/dm8/data/DMDB/dm.ini' tablespace main from backupset '/dm8/data/bak/ts_full_bak_01 ';
恢复:RMAN>recover database '/dm8/data/DMDB/dm.ini' tablespace main;
(2)增量备份
- 不指定基备份:backup tablespace main increment backupset 'ts_increment_bak_01';
- 利用base on 指定基备份:backup tablespace main increment base on backupset 'ts_full_bak_01' backupset 'ts_increment_bak_02';
- 利用backupdir指定基备份搜索目录:backup tablespace main increment with backupdir '/dm8/data/bak' backupset '/dm8/data/bak/ts_full_bak_01 ';
在A、B增量备份中,如果ts_increment_bak_02 不指定备份集 ts_full_bak_01 作为基备份,那么默认会使用最近一次的备份集 ts_increment_bak_01 作为基备份。
3.表备份
只能对用户表进行备份,表还原不需要恢复操作。但表的备份还原需要考虑两种情况:
(1)无索引和约束的表备份还原
例如:对表tab1进行备份
备份:backup table tab1 backupset '/dm8/data/bak/tab_bak_01 ';
校验备份:select SF_BAKSET_CHECK('DISK','/dm8/data/bak/tab_bak_01');
还原:restore table tab1 from backupset 'tab_bak_01';
- 有索引和约束的表备份还原
例如:对表tab2进行备份,表中含有索引idx1
备份:backup table tab2 backupset '/dm8/data/bak/tab_bak_02 ';
校验备份:select SF_BAKSET_CHECK('DISK','/dm8/data/bak/tab_bak_02');
还原表结构:restore table tab2 STRUCT FROM BACKUPSET '/dm8/data/bak/tab_bak_02 ';
还原表数据:restore table tab1 from backupset 'tab_bak_02';
4.归档备份
归档备份的三个前提:
- 归档文件的db_magic、permenent_magic值和库的db_magic、permanent_magic值必须一样
- 服务器必须归档配置
- 归档日志必须连续,若出现了不连续情况,前面的会忽略,仅备份最新的连续部分
归档备份:backup archive log all backupset '/dm8/data/bak/arch_bak_01 ';
归档还原:RMAN>restore archive log from backupset '/dm8/data/bak/arch_bak_01 ' to database '/dm8/data/DMDB/dm.ini’ overwrite 2;
或
RMAN>restore archive log from backupset '/dm8/data/bak/arch_bak_01 ' to archivedir '/dm8/data/DMDB/arch_dest ' overwrite 2;
归档修复:RMAN>repair archivelog database '/dm8/data/DMDB/dm.ini ';
REPAIR ARCHIVELOG DATABASE '/opt/dmdbms/data/dm.ini';
若要对确定范围内的归档进行备份
首先查看归档日志的LSN:select ARCH_LSN,CLSN,path from V$ARCH_FILE;
备份归档:backup archiveloglsn between 5578606 and 5583165 backupset '/dm8/data/bak/arch_bak_lsn_ 01';
三、DMRMAN工具进行脱机备份还原
启动DMRMAN:在bin目录下执行 ./dmrman
./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE
在dmrman状态下进行备份还原
四、图形化工具进行备份还原
DM数据库提供了两种图形化工具进行备份还原:
manager界面进行备份还原
console界面进行备份还原
图形化界面操作较为简单,可以查看手册进行相关了解。
如果还有任何问题,欢迎到达梦云适配中心提问哦!