[ Programing ]/Database

[Oracle 9i] Fundamentals 2 - Practice 10

Mister_Q 2010. 4. 22. 22:17
Practice 10 : User-Managed Backups

1. Whole Offine DB Backup에 대하여 Backup 할 Database file들을 조회해 봅니다.
   # sqlplus "/as sysdba"
   SQL> select name from v$controlfile;
   SQL> select member from v$logfile;
   SQL> select name from v$datafile;

2. DB를 정상적으로 종료하고 $HOME/BACKUP/DONTOUCH directory에 O/S 명령어를 사용하여 Whole Offine DB backup을 수행합니다.
   SQL> shutdown immediate;
   SQL> exit
   # cp -rp /opt/oracle/PROD/*   $HOME/BACKUP/DONTOUCH/.
   # cp -rp $ORACLE_HOME/dbs/orapwPROD.ora   $HOME/BACKUP/CONTOUCH/.
   # cp -rp $ORACLE_HOME/dbs/initPROD.ora   $HOME/BACKUP/CONTOUCH/.
Note : DONTOUCH directory에는 다른 file을 복사해 둔다거나 이곳의 file을 삭제하지 마세요!!!

3. DB를 다시 가동하고 USERS Tablespace의 Online Backup을 실행합니다. (백업 경로 : $HOME/BACKUP/UMAN)
   # sqlplus "/as sysdba"
   SQL> startup
   SQL> ALTER TABLESPACE USERS BEGIN BACKUP;
   SQL> !cp /opt/oracle/PROD/u02/user01.dbf   $HOME/BACKUP/UMAN/user01.dbf
   SQL> ALTER TABLESPACE USERS END BACKUP;

4. Control file backup trace를 생성해 봅니다. 현재 세션에서 생성된 trace file을 query를 실행하여 식별하고 $HOME/BACKUP/UMAN/cntrl.sql 이라는 이름으로 copy 후 적절히 편집합니다.
   SQL> show parameter user_dump_dest   -> 지정된 경로의 모든 파일을 삭제
   SQL> connect system/manager
   SQL> alter database backup controlfile to trace;
   SQL> select s.username, p.spid
            from v$session s, v$process p
            where s.paddr = p.addr
            and s.username = 'SYSTEM';   -> Process ID 조회
   SQL> exit
   # cd 명령으로 user_dump_dest로 이동
   # cp PROD_ora_xxx.trc   $HOME/BACKUP/UMAN/cntrl.sql
   # vi HOME/BACKUP/UMAN/cntrl.sql   -> comment line을 모두 지우고 저장합니다.

5. $HOME/BACKUP/UMAN/cntrl1.bkp라는 이름으로 control file binary copy backup을 수행합니다.
   SQL> alter database backup controlfile to '$HOME/BACKUP/UMAN/cntrl1.bkp';