[관리] Control file 재생성하기
**** CONTROLFILE 재생성
CONTROL FILE이 손상되었으나 이용가능한 BACKUP FILE이 없을 경우
데이타베이스 이름을 변경할 경우
DATA FILE, LOG FILE의 MAX 개수를 확장할 때
1. DATABASE SHUTDOWN
2. 모든 DATABASE FILE을 BACKUP 받는다.
3. INSTANCE를 START
4. CONTROL FILE을 생성한다.
SQLDBA> CREATE CONTROLFILE [REUSE]
[SET] DATABASE ORA7
LOGFILE ‘/usr/oracle/dbs/log1ORA7.dbf’,
‘/usr/oracle/dbs/log2ORA7.dbf’
NORESETLOGS [RESETLOGS]
DATAFILE
‘/usr/oracle/dbs/systORA7.dbf’,
‘/usr/oracle/dbs/rbsORA7.dbf’,
‘/usr/oracle/dbs/tempORA7.dbf’,
‘/usr/oracle/dbs/userORA7.dbf’,
‘/usr/oracle/dbs/dataORA7.dbf’
MAXLOGFILES 10
MAXDATAFILES 60;
[REUSE] 기존에 CONTROL FILE이 존재하는 경우에 사용. 생략하면
?/dbs 디렉토리에 CONTROL FILE이 없어야 한다.
[SET] 데이타베이스 이름을 변경할 때 사용
5. ?/dbs/initORA7 혹은 ?/dbs/config.ora(ORACLE7의 경우) FILE 내의
CONTROL_FILES PARAMETER에 새로 생성된 CONTROL FILE을 추가한다.
CONTROL_FILES = (/usr/oracle/dbs/ctrl1ORA7.ctl,
/usr/oracle/dbs/ctrl2ORA7.ctl)
6. 데이타베이스를 MOUNT, RECOVER, OPEN한다.
SQLDBA> SHUTDOWN
SQLDBA> STARTUP MOUNT
[NORESETLOGS] OPTION을 사용한 경우
SQLDBA> RECOVER DATABASE
SQLDBA> ALTER DATABASE OPEN;
[RESETLOGS] OPTION을 사용한 경우
SQLDBA> RECOVER DATABASE
USING BACKUP CONTROLFILE
UNTIL CANCEL;
SQLDBA> ALTER DATABASE OPEN RESETLOGS;