一、前提概述
DM8数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对DM8数据库的操作,归根结底都是对某个数据文件页的读写操作。
DM8备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。
而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原与恢复是备份的逆过程。
还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定LSN。
恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由DM8数据库服务器自动进行回滚。
二、操作前提-打开归档
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。
DM 数据库可以运行在归档模式或非归档模式下。如果是归档模式,联机日志文件中的内容保存到硬盘中,形成归档日志文件;如果是非归档模式,则不会形成归档日志。
采用归档模式会对系统的性能产生些许影响,然而系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一旦出现介质故障,如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。
通过dm.ini和dmarch.ini可以配置本地归档。dmarch.ini生效的前提是dm.ini中的参数 ARCH_INI 置为 1。
DM 的 dmarch.ini 可以进行本地归档和远程归档的设置,DM 备份与还原过程中使用的日志均为本地归档日志。
查询 v$dm_arch_ini、v$arch_status 等动态视图可以获取归档配置以及归档状态等相关信息。
1、配置归档方法一联机配置归档
1)修改数据库为 MOUNT 状态。
SQL>ALTER DATABASE MOUNT;
2)配置本地归档
SQL>ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local,
FILE_SIZE = 1024, SPACE_LIMIT = 2048';
3)开启归档模式。
SQL>ALTER DATABASE ARCHIVELOG;
4)修改数据库为 OPEN 状态。
SQL>ALTER DATABASE OPEN;
2、配置归档方法—手动配置归档
1)手动编辑 dmarch.ini 文件,之后保存在 dm.ini 所在的目录。dmarch.ini 文
件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/dameng/arch_dsc0
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 0
2)编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存。
3)重新启动数据库实例,数据库已运行于归档模式。
三、联机和脱机备份还原
1、联机备份与还原
备份:
在 DIsql 工具中使用 BACKUP 语句你可以备份整个数据库。
./disql
SQL>BACKUP DATABASE FULL BACKUPSET 'db_bak_01';
联机备份表空间(表空间只能联机备份、脱机还原恢复)
SQL> BACKUP DATABASE TEST BACKUPSET 'db_bak_02';
还原:
./dmrman
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset 'db_bak_01';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset 'db_bak_01';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
2、脱机备份与还原(需正常关闭数据库服务)
备份:
./dmrman
BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm/data/BACKUP_FILE_01'
还原:
./dmrman
RMAN>RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'
RMAN>RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
四、逻辑备份与还原
1、dexp 逻辑导出
dexp工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。
将用户名和密码均为SYSDBA, IP 地址为127.0.0.1,端口号为5236的数据库采用FULL方式完全导出。导出文件名为db_str.dmp,导出的日志文件名为db_str.log, 导出文件的路径为/home/dm_bak
cd /home/dm8/bin
./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str.dmp DIRECTORY=/home/dm_bak LOG=db_str.log FULL=Y
2、dimp 逻辑导入
dimp逻辑导入工具利用dexp工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。
例如,将逻辑备份导入到用户名和密码为SYSDBA, IP 地址为127.0.0.1,端口号为5236的数据库。导入文件名为db_str.dmp, 导入的日志文件名为db_str.log
./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str.dmp DIRECTORY=C:\Users\dedemao\Desktop\dm_bak LOG=db_str.log FULL=Y
五、物理备份与还原
使用DM服务查看器
使用DM控制台工具
还原:
更新db_magic: