DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

DATABASE/Oracle

[Oracle] 파라미터 변경 방법

DBnA 2023. 8. 25. 23:17

앞서 파라미터 파일에 관하여 알아봤습니다.

이번에는 파일 수정 방법을 알아보겠습니다.

 

DB 서버를 협력회사에 오픈하게 되면서, 특정 테이블의 select 권한만 가진 유저를 생성하였고,

AUD$ 테이블에서 해당 유저가 실행한 ddl, dml 문의 sqltext 확인을 위해 audit_trail 파라미터 변경을 진행했습니다.

 

이때 진행한 파라미터 수정 방법을 기록해보겠습니다.

 

 

1. SPFILE, PFILE 인지 확인

 

우선 운영중인 DB가 SPFILE 방식인지 PFILE 방식인지 확인이 필요합니다.

SQL> show parameter pfile;

 

-> value 값이면 pfile 방식, 값이 있으면 spfile 방식

 

 

2. ALTER SYSTEM 명령어를 통한 변경 여부 확인

 

SQL> select name, issys_modifiable from v$parameter where name = 'audit_trail';

 

-> 1번에서 pfile환경임을 확인, pfile경우에는 issys_modifiable 값이 false 이므로 alter system 통해 변경이 불가능하다.

pfile vi로직접 수정 재기동이 필요함

( spfile 경우, alter system scop=spfile 변경가능 하나 재기동 반영됨)

 

3. pfile 수정 ( pfile 방식이므로 initSID.ora 파일 수정 )

 

cd /engn/oracle/product/11.2.0/dbs

vi initORCLDEV2.ora

*.audit_trail = db -> db, extended 로 변경하였습니다.

 

extended를 추가하면 실행 쿼리까지 audit에 저장됩니다.

 

 

4. 오라클 재기동

vi편집기도 직접 수정 후 오라클을 재기동해야 파라미터가 반영됩니다.

 

( 실제 운영상황에서 재기동하는 것은 쉽지 않으므로 파라미터 변경은 정기 PM이나 잠시 리스너를 종료시켜도 될때 등

운영 환경에 맞추어 변경 진행하면 됩니다. )

 

5. 변경 내역 확인

 

SQL> show parameter audit_trail;

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_trail                          string      DB, EXTENDED

 

재기동 후 파라미터 확인하면, 잘 적용된 걸 확인할 수 있습니다.

 

6. audit 하려는 유저에 Audit 걸어줌


audit select table, insert table, delete table, update table by [user명]; --dml
audit table, alter table by [user명]; --ddl

 

 

sys.AUD$ 테이블 SQLTEXT 컬럼에 실행쿼리가 저장된 걸 확인할 수 있습니다.