达梦数据库新备份与还原—BAK2
达梦数据库 7.0 支持 BAK,BAK2,dexp 等多种手段和方法。本文以BAK2 为例,介绍达梦备份与还原的方法。
1 准备测试环境
- 操作系统
[dmdba@dm1 ~]$ uname -r
2.6.32-220.el6.x86_64
[dmdba@dm1 ~]$ uname -m
x86_64
- 数据库版本
SQL> select * from v$version;
行号 BANNER
1 DM Database Server x64 V7.1.5.75-Build(2016.04.21-67830trunc)
2 DB Version: 0x70009
2 打开数据库归档
- 查看归档状态
SQL> select arch_mode from v$database;
行号 ARCH_MODE
1 N
- 切换配置模式
SQL> alter database mount;
- 打开归档
SQL> alter database archivelog;
- 增加本地归档
SQL> alter database add archivelog 'DEST=/dm7/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=0';
- 打开数据库
SQL> alter database open;
SQL> select arch_mode from v$database;
1 Y
3 数据库的备份与还 原
1 备份数据库
SQL> backup database full to dmbak2 backupset '/dm7/backup/bak2';
2 查看备份生成文件
[dmdba@dm1 bak2]$ ls
bak2.bak bak2.meta
注意:bak2.bak 是数据库的备份文件,bak2.meta 为备份的元文件
3 BAK2 可以直接在备份集中直接还原指定的用户表空间,不在像BAK 需要把整个数据库还原,这里值得注意的是 SYSTEM,ROLL,HMAIN 表空间损坏,不能按照下述步骤还原。
假设 DMHR 表空间损坏
a) 表空间 offline
SQL> alter tablespace DMHR offline;
b) 还原表空间
SQL> restore tablespace DMHR from backupset '/dm7/backup/bak2';
c) 表空间 online
SQL> alter tablespace DMHR online;
备份用户表空间和表的方法和备份数据库类似,此处不在赘述。
4 如果要还原整个数据,在 BAK2 的使用上也有些变化。我们不在利用 dmrestore 命令去还原。而是利用 dmrman。
a) 检查数据库服务状态
[dmdba@dm1 ~]$ ps -ef|grep dmserver
b) 启动 dmrman
[dmdba@dm1 ~]$ /dm7/bin/dmrman
dmrman V7.1.5.75-Build(2016.04.21-67830trunc)
RMAN>
c) 还原数据库
RMAN>restore database '/dm7/data/DAMENG/dm.ini' from backupset '/dm7/backup/bak2';
d) 恢复数据库
RMAN>recover database '/dm7/data/DAMENG/dm.ini' from backupset '/dm7/backup/bak2';
e) 打开数据库
[dmdba@dm1 ~]$ /etc/rc.d/init.d/DmServiceDM1 start
4 4 备份归档
BAK2 出现后,支持对归档的备份。
备份所有的归档文件
SQL> backup archivelog all to dmbakarch backupset '/dm7/backup/bak2_arch';
查看归档备份
[dmdba@dm1 bak2_arch]$ ls
bak2_arch.bak bak2_arch.meta
BAK2 同 样 可 以 利 用 管 理 工 具 实 现 上 述 操 作 , 但 是 要 注 意 -Duse_bak2=true 参数的使用。