三种备份方案
1.冷备份
冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。
优点:能简单快速地备份。能简单快速地恢复。执行简单。
缺点:必须关闭数据库,不能进行点恢复。
2.冷备份数据库的步骤
(1)关闭数据库;
(2)备份所有相关的数据库文件(复制即可):初始化参数文件
控制文件(可用select name from v$controlfile;列出所有控制文件)
数据文件(可用select name from v$datafile;列出所有数据文件)
Redo日志(可用select member from v$logfile;列出所有redo日志文件)
归档的Redo日志(可用select sequence#,first_time from v$loghist;列出所有归档redo日志文件的顺序号和产生时间)
冷备份数据库的脚本文件coldbackup.bat
3.热备份
热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。
优点:备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。
缺点:执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。
4.热备份方案的实施
热备份数据库的前提条件:数据库运行在归档模式
Oracle数据库安装默认运行在非归档模式,转换为归档模式请参考Oracle归档模式一篇:
热备份数据库的步骤
(1)拷贝init.ora文件到备份目录(参数文件在数据库启动后处于关闭状态)。
(2)将需要备份的某个表空间置于开始备份模式。
(3)使用ocopy.exe拷贝表空间,然后将该表空间置于结束备份模式中(ocopy.exe不能用于直接拷贝联机的数据库文件)。
(4)对数据库中的每个表空间执行步骤2和3(可以通过视图dba_tablespaces和v$datafile查看数据库中有哪些表空间和数据文件)。
(5)通过在sqlplus上执行archive log list命令获取当前的日志顺序号,从oldest online log sequence开始到current log sequence的联机redo日志应该是热备份的一部分。
(6)在sqlplus上执行alter system switch logfile;命令来强迫日志切换,以便所有的日志都被归档。
(7)使用alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%\admin\%oracle_sid%\udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。
(8)使用windows nt的命令从%log_archive_dest%中拷贝归档的日志文件到备份目录。
热备份数据库的脚本文件hotbackup.bat
5.Export导出数据库对象
冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。
优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。
缺点:export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。
6.使用export作为备份策略
参考Oracle导出-导入一篇
注意:不管是冷备份、热备份,还是export备份;不管是unix平台,还是windows平台,都可以利用at命令来定时、自动执行上述备份策略。AT 命令安排在特定日期和时间运行命令和程序,在windows nt平台上必须首先运行调度服务(schedule),才能使用at命令。
举例如下:
(1) 每周五19:00执行冷备份
at 19:00 /every:F "coldbak.cmd"
(2) 每周二20:00执行热备份
at 20:00 /every:T "coldbak.cmd"
(3) 每周一、二、三、四、五21:00执行export备份
at 20:00 /every:M,T,W,Th,F "expbak.cmd"