数据库备份是 DBA 日常工作中主要内容之一。对数据库的备份不是目的,而是在数据库发生故障时利用有效的备份,可以快速的还原和恢复数据库,避免数据丢失。
数据库的备份与还原是数据库容灾的重要方法,达梦数据库作为国产数据库的领军产品,在备份与还原方面都有哪些功能和特性。达梦数据库 7.0 支持 BAK,BAK2,dexp 等多种手段和方法。本文以 BAK2 为例,介绍达梦备份与还原的方法。
[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
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
SQL> backup database full to dmbak2 backupset '/dm7/backup/bak2';
[dmdba@dm1 bak2]$ ls
bak2.bak bak2.meta
注意:bak2.bak 是数据库的备份文件,bak2.meta 为备份的元文件
BAK2 可以直接在备份集中直接还原指定的用户表空间,不在像 BAK 需要把整个数据库还原,这里值得注意的是 SYSTEM,ROLL,HMAIN 表空间损坏,不能按照下述步骤还原。
假设 DMHR 表空间损坏
SQL> alter tablespace DMHR offline;
SQL> restore tablespace DMHR from backupset '/dm7/backup/bak2';
SQL> alter tablespace DMHR online;
备份用户表空间和表的方法和备份数据库类似,此处不在赘述。
如果要还原整个数据,在 BAK2 的使用上也有些变化。我们不在利用 dmrestore 命令去还原。而是利用 dmrman。
[dmdba@dm1 ~]$ ps -ef|grep dmserver
[dmdba@dm1 ~]$ /dm7/bin/dmrman
dmrman V7.1.5.75-Build(2016.04.21-67830trunc)
RMAN>
RMAN>restore database '/dm7/data/DAMENG/dm.ini' from backupset '/dm7/backup/bak2';
RMAN>recover database '/dm7/data/DAMENG/dm.ini' from backupset '/dm7/backup/bak2';
e) 打开数据库
[dmdba@dm1 ~]$ /etc/rc.d/init.d/DmServiceDM1 start
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 参数的使用。
文章
阅读量
获赞