OS 환경 : Oracle Linux 8.7 (64bit)
DB 환경 : Oracle Database 19.27.0.0
방법 : 오라클 19c spfile 파라미터 파일 주석 기능
일반적으로 파라미터 파일은 바이너리 형식인 spfile을 많이들 사용함
하지만 일부 고객사에서 텍스트 형식인 pfile을 사용하는 경우가 있는데
이유를 확인해보면 오래전부터 그렇게 사용해와서 불편함을 못느꼈거나, 주석(comment)를 남길수 있어서 pfile을 사용하고 있었음
spfile도 comment를 남길수 있는데 본문에서는 spfile에 comment를 남기는 방법을 설명함
pfile 생성
|
1
2
3
|
SQL> create pfile from spfile;
File created.
|
pfile 확인
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
$ cd $ORACLE_HOME/dbs
$ ls -al init*.ora
-rw-r--r-- 1 oracle oinstall 1355 Mar 1 17:32 initORA19DBFS.ora
$ cat initORA19DBFS.ora
*._b_tree_bitmap_plans=TRUE
*.audit_file_dest='/app/oracle/admin/ORA19DBFS/adump'
*.audit_trail='none'
*.compatible='19.0.0'
*.control_files='/app/oracle/oradata/ORA19DBFS/control01.ctl','/app/oracle/oradata/ORA19DBFS/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_name='ORA19DBF'
*.db_unique_name='ORA19DBFS'
*.diagnostic_dest='/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA19DBFSXDB)'
*.local_listener='LISTENER_ORA19DBFS'
*.log_archive_dest_1='location=/app/oracle/arch'
*.log_archive_format='ORA19DBFS_%t_%s_%r.arc'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=104857600
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=1572864000
*.sga_target=1572864000
*.statistics_level='TYPICAL'
*.undo_tablespace='UNDOTBS1'
|
pfile 수정
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
$ vi initORA19DBFS.ora
#########audit parameter#########
*.audit_file_dest='/app/oracle/admin/ORA19DBFS/adump'
*.audit_trail='none'
#########audit parameter#########
#########memory parameter#########
*.pga_aggregate_target=104857600
*.sga_max_size=1572864000
*.sga_target=1572864000
#########memory parameter#########
#########archive parameter#########
*.log_archive_dest_1='location=/app/oracle/arch'
*.log_archive_format='ORA19DBFS_%t_%s_%r.arc'
#########archive parameter#########
#########system parameter#########
*.compatible='19.0.0'
*.control_files='/app/oracle/oradata/ORA19DBFS/control01.ctl','/app/oracle/oradata/ORA19DBFS/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_name='ORA19DBF'
*.db_unique_name='ORA19DBFS'
*.diagnostic_dest='/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA19DBFSXDB)'
*.local_listener='LISTENER_ORA19DBFS'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.statistics_level='TYPICAL'
*.undo_tablespace='UNDOTBS1'
#########system parameter#########
#########hidden parameter######### 20260228 added by Park
*._b_tree_bitmap_plans=TRUE
#########hidden parameter######### 20260228 added by Park
|
pfile은 이렇게 주석을 남길수 있음
하지만 spfile은 주석을 이런식으로는 남길수 없고 파라미터 변경시 comment 라는 옵션을 사용해 주석을 남길수 있음
db 종료
|
1
|
SQL> shutdown immediate
|
pfile을 이용해 spfile 생성
|
1
2
3
|
SQL> create spfile from pfile;
File created.
|
spfile은 내용을 일부 볼수는 있지만 수정할수는 없음(수정시 파일이 깨짐)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
$ vi spfileORA19DBFS.ora
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^...
*._b_tree_bitmap_plans=TRUE
*.audit_file_dest='/app/oracle/admin/ORA19DBFS/adump'
*.audit_trail='none'
*.compatible='19.0.0'
*.control_files='/app/oracle/oradata/ORA19DBFS/control01.ctl','/app/oracle/oradata/ORA19DBFS/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_name='ORA19DBF'
*.db_unique_name='ORA19DBFS'
*.diagnostic_dest='/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA19DBFSXDB)'
*.local_listener='LISTENER_ORA19DBFS'
*.log_archive_dest_1='location=/app/oracle/arch'
*.log_archive_format='ORA19DBFS_%t_%s_%r.arc'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=104857600
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=1572864000
*.sga_target=1572864000
*.statistics_level='TYPICAL'
*.undo_tablespace='UNDOTBS1'
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^...
|
db 기동(db 기동시 spfile이 우선적으로 읽혀짐)
|
1
|
SQL> startup
|
spfile로 기동됨
|
1
2
3
4
|
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /app/oracle/product/19c/dbs/spfileORA19DBFS.ora
|
일부 파라미터 변경하면서 comment 삽입
|
1
2
3
|
SQL> alter system set pga_aggregate_target = 50m comment='modified at 20260228 by Park';
System altered.
|
변경됨
파라미터 확인
|
1
2
3
4
5
6
7
8
9
10
11
|
SQL> show parameter pga_aggregate_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 50M
SQL> show spparameter pga_aggregate_target
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_target big integer 50M
|
show parameter 명령으로 파라미터 값은 변경되었지만 주석은 확인할수 없음
주석을 확인하려면 v$spparameter를 확인해야함
주석 확인
|
1
2
3
4
5
6
7
8
9
10
11
12
|
SQL>
set lines 200 pages 1000
col name for a30
col value for a10
col update_comment for a50
SELECT name, value, update_comment
FROM v$spparameter
WHERE name = 'pga_aggregate_target';
NAME VALUE UPDATE_COMMENT
------------------------------ ---------- --------------------------------------------------
pga_aggregate_target 52428800 modified at 20260228 by Park
|
정상적으로 주석(comment)를 확인할 수 있음
주석이 존재하는 파라미터만 확인
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SQL>
set lines 200 pages 1000
col name for a30
col value for a60
col update_comment for a50
SELECT name, value, update_comment
FROM v$spparameter
WHERE update_comment is not null;
NAME VALUE UPDATE_COMMENT
------------------------------ ------------------------------------------------------------ --------------------------------------------------
control_files /app/oracle/oradata/ORA19DBFS/control02.ctl Restore Controlfile
pga_aggregate_target 52428800 modified at 20260228 by Park
|
참고로 이렇게 주석을 만들고 pfile을 생성하게 되면 pfile에도 파라미터 뒤에 #로 주석이 표시됨
|
1
2
3
4
5
6
|
SQL> create pfile from spfile;
File created.
$ cat initORA19DBFS.ora | grep pga_aggregate_target
*.pga_aggregate_target=52428800#modified at 20260228 by Park
|
이 상태에서 다시 db 종료 후 pfile을 이용해 spfile 생성한 뒤 다시 v$spparameter를 확인해보면 정상적으로 주석이 보이는것을 확인할수도 있음
결론 :
spfile 파라미터 수정 시 comment를 사용해서 편리하게 주석을 남길 수 있음
언제 왜 누가 변경했는지를 간단하게라도 남겨두면 추후에 파라미터 관리가 더 용이해짐
참조 :
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-SYSTEM.html
'ORACLE > Admin' 카테고리의 다른 글
| 오라클 19c RAC 환경 ssl(tls)을 이용한 tns(tcps) 연결 설정 (0) | 2026.02.23 |
|---|---|
| 오라클 26ai 신기능 행간 제약사항 Assertion (0) | 2026.02.13 |
| 오라클 26ai cdb 기동시 pdb 자동 기동 방법 (0) | 2026.02.05 |
| 오라클 26ai On-Premise 리눅스 버전 출시 (2) | 2026.01.29 |
| 오라클 26ai 관련 MOS 문서 번호 (0) | 2026.01.23 |