Oracle10g备份与恢复之物理备份--OS物理备份
本篇文章来说明Oracle数据库的物理备份方式中的用操作系统OS方式进行的备份。之前说过,物理备份分为脱机的冷备份(数据库关闭状态下)和联机的热备份(数据库运行状态下)。本文就来说明OS方式的冷备份与热备份。在讲解实例之前,先说明两个知识点,数据库的启动顺序和归档模式。
数据库的启动顺序用三种命令,实现不同的阶段:
STARTUP NOMOUNT,启动数据实例。
STARTUP MOUNT,启动数据实例,加载数据库。
STARTUP,启动数据实例,加载数据库并打开数据库。
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组,每个日志组最少有一个日志文件成员,每个成员的内容是一样的,也就是说如果存在多个磁盘,就可以利用多个磁盘,为每个日志文件组建立多个成员,以应对磁盘损坏性质的数据恢复,如果只有一个磁盘,为每个日志组建立多个成员就没太大必要了。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。归档日志模式和非归档日志模式的区别:
非归档模式恢复时一般只做完全备份恢复。最近一次完全备份到系统出错期间的数据恢复需要结合实际情况进行恢复。归档模式才可以做热备份,并且可以做增量备份,可以做部分恢复。在归档模式下,数据库数据文件出现问题,如果日志文件完好,则在恢复时,数据库就可以根据日志文件进行前滚操作或回滚操作来还原数据。(前滚是指数据操作记录在日志里的完整事务还没有写到数据文件中的操作,回滚是指一个整个的事务,执行了一半,写入了部分数据,为保证数据的一致性,需要强制撤销这部分未完成的操作。)
虽然在归档模式下可以保证数据库在恢复时数据丢失到最小的级别,甚至零丢失,但是数据库运行在归档模式下,在日志组切换时会有稍微的延迟,影响数据库的性能,所以要根据实际来决定是否归档,即使归档也要根据情况配置好日志组的大小。
下面我们就讲解OS下的物理备份,首先说明OS下物理冷备份。冷备份不需要处于归档模式下,所以我们先说冷备份非归档模式下的备份与恢复。
1、非归档模式下的OS冷备份与恢复
当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全的数据转移。备份步骤:
1)关闭数据库(shutdown normal)
2)拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件(包括路径))。
可以用下列命令查询相关的文件位置。
数据文件:select file_name from dba_data_files;
日志文件:select member from v$logfile;
控制文件:select name from v$controlfile;
参数文件包括pfile和spfile,windows下目录类似为:E:\oracle\product\10.2.0\db_1\dbs。
参数文件init.ora,为可选备份,windows下目录类似为:E:\oracle\product\10.2.0\db_1\srvm\admin。
口令文件即密码文件,为可选备份,windows下目录类似为:E:\oracle\product\10.2.0\db_1\database。
3)重新启动数据库(startup)。以上步骤也可以写一个脚本,执行脚步来备份。