ORA-00255๋?
ORA-00255๋ Oracle ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์นด์ด๋ธ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋กํ๋ ค๋ ๊ณผ์ ์์ ์คํจํ์ ๋ ๋ฐ์ํ๋ ์๋ฌ์ ๋๋ค. ARCHIVELOG ๋ชจ๋๋ก ์ด์ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์จ๋ผ์ธ ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ด ๊ฝ ์ฐจ ์์นด์ด๋น์ด ํ์ํ ์์ ์ ์์นด์ด๋ธ ๋์ ๊ฒฝ๋ก์ ํ์ผ์ ์ฐ์ง ๋ชปํ ๊ฒฝ์ฐ ์ด ์๋ฌ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ์ด ์๋ฌ๊ฐ ์ง์๋๋ฉด ์์นด์ด๋น์ด ์ค๋จ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด๊ฐ hang ์ํ์ ๋น ์ง ์ ์์ผ๋ฏ๋ก ์ฆ๊ฐ์ ์ธ ์กฐ์น๊ฐ ๋ฐ๋์ ํ์ํฉ๋๋ค.
์ฃผ์ ๋ฐ์ ์์ธ
1. ์์นด์ด๋ธ ๋ก๊ทธ ๋์ ๊ฒฝ๋ก์ ๋์คํฌ ๊ณต๊ฐ ๋ถ์กฑ
๊ฐ์ฅ ํํ๊ณ ์น๋ช
์ ์ธ ์์ธ์
๋๋ค. LOG_ARCHIVE_DEST ๋๋ LOG_ARCHIVE_DEST_n ํ๋ผ๋ฏธํฐ๋ก ์ค์ ๋ ๊ฒฝ๋ก์ ํ์ผ์์คํ
์ฌ์ ๊ณต๊ฐ์ด ์์ง๋๋ฉด ์์นด์ด๋น์ด ์ฆ์ ์คํจํฉ๋๋ค. ํนํ ๋ฐฐ์น ์์
์ด๋ ๋์ฉ๋ DML์ด ์ง์ค๋๋ ์๊ฐ๋์ ๊ฐ์๊ธฐ ์์นด์ด๋ธ ๋ก๊ทธ๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ์ฌ ๋์คํฌ๋ฅผ ๊ฐ๋ ์ฑ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ์ค๋ฌด์์ ๋งค์ฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค.
2. ์์นด์ด๋ธ ๋์ ๊ฒฝ๋ก์ ์๋ชป๋ ์ค์ ๋๋ ์ ๊ทผ ๊ถํ ๋ฌธ์
LOG_ARCHIVE_DEST_n ํ๋ผ๋ฏธํฐ์ ์ค์ ๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋, Oracle ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ OS ๊ณ์ (oracle ์ ์ )์ด ํด๋น ๋๋ ํฐ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ง๊ณ ์์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ํฉ๋๋ค. ์ด์ ์๋ฒ ๊ต์ฒด, ๋ง์ดํธ ํฌ์ธํธ ๋ณ๊ฒฝ, ๋๋ ๋ณด์ ์ ์ฑ
๋ณ๊ฒฝ ์ดํ์ ๊ฐ์๊ธฐ ์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ด ์์ธ์ ๊ฐ์ฅ ๋จผ์ ์์ฌํด์ผ ํฉ๋๋ค.
3. ARCn ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ์ฅ์
Oracle์ ์์นด์ด๋ฒ ํ๋ก์ธ์ค(ARCn)๊ฐ ๋ด๋ถ ์ค๋ฅ๋ก ์ธํด ๋น์ ์ ์ข ๋ฃ๋๊ฑฐ๋ ์๋ตํ์ง ์๋ ์ํ๊ฐ ๋๋ฉด ์์นด์ด๋น์ด ์ค๋จ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ alert log์ ARCn ๊ด๋ จ ์ถ๊ฐ ์๋ฌ ๋ฉ์์ง๊ฐ ํจ๊ป ๊ธฐ๋ก๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ๋จ์ํ ์์นด์ด๋ธ ๊ฒฝ๋ก๋ฅผ ์ ๊ฒํด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ๋ ํ๋ก์ธ์ค ์ํ๋ฅผ ๋ฐ๋์ ํ์ธํด์ผ ํฉ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์์ธ 1: ๋์คํฌ ๊ณต๊ฐ ๋ถ์กฑ ํด๊ฒฐ
๋จผ์ ํ์ฌ ์์นด์ด๋ธ ๋ก๊ทธ ๊ฒฝ๋ก์ ๊ณต๊ฐ ์ฌ์ฉ๋์ ํ์ธํฉ๋๋ค.
-- ํ์ฌ ์์นด์ด๋ธ ๋ก๊ทธ ์ค์ ๊ฒฝ๋ก ํ์ธ
SHOW PARAMETER log_archive_dest;
-- ์์นด์ด๋ธ ๋ก๊ทธ ๋ชฉ๋ก ๋ฐ ํฌ๊ธฐ ํ์ธ
SELECT NAME, BLOCKS * BLOCK_SIZE / 1024 / 1024 AS SIZE_MB, COMPLETION_TIME
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
AND DELETED = 'NO'
ORDER BY COMPLETION_TIME DESC;
-- ์์นด์ด๋ธ ๋ก๊ทธ ์ ์ฒด ๋์ ํฌ๊ธฐ ์์ฝ
SELECT TRUNC(COMPLETION_TIME, 'DD') AS LOG_DATE,
COUNT(*) AS LOG_COUNT,
ROUND(SUM(BLOCKS * BLOCK_SIZE) / 1024 / 1024, 2) AS TOTAL_MB
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
AND DELETED = 'NO'
GROUP BY TRUNC(COMPLETION_TIME, 'DD')
ORDER BY LOG_DATE DESC;
RMAN์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ ๋ฐฑ์
์๋ฃ๋ ์์นด์ด๋ธ ๋ก๊ทธ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ด์ ํ๊ฒฝ์์๋ ๋ฐ๋์ ๋ฐฑ์
์ฌ๋ถ๋ฅผ ํ์ธํ ํ ์ญ์ ํ์ญ์์ค.
-- RMAN์ ํตํ ๋ฐฑ์
์๋ฃ๋ ์์นด์ด๋ธ ๋ก๊ทธ ์ญ์ (๊ฐ์ฅ ์์ ํ ๋ฐฉ๋ฒ)
-- RMAN ์ ์ ํ ์คํ:
-- rman target /
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1'
BACKED UP 1 TIMES TO DEVICE TYPE DISK;
-- ๋๋ ํน์ ์๊ฐ ์ด์ ์ ๋ฐฑ์
๋ ์์นด์ด๋ธ ๋ก๊ทธ ์ญ์
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE - 2'
BACKED UP 2 TIMES TO DISK;
-- ์ญ์ ํ RMAN ์นดํ๋ก๊ทธ ์ ํฉ์ฑ ํ์ธ
CROSSCHECK ARCHIVELOG ALL;
์์ธ 2: ์์นด์ด๋ธ ๊ฒฝ๋ก ์ค์ ์ค๋ฅ ํด๊ฒฐ
-- ํ์ฌ ๋ชจ๋ ์์นด์ด๋ธ ๋์ ์ํ ํ์ธ
SELECT DEST_ID,
DEST_NAME,
STATUS,
TARGET,
ARCHIVER,
DESTINATION,
ERROR
FROM V$ARCHIVE_DEST
WHERE STATUS != 'INACTIVE';
-- ์๋ฌ๊ฐ ๋ฐ์ํ ์์นด์ด๋ธ ๋์ ๋นํ์ฑํ (์์ ์กฐ์น)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = '' SCOPE=BOTH;
-- ์๋ก์ด ์ ์ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝ (๊ฒฝ๋ก๊ฐ OS์ ์ค์ ์กด์ฌํด์ผ ํจ)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/archive/oradata/ORCL' SCOPE=BOTH;
-- ๋ณ๊ฒฝ ํ ์์นด์ด๋ธ ์ํ ์ฌํ์ธ
SELECT DEST_ID, STATUS, DESTINATION, ERROR
FROM V$ARCHIVE_DEST
WHERE DEST_ID <= 5;
-- ์์นด์ด๋ฒ ์ฌ๊ธฐ๋ ์์ด ์๋์ผ๋ก ๋ก๊ทธ ์ค์์น ํ ์์นด์ด๋น ์ ์ ์ฌ๋ถ ํ์ธ
ALTER SYSTEM SWITCH LOGFILE;
-- ํ์ฌ ๋ก๊ทธ ์์นด์ด๋น ์งํ ์ํฉ ๋ชจ๋ํฐ๋ง
SELECT GROUP#, STATUS, ARCHIVED FROM V$LOG;
OS ๋ ๋ฒจ์์ ๋๋ ํฐ๋ฆฌ ๊ถํ์ ํ์ธํ๊ณ ์กฐ์นํฉ๋๋ค (DBA๊ฐ ์์คํ
ํ์ ์์ฒญํ๊ฑฐ๋ ์ง์ ์ํ):
-- Oracle ๋๋ ํฐ๋ฆฌ ์ค๋ธ์ ํธ๋ฅผ ํตํ ์ ๊ทผ ํ
์คํธ (์ ํ์ฌํญ)
-- OS ๋ช
๋ น์ด๋ก ํ์ธ: ls -ld /archive/oradata/ORCL
-- ๊ถํ ๋ถ์ฌ: chown oracle:oinstall /archive/oradata/ORCL
-- DB ๋ ๋ฒจ์์ ์์นด์ด๋ธ ๋ก๊ทธ ๋ชจ๋ ์ํ ํ์ธ
SELECT LOG_MODE, ARCHIVER FROM V$DATABASE;
-- ARCn ํ๋ก์ธ์ค ํ์ฌ ์ํ ํ์ธ
SELECT PROCESS, STATUS, LOG_SEQUENCE#, STATE
FROM V$MANAGED_STANDBY
WHERE PROCESS LIKE 'ARC%';
์์ธ 3: ARCn ํ๋ก์ธ์ค ์ฅ์ ํด๊ฒฐ
-- alert log์์ ์๋ฌ ํ์ธ (Oracle 11g ์ด์)
SELECT ORIGINATING_TIMESTAMP, MESSAGE_TEXT
FROM V$DIAG_ALERT_EXT
WHERE MESSAGE_TEXT LIKE '%ARC%'
OR MESSAGE_TEXT LIKE '%ORA-00255%'
ORDER BY ORIGINATING_TIMESTAMP DESC
FETCH FIRST 30 ROWS ONLY;
-- ํ์ฌ ์์นด์ด๋ฒ ํ๋ก์ธ์ค ์ ํ์ธ
SHOW PARAMETER log_archive_max_processes;
-- ARCn ํ๋ก์ธ์ค ์๋ฅผ ๋๋ ค ์ฌ๊ธฐ๋ ์ ๋ (์ต๋ 30๊น์ง ๊ฐ๋ฅ)
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 4 SCOPE=BOTH;
-- ๊ฐ์ ๋ก๊ทธ ์ค์์น๋ก ์์นด์ด๋น ์ฌ์๋ ์ ๋
ALTER SYSTEM SWITCH LOGFILE;
-- ์์นด์ด๋น ๊ฐ์ ์คํ (ํน์ ์ํ์ค ์ฌ์์นด์ด๋น)
ALTER SYSTEM ARCHIVE LOG SEQUENCE 1234;
-- ์ ์ฒด ๋ฏธ์์นด์ด๋ธ ๋ก๊ทธ ๊ฐ์ ์์นด์ด๋น
ALTER SYSTEM ARCHIVE LOG ALL;
์๋ฐฉ ๋ฐฉ๋ฒ
1. ์์นด์ด๋ธ ๋ก๊ทธ ๊ณต๊ฐ ์๋ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ ๊ตฌ์ถ
์ด์ ํ๊ฒฝ์์๋ ์์นด์ด๋ธ ๋ก๊ทธ ๋์คํฌ ์ฌ์ฉ๋ฅ ์ด 70~80%๋ฅผ ์ด๊ณผํ๊ธฐ ์ ์ ์๋์ ๋ฐ์ ์ ์๋๋ก ๋ชจ๋ํฐ๋ง ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ๋ ๊ฒ์ด ํ์์
๋๋ค. RMAN์ ์๋ ์ญ์ ์ ์ฑ
(CONFIGURE ARCHIVELOG DELETION POLICY)๊ณผ OS ๋ ๋ฒจ์ cron ๊ธฐ๋ฐ ๋ชจ๋ํฐ๋ง์ ํจ๊ป ์ด์ํ๋ฉด ๋์ฑ ์์ ์ ์
๋๋ค.
-- RMAN ์์นด์ด๋ธ ๋ก๊ทธ ๋ณด์กด ์ ์ฑ
์ค์ (๋ฐฑ์
์๋ฃ ํ ์๋ ์ญ์ ํ์ฉ)
-- RMAN ์ ์ ํ ์คํ:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
-- ์์นด์ด๋ธ ๋ก๊ทธ ์ฌ์ฉ๋ ์กฐ๊ธฐ ๊ฒฝ๋ณด์ฉ ๋ชจ๋ํฐ๋ง ์ฟผ๋ฆฌ (cron ์ค์ผ์ค๋ฌ๋ก ์ฃผ๊ธฐ ์คํ)
SELECT DEST_ID,
DESTINATION,
SPACE_LIMIT / 1024 / 1024 / 1024 AS LIMIT_GB,
SPACE_USED / 1024 / 1024 / 1024 AS USED_GB,
ROUND((SPACE_USED / SPACE_LIMIT) * 100, 2) AS USE_PCT
FROM V$RECOVERY_FILE_DEST
WHERE SPACE_LIMIT > 0;
2. FRA(Fast Recovery Area) ์ฌ์ฉ ๋ฐ ํฌ๊ธฐ ์ ์ ํ ์ค์
LOG_ARCHIVE_DEST ๋์ FRA(DB_RECOVERY_FILE_DEST)๋ฅผ ํ์ฉํ๋ฉด Oracle์ด ๊ณต๊ฐ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ํํ๋ฏ๋ก ์ด์ ๋ถ๋ด์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. FRA ํฌ๊ธฐ๋ ์ต์ ์ผ์ผ ์์นด์ด๋ธ ๋ก๊ทธ ์์ฑ๋์ 3๋ฐฐ ์ด์, ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ถฉ๋ถํ ํ ๋นํด์ผ ํ๋ฉฐ, ์ ๊ธฐ RMAN ๋ฐฑ์
ํ ์๋์ผ๋ก ์ค๋๋ ํ์ผ์ด ์ ๋ฆฌ๋๋๋ก ์ค์ ํ๋ ๊ฒ์ด Best Practice์
๋๋ค.
-- FRA ์ค์ ํ์ธ ๋ฐ ๋ณ๊ฒฝ
SHOW PARAMETER db_recovery_file_dest;
-- FRA ๊ฒฝ๋ก ๋ฐ ํฌ๊ธฐ ์ค์ (์ค์ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ )
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/fra/oradata' SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 200G SCOPE=BOTH;
-- FRA ์ฌ์ฉ ํํฉ ์์ธ ์กฐํ
SELECT FILE_TYPE,
PERCENT_SPACE_USED,
PERCENT_SPACE_RECLAIMABLE,
NUMBER_OF_FILES
FROM V$RECOVERY_AREA_USAGE;
๊ด๋ จ ์๋ฌ
- ORA-00257: ์์นด์ด๋ฒ ํ๋ก์ธ์ค ๋ด๋ถ ์๋ฌ๋ก ์ธํด ์์นด์ด๋น์ด ์์ ํ ์ค๋จ๋ ์ํ. ORA-00255๋ณด๋ค ๋ ์ฌ๊ฐํ ๋จ๊ณ์ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ SYSDBA ์ ์๋ง ํ์ฉํ๋ ์ํ๊ฐ ๋ฉ๋๋ค.
-
ORA-19809: FRA(Fast Recovery Area) ๊ณต๊ฐ์ด
DB_RECOVERY_FILE_DEST_SIZEํ๋๋ฅผ ์ด๊ณผํ์ ๋ ๋ฐ์ํ๋ฉฐ ORA-00255์ ํจ๊ป ๋ํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. - ORA-16038: ์จ๋ผ์ธ ๋ฆฌ๋ ๋ก๊ทธ ์์นด์ด๋น ์คํจ. ORA-00255์ ์ ์ฌํ ๋งฅ๋ฝ์์ ๋ฐ์ํ๋ฉฐ alert log์์ ํจ๊ป ํ์ธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ORA-00270: ์์นด์ด๋ธ ๋ก๊ทธ ํ์ผ ์์ฑ ์ค ์๋ฌ๋ก, ORA-00255 ๋ฐ์ ์ alert log์ ์ฐ์์ผ๋ก ๊ธฐ๋ก๋๋ ๋ํ์ ์ธ ๋๋ฐ ์๋ฌ์ ๋๋ค.












