- Oracle에서 아카이브 로그가 저장되는 디스크의 남은 공간을 확인하려면, 아카이브 로그의 저장 경로를 확인한 후 해당 경로의 디스크 사용량을 확인해야 합니다.
- 아래 절차를 따라 진행합니다.
아카이브 로그 저장 경로 확인
- 파라미터에서 아카이브 로그가 저장되는 경로를 확인
- LOG_ARCHIVE_DEST 또는 LOG_ARCHIVE_DEST_1 파라미터 값 조회
SHOW PARAMETER log_archive_dest; 또는 SELECT name, value FROM v$parameter WHERE name LIKE 'log_archive_dest%';
NAME VALUE -------------------------- ------------------------------ log_archive_dest_1 /u01/app/oracle/archivelog
2. 디스크 남은 공간 확인 (OS 명령어 사용)
아카이브 로그 저장 경로가 확인되면, 디스크 사용량을 확인하기 위해 운영 체제 명령어를 사용합니다.
Linux/Unix:
디스크 사용량과 남은 공간을 확인하려면 df 명령어를 사용합니다.
df -h /u01/app/oracle/archivelog
출력 예:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 60G 40G 60% /u01
• Size: 디스크의 전체 용량 • Used: 사용 중인 공간 • Avail: 남은 공간 • Use%: 사용 비율
Windows:
Windows 환경에서는 dir 명령어를 사용해 특정 경로의 남은 공간을 확인할 수 있습니다.
dir /-c "C:\oracle\archivelog"
출력 예:
100,000,000,000 bytes total disk space. 40,000,000,000 bytes available.
3. SQL을 사용해 남은 디스크 공간 확인
Oracle 내에서 PL/SQL로 디스크 남은 공간을 확인할 수도 있습니다. DBMS_SCHEDULER.FILE_WATCHER 또는 외부 OS 명령어 호출을 사용해 남은 디스크 공간을 읽어 올 수 있습니다.
PL/SQL을 통한 디스크 공간 조회 예제
DECLARE
v_free_space NUMBER;
BEGIN
-- 사용 가능한 디스크 공간 조회 SELECT ROUND(SUM(bytes_free)/1024/1024, 2) AS free_space_mb INTO v_free_space FROM v$asm_diskgroup WHERE name = 'ARCHIVELOG'; -- 아카이브 디스크 그룹 이름 입력
DBMS_OUTPUT.PUT_LINE('Available Disk Space (MB): ' || v_free_space);
END; /
DBMS_SCHEDULER로 OS 명령 호출 예제
BEGIN
DBMS_SCHEDULER.create_job( job_name => 'CHECK_DISK_SPACE', job_type => 'EXECUTABLE', job_action => '/bin/df -h /u01/app/oracle/archivelog', enabled => TRUE );
END; /
4. 디스크 남은 용량 모니터링 및 알림 설정
운영 환경에서는 디스크가 가득 차기 전에 알림을 설정하는 것이 중요합니다. 이를 위해 다음 방법을 사용할 수 있습니다: 1. Oracle Enterprise Manager (OEM): 디스크 사용량 알림 설정. 2. Shell Script: 디스크 공간을 모니터링하는 스크립트 작성 후 크론 잡 설정. 3. SQL 기반 경고: 주기적으로 디스크 남은 공간을 확인하는 SQL 작업을 스케줄러로 설정.