Oracle Database SPFILEからPFILEを作成する方法

スポンサーリンク
ORACLE

SPFILEはバイナリファイルなので、catコマンド等では中身を確認することはできせん。

(stringsコマンドでバイナリファイルからテキストを抜き出すことはできますが。)

今回は現状のパラメータをSPFILEからテキスト形式のPFILEに書き出す方法を紹介します。

PFILEへの書き出しSQL

以下のSQLでSPFILEからPFILEとしてパラメータを出力することが出来ます。

create pfile='<出力PFILE名>’ from spfile;

[oracle@dekisrv ~]$ sqlplus / as sysdba

Connected to:

SQL> create pfile='/tmp/dekiru_init.ora' from spfile;

File created.

SQL> exit

出力されたPFILEの確認

PFILEはテキストファイルなので、catコマンド等でOracle Databaseのパラメータを確認できます。

[oracle@dekisrv ~]$ cat /tmp/dekiru_init.ora
18CDB.__data_transfer_cache_size=0
18CDB.__db_cache_size=2181038080
18CDB.__inmemory_ext_roarea=0
18CDB.__inmemory_ext_rwarea=0
18CDB.__java_pool_size=16777216
18CDB.__large_pool_size=33554432
18CDB.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
18CDB.__pga_aggregate_target=1006632960
18CDB.__sga_target=3003121664
18CDB.__shared_io_pool_size=150994944
18CDB.__shared_pool_size=603979776
18CDB.__streams_pool_size=0
*._allow_insert_with_update_check=TRUE
*.audit_file_dest='/u01/app/oracle/admin/18CDB/adump'
*.audit_trail='DB'
*.cluster_database=FALSE
*.compatible='18.0.0'
*.control_files='/u01/app/oracle/oradata/18CDB/control01.ctl','/u01/app/oracle/oradata/18CDB/control02.ctl'
*.db_block_size=8192
*.db_name='18CDB'
*.db_securefile='PERMITTED'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=18CDBXDB)'
*.local_listener='LISTENER_18CDB'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.parallel_max_servers=8
*.parallel_min_servers=0
*.pga_aggregate_target=1000000000
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.session_cached_cursors=200
*.sga_target=30000000000
*.shared_pool_size=603979776
*.undo_tablespace='UNDOTBS1'

パラメータ変更前は、切り戻しのために確実にPFILEとしてバックアップを取得しておくことをオススメします。