微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【备份恢复】物理冷备份及恢复

冷备:,即关闭数据库备份,要求备份数据库三大文件(数据文件、控制文件、日志文件)及参数文件、口令文件同时冷备之前要一致性关库,以触发ckpt实现三大文件一致性,以使恢复数据库是不需要recover

1.查看备份文件绝对路径(重要)

SYS@ORA11GR2>select name from v$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>select name from v$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>select member from v$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.ctl  redo02.log    ts_ora11gr2_01.dbf

control02.ctl  redo03_a.log  undotbs01.dbf

example01.dbf  redo03.log    undotbs2_01.dbf

redo01_a.log   sysaux01.dbf  users01.dbf

redo01.log     system01.dbf

redo02_a.log   temp01.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 oinstall   9748480 Sep 27 15:12 control01.ctl

-rw-r----- 1 oracle oinstall   9748480 Sep 27 15:12 control02.ctl

-rw-r----- 1 oracle oinstall 363077632 Sep 27 15:12 example01.dbf

-rw-r----- 1 oracle oinstall  52429312 Sep 27 15:12 redo01_a.log

-rw-r----- 1 oracle oinstall  52429312 Sep 27 15:12 redo01.log

-rw-r----- 1 oracle oinstall  52429312 Sep 27 15:12 redo02_a.log

-rw-r----- 1 oracle oinstall  52429312 Sep 27 15:12 redo02.log

-rw-r----- 1 oracle oinstall  52429312 Sep 27 15:12 redo03_a.log

-rw-r----- 1 oracle oinstall  52429312 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 oinstall  51388416 Sep 27 15:12 temp01.dbf

-rw-r----- 1 oracle oinstall  20979712 Sep 27 15:12 ts_ora11gr2_01.dbf

-rw-r----- 1 oracle oinstall  94380032 Sep 27 15:12 undotbs01.dbf

-rw-r----- 1 oracle oinstall 104865792 Sep 27 15:12 undotbs2_01.dbf

-rw-r----- 1 oracle oinstall   6561792 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.ctl  example01.dbf  redo01.log    redo02.log    redo03.log    system01.dbf  ts_ora11gr2_01.dbf  undotbs2_01.dbf

control02.ctl  redo01_a.log   redo02_a.log  redo03_a.log  sysaux01.dbf  temp01.dbf    undotbs01.dbf       users01.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 Area  730714112 bytes

Fixed Size                  2256832 bytes

Variable Size             457179200 bytes

Database Buffers          268435456 bytes

Redo Buffers                2842624 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.ctl  control02.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.ctl  example01.dbf  redo01.log    redo02.log    redo03.log    system01.dbf  ts_ora11gr2_01.dbf  undotbs2_01.dbf

control02.ctl  redo01_a.log   redo02_a.log  redo03_a.log  sysaux01.dbf  temp01.dbf    undotbs01.dbf       users01.dbf

 

——再次打开数据库

SYS@ORA11GR2>alter database open;

 

Database altered.

 

SYS@ORA11GR2>select status from v$instance;

 

STATUS

------------

OPEN

 

SYS@ORA11GR2>

数据库已打开,恢复成功!!!!!!!!!

(数据库已从冷备恢复回来,不需要recovery,因为冷备是在一致性关闭数据库的基础上实施的,数据库已处于一致状态)

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐