Complete Recovery - 임시 디렉토리를 이용한 복구(2)
환경은 다음과 같습니다.
------------------------------------------------
환경 : Oracle 9.2 윈도우
Backup 받은 데이터파일이 있는 곳 : c:\backup\oradata\wink
데이터파일 위치 : c:\oracle oradata\wink
임시 데이터 파일위치 : c:\oracle\imsi
아카이브 로그 폴더 : C:\oracle\ora92\database\archive
------------------------------------------------
실제 디스크 장애를 내기 어려우므로 실습을 위해 users01.dbf를 삭제하고 임의의 디렉토리에 복구하는 것으로 실습을 합니다…
1. DB를 종료 후 users01.dbf를 삭제
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host del c:\oracle\oradata\wink\users01.dbf --데이터파일 삭제
2. DB를 마운트 단계까지 시작
SQL> startup mount
ORACLE instance started.
Total System Global Area 361831504 bytes
Fixed Size 453712 bytes
Variable Size 343932928 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
3. 장애 파일을 확인한 다음 오프라인으로 변경, 데이터베이스 오픈
SQL> col tablespace_name format a8
SQL> col name format a30
SQL> col error format a10
SQL> select h.tablespace_name, d.name, h.error
2 from v$datafile d, v$datafile_header h
3 where d.file# = h.file#
4 ;
TABLESPA NAME ERROR
-------- --------------------------------------- ----------
SYSTEM C:\ORACLE\ORADATA\WINK\SYSTEM01.DBF
UNDOTBS1 C:\ORACLE\ORADATA\WINK\UNDOTBS01.DBF
C:\ORACLE\ORADATA\WINK\USERS01 FILE NOT
……
……
……
SQL> alter database datafile 'C:\ORACLE\ORADATA\WINK\USERS01.DBF' offline;
Database altered.
SQL>-- 아래 명령을 통해 offline으로 된 것을 확인
SQL> select d.file#, d.name, d.status, h.status
2 from v$datafile d, v$datafile_header h
3 where d.file# = h.file#;
SQL>alter database open;
4. 백업 받아둔 파일로 임시폴더에 복사, 데이터파일의 이름을 변경
SQL> host copy c:\backup\oradata\wink\users01.dbf c:\oracle\imsi
1개 파일이 복사되었습니다.
SQL> alter database rename file 'c:\oracle\oradata\wink\users01.dbf'
2 to 'c:\oracle\imsi\users01.dbf'
3 /
SQL> col file_name format a30
SQL>
SQL> select file_name, tablespace_name from dba_data_files;
FILE_NAME TABLESPA
------------------------------ --------
C:\ORACLE\ORADATA\WINK\SYSTEM0 SYSTEM1.DBF
C:\ORACLE\ORADATA\WINK\UNDOTBS UNDOTBS101.DBF
C:\ORACLE\ORADATA\WINK\CWMLITE CWMLITE01.DBF
C:\ORACLE\ORADATA\WINK\DRSYS01 DRSYS.DBF
C:\ORACLE\ORADATA\WINK\INDX01. INDXDBF
C:\ORACLE\ORADATA\WINK\ODM01.D ODMBF
C:\ORACLE\ORADATA\WINK\TOOLS01 TOOLS.DBF
C:\ORACLE\IMSI\USERS01.DBF USERS --변경되어 있음
C:\ORACLE\ORADATA\WINK\XDB01.D XDB
……
……
……
5. recover 명령으로 현시점까지의 변경 사항을 반영하며 복구된 데이터파일을 온라인으로 변경
SQL> recover datafile 'c:\oracle\imsi\users01.dbf';
Media recovery complete.
SQL> alter database datafile 'c:\oracle\imsi\users01.dbf' online;
Database altered.
* 이종철님에 의해서 게시물 이동되었습니다 (2006-06-04 12:25)
환경은 다음과 같습니다.
------------------------------------------------
환경 : Oracle 9.2 윈도우
Backup 받은 데이터파일이 있는 곳 : c:\backup\oradata\wink
데이터파일 위치 : c:\oracle oradata\wink
임시 데이터 파일위치 : c:\oracle\imsi
아카이브 로그 폴더 : C:\oracle\ora92\database\archive
------------------------------------------------
실제 디스크 장애를 내기 어려우므로 실습을 위해 users01.dbf를 삭제하고 임의의 디렉토리에 복구하는 것으로 실습을 합니다…
1. DB를 종료 후 users01.dbf를 삭제
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host del c:\oracle\oradata\wink\users01.dbf --데이터파일 삭제
2. DB를 마운트 단계까지 시작
SQL> startup mount
ORACLE instance started.
Total System Global Area 361831504 bytes
Fixed Size 453712 bytes
Variable Size 343932928 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
3. 장애 파일을 확인한 다음 오프라인으로 변경, 데이터베이스 오픈
SQL> col tablespace_name format a8
SQL> col name format a30
SQL> col error format a10
SQL> select h.tablespace_name, d.name, h.error
2 from v$datafile d, v$datafile_header h
3 where d.file# = h.file#
4 ;
TABLESPA NAME ERROR
-------- --------------------------------------- ----------
SYSTEM C:\ORACLE\ORADATA\WINK\SYSTEM01.DBF
UNDOTBS1 C:\ORACLE\ORADATA\WINK\UNDOTBS01.DBF
C:\ORACLE\ORADATA\WINK\USERS01 FILE NOT
……
……
……
SQL> alter database datafile 'C:\ORACLE\ORADATA\WINK\USERS01.DBF' offline;
Database altered.
SQL>-- 아래 명령을 통해 offline으로 된 것을 확인
SQL> select d.file#, d.name, d.status, h.status
2 from v$datafile d, v$datafile_header h
3 where d.file# = h.file#;
SQL>alter database open;
4. 백업 받아둔 파일로 임시폴더에 복사, 데이터파일의 이름을 변경
SQL> host copy c:\backup\oradata\wink\users01.dbf c:\oracle\imsi
1개 파일이 복사되었습니다.
SQL> alter database rename file 'c:\oracle\oradata\wink\users01.dbf'
2 to 'c:\oracle\imsi\users01.dbf'
3 /
SQL> col file_name format a30
SQL>
SQL> select file_name, tablespace_name from dba_data_files;
FILE_NAME TABLESPA
------------------------------ --------
C:\ORACLE\ORADATA\WINK\SYSTEM0 SYSTEM1.DBF
C:\ORACLE\ORADATA\WINK\UNDOTBS UNDOTBS101.DBF
C:\ORACLE\ORADATA\WINK\CWMLITE CWMLITE01.DBF
C:\ORACLE\ORADATA\WINK\DRSYS01 DRSYS.DBF
C:\ORACLE\ORADATA\WINK\INDX01. INDXDBF
C:\ORACLE\ORADATA\WINK\ODM01.D ODMBF
C:\ORACLE\ORADATA\WINK\TOOLS01 TOOLS.DBF
C:\ORACLE\IMSI\USERS01.DBF USERS --변경되어 있음
C:\ORACLE\ORADATA\WINK\XDB01.D XDB
……
……
……
5. recover 명령으로 현시점까지의 변경 사항을 반영하며 복구된 데이터파일을 온라인으로 변경
SQL> recover datafile 'c:\oracle\imsi\users01.dbf';
Media recovery complete.
SQL> alter database datafile 'c:\oracle\imsi\users01.dbf' online;
Database altered.
* 이종철님에 의해서 게시물 이동되었습니다 (2006-06-04 12:25)
![]() | ![]() ![]() | 12-27 | 2850 | |
![]() | ![]() ![]() | 12-11 | 2079 | |
53 | ![]() ![]() | 03-15 | 1917 | |
52 | ![]() ![]() | 01-31 | 2069 | |
51 | ![]() ![]() | 01-31 | 3032 | |
50 | ![]() ![]() | 01-31 | 1595 | |
49 | ![]() ![]() | 01-19 | 1923 | |
48 | ![]() ![]() | 01-11 | 1783 | |
47 | ![]() ![]() | 01-03 | 2383 | |
46 | ![]() ![]() | 12-27 | 2850 | |
45 | ![]() ![]() | 12-19 | 2003 | |
44 | ![]() ![]() | 12-14 | 1975 | |
43 | ![]() ![]() | 12-11 | 2079 | |
42 | ![]() ![]() | 12-09 | 1616 | |
41 | ![]() ![]() | 12-01 | 1836 | |
40 | ![]() ![]() | 12-01 | 2076 | |
39 | ![]() ![]() | 12-01 | 1492 |
댓글 없음:
댓글 쓰기