01.오라클/003.DB 백업 및 복구

[오라클]아카이브 복구

redkite 2012. 12. 19. 11:49

아카이브 복구

 

아래의 방법으로 하시면 됩니다.

- 현재 운영DB를 S, 복구대상 DB를 T라 하겠습니다.

1. S에서 Online Backup실행

$cd /data/work

$ sqlplus / as sysdba

SQL> @begin

SQL> alter database backup controlfile to '/data/oradata/emsdb/control.bak' reuse;

2. S의 DBF File Ftp

$ cd /data/oradata/emsdb

$ ftp 10.100.100.4

ftp > cd /data/oradata/emsdb

ftp > bin

ftp > prompt

ftp> hash

ftp > mput *

 

3. S에서 Online Backup종료 실행

$cd /data/work

$ sqlplus / as sysdba

SQL> @end

 

4. S의 DBF File Ftp

$ cd /data/oradata/emsdb

$ ftp 10.100.100.4

ftp > cd /data/oradata/emsdb

ftp > bin

ftp > prompt

ftp> hash

ftp > mput *

 

5. T에서 Backup받은 controlfile으로 변경

$ cd /data/oradata/emsdb

$ cp control.bak control01.ctl

$ cp control.bak control02.ctl

$ cp control.bak control03.ctl

 

6 T에서 복구 시작

$sqlplus / as sysdba

SQL> startup mount

SQL> recover database using backup controlfile until cancel;

auto

-> Archivelog을 이용 복구 진행후 더이상 복구할 Archive log가 없을때 종료

SQL.> alter database open resetlogs;

-> Open이 되지 않고 Error가 발생하는데 이유는 S는 10.2,0.3이고 T는 10.2.0.5라 Dictionary가 상이하여 발생

SQL> exit

 

7. T에서 Upgrade실행

$ sqlplus / as sysdba

SQL> startup upgrade

SQL> spool upgrade

SQL> @?/rdbms/admin/catupgrd

SQL> shutdown immediate

 

8. T에서 Invalid된 Object 재 Compile

$sqlplus / as sysdba

SQL> startup

SQL> @?/rdbms/admin/utlrp