冷备份与冷恢复(续)

来源:互联网 发布:java xml与java关联 编辑:程序博客网 时间:2024/04/28 12:58

冷备份一般是运行在noarchiving log 模式,一般需要备份的文件是数据文件和控制文件。备份方式就是关闭数据库,使数据库中的数据处在一致状态,然后对相关文件进行物理拷贝。

在dba_data_files中查找数据文件,在v$controlfile中查找控制文件。

备份好之后打开数据库即可。

 当然在noarchiving log模式下,也只能进行脱机恢复(即冷恢复),虽然这种方法会丢失数据(重做日志里的文件没有备份,每次循环写的时候都会把没有备份的文件进行备份),但是操作很简单方便。恢复时只需要把数据库关闭,然后将备份的文件拷贝到原来的位置即可(这样的恢复就像恢复操作系统一样,在备份之后的数据都将不复存在)

 

rem 冷备份的脚本举例
rem 登录

conn system/admin as sysdba

rem 关闭数据库

shutdown immediate

rem 物理拷贝需要备份的文件(这里只拷贝了两个)

host copy E:\oracle\product\10.2.0\oradata\orcl\control01.ctl e:\backup_test\

host copy E:\oracle\product\10.2.0\oradata\orcl\users01.dbf  e:\backup_test\

rem 拷贝完之后重启

startup

 

恢复时关闭数据库然后把相应文件复制到相应目录即可,但是有时候会出现硬盘损坏的情况,这个时候源目录肯定就不能用了,所以,这个时候就要把备份文件拷贝到另外一个硬盘上,最好在上面建立一个一样的目录。然后把数据库启动到mount状态,用alter  datababse 命令修改控制文件,使损坏的文件目录指定到另外一个地方。

例如:alter database rename file 'E:\oracle\product\10.2.0\oradata\orcl\users01.dbf' to 'F:\oracle\product\10.2.0\oradata\orcl\users01.dbf'

然后修改数据库状态到打开状态

把上面这段代码写成一个脚本文件放在一个目录下,之后在sql*plus下(不要登录),用@命令执行那个文件,这样就可以进行自动的冷备份了。