Acerca de la modificación de parámetros de la base de datos Dameng DM8

El archivo de parámetros en Dream 8 es dm.ini, que puede editarse manualmente o sincronizarse automáticamente después de la modificación en la base de datos, similar a la función integrada Oracle pfile plus spfile.

Para ver los parámetros, puede usar la vista de parámetro v $ dm_ini o v $, en la que puede consultar el valor del parámetro, el valor en el archivo, el valor en la sesión y el tipo de parámetro. Por supuesto, también puede usar el paquete de funciones proporcionado por DM8 para consultar SF_GET_PARA_VALUE, SF_GET_PARA_DOUBLE_VALUE_STRING_GETING_PARA.

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

Los parámetros en Dream 8 se pueden dividir en los siguientes tipos:
1. READ ONLY: parámetro manual, lo que significa que el servidor no se puede modificar durante el funcionamiento;
2. IN FILE: parámetro estático, solo se pueden modificar archivos ini;
3. SYS y SESSION: Los parámetros dinámicos, los archivos ini y la memoria se pueden modificar al mismo tiempo, entre ellos, los parámetros a nivel del sistema 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> 

Estático: se puede modificar dinámicamente y la modificación entrará en vigor después de reiniciar el servidor.
Dinámico: se puede modificar dinámicamente y entrará en vigor inmediatamente después de la modificación. Los parámetros dinámicos se dividen en nivel de sesión y nivel de sistema. Después de que se modifiquen los parámetros a nivel de sesión, los nuevos valores de los parámetros solo afectarán a las sesiones recién creadas y las sesiones creadas previamente no se verán afectadas; la modificación de los parámetros a nivel del sistema afectará a todas las sesiones.
Manual: No se puede modificar dinámicamente, debe modificar el archivo de parámetros dm.ini manualmente y luego reiniciar para que surta efecto.

1. Método para modificar parámetros:
1. SP_SET_PARA_VALUE (alcance int, paraname varchar (256), valor int64)
Este proceso se usa para modificar parámetros de configuración estática entera y parámetros de configuración dinámica. El parámetro SCOPE es 1 significa que el valor del parámetro se modifica tanto en la memoria como en el archivo INI, en este momento solo se pueden modificar los parámetros de configuración dinámica. El parámetro 2 significa que solo se modifican los parámetros de configuración en el archivo INI. En este momento, se puede usar para modificar los parámetros de configuración estática y los parámetros de configuración dinámica.2
, SP_SET_PARA_DOUBLE_VALUE (alcance int, paraname varchar (8187), valor doble)
Este proceso se usa para modificar la estática de punto flotante Parámetros de configuración y parámetros de configuración dinámica. El parámetro SCOPE es 1 significa que el valor del parámetro se modifica tanto en la memoria como en el archivo INI, en este momento solo se pueden modificar los parámetros de configuración dinámica. El parámetro 2 significa que solo se pueden modificar los parámetros de configuración en el archivo INI. En este momento, se puede usar para modificar los parámetros de configuración estática y los parámetros de configuración dinámica.
3. SP_SET_PARA_STRING_VALUE ()
Este proceso se usa para modificar los parámetros de configuración estática tipo cadena y los parámetros de configuración dinámica. El parámetro SCOPE es 1 significa que el valor del parámetro se modifica tanto en la memoria como en el archivo INI, en este momento solo se pueden modificar los parámetros de configuración dinámica. El parámetro 2 significa que solo los parámetros de configuración se pueden modificar en el archivo INI. En este momento, se puede utilizar para modificar los parámetros de configuración estática y los parámetros de configuración dinámica.
4. SF_SET_SYSTEM_PARA_VALUE (paraname varchar (256), valor int64 \ double \ varchar (256), deferred int, scope int64 )
Este proceso se utiliza para modificar los parámetros de configuración estática o los parámetros de configuración dinámica del sistema integer, double y varchar. El parámetro DEFERRED, 0 significa que los parámetros modificados de la sesión actual entran en vigor inmediatamente, y 1 significa que la sesión actual no entra en vigor y entrará en vigor después. El valor predeterminado es 0. El parámetro SCOPE es 1 significa que el valor del parámetro se modifica tanto en la memoria como en el archivo INI, en este momento solo se pueden modificar los parámetros de configuración dinámica. Un parámetro de 2 significa que los parámetros de configuración solo se modifican en el archivo INI, en este momento se puede utilizar para modificar los parámetros de configuración estática y los parámetros de configuración dinámica.
5. SF_SET_SESSION_PARA_VALUE (paraname varchar (8187), valor bigint)
establece el valor de un parámetro INI de nivel de sesión. El valor del parámetro establecido solo es válido para esta sesión.
6. ALTER SYSTEM SET 'nombre de parámetro' = 'valor de parámetro' [DEFERRED] [MEMORY | BOTH | SPFILE];
nombre de parámetro: puede ser parámetro estático, parámetro de sistema sys, sesión de parámetro de sesión; DEFERRED solo se puede utilizar para parámetros dinámicos. Después de especificar DEFERRED, el valor del parámetro entrará en vigor después de un retraso y no tendrá efecto para la sesión actual, sino solo para la sesión recién creada. El valor predeterminado es entrar en vigor inmediatamente, tanto para la sesión actual como para la sesión recién creada. [MEMORIA | AMBOS | SPFILE] Especifique la ubicación efectiva. Entre ellos, MEMORY solo modifica el valor en memoria; SPFILE modifica solo el valor en file_value; BOTH modifica ambos. Por defecto, es MEMORIA. Para los parámetros estáticos, solo se puede especificar SPFILE.
7. ALTER SESSION SET 'nombre del parámetro' = 'valor del parámetro' [PURGE]; el
nombre del parámetro se refiere al nombre del parámetro de nivel de sesión dinámico. [PURGE] se refiere a si se debe limpiar el plan de ejecución. El valor establecido solo es válido para la sesión actual. Cuando se incluye la opción PURGA, se borrarán todos los planes de ejecución guardados por el servidor.

2. Los métodos de modificación correspondientes a los diferentes tipos de parámetros son los siguientes:
1. SÓLO LECTURA:
Edite manualmente dm.ini, se recomienda editar después de cerrar la base de datos. Los experimentos han demostrado que el estado abierto de la base de datos también se puede editar y entrará en vigor después de reiniciar la base de datos.

El siguiente es el proceso de edición manual del parámetro UTHR_FLAG en dm.ini a 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: Después de la
modificación, reinicie para que tenga efecto, use SP_SET_PARA_VALUE (modificar el tipo de entero, selección de alcance 2), SP_SET_PARA_STRING_VALUE (modificar el tipo de cadena, selección de alcance 2)
o use ALTER SYSTEM SET'nombre de parámetro '=' valor de parámetro '[DEFERRED] [MEMORIA | AMBOS | SPFILE];

El siguiente es el proceso de modificación del parámetro LOG_POOL_SIZE usando el paquete de funciones y la declaración SQL

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. Sesión: SF_SET_SESSION_PARA_VALUE (modificar la sesión actual, otras sesiones no son válidas), SP_SET_PARA_VALUE, SP_SET_PARA_DOUBLE_VALUE, SP_SET_PARA_STRING_VALUE (), modificar los parámetros de nivel de sesión no pueden tener efecto en la sesión de conexión anterior y puede reiniciar la base de datos después de que la conexión futura sea efectiva.
O ALTER SESSION SET 'nombre de parámetro' = 'valor de parámetro' [PURGA];

A continuación se utilizan diferentes paquetes de funciones y sentencias SQL para modificar el valor del parámetro 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: Parámetros dinámicos, puede usar la función SF_SET_SYSTEM_PARA_VALUE para modificar, por lo que no necesita considerar los problemas de enteros, puntos flotantes, cadenas (por supuesto, también puede usar otros paquetes de funciones)
o usar ALTER SYSTEM SET'parameter name '=' parameter value '[ DIFERIDO] [MEMORIA | AMBOS | SPFILE];

A continuación, se utiliza el paquete de funciones y la declaración sql para modificar el valor del parámetro 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. Resumen
Aunque el DM8 tiene muchas formas de modificar parámetros, y el propio DM8 tiene más parámetros, no hay muchos parámetros que a menudo deban modificarse en la operación y el mantenimiento diarios.
Los parámetros de READ ONLY e IN FILE se pueden modificar directamente editando el archivo dm.ini y luego reiniciar la base de datos para que surtan efecto. Por tanto, no es necesario considerar qué paquete de funciones se debe utilizar.
Para los parámetros del sistema, puede utilizar el paquete de funciones SF_SET_SESSION_PARA_VALUE para evitar tener en cuenta los problemas de los tipos de enteros, puntos flotantes y caracteres.
Para los parámetros de sesión, la función SF_SET_SESSION_PARA_VALUE se usa generalmente para modificar la sesión actual.
En la mayoría de los casos, el uso de SP_SET_PARA_VALUE puede hacer frente al trabajo diario de operación y mantenimiento.
Por supuesto, para los estudiantes que están acostumbrados a ser compatibles con la operación y el mantenimiento de Oracle, usar alter system / session también es una buena opción.

Supongo que te gusta

Origin blog.csdn.net/weixin_50334974/article/details/108776379
Recomendado
Clasificación