ORA-00200: Control File Could Not Be Created μλ²½ ν΄κ²° κ°μ΄λ
ORA-00200λ?
ORA-00200μ Oracle λ°μ΄ν°λ² μ΄μ€κ° 컨νΈλ‘€ νμΌ(Control File)μ μμ±νμ§ λͺ»ν λ λ°μνλ μλ¬μ
λλ€. 컨νΈλ‘€ νμΌμ λ°μ΄ν°λ² μ΄μ€μ 물리μ ꡬ쑰(λ°μ΄ν° νμΌ, 리λ λ‘κ·Έ νμΌ μμΉ λ±)μ λ°μ΄ν°λ² μ΄μ€ μν μ 보λ₯Ό λ΄κ³ μλ ν΅μ¬ νμΌλ‘, μ΄ νμΌ μμ΄λ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ μμ μΌλ‘ λ§μ΄νΈνκ±°λ μ€νν μ μμ΅λλ€. μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€ μμ±(CREATE DATABASE) λ¨κ³, 컨νΈλ‘€ νμΌ μ¬μμ±(CREATE CONTROLFILE) μμ
, λλ RMANμ ν΅ν 볡ꡬ κ³Όμ μμ μ΄ μλ¬κ° λ°μνλ©°, μ¦κ°μ μΈ μμΈ νμ
κ³Ό μ‘°μΉκ° νμν©λλ€.
μ£Όμ λ°μ μμΈ
1. νμΌ μμ€ν κΆν λ¬Έμ λλ λλ ν 리 λ―Έμ‘΄μ¬
Oracle νλ‘μΈμ€(μΌλ°μ μΌλ‘ oracle OS κ³μ )κ° μ»¨νΈλ‘€ νμΌμ μμ±νλ €λ κ²½λ‘μ λν μ°κΈ° κΆνμ΄ μκ±°λ, ν΄λΉ λλ ν 리 μμ²΄κ° μ‘΄μ¬νμ§ μμ λ κ°μ₯ λΉλ²νκ² λ°μν©λλ€. μλ₯Ό λ€μ΄ CONTROL_FILES νλΌλ―Έν°μ μ§μ λ κ²½λ‘κ° μ€μ OSμ μ‘΄μ¬νμ§ μκ±°λ, λ§μ΄νΈ ν¬μΈνΈκ° λλ½λ κ²½μ°κ° μ΄μ ν΄λΉν©λλ€. μ€λ¬΄μμ μ€ν λ¦¬μ§ μ¬κ΅¬μ±, μλ² μ΄μ , NFS λ§μ΄νΈ ν΄μ μ΄ν μ΄ λ¬Έμ κ° μ’
μ’
λ°μν©λλ€.
2. λμ€ν¬ κ³΅κ° λΆμ‘± (No Space Left on Device)
컨νΈλ‘€ νμΌμ΄ μμ±λ νν°μ λλ λ³Όλ₯¨μ κ°μ© λμ€ν¬ 곡κ°μ΄ λΆμ‘±ν κ²½μ°μλ ORA-00200μ΄ λ°μν©λλ€. 컨νΈλ‘€ νμΌ μ체μ ν¬κΈ°λ μμ MB μμ€μ΄μ§λ§, μ΄λ―Έ λμ€ν¬κ° κ½ μ°¬ μνλΌλ©΄ Oracleμ νμΌ μμ± μ체λ₯Ό μ€ν¨ μ²λ¦¬ν©λλ€. νΉν μμΉ΄μ΄λΈ λ‘κ·Έκ° κ³Όλνκ² μμ΄κ±°λ νΈλ μ΄μ€ νμΌμ΄ λμ€ν¬λ₯Ό μ μ νμ¬ κ³΅κ°μ΄ λΆμ‘±ν΄μ§λ μν©κ³Ό λμμ λ°μνλ κ²½μ°κ° λ§μ΅λλ€.
3. CONTROL_FILES νλΌλ―Έν° μ€μ μ€λ₯
SPFILE λλ PFILE λ΄μ CONTROL_FILES νλΌλ―Έν°μ μλͺ»λ κ²½λ‘, μ€ν, λλ μ κ·Ό λΆκ°λ₯ν κ²½λ‘κ° μ§μ λ κ²½μ°μ λ°μν©λλ€. λ°μ΄ν°λ² μ΄μ€λ₯Ό μ μλ²λ‘ λ§μ΄κ·Έλ μ΄μ
νκ±°λ λλ ν 리 ꡬ쑰λ₯Ό λ³κ²½ν μ΄ν νλΌλ―Έν° νμΌμ κ°±μ νμ§ μμ κ²½μ°, λλ CREATE CONTROLFILE ꡬ문μμ κ²½λ‘λ₯Ό μλͺ» κΈ°μ
ν κ²½μ°κ° λνμ μΈ μμ
λλ€.
ν΄κ²° λ°©λ²
μμΈ 1 ν΄κ²°: λλ ν 리 μμ± λ° κΆν λΆμ¬
λ¨Όμ alert logμ trace νμΌμ νμΈνμ¬ μ νν μ΄λ κ²½λ‘μμ μ€ν¨νλμ§ νμ
ν©λλ€.
-- alert log μμΉ νμΈ
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';
-- νμ¬ CONTROL_FILES νλΌλ―Έν° νμΈ
SHOW PARAMETER CONTROL_FILES;
-- λλ
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'control_files';
νμΈ ν OS λ 벨μμ λλ ν 리λ₯Ό μμ±νκ³ κΆνμ λΆμ¬ν©λλ€.
# OS λͺ
λ Ήμ΄ (root λλ oracle κ³μ )
mkdir -p /u01/app/oracle/oradata/ORCL
chown oracle:oinstall /u01/app/oracle/oradata/ORCL
chmod 750 /u01/app/oracle/oradata/ORCL
# λμ€ν¬ λ§μ΄νΈ νμΈ
df -h /u01/app/oracle/oradata/ORCL
ls -ld /u01/app/oracle/oradata/ORCL
λλ ν 리 μμ± ν λ°μ΄ν°λ² μ΄μ€λ₯Ό λ€μ μμν©λλ€.
-- DB μ¬κΈ°λ μλ
STARTUP NOMOUNT;
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
μμΈ 2 ν΄κ²°: λμ€ν¬ κ³΅κ° ν보 ν μ¬μμ±
# OSμμ λμ€ν¬ μ¬μ©λ νμΈ
df -h
du -sh /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/*
# μ€λλ νΈλ μ΄μ€ νμΌ μ 리 (30μΌ μ΄μ)
find /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ -name "*.trc" -mtime +30 -delete
find /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ -name "*.trm" -mtime +30 -delete
μμΉ΄μ΄λΈ λ‘κ·Έλ‘ μΈν κ³΅κ° λΆμ‘± μ RMANμ νμ©νμ¬ μ 리ν©λλ€.
-- RMANμΌλ‘ μ€λλ μμΉ΄μ΄λΈ λ‘κ·Έ μμ
-- (λ°±μ
μλ£λ μμΉ΄μ΄λΈ λ‘κ·Έλ§ μμ )
rman target /
# RMAN ν둬ννΈμμ μ€ν
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
κ³΅κ° ν보 ν 컨νΈλ‘€ νμΌμ μ¬μμ±ν©λλ€.
-- 컨νΈλ‘€ νμΌ μ¬μμ± μμ
-- NOMOUNT μνμμ μ€ν
STARTUP NOMOUNT;
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/ORCL/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/ORCL/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/ORCL/redo03.log' SIZE 50M
DATAFILE
'/u01/app/oracle/oradata/ORCL/system01.dbf',
'/u01/app/oracle/oradata/ORCL/sysaux01.dbf',
'/u01/app/oracle/oradata/ORCL/undotbs01.dbf',
'/u01/app/oracle/oradata/ORCL/users01.dbf'
CHARACTER SET AL32UTF8;
μμΈ 3 ν΄κ²°: CONTROL_FILES νλΌλ―Έν° μμ
SPFILEμ μ¬μ©νλ κ²½μ° νλΌλ―Έν°λ₯Ό μμ ν©λλ€.
-- νμ¬ SPFILE μ¬μ© μ¬λΆ νμΈ
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'spfile';
-- SPFILEμμ CONTROL_FILES νλΌλ―Έν° μμ (NOMOUNT μνμμλ κ°λ₯)
-- λ¨Όμ PFILEλ‘ μΆμΆ
CREATE PFILE='/tmp/init_backup.ora' FROM SPFILE;
PFILEμ ν
μ€νΈ νΈμ§κΈ°λ‘ μ΄μ΄ κ²½λ‘λ₯Ό μμ ν ν λ€μ SPFILEλ‘ λ³νν©λλ€.
-- pfileμ μ§μ μμ ν λ€ spfile μ¬μμ±
CREATE SPFILE FROM PFILE='/tmp/init_backup.ora';
-- λλ SPFILE μ§μ μμ (λ§μ΄νΈ κ°λ₯ν κ²½μ°)
ALTER SYSTEM SET CONTROL_FILES=
'/u01/app/oracle/oradata/ORCL/control01.ctl',
'/u01/app/oracle/fast_recovery_area/ORCL/control02.ctl'
SCOPE=SPFILE;
μμ ν DBλ₯Ό μ¬κΈ°λνμ¬ μ μ μ¬λΆλ₯Ό νμΈν©λλ€.
-- μ¬κΈ°λ λ° νμΈ
SHUTDOWN IMMEDIATE;
STARTUP;
-- 컨νΈλ‘€ νμΌ μ μ μΈμ νμΈ
SELECT STATUS, NAME FROM V$CONTROLFILE;
-- 컨νΈλ‘€ νμΌ μμΈ μ 보 νμΈ
SELECT * FROM V$CONTROLFILE_RECORD_SECTION;
μλ°© λ°©λ²
1. 컨νΈλ‘€ νμΌ λ€μ€ν λ° μ κΈ°μ μΈ λ°±μ μ μ± μ립
컨νΈλ‘€ νμΌμ λ°λμ μλ‘ λ€λ₯Έ λμ€ν¬(λλ ASM λμ€ν¬ κ·Έλ£Ή)μ μ΅μ 3κ° μ΄μ λ€μ€ννμ¬ κ΄λ¦¬ν΄μΌ ν©λλ€. λ¨μΌ μ§μ μ₯μ (SPOF)λ‘ μΈν΄ λͺ¨λ 컨νΈλ‘€ νμΌμ΄ μμλλ μν©μ λ°©μ§ν μ μμ΅λλ€. λν RMANμ ν΅ν΄ μ κΈ°μ μΌλ‘ 컨νΈλ‘€ νμΌ μλ λ°±μ
μ νμ±ννκ³ , BACKUP CURRENT CONTROLFILE λͺ
λ Ή λλ CONFIGURE CONTROLFILE AUTOBACKUP ON μ€μ μ ν΅ν΄ μ£Όμ ꡬ쑰 λ³κ²½ μλ§λ€ μλ λ°±μ
μ΄ μνλλλ‘ κ΅¬μ±ν©λλ€.
-- 컨νΈλ‘€ νμΌ μλ λ°±μ
νμ±ν (RMAN)
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/cf_%F';
-- νμ¬ λ€μ€ν μν νμΈ
SELECT NAME FROM V$CONTROLFILE;
2. λμ€ν¬ κ³΅κ° λ° νμΌ μμ€ν λͺ¨λν°λ§ μλν
λμ€ν¬ κ³΅κ° λΆμ‘±μ μμΈ‘ κ°λ₯ν λ¬Έμ μμλ λΆκ΅¬νκ³ μ€λ¬΄μμ μμ£Ό κ°κ³Όλ©λλ€. Oracle Enterprise Manager(OEM), Zabbix, Nagios λ±μ λͺ¨λν°λ§ λꡬλ₯Ό νμ©νμ¬ μ£Όμ νμΌ μμ€ν
μ μ¬μ©λ₯ μ΄ 80%λ₯Ό μ΄κ³Όνλ©΄ μ¦μ μλ¦Όμ΄ λ°μ‘λλλ‘ μκ³μΉλ₯Ό μ€μ ν©λλ€. μμΈλ¬ μμΉ΄μ΄λΈ λ‘κ·Έ μλ μμ μ μ±
κ³Ό νΈλ μ΄μ€ νμΌ μλ μ 리 μ€ν¬λ¦½νΈλ₯Ό cron jobμΌλ‘ λ±λ‘νμ¬ μ΄μ μ€ κ³΅κ° κ³ κ° μν©μ μ¬μ μ λ°©μ§ν©λλ€.
-- μμΉ΄μ΄λΈ λ‘κ·Έ κ³΅κ° μ¬μ© νν© νμΈ
SELECT DEST_NAME, STATUS, TARGET, ARCHIVER,
SCHEDULE, DESTINATION, BINDING
FROM V$ARCHIVE_DEST
WHERE STATUS = 'VALID';
-- FRA(Fast Recovery Area) μ¬μ©λ₯ νμΈ
SELECT SPACE_LIMIT/1024/1024/1024 AS LIMIT_GB,
SPACE_USED/1024/1024/1024 AS USED_GB,
ROUND(SPACE_USED/SPACE_LIMIT*100, 2) AS USED_PCT
FROM V$RECOVERY_FILE_DEST;
κ΄λ ¨ μλ¬
| μλ¬ μ½λ | μ€λͺ |
|---|---|
| ORA-00201 |
control file version incompatible β 컨νΈλ‘€ νμΌμ λ²μ μ΄ Oracle μννΈμ¨μ΄ λ²μ κ³Ό νΈνλμ§ μμ λ λ°μ. μ
κ·Έλ μ΄λ λλ λ€μ΄κ·Έλ μ΄λ ν μ£Όλ‘ λνλ¨. |
| ORA-00202 |
control file: 'string' β 컨νΈλ‘€ νμΌ μ κ·Ό μ€ λ°μν νμ μλ¬λ‘, ORA-00200κ³Ό ν¨κ» μ€ν ννλ‘ μΆλ ₯λλ κ²½μ°κ° λ§μ. μ νν νμΌ κ²½λ‘μ λ¬Έμ λ₯Ό νΉμ ν λ μ μ©. |
| ORA-00210 |
cannot open the specified control file β μ§μ λ 컨νΈλ‘€ νμΌμ μ΄ μ μλ κ²½μ° λ°μ. νμΌμ΄ μ‘΄μ¬νμ§ μκ±°λ μμλ κ²½μ° λνλ¨. |
| ORA-00227 |
corrupt block detected in control file β 컨νΈλ‘€ νμΌ λ΄λΆμ λΈλ‘μ΄ μμλ κ²½μ° λ°μ. νλμ¨μ΄ μ€λ₯λ λΉμ μ μ’
λ£ μ΄ν λνλ μ μμΌλ©°, 컨νΈλ‘€ νμΌ μ¬μμ±μ΄ νμ. |
| ORA-01503 |
CREATE CONTROLFILE failed β CREATE CONTROLFILE λͺ
λ Ή μμ²΄κ° μ€ν¨νμ λ λ°μνλ μμ μλ¬λ‘, ORA-00200κ³Ό ν¨κ» λ°μνμ¬ κ·Όλ³Έ μμΈ νμ
μ νμ©. |
π‘ DBA μ€λ¬΄ ν: ORA-00200 λ°μ μ κ°μ₯ λ¨Όμ
$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<SID>.logνμΌμ νμΈνμΈμ. Alert logμλ μ€ν¨ν κ²½λ‘μ OS λ 벨μ μλ¬ λ©μμ§κ° ν¨κ» κΈ°λ‘λμ΄ μμ΄ μμΈμ λΉ λ₯΄κ² νΉμ ν μ μμ΅λλ€. 컨νΈλ‘€ νμΌ κ΄λ ¨ μμ μ μλ λ°












