冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据库可以运行在归档模式,也可以运行在非归档模式。
备份流程:
1)首先在运行的库中得到运行的所有文件。
主要备份文件:passwordfile、spfile、controlfile、datafile、tempfile、logfile
2)然后计划内关闭数据库,一般在晚上无人访问时关闭。
3)拷贝物理文件到指定备份路径或设备。
4)拷贝完成,立即启动数据库,使其正常工作。
备份脚本:
spool /u01/app/oracle/jiaoben/bf1.sql
select 'ho cp '||name||' /u01/app/oracle/lengbei/' from v$controlfile
union all
select 'ho cp '||name||' /u01/app/oracle/lengbei/' from v$datafile
union all
select 'ho cp '||name||' /u01/app/oracle/lengbei/' from v$tempfile
union all
select 'ho cp '||member||' /u01/app/oracle/lengbei/' from v$logfile
/
create pfile='/u01/app/oracle/lengbei/initorcl.ora' from spfile;
ho cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl /u01/app/oracle/lengbei/
spool off
shutdown immediate
@/u01/app/oracle/jiaoben/bf1.sql
startup
rm -rf /u01/app/oracle/jiaoben/bf1.sql
还原:
1、非归档模式
1)非归档模式,全库物理文件丢失情况下的恢复:
a、关闭数据库,sqlplus可以进入即用sqlplus关闭、否则kill -9 杀死进程
b、拷贝备份文件到数据库物理文件具体路径。
c、sqlplus / as sysdba进入数据库,通过startup打开数据库。
此时的数据库恢复到当时备份的时间点,从备份到现在的数据库事务丢失。
除了完全恢复到备份时间点,不支持单个数据文件丢失的恢复过程。
2、归档模式
1)归档模式下,所有物理文件丢失情况下的恢复。
a、关闭数据库,sqlplus可以进入即用sqlplus关闭、否则kill -9 杀死进程
b、拷贝备份文件到数据库物理文件具体路径。
c、sqlplus / as sysdba进入数据库,通过startup mount。
d、recover database using backup controlfile; auto
e、alter database open resetlogs;
归档模式下的冷备份可以通过归档日志,在还原后初次启动数据库时进行恢复操作。同时,归档模式下也支持非归档冷备恢复办法。
2)归档模式下,system表空间丢失(可以支持单个数据文件丢失情况恢复):
a、shutdow关机
b、将备份文件考回数据文件位置
c、startup
d、recover datafile 1;recover tablespace system;recover database;
e、alter database open;
异机恢复:同平台、同版本
1、目标库不创建实例,目标库按照源库的目录结构创建目录,拷贝源库冷备文件到目标库下,按照源库的目录结构还原物理文件。
2、源库通过create pfile from spfile;创建参数文件,并同passwordfile一同拷贝到目标库$ORACLE_HOME/dbs/目录下。
3、按照源库的listener.ora和tnsnames.ora内容在目标库建立该文件或是修改其内容。
4、sqlplus / as sysdba方式进入sqlplus环境,通过startup pfile='$ORACLE_HOME/dbs/initorcl.ora'方式启动数据库。
5、create spfile from pfile;创建二进制参数文件。冷备迁移完成。
异机恢复:平台:rhel6.4~rhel6.5 版本:oracle 11g 11.2.0.1~oracle 11g 11.2.0.4
1、目标库不创建实例,目标库按照源库的目录结构创建目录,拷贝源库冷备文件到目标库下,按照源库的目录结构还原物理文件。
2、源库通过create pfile from spfile;创建参数文件,并同passwordfile一同拷贝到目标库$ORACLE_HOME/dbs/目录下。
3、按照源库的listener.ora和tnsnames.ora内容在目标库建立该文件或是修改其内容。
4、sqlplus / as sysdba方式进入sqlplus环境,通过startup pfile='$ORACLE_HOME/dbs/initorcl.ora'方式启动数据库。
******注意此时会报错****************************
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Process ID: 2774
Session ID: 125 Serial number: 5
5、以startup upgrade方式打开数据库。