冷备份是最有效的备份(必须在数据库关闭的情况下)
备份还原的时候要求数据库版本一致;若只有datafile冷备份恢复的时候,版本可以为该版本的同一序列。
步骤:
1.建立文件(文件每行一句)
vi /opt/oracle/cx.sql
select ' cp ' || name || ' /opt/oracle/bak/ ; ' from v$controlfile union
select ' cp ' || name || ' /opt/oracle/bak/ ; ' from v$tempfile union
select ' cp ' || name || ' /opt/oracle/bak/ ; ' from v$datafile union
select ' cp ' || member || ' /opt/oracle/bak/ ; ' from v$logfile union
select ' cp $ORACLE_HOME/dbs/spfile' || instance_name || '.ora /opt/oracle/bak/ ; ' from v$instance
/
2.执行上面的脚本,生成备份文件(将执行脚本的显示保存在cool.sql文件中)
sql>spool /opt/oracle/bak/cool.sql
SQL> @/opt/oracle/slectcp.sql
'CP'||NAME||'/OPT/ORACLE/BAK/;'
--------------------------------------------------------------------------------
cp $ORACLE_HOME/dbs/spfileorcl.ora /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control02.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control03.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo01.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo02.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo03.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/sysaux01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/system01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/temp01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/undo1.dbf /opt/oracle/bak/ ;
'CP'||NAME||'/OPT/ORACLE/BAK/;'
--------------------------------------------------------------------------------
cp /opt/oracle/oradata/orcl/undotbs01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/users01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/product/10.2/db_1/dbs/cms_data.dbf /opt/oracle/bak/ ;
14 rows selected.
SQL> spool off
3.修改cool.sql文件使其为下面显示
oracle@vcs-ss:~> cat cool.sql
cp $ORACLE_HOME/dbs/spfileorcl.ora /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control02.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/control03.ctl /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo01.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo02.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/redo03.log /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/sysaux01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/system01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/temp01.dbf /opt/oracle/bak/ ;
cp /opt/oracle/oradata/orcl/undo1.dbf /opt/oracle/bak/ ;
cp /opt/oracle/product/10.2/db_1/dbs/cms_data.dbf /opt/oracle/bak/ ;
4.关闭数据库
shutdown immediate
exit
5.执行冷备脚本
sh /opt/oracle/bak/cool.sql
测试:
rm -rf /opt/oracle/oradata/orcl/*
cp /opt/oracle/bak/* /opt/oracle/oradata/orcl/.
如果数据库能够正常启动起来,则说明成功
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22779391/viewspace-1028205/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22779391/viewspace-1028205/