아카이브 로그 크기를 확인하는 방법
이 게시물에서는 다음 3 가지 주제에 대해 이야기 할 것입니다.
- 아카이브 로그 크기를 정의하는 방법?
- 모든 아카이브 로그가 같은 크기입니까?
- 아카이브 로그 크기를 확인하는 방법?
아카이브 로그 크기를 정의하는 방법?
보관된 로그 크기를 결정하기 전에 보관된 로그가 온라인 다시 실행 로그 전환에서 파생되었음을 알아야 합니다. 즉,보관 된 로그는 사용 중지되고 온라인 다시 실행 로그가 복사됩니다. 즉,보관된 로그 크기를 결정하는 것이 아니라 온라인 다시 실행 로그 크기를 결정하는 것입니다.
평균 복구 시간 정의
이제 질문은 온라인 다시 실행 로그에 대해 적절하고 최적의 크기를 설정하는 방법입니다. 우리에게 간단한 대답이 있습니다. 현재 인스턴스 구성에서 최적의 값을 얻을 수 있습니다.
먼저 0 이 아닌 다른 값으로 설정되어 있는지 확인해야 합니다.
SQL> show parameter fast_start_mttr_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_mttr_target integer 1800
최적 재실행 로그 크기 확인
빠른 시작 대상을 설정 한 경우 이 경우 1800 초,이 쿼리로 로그 파일 크기를 최적화하기위한 권고 값을 얻을 수 있습니다.
SQL> select target_mttr, estimated_mttr, optimal_logfile_size from v$instance_recovery;
TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE
----------- -------------- --------------------
146 21 1469
당신이 볼 수 있듯이,세 번째 열 최적 _로그 파일_크기는 대답이다. 오라클은 1 천 4 백 69 메가바이트에 다시 실행 로그 크기를 설정하는 것이 좋습니다.
다음으로 권장 크기에 맞게 다시 실행 로그의 크기를 조정해야 할 수 있습니다.
비.모든 아카이브 로그가 같은 크기입니까?
대부분 보관된 로그의 크기는 같지만 다음 요인의 영향을 받을 수 있습니다.
모든 재실행 로그가 동일한 크기로 정의됩니까?
모든 재실행 로그 그룹과 멤버를 같은 크기로 정의해야 하지만,몇몇 데이터베이스에 재실행 로그 간에 서로 다른 크기가 정의되어 있는 것을 볼 수 있습니다. 일반적으로 데이터베이스를 만든 후 더 큰 재실행 로그가 추가됩니다. 그래서 우리는 다른 크기의 보관 된 로그를 보았습니다.
로그 스위치 간격을 설정 한 적이 있습니까?
로그 스위칭은 아카이브 주파수를 제어하는 데 도움이 되는 아카이브 태그 대상 초기화 매개변수를 설정하여 고정된 간격으로 수행할 수 있습니다.
매개 변수가 기본값(0,사용 안 함)이 아닌 다른 값으로 설정된 경우 다시 실행 로그가 채워지기 전에 일부 로그 전환이 발생합니다. 이러한 조기 재실행 로그는 다른 크기의 보관 로그를 만듭니다.
로그 전환 간격 설정 외에도 아카이브된 로그로 데이터베이스 백업을 수행하면 로그 전환이 트리거됩니다. 예를 들어 다음과 같이 자체 포함 된 전체 백업을 원합니다:
RMAN> backup database plus archivelog;
Starting backup at 27-JUN-16
current log archived
...
Starting backup at 27-JUN-16
current log archived
...
전체 백업 전후에 2 개의 재실행 로그가 보관되었습니다. 그들은 정의 된 크기보다 작습니다.
기음. 아카이브 로그 크기를 확인하는 방법?
이제 주요 주제 인 데이터베이스에서 아카이브 로그 크기를 확인하는 방법으로 돌아가 보겠습니다.
각 보관된 로그의 크기
각 보관된 로그의 크기를 보려면 다음을 쿼리합니다.:
SQL> column name format a50;
SQL> column "Size (MB)" format 9999.999;
SQL> select sequence#, name, blocks*block_size/1024/1024 "Size (MB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
SEQUENCE# NAME Size (MB)
---------- -------------------------------------------------- ---------
175398 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175398.arc 1023.999
175399 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175399.arc 1023.999
175400 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175400.arc 749.232
175401 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175401.arc 43.875
175402 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175402.arc 727.369
175403 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175403.arc 6.957
175404 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175404.arc 1023.993
175405 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175405.arc 1023.999
...
모든 단일 아카이브 로그의 크기는 블록 크기 열에 블록을 곱하여 계산할 수 있습니다. 또한 24 시간 내에 완료되고 주 데이터베이스에서 사용할 수 있는 보관된 로그만 계산했습니다.
당신이 볼 수 있듯이,모든 아카이브 로그가 같은 크기에있는,대부분의 아카이브 로그는 1 천 24 메가바이트(즉,1 기가바이트)에 있습니다.
보관된 모든 로그의 크기
사용 가능한 모든 로그
주 데이터베이스 서버에서 사용 가능한 보관된 로그의 전체 크기를 보려면 다음과 같이 할 수 있습니다:
SQL> sselect sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO';
Total Size (GB)
---------------
436.632
우리가 볼 수 있듯이,우리는 보관 된 로그의 4 백기가바이트 이상이,우리는 지금부터 더 적극적으로 삭제해야합니다.
지난 24 시간
주 데이터베이스 서버에서 지난 24 시간 동안 사용 가능한 모든 아카이브된 로그 크기를 합산하려면 다음과 같이 할 수 있습니다:
SQL> column "Total Size (GB)" format 9999.999;
SQL> select sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
Total Size (GB)
---------------
101.828
보관된 로그의 시간 범위를 제한하는 필터를 추가했습니다.