冷备份发生在数据库已经正常关闭的情况下当正常关闭时会提供给我们一个完整的数据库
冷备份是将关键性文件拷贝到另外位置的一种做法对于备份Oracle信息而言冷备份是最快和最安全的方法值得注意的是冷备份必须是数据库关闭的情况下完成当数据库开着的时候执行数据库文件系统备份无效
冷备份所需备份的文件包括以下几种
所有数据文件
所有控制文件
所有联机REDO LOG 文件
INIT<sid>ORA文件(可选)
冷备份的步骤
正常关闭要备份的实例(instance)
备份整个数据库到一个目录
启动数据库
用冷备份进行数据库恢复
如果数据库是运行在非归档日志模式下将备份文件拷贝回原来的目录即可非归档日志模式下数据库只能恢复到备份时刻的状态
如果数据库是运行在归档日志模式下将数据文件拷回原来的目录(不包括联机redolog文件)然后依次选择相应的重做日志文件进行恢复即可恢复冷备份后的所有操作即是说可以恢复到系统崩溃前的状态
冷备份示例
示例一windows环境下的冷备份与恢复
在本例中数据库实例名wh所有数据文件所有控制文件和所有联机REDO LOG 文件都在文件夹D:\oracle\ora\wh中备份恢复的操作如下
进入 sql*plus以sysdba的身份登录数据库
SQL>sys/oracle@wh as sysdba
关闭数据库SQL>shutdown immediate
拷贝D:\oracle\ora\wh到目标备份目录E:\bacakupora\wh
数据库冷备份完成下面对数据库中的内容进行更改
启动数据库
SQL>startup
删除数据
SQL>delete from whtest (删除某个用户的表)
此时进行数据库恢复
SQL>shutdown immediate;
拷贝目标备份目录E:\bacakupora\wh到D:\oracle\ora\wh
数据库恢复完毕通过查询可以发现数据库恢复到进行备份时刻的状态备份后所进行的所有操作无效
示例二linux环境下的冷备份与恢复
在本例中数据库实例名urpdb所有数据文件存放在\oradata\urpdb目录下所有控制文件和所有联机REDO LOG 文件都在文件夹opt\ora\oradata\urpdb中备份恢复的操作如下
sys/oracle@urpdb as sysdba 进入sql*plus;
SQL>shutdown immediate (保持所有数据文件在时间点上的一致性)
拷贝\oradata\urpdb和opt\ora\oradata\urpdb下的所有文件到新的备份目录
假设进行如下操作
SQL>startup
SQL>create table test(c number()c varcharc());
SQL>insert into text values(a);
SQL>commit;
此后假设有一个数据文件坏了然后将备份的所有文件包括联机重做日志文件拷贝回来
SQL>shutdown immediate;
拷贝文件包括联机重做日志文件
SQL>startup;
数据恢复完毕!但备份后所执行的操作没有恢复