Dameng DM8データベースのパラメーター変更について

Dream 8のパラメーターファイルはdm.iniです。これは、手動で編集するか、データベースでの変更後に自動的に同期することができます。これは、統合されたoracle pfile plus spfile関数と同様です。

パラメータを表示するには、v $ dm_iniまたはv $ parameterビューを使用して、パラメータ値、ファイルの値、セッションの値、およびパラメータタイプをクエリできます。もちろん、DM8が提供する関数パッケージを使用して、SF_GET_PARA_VALUE、SF_GET_PARA_DOUBLE_VALUE、SF_GET_PARA_STRING_VALUEをクエリすることもできます。

SQL>  select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='TIMER_TRIG_CHECK_INTERVAL';

行号     PARA_NAME                 PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------------------- ---------- ---------- ---------- ---------
1          TIMER_TRIG_CHECK_INTERVAL 60         60         60         SYS

Dream 8のパラメーターは、次のタイプに分類できます:
1.読み取り
専用:手動パラメーター、つまり、操作中にサーバーを変更できないこと; 2. IN FILE:静的パラメーター、変更できるのはiniファイルのみ;
3. SYSとセッション:動的パラメータ、iniファイル、メモリは、SYSシステムレベルのパラメータの中で同時に変更できます。

SQL> select distinct para_type from v$dm_ini;

行号     PARA_TYPE
---------- ---------
1          READ ONLY
2          SYS
3          IN FILE
4          SESSION

已用时间: 7.713(毫秒). 执行号:2016.
SQL> 

静的:動的に変更でき、変更はサーバーの再起動後に有効になります。
動的:動的に変更でき、変更後すぐに有効になります。動的パラメータは、セッションレベルとシステムレベルに分けられます。セッションレベルのパラメーターが変更された後、新しいパラメーター値は新しく作成されたセッションにのみ影響し、以前に作成されたセッションは影響を受けません。システムレベルのパラメーターの変更はすべてのセッションに影響します。
手動:動的に変更することはできません。手動でdm.iniパラメータファイルを変更し、再起動して有効にする必要があります。

1.パラメーターを変更する方法:
1. SP_SET_PARA_VALUE(スコープint、パラネームvarchar(256)、値int64)
このプロセスは、整数の静的構成パラメーターと動的構成パラメーターを変更するために使用されます。SCOPEパラメータが1の場合、パラメータ値はメモリとINIファイルの両方で変更されます。現時点では、動的構成パラメータのみを変更できます。パラメーター2は、INIファイルで構成パラメーターのみが変更されることを意味します。現時点では、静的構成パラメーターと動的構成パラメーターの変更に使用できます
。2、SP_SET_PARA_DOUBLE_VALUE(scope int、paraname varchar(8187)、value double)
このプロセスは、浮動小数点の静的パラメーターを変更するために使用されます構成パラメーターと動的構成パラメーター。SCOPEパラメータが1の場合、パラメータ値はメモリとINIファイルの両方で変更されます。現時点では、動的構成パラメータのみを変更できます。パラメーター2は、INIファイルで変更できるのは構成パラメーターのみであることを意味します。現時点では、静的構成パラメーターと動的構成パラメーターを変更するために使用でき
ます。3. SP_SET_PARA_STRING_VALUE()
このプロセスは、文字列型の静的構成パラメーターと動的構成パラメーターを変更するために使用されます。SCOPEパラメータが1の場合、パラメータ値はメモリとINIファイルの両方で変更されます。現時点では、動的構成パラメータのみを変更できます。パラメーター2は、INIファイルで変更できるのは構成パラメーターのみであることを意味します。現時点では、静的構成パラメーターと動的構成パラメーターの変更に使用できます
。4. SF_SET_SYSTEM_PARA_VALUE(paraname varchar(256)、value int64 \ double \ varchar(256)、deferred int、scope int64 )
このプロセスは、システムinteger、double、およびvarcharの静的構成パラメーターまたは動的構成パラメーターを変更するために使用されます。DEFERREDパラメータ、0は現在のセッションの変更されたパラメータがすぐに有効になることを意味し、1は現在のセッションが有効にならず、後で有効になることを意味します。デフォルトは0です。SCOPEパラメータが1の場合、パラメータ値はメモリとINIファイルの両方で変更されます。現時点では、動的構成パラメータのみを変更できます。パラメータ2は、構成パラメータがINIファイルでのみ変更されることを意味します。現時点では、静的構成パラメータと動的構成パラメータの変更に使用できます。
5. SF_SET_SESSION_PARA_VALUE(paraname varchar(8187)、value bigint)は
、セッションレベルのINIパラメータの値を設定します。パラメータ値セットは、このセッションでのみ有効です。
6. ALTER SYSTEM SET 'パラメータ名' = 'パラメータ値' [DEFERRED] [MEMORY | BOTH | SPFILE];
パラメータ名:静的パラメータ、システムパラメータsys、セッションパラメータセッションにすることができます; DEFERREDは動的パラメータにのみ使用できます。DEFERREDを指定すると、パラメーター値は遅延後に有効になり、現在のセッションでは有効にならず、新しく作成されたセッションでのみ有効になります。デフォルトでは、現在のセッションと新しく作成されたセッションの両方で、すぐに有効になります。[MEMORY | BOTH | SPFILE]有効な場所を指定します。このうち、MEMORYはメモリ内の値のみを変更し、SPFILEはfile_value内の値のみを変更し、BOTHは両方を変更します。デフォルトではMEMORYです。静的パラメータの場合、指定できるのはSPFILEのみです。
7. ALTER SESSION SET 'パラメータ名' = 'パラメータ値' [PURGE];
パラメータ名は動的なセッションレベルのパラメータ名を参照します[PURGE]は実行プランをクリーンアップするかどうかを参照します 設定値は現在のセッションでのみ有効です。PURGEオプションを含めると、サーバーによって保存されたすべての実行プランがクリアされます。

2.異なるパラメータータイプに対応する変更方法は次のとおりです:
1
.読み取り専用dm.iniを手動で編集するデータベースを閉じた後で編集することをお勧めします。実験により、データベースのオープン状態も編集できることが証明されており、データベースの再起動後に有効になります。

以下は、dm.iniのパラメーターUTHR_FLAGを手動で1に編集するプロセスです。

SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='UTHR_FLAG';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- --------- ---------- ---------- ---------- ---------
1          UTHR_FLAG 0          0          0          READ ONLY

编辑dm.ini,修改UTHR_FLAG=1(步骤不做展示)

再次查看该参数发现FILE_VALUE已经变成了1,说明已经手动在ini文件中进行了修改。
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='UTHR_FLAG';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- --------- ---------- ---------- ---------- ---------
1          UTHR_FLAG 0          0          1          READ ONLY

重启数据库后再次查看参数情况,参数已经修改过来了。

SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='UTHR_FLAG';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- --------- ---------- ---------- ---------- ---------
1          UTHR_FLAG 1          1          1          READ ONLY

2. INFILE:
変更後、再起動して有効にし、SP_SET_PARA_VALUE(整数型の変更、スコープ選択2)、SP_SET_PARA_STRING_VALUE(文字列型の変更、スコープ選択2)を
使用するか、ALTER SYSTEM SET'parameter name '=' parameter value '[DEFERRED]を使用します。 [メモリ|両方| SPFILE];

以下は、関数パッケージとSQLステートメントを使用してLOG_POOL_SIZEパラメーターを変更するプロセスです。

SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='LOG_POOL_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          LOG_POOL_SIZE 256        256        256        IN FILE

已用时间: 5.489(毫秒). 执行号:1994.
SQL> SP_SET_PARA_VALUE (2, 'LOG_POOL_SIZE',512);
DMSQL 过程已成功完成
已用时间: 5.059(毫秒). 执行号:1995.
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='LOG_POOL_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          LOG_POOL_SIZE 256        256        512        IN FILE

已用时间: 5.251(毫秒). 执行号:1996. 
SQL> alter system set 'LOG_POOL_SIZE'=256 SPFILE;
DMSQL 过程已成功完成
已用时间: 7.322(毫秒). 执行号:1997.
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='LOG_POOL_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          LOG_POOL_SIZE 256        256        256        IN FILE

已用时间: 4.881(毫秒). 执行号:1998.
SQL> 

3.セッション:SF_SET_SESSION_PARA_VALUE(現在のセッションの変更、他のセッションは無効です)、SP_SET_PARA_VALUE、SP_SET_PARA_DOUBLE_VALUE、SP_SET_PARA_STRING_VALUE()、セッションレベルのパラメーターの変更は前の接続セッションで有効になりません。データベースが有効になった後、将来の接続を選択してデータベースを再起動できます。
またはALTER SESSION SET 'パラメータ名' = 'パラメータ値' [PURGE];

以下は、さまざまな関数パッケージとSQLステートメントを使用して、SORT_BUF_SIZEパラメータの値を変更します。

SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='SORT_BUF_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          SORT_BUF_SIZE 200        50         50         SESSION

已用时间: 5.214(毫秒). 执行号:1999.
SQL> SF_SET_SESSION_PARA_VALUE('SORT_BUF_SIZE',100);
DMSQL 过程已成功完成
已用时间: 0.664(毫秒). 执行号:2000.
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='SORT_BUF_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          SORT_BUF_SIZE 200        100        50         SESSION

已用时间: 4.578(毫秒). 执行号:2001.
SQL> SP_SET_PARA_VALUE(1,'SORT_BUF_SIZE',400);
DMSQL 过程已成功完成
已用时间: 5.093(毫秒). 执行号:2002.
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='SORT_BUF_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          SORT_BUF_SIZE 400        400        400        SESSION

已用时间: 4.592(毫秒). 执行号:2003.
SQL> 
SQL> alter session set 'SORT_BUF_SIZE'=50;
DMSQL 过程已成功完成
已用时间: 0.508(毫秒). 执行号:2004.
SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='SORT_BUF_SIZE';

行号     PARA_NAME     PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------- ---------- ---------- ---------- ---------
1          SORT_BUF_SIZE 400        50         400        SESSION

4. SYS:動的パラメーター。SF_SET_SYSTEM_PARA_VALUE関数を使用して変更できるため、整数、浮動小数点、文字列の問題を考慮する必要はありません(もちろん、他の関数パッケージを使用することもできます)。
または、ALTER SYSTEM SET 'パラメーター名' = 'パラメーター値' [遅延] [MEMORY | BOTH | SPFILE];

以下は、関数パッケージとSQLステートメントを使用して、TIMER_TRIG_CHECK_INTERVALパラメーターの値を変更します。

SQL> select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='TIMER_TRIG_CHECK_INTERVAL';

行号     PARA_NAME                 PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------------------- ---------- ---------- ---------- ---------
1          TIMER_TRIG_CHECK_INTERVAL 60         60         60         SYS

已用时间: 6.113(毫秒). 执行号:2010.
SQL>  SF_SET_SYSTEM_PARA_VALUE ('TIMER_TRIG_CHECK_INTERVAL',30,0,1);
DMSQL 过程已成功完成
已用时间: 4.139(毫秒). 执行号:2012.
SQL>  select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='TIMER_TRIG_CHECK_INTERVAL';

行号     PARA_NAME                 PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------------------- ---------- ---------- ---------- ---------
1          TIMER_TRIG_CHECK_INTERVAL 30         30         30         SYS

已用时间: 7.826(毫秒). 执行号:2013.
SQL> ALTER SYSTEM SET 'TIMER_TRIG_CHECK_INTERVAL' =60 DEFERRED BOTH;
DMSQL 过程已成功完成
已用时间: 5.345(毫秒). 执行号:2014.
SQL>  select PARA_NAME,para_value,SESS_VALUE,FILE_VALUE,para_type from v$dm_ini where para_name='TIMER_TRIG_CHECK_INTERVAL';

行号     PARA_NAME                 PARA_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ------------------------- ---------- ---------- ---------- ---------
1          TIMER_TRIG_CHECK_INTERVAL 60         60         60         SYS

已用时间: 4.293(毫秒). 执行号:2015.
SQL> 

3.まとめ
DM8にはパラメーターを変更する多くの方法があり、DM8自体にさらに多くのパラメーターがありますが、日常の運用とメンテナンスで頻繁に変更する必要のあるパラメーターは多くありません。
READ ONLYおよびIN FILEのパラメーターは、dm.iniファイルを編集して直接変更し、データベースを再起動して有効にすることができます。したがって、どの関数パッケージを使用するかを考慮する必要はありません。
sysパラメータの場合、SF_SET_SESSION_PARA_VALUE関数パッケージを使用して、整数、浮動小数点、および文字型の問題を考慮することを回避できます。
セッションパラメータの場合、SF_SET_SESSION_PARA_VALUE関数は通常、現在のセッションを変更するために使用されます。
ほとんどの場合、SP_SET_PARA_VALUEを使用すると、日常の運用および保守作業を処理できます。
もちろん、Oracleの運用と保守に慣れている学生にとっては、システム/セッションの変更を使用することも適切な選択です。

おすすめ

転載: blog.csdn.net/weixin_50334974/article/details/108776379