一、联机执行SQL语句进行备份还原
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 9.065(ms)
disql V8
SQL> BACKUP DATABASE BACKUPSET '/opt/dmdbms/data/backup/db_bak_01' BACKUPINFO '完全备份';
1、完全备份
执行数据库备份,数据库必须处于OPEN状态,MOUNT和SUSPEND状态下不允许执行数据库备份
SQL> BACKUP DATABASE FULL BACKUPSET '/opt/dmdbms/data/backup/db_full_bak_01';
#一般规则是数据库经过频繁修改后最好执行一次完全备份
2、增量备份
保证数据库处于OPEN状态
SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/opt/dmdbms/data/backup/dm_bak_increment'BACKUPSET;
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/opt/dmdbms/data/backup/dm_bak_increment'BACKUPSET;
[-8036]:无基备份或无匹配基备份.
已用时间: 00:00:01.960. 执行号:0.
#增量备份无需写文件名,只需要写到备份目录即可
SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/opt/dmdbms/data/backup'BACKUPSET;
操作已执行
已用时间: 891.370(毫秒). 执行号:501.
3、表空间备份
SQL> BACKUP TABLESPACE TEST BACKUPSET 'ts_bak_01';
4、增量备份指定基备份目录
SQL> BACKUP TABLESPACE MAIN BACKUPSET 'ts_full_bak_01';
操作已执行
已用时间: 836.592(毫秒). 执行号:700.
SQL> BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET 'ts_full_bak_01' BACKUPSET 'ts_increment_bak_02';
操作已执行
已用时间: 00:00:02.619. 执行号:701.
5、备份归档
SQL> BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
完整步骤:
(1)配置归档
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/opt/dmdbms/data/dm_arch/arch, TYPE=local, FILE_SIZE=1024, SPACE_LIMIT=2048';
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
(2)数据库处于OPEN或MOUNT 状态
(3)DIsql中输入备份数据库语句
备份归档日志,通过 LSN BETWEEN … AND … 来指定其实和截止LSN
确定LSN范围
SQL> select arch_lsn,clsn,path from v$arch_file;
其次备份归档
SQL> BACKUP ARCHIVELOG LSN BETWEEN 25833 AND 27286 BACKUPSET '/opt/dmdbms/data/dm_arch/arch_bak_time_5833-7286';
6、备份还原
测试数据表test
(1)表还原(还原表数据)
不能采用表空间级备份
也不能采用库级
正确处理:
SQL> backup table test backupset '/opt/dmdbms/data/backup/tab_bak_for_res_02';
SQL> delete from test;
SQL> restore table test from backupset '/opt/dmdbms/data/backup/tab_bak_for_res_02';
成功还原
二、使用脱机工具DMRMAN进行备份还原
注:
(1)DMRMAN可以执行脚本,如cmd_file.txt文件中的内容为
“ BACKUP DATABASE '/opt/dmdbms/data/test/dm.ini'“
(2)DMRMAN按行解析命令,必须输入完整一行命令
`/home/dm_cmd/cmd_file.txt
出现的问题:
原因:
DMRMAN是脱机备份操作,数据库实例需处于关闭状态
解决:
(3)使用参数CTLFILE,指定执行语句所在的文件路径,不能和 CTLSTMT 同时使用。脚本文件格式 支持*.txt
(4)使用参数CTLSTMT,指定待执行语句,不能和 CTLFILE 同时使用。如:CTLSTMT="BACKUP DATABASE '/home/dmdbms/data/DAMENG/dm.ini'"
(该截图源自达梦官方产品手册《产品手册 | 达梦技术文档》)
(5)创建完全备份
(6)创建增量备份
(7)备份归档(数据库实例为关闭状态)
完整的创建脱机数据库备份:
1)启动DMRMAN命令行工具;
2)保证数据库处于脱机状态;
3)DMRMAN中输入以下命令: