物理冷备份及恢复
冷备:,即关闭数据库备份,要求备份数据库三大文件(数据文件、控制文件、日志文件)及参数文件、口令文件;同时冷备之前要一致性关库,以触发ckpt实现三大文件一致性,以使恢复数据库是不需要recover;
1.查看备份文件绝对路径(重要)
SYS@ORA11GR2>selectnamefromv$datafile;
NAME
--------------------------------------------------------/u01/app/oracle/oradata/ORA11GR2/system01.dbf
/u01/app/oracle/oradata/ORA11GR2/sysaux01.dbf
/u01/app/oracle/oradata/ORA11GR2/undotbs01.dbf
/u01/app/oracle/oradata/ORA11GR2/users01.dbf
/u01/app/oracle/oradata/ORA11GR2/example01.dbf
/u01/app/oracle/oradata/ORA11GR2/ts_ora11gr2_01.dbf
/u01/app/oracle/oradata/ORA11GR2/undotbs2_01.dbf
7 rows selected.
SYS@ORA11GR2>selectnamefromv$controlfile;
NAME
--------------------------------------------------------
/u01/app/oracle/oradata/ORA11GR2/control01.ctl
/u01/app/oracle/oradata/ORA11GR2/control02.ctl
/u01/app/FRA/control03.ctl
SYS@ORA11GR2>
SYS@ORA11GR2>selectmemberfromv$logfile;
MEMBER
--------------------------------------------------------
/u01/app/oracle/oradata/ORA11GR2/redo03.log
/u01/app/oracle/oradata/ORA11GR2/redo02.log
/u01/app/oracle/oradata/ORA11GR2/redo01.log
/u01/app/oracle/oradata/ORA11GR2/redo01_a.log
/u01/app/oracle/oradata/ORA11GR2/redo02_a.log
/u01/app/oracle/oradata/ORA11GR2/redo03_a.log
/u01/app/FRA/redo01_b.log
/u01/app/FRA/redo02_b.log
/u01/app/FRA/redo03_b.log
9 rows selected.
SYS@ORA11GR2>
2.一致性关闭数据库:(触发CKPT,然后实施备份)
SYS@ORA11GR2>shutdown
immediate;
Database closed.
Database
dismounted.
ORACLE instance
shut down.
SYS@ORA11GR2>
3.回到操作系统层复制镜像(所有数据库文件)
——创建备份目录:
[oracle@wang ~]$
mkdir cold
[oracle@wang ~]$ ls
cold
[oracle@wang ~]$ cd
cold/
[oracle@wang cold]$
ls
[oracle@wang cold]$
[oracle@wang cold]$
pwd
/home/oracle/cold
——备份控制文件、数据文件、redo日志到备份目录:
[oracle@wang ~]$ cd
/u01/app/oracle/oradata/
ORA11GR2/
PROD/
[oracle@wang ~]$ cd
/u01/app/oracle/oradata/
[oracle@wang
oradata]$
[oracle@wang
oradata]$ cd ORA11GR2
[oracle@wang
ORA11GR2]$ ls
control01.ctlredo02.logts_ora11gr2_01.dbf
control02.ctlredo03_a.logundotbs01.dbf
example01.dbfredo03.logundotbs2_01.dbf
redo01_a.logsysaux01.dbfusers01.dbf
redo01.logsystem01.dbf
redo02_a.logtemp01.dbf
[oracle@wang
ORA11GR2]$ pwd
/u01/app/oracle/oradata/ORA11GR2
[oracle@wang
ORA11GR2]$ cp * /home/oracle/cold/
[oracle@wang
ORA11GR2]$
成功,验证:
[oracle@wang cold]$
du -sh
2.3G.
[oracle@wang cold]$
ll
total 2383092
-rw-r----- 1 oracle
oinstall9748480 Sep 27 15:12control01.ctl
-rw-r----- 1 oracle
oinstall9748480 Sep 27 15:12control02.ctl
-rw-r----- 1 oracle
oinstall 363077632 Sep 27 15:12 example01.dbf
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12redo01_a.log
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12redo01.log
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12 redo02_a.log
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12
redo02.log
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12
redo03_a.log
-rw-r----- 1 oracle
oinstall52429312 Sep 27 15:12
redo03.log
-rw-r----- 1 oracle
oinstall 660611072 Sep 27 15:12 sysaux01.dbf
-rw-r----- 1 oracle
oinstall 849354752 Sep 27 15:12 system01.dbf
-rw-r----- 1 oracle
oinstall51388416 Sep 27 15:12
temp01.dbf
-rw-r----- 1 oracle
oinstall20979712 Sep 27 15:12
ts_ora11gr2_01.dbf
-rw-r----- 1 oracle
oinstall94380032 Sep 27 15:12 undotbs01.dbf
-rw-r----- 1 oracle
oinstall 104865792 Sep 27 15:12 undotbs2_01.dbf
-rw-r----- 1 oracle
oinstall6561792 Sep 27 15:12
users01.dbf
[oracle@wang
cold]$
——备份参数文件及口令文件:
[oracle@wang
ORA11GR2]$ cd $ORACLE_HOME/dbs
[oracle@wang
dbs]$cp initORA11GR2.ora
spfileORA11GR2.ora/home/oracle/cold/
[oracle@wang
dbs]$
[oracle@wang
dbs]$cp orapwORA11GR2
/home/oracle/cold/
验证:
[oracle@wang cold]$
ls initORA11GR2.ora
initORA11GR2.ora
[oracle@wang cold]$
ls spfileORA11GR2.ora
spfileORA11GR2.ora
[oracle@wang cold]$
ls orapwORA11GR2
orapwORA11GR2
4.模拟删除$ORACLE_HOME/dbs的参数文件及密码文件,删除$ORACLE_HOME/oradata/ORA11GR2/下的所有数据库文件
[oracle@wang dbs]$
cd /u01/app/oracle/oradata/ORA11GR2/
[oracle@wang
ORA11GR2]$ ls
control01.ctlexample01.dbfredo01.logredo02.logredo03.logsystem01.dbfts_ora11gr2_01.dbfundotbs2_01.dbf
control02.ctlredo01_a.logredo02_a.logredo03_a.logsysaux01.dbftemp01.dbfundotbs01.dbfusers01.dbfv
[oracle@wang
ORA11GR2]$rm *
[oracle@wang ORA11GR2]$ls
[oracle@wang
ORA11GR2]$
5.启动实例(nomount):
SYS@ORA11GR2>startup
nomount;
ORA-01078: failure
in processing system parameters
LRM-00109: could
not open parameter file
'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initORA11GR2.ora'
SYS@ORA11GR2>
显示没有找到参数文件,恢复参数文件:
[oracle@wang
cold]$ cp initORA11GR2.ora spfileORA11GR2.ora
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@wang
cold]$
再次启动实例:
SYS@ORA11GR2>startup
nomount;
ORACLE instance
started.
Total System Global
Area730714112 bytes
Fixed Size2256832 bytes
Variable Size457179200 bytes
Database
Buffers268435456 bytes
Redo Buffers2842624 bytes
SYS@ORA11GR2>
——实例启动
6.启动到mount:
SYS@ORA11GR2>alter
database mount;
alter database
mount
*
ERROR at line 1:
ORA-00205: error in
identifying control file, check alert log for more info
SYS@ORA11GR2>
恢复控制文件:
[oracle@wang
cold]$ cp control01.ctl control02.ctl/u01/app/oracle/oradata/ORA11GR2/
[oracle@wang
cold]$
[oracle@wang
ORA11GR2]$ pwd
/u01/app/oracle/oradata/ORA11GR2
[oracle@wang
ORA11GR2]$
[oracle@wang
ORA11GR2]$ ls
control01.ctlcontrol02.ctl
再次启动到mount:
SYS@ORA11GR2>alter
database mount;
Database altered.
SYS@ORA11GR2>
成功!
7.打开数据库:
SYS@ORA11GR2>alter
database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot
identify/lock data file 1 - see DBWR trace file
ORA-01110: data
file 1: '/u01/app/oracle/oradata/ORA11GR2/system01.dbf'
——恢复数据文件及日志文件:
[oracle@wang
cold]$ cp *dbf *log /u01/app/oracle/oradata/ORA11GR2/
[oracle@wang
cold]$
[oracle@wang
ORA11GR2]$ ls
control01.ctlexample01.dbfredo01.logredo02.logredo03.logsystem01.dbfts_ora11gr2_01.dbfundotbs2_01.dbf
control02.ctlredo01_a.logredo02_a.logredo03_a.logsysaux01.dbftemp01.dbfundotbs01.dbfusers01.dbf
——再次打开数据库:
SYS@ORA11GR2>alter
database open;
Database altered.
SYS@ORA11GR2>select
status from v$instance;
STATUS
------------
OPEN
SYS@ORA11GR2>
数据库已打开,恢复成功!!!!!!!!!
(数据库已从冷备恢复回来,不需要recovery,因为冷备是在一致性关闭数据库的基础上实施的,数据库已处于一致状态)