12c 버전 이상
Data Pump Import(impdp) 실행 시 아카이브 로그 발생을 최소화하려면,
TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y 옵션을 사용하면 됩니다.
이 옵션은 impdp 작업 중에 생성되는 테이블과 인덱스 유형에만 유효합니다.
아카이브 로그 발생 최소화
대량 데이터 삽입(예, Direct Path Insert)이나 인덱스 재구성 등,
데이터 블록 변경 내역에 대한 redo 로그가 최소한으로 기록(“NOLOGGING 작업이 있었다”라는 정도)되어 아카이브 로그의 양을 줄일 수 있습니다.
사용 방법
$ impdp system/password DIRECTORY=dpump_dir1 DUMPFILE=mydump.dmp TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
아래와 같이 특정 테이블이나 인덱스에 대해서 아카이브 로깅을 비활성화할 수도 있습니다.
transform=disable_archive_logging:Y
transform=disable_archive_logging:Y:tablename
transform=disable_archive_logging:Y:indexname
주의사항
데이터베이스가 Force Logging 모드로 되어 있다면, 해당 옵션은 동작하지 않습니다.
(아카이브 로그 모드에 대한 사전 확인이 필요합니다)
SQL> select log_mode,force_logging from v$database;
LOG_MODE FORCE_LOGGING
------------ ---------------------------------------
ARCHIVELOG NO
데이터의 무결성과 복구를 고려한 운영 환경에서는 로그 기록을 완전히 비활성화하는 것이 위험할 수 있으므로,
사용 전에 충분한 테스트가 필요합니다.
옵션 사용 관련해서 버그가 많은 것 같습니다.
- Doc ID 3027067.1 : BLOB 컬럼이 있는 테이블 disable_archive_logging:Y 옵션 미동작
- Doc ID 2729640.1 : remap_table 옵션과 같이 사용시 disable_archive_logging:Y 옵션 미동작
11g 버전 이하
Oracle 11g 이하 버전에서는 아카이브 로그 생성을 완전히 제어할 수 있는 직접적인 옵션이 없으므로,
아카이브 로그 생성량을 줄이려면 다음과 같은 대체 방안을 고려해야 합니다.
수동 NOLOGGING 모드 설정
데이터 임포트 작업에 사용되는 테이블이나 인덱스를 NOLOGGING 모드로 변경하면,
해당 작업에서 발생하는 로그 양을 줄일 수 있습니다.
1) content=metadata_only 옵션을 주고 impdp 실행
$ impdp system/password DIRECTORY=dpump_dir1 DUMPFILE=mydump.dmp content=metadata_only
2) 테이블 nologging 설정
SQL> alter table 테이블명 nologging;
3) content=data_only 옵션을 주고 impdp 실행
$ impdp system/password DIRECTORY=dpump_dir1 DUMPFILE=mydump.dmp content=data_only
아카이브 로그 모드 비활성화(재기동 필요)
데이터베이스를 NOARCHIVELOG 모드로 전환하는 방법도 있습니다.
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database noarchivelog;
SQL> alter database open;
LOB 컬럼이 포함된 경우
LOB 컬럼 Nologging 설정
SQL> alter table 테이블명 modify LOB (랍컬럼명) ( nocache nologging );
'Database > Oracle' 카테고리의 다른 글
[Oracle] Basicfile vs Securefile (0) | 2025.02.25 |
---|---|
[Oracle] DB Link 재생성(삭제 후 생성) (0) | 2025.02.25 |
[Oracle] max_string_size 변경 방법(RAC 환경, DB 재기동 필요) (0) | 2025.02.21 |
[Oracle] Undo Extent 상태별 사용량 조회(Status 설명) (0) | 2025.02.21 |
[Oracle] Undo Extent 상태별(active, unexpired, expired) 사용량 모니터링 스크립트(Linux) (0) | 2025.02.21 |