DM7 gestión de instancias y arquitectura

Gestión de instancia de base de datos

Bases de datos e instancias :
en las bases de datos DM anteriores a DM7, los términos "base de datos" e "instancia" a menudo son intercambiables y tienen significados similares. En la nueva versión de la base de datos DM7, existe una gran diferencia entre los conceptos de "base de datos" e "instancia", e incluso se puede decir que son dos entidades completamente diferentes.

Cuando la base de datos DM y la instancia aparecen al mismo tiempo, la base de datos DM se refiere a la recopilación de datos almacenados en la base de datos DM en el disco, que generalmente incluye: archivos de datos, archivos de registro, archivos de control y archivos de datos temporales.

Una instancia generalmente se compone de un grupo de procesos / subprocesos en segundo plano DM en ejecución y una gran memoria compartida. En términos simples, una instancia es un medio para operar una base de datos DM, que es una colección de estructuras de memoria y procesos en segundo plano utilizados para acceder a la base de datos.

En la mayoría de los casos, solo hay una instancia de una base de datos para operar en ella. Pero en el clúster de almacenamiento compartido de DM (DMRAC), varias instancias pueden cargar y abrir simultáneamente una base de datos (ubicada en un conjunto de discos físicos compartidos por varios servidores). En este momento, podemos acceder a esta base de datos desde múltiples computadoras diferentes al mismo tiempo.

Estado y modo de base de datos

La base de datos DM contiene los siguientes estados:

  1. Estado de configuración (MONTAJE): el acceso a los objetos de la base de datos no está permitido, solo controla el mantenimiento del archivo, la configuración del archivo, la modificación del modo de la base de datos, etc.
  2. Estado abierto (ABIERTO): no se puede realizar el mantenimiento del archivo de control, la configuración del archivo y otras operaciones, puede acceder a los objetos de la base de datos y proporcionar servicios de base de datos normales al mundo exterior;
  3. Estado de suspensión (SUSPENDER): la única diferencia con el estado ABIERTO es que la función de escritura en disco está restringida; una vez que se modifica la página de datos, se activa el registro REDO y la actualización de la página de datos, y el usuario actual será suspendido.

El estado ABIERTO y MOUNT y SUSPEND se pueden convertir entre sí, pero MOUNT y SUSPEND no se pueden convertir entre sí.

La base de datos DM contiene los siguientes modos:

  1. Modo normal (NORMAL): el usuario puede acceder a la base de datos normalmente y la operación es ilimitada;
  2. Modo de base de datos primaria (PRIMARIO): los usuarios pueden acceder a la base de datos normalmente. Todas las modificaciones a los objetos de la base de datos se ven obligadas a generar registros REDO. Cuando el archivo es válido, los registros REDO se envían a la base de datos en espera;
  3. Modo de espera (ESPERA): reciba el registro REDO enviado desde la biblioteca principal y vuelva a hacerlo. Los datos son de solo lectura para el usuario.

Los tres modos solo se pueden configurar en el estado MOUNT, y los modos se pueden cambiar entre sí. Para las bibliotecas recién inicializadas, el método de montaje no está permitido para el primer inicio. Debe iniciar normalmente y salir normalmente antes de permitir que se inicie el método de montaje. En circunstancias normales, la base de datos está en modo NORMAL, si no especifica el estado de MONTAJE para comenzar, automáticamente comenzará al estado ABIERTO.

Cuando necesita configurar la base de datos (como configurar la protección de datos, la replicación de datos), el servidor debe especificar el estado de MONTAJE para comenzar. Cuando el modo de base de datos no es NORMAL (modo PRIMARIO, ESPERA), independientemente de si se especifica el estado de inicio, el servidor comienza automáticamente al estado de MONTAJE cuando se inicia.

-- 查看数据库中实例状态
SELECT status$ FROM V$INSTANCE;

Comience una instancia

Modo de servicio Linux : después de
instalar la base de datos DM, hay un archivo llamado "DmService" en /etc/rc.d/init.d. El nombre completo del archivo es DmService + nombre de instancia (por ejemplo: si el nombre de instancia es DMSERVER, el servicio correspondiente El archivo es DmServiceDMSERVER).
Tome la instancia denominada DMSERVER como ejemplo, ingrese ./DmServiceDMSERVER start o preste servicio a DmServiceDMSERVER start en el terminal para iniciar la base de datos DM.

Modo de línea de comando : ingrese el directorio bin debajo del directorio de instalación de DM en la terminal, ejecute ./dmserver para iniciar la base de datos de DM, y las opciones de parámetros son las mismas que para Windows.

La sesión actual es válida. Cierre la sesión y la conexión se interrumpe.

Determine si se inicia la base de datos DM

  1. Puerto: netstat -ntl|grep 523*
  2. ps -ef|grep DMSERVER

Uso de herramientas de base de datos DM

Uso de la herramienta disql

disql sysdba/SYSDBA@localhost:5239

Herramientas de gestión de bases de datos

Herramientas de consola

Si COMPATIBLE_MODE es compatible con otros modos de base de datos.

0: no compatible,
1: compatible con el estándar SQL92,
2: compatible con ORACLE,
3: compatible con MS SQL SERVER,
4: compatible con MYSQL

El uso del manual de la base de datos Dameng, el manual está en el directorio ./doc

Arquitectura DM7

Estructura de almacenamiento lógico DM7

La jerarquía almacenada en DM7 es la siguiente:

  1. La base de datos consta de uno o más espacios de tabla;
  2. Cada espacio de tabla consta de uno o más archivos de datos;
  3. Cada archivo de datos consta de uno o más grupos;
  4. Un segmento es una unidad lógica superior de un clúster, y un segmento puede abarcar múltiples archivos de datos;
  5. El clúster consta de páginas consecutivas en el disco, un clúster siempre está en un archivo de datos;
  6. Una página es la unidad de asignación más pequeña en la base de datos y la unidad de E / S más pequeña utilizada en la base de datos.

En la base de datos DM, el espacio de tabla consta de uno o más archivos de datos. Todos los objetos en la base de datos DM se almacenan lógicamente en el espacio de tablas y se almacenan físicamente en el archivo de datos del espacio de tablas al que pertenecen.
Al crear una base de datos DM, se crean automáticamente cinco espacios de tabla: espacio de tabla SYSTEM, espacio de tabla ROLL, espacio de tabla PRINCIPAL, espacio de tabla TEMP y espacio de tabla HMAIN.

Cada fila de la tabla de base de datos es un registro .
El registro se almacena en la página de datos, el registro no es la unidad de almacenamiento de la base de datos DM, la página sí.
Debido a que los registros no pueden almacenarse en las páginas, la longitud del registro está limitada por el tamaño de la página de datos. DM estipula que la longitud total de cada registro no puede exceder la mitad del tamaño de la página.

La página de datos (también llamada bloque de datos) es la unidad de almacenamiento de datos más pequeña en la base de datos DM. El tamaño de la página corresponde a un número específico de bytes de almacenamiento en el espacio de almacenamiento físico. En la base de datos DM, el tamaño de la página puede ser 4KB, 8KB, 16KB o 32KB. El usuario puede especificar al crear la base de datos. El tamaño predeterminado es KB. Una vez que se crea la base de datos , El tamaño de página no se puede cambiar durante todo el ciclo de vida de la biblioteca.

Un clúster es una unidad lógica superior de páginas de datos, que consta de 16 o 32 páginas de datos consecutivas en el mismo archivo de datos.

Un segmento es una unidad de la partición lógica superior de un clúster, que se compone de un grupo de clústeres.
En el mismo espacio de tabla, un segmento puede contener clústeres de diferentes archivos, es decir, un segmento puede abarcar diferentes archivos.
Un clúster y las páginas de datos contenidas en el clúster solo pueden provenir de un archivo, que son 16 o 32 páginas de datos consecutivas. Dado que el número de clústeres se asigna bajo demanda, los diferentes clústeres en el segmento de datos no son necesariamente continuos en el disco.

Estructura de almacenamiento físico DM7

Archivo de configuración : una colección de algunos archivos de texto utilizados para configurar las opciones de función. El archivo de configuración tiene una extensión ini y un formato fijo

Archivo de control : cada base de datos DM tiene un archivo de control llamado dm.ctl.
El archivo de control es un archivo binario que registra la información inicial necesaria de la base de datos.

# 查看控制文件内容
dmctlcvt help

El archivo de datos tiene la extensión dbf, que es el tipo de archivo más importante en la base de datos. Un archivo de datos DM corresponde a un archivo físico en el disco. El archivo de datos es donde se almacenan los datos reales. Cada base de datos tiene al menos un dato relacionado Archivo. En aplicaciones prácticas, generalmente hay múltiples archivos de datos.

Archivo de registro de rehacer : también llamado registro de REDO, que significa agregar, eliminar, modificar objetos o cambiar datos en la base de datos de DM. El DM escribirá los resultados de estas operaciones en el archivo de registro de rehacer actual de acuerdo con un formato específico.
Rehacer archivos de registro tienen extensión de registro. Cada instancia de la base de datos DM debe tener al menos 2 archivos de registro de rehacer, los dos archivos de registro predeterminados son DAMENG01.log, DAMENG02.log, estos dos archivos se reciclan.

# 查看日志信息 v$rlogfile;
select path from v$rlogfile

# 增加一个日志文件
alter database add logfile '/dm7/data/DAMENG/DAMENG04.log' size 128;

# 修改日志文件的大小
alter database resize logfile '/dm7/data/DAMENG/DAMENG04.log' to 256;

Archivos de registro archivados : los archivos de registro se dividen en archivos de registro en línea y archivos de registro archivados. La base de datos DM se puede ejecutar en modo de archivo y en modo sin archivo
. Solo cuando la base de datos está en modo de archivo, el contenido del archivo de registro en línea se guarda en el disco duro para formar un archivo de registro.
Archivo de parámetros de archivo:dmarch.ini

Archivo de registro lógico : si la función de replicación está configurada en la base de datos de DM, el origen de la copia generará el archivo de registro lógico.
El archivo de registro lógico es un archivo de transmisión, que tiene su propio formato y no está bajo la administración de páginas, clústeres y segmentos descritos en el Capítulo 1.
El almacenamiento interno del archivo de registro lógico está de acuerdo con el formato del registro de copia. Un registro es seguido por un registro, que almacena varias operaciones lógicas en el origen de la copia. Se utiliza para enviar al destino de la copia.

Archivo de respaldo : con bak como extensión, cuando el sistema se ejecuta normalmente, el archivo de respaldo no desempeñará ningún papel, ni es uno de los tipos de archivos en línea que debe tener la base de datos.

Archivo de registro de seguimiento : después de configurar los parámetros SVR_LOG y SVR_LOG_SWITCH_COUNT en dm.ini, se abrirá el registro de seguimiento.
El archivo de registro de seguimiento es un archivo de texto sin formato denominado "dm_commit_date_time", que se genera en el subdirectorio de registro del directorio de instalación de DM de forma predeterminada. El administrador puede establecer su ruta de generación a través del parámetro ini SVR_LOG_FILE_PATH
El registro de seguimiento contiene las instrucciones SQL, la información de parámetros y la información de error ejecutada por cada sesión del sistema.
El registro de seguimiento se utiliza principalmente para analizar errores y analizar problemas de rendimiento. En función del registro de seguimiento, puede tener un análisis del estado operativo del sistema. Por
ejemplo, puede seleccionar las instrucciones SQL que se ejecutan actualmente a una velocidad más lenta y optimizarlas.

Archivo de registro de eventos : durante el funcionamiento del sistema de base de datos DM, se generará un archivo de registro de eventos llamado "dm_instance name_date" en el subdirectorio de registro.
El archivo de registro de eventos registra los eventos críticos cuando se ejecuta la base de datos DM, como el inicio del sistema, el apagado, la falla de la aplicación de memoria, los errores de E / S y otros errores fatales. El archivo de registro de eventos se utiliza principalmente para ver y localizar problemas cuando se producen errores graves en el sistema.

Estructura de memoria DM

El grupo de memoria compartida es una gran cantidad de memoria solicitada por el servidor DM del sistema operativo al inicio. Durante el funcionamiento del servidor DM, a menudo se solicita y se libera una pequeña cantidad de memoria, y se debe emitir una llamada al sistema cuando se aplica y libera memoria del sistema operativo. En este caso, puede producirse un cambio de hilo, lo que reduce la eficiencia operativa del sistema. Si utiliza el grupo de memoria compartida, puede solicitar una porción de memoria más grande del sistema operativo al mismo tiempo, que es el grupo de memoria. Cuando el sistema necesita solicitar memoria durante la operación, puede solicitarla en el grupo de memoria compartida. , Que se devuelve al grupo de memoria compartida.

El administrador del sistema DM puede establecer el tamaño del grupo de memoria compartida a través del archivo de configuración del servidor DM (dm.ini). El parámetro del grupo compartido es MEMORY_POOL y la configuración predeterminada es 200M.

SQL> select distinct name,is_shared from v$mem_pool order by 2;

SQL> select para_name,para_value from v$dm_ini where para_name like '%MEMORY%';

El búfer de datos es donde se almacenan las páginas de datos antes de que el servidor DM escriba las páginas de datos en el disco y después de leer las páginas de datos del disco. Esta es una de las áreas de memoria más importantes del servidor DM. Si se configura demasiado pequeño, se obtendrá una baja tasa de aciertos de la página de búfer y una gran cantidad de E / S de disco; si se configura demasiado grande, la memoria del sistema operativo en sí será insuficiente. .

Valor de referencia:

  • OLTP: el tamaño del búfer representa el 40% -60% de toda la memoria física
  • OLAP: el tamaño del búfer es del 60% al 80% de toda la memoria física

Vistas relacionadas:

  • V $ buffer_lru_first: muestra la información de la página de inicio de todas las cadenas LRU de búfer.
  • V $ buffer_lru_last: muestra la información de la última página de todas las cadenas LRU de búfer.
  • V $ buffer_upd_first: muestra la información de la página de inicio de todas las cadenas de actualización del búfer.
  • V $ buffer_upd_last: muestra la información de la última página de todas las cadenas de actualización del búfer.

Hay cuatro tipos de almacenamientos intermedios de datos en el servidor DM, a saber, NORMAL, MANTENER, RÁPIDO y RECICLAR.
Entre ellos, el usuario puede especificar que el espacio de tabla pertenece al búfer NORMAL o KEEP al crear o modificar el espacio de tabla.
El búfer RECYCLE se usa para espacios de tabla temporales. El búfer FAST es administrado automáticamente por el sistema de acuerdo con el tamaño de FAST_POOL_PAGES especificado por el usuario. El usuario no puede especificar una tabla o espacio de tablas que use los búferes RECYCLE y FAST.

ORACLE: RECICLA y guarda la mesa. DM: reciclar y guardar espacios de mesa en la tienda.

Modifique el valor del parámetro:

-- Oracle:
alter system set  ....
--DM:
SP_SET_PARA_VALUE(scope,para_name,para_value);
-- 通过视图v$parameter来查看类型
select name,type from v$parameter where name='BUFFER';

Tipo de parámetro DM:

  • Sys / session: parámetros dinámicos, modificar memoria y archivos de configuración al mismo tiempo
  • Solo lectura: no se puede modificar mientras se ejecuta la base de datos.
  • EN ARCHIVO: parámetros estáticos, modifique el archivo de configuración, reinicie el servicio para que surta efecto.
  • Alcance:
SQL> Select para_name,para_value from v$dm_ini where para_name='BUFFER';
SQL> sp_set_para_value(2,'BUFFER',1500);
-- 重启生效
  • BUFFER_POOLS: número de agrupaciones de almacenamiento intermedio
  • Max_buffer: el valor máximo del buffer
select para_name,para_value from v$dm_ini where para_name like '%BUFFRE%';
  • Si se deben leer varias páginas: MULTI_PAGE_NUM, el valor predeterminado es una sola página.
  • Cuando la base de datos está encriptada o el búfer ssd está habilitado, no se admite la lectura de varias páginas.

El búfer del diccionario almacena principalmente cierta información del diccionario de datos, como información de modo, información de tabla, información de columna, información de activación, etc.
Cada operación en la base de datos incluirá información del diccionario de datos. La eficiencia del acceso a la información del diccionario de datos afecta directamente la eficiencia de la operación correspondiente. Por ejemplo, la tabla de consulta requiere la información de la tabla correspondiente, la información de la columna, etc. Si toda la información del diccionario está almacenada En el área, se puede obtener directamente del búfer, de lo contrario se requiere E / S para leer esta información.

El parámetro de configuración del búfer es DICT_BUF_SIZE, y el tamaño de configuración predeterminado es 5M.

select para_name,para_value from v$dm_ini where para_name='DICT_BUF_SIZE';
  • V $ DICT_CACHE_ITEM: información del objeto del diccionario en el búfer del diccionario.
  • V $ DICT_CAHCE: información del búfer del diccionario.

Los almacenamientos intermedios de SQL proporcionan la memoria requerida durante la ejecución de las declaraciones SQL, incluidos los planes, las declaraciones SQL y el almacenamiento en caché del conjunto de resultados.
En muchas aplicaciones, la misma instrucción SQL se ejecuta repetidamente. En este momento, puede usar el búfer para guardar estas declaraciones y su plan de ejecución. Esta es la reutilización del plan.
Esto tiene la ventaja de acelerar la eficiencia de la ejecución de sentencias SQL, pero al mismo tiempo ejerce una presión adicional sobre la memoria.

  • Un análisis de sintaxis
  • B Análisis semántico (leer la tabla del diccionario)
  • D Encuentre si el bloque de datos está en memoria (en memoria, lectura lógica, no en memoria, lectura física)
  • E. ¿Hay un plan de ejecución disponible? Si es así, siga el plan de ejecución. De lo contrario, genere un plan de ejecución, ejecute sql y envíe el conjunto de resultados al cliente. El buffer de sql almacena el plan de ejecución utilizado más recientemente. Y el conjunto de resultados de la consulta más reciente.

El servidor DM proporciona parámetros en el archivo de configuración dm.ini para admitir si se requiere la reutilización del plan. El parámetro es USE_PLN_POOL. Cuando se especifica como no cero, se inicia la reutilización del plan; cuando es 0, la reutilización del plan está prohibida. DM también proporciona el parámetro CACHE_POOL_SIZE (en MB) para cambiar el tamaño del búfer SQL. El administrador del sistema puede establecer este valor para satisfacer las necesidades de la aplicación. El valor predeterminado es 10M.

# Cache_pool_size:sql缓冲区的大小
SQL> select para_name,para_value from v$dm_ini where para_name='CACHE_POOL_SIZE';

# RS_CAN_CACHE:控制结果集缓存
SQL> select para_name,para_value from v$dm_ini where para_name='RS_CAN_CACHE';
  • 0: prohibir la reutilización del conjunto de resultados
  • 1: Modo forzado: todos los conjuntos de resultados se almacenan en caché de forma predeterminada
  • 2: Modo manual: el conjunto de resultados no se almacena en caché de forma predeterminada.

Solo cuando el parámetro RS_CAN_CACHE = 1 y USE_PLN_POOL no es 0, el conjunto de resultados se almacenará en caché.

Vistas relacionadas:

  • V $ sql_plan: información del plan de ejecución en el búfer.
  • V $ sql_history: información del historial de ejecución de SQL
  • $ sql_text: información de ejecución de SQL.
  • V $ cachesql: información de la declaración SQL en el búfer.

Búfer de registro de rehacer : un búfer de memoria utilizado para almacenar registros de rehacer. Para evitar leer y escribir directamente en el io del disco, afectará el rendimiento de la base de datos.

Rlog_buf_size: la unidad de tamaño del búfer de registro: el tamaño de página se establece en una potencia de 2.
Rlog_pool_size: el tamaño del búfer de registro más grande: unidad M

SQL> select para_name,para_value from v$dm_ini where para_name='RLOG_BUF_SIZE';

SQL> select para_name,para_value from v$dm_ini where para_name='RLOG_POOL_SIZE';

El buffer de clasificación proporciona el espacio de memoria requerido para la clasificación de datos. Cuando los usuarios ejecutan sentencias SQL, a menudo necesitan ordenar, y la memoria utilizada es proporcionada por el búfer de clasificación. En cada proceso de clasificación, primero solicite la memoria y luego libere la memoria después de la clasificación.

SQL> select para_name,para_value from v$dm_ini where para_name='SORT_BUF_SIZE';

DM7 proporciona un conjunto de búferes para la conexión hash, pero el búfer es un búfer virtual.
La razón del búfer virtual es que el sistema no crea realmente una memoria específica que pertenece al búfer hash,
sino que calcula la cantidad de datos ordenados cuando se realiza una conexión hash.
Si el tamaño de datos calculado excede el tamaño del búfer hash, se usa el innovador método de hash de memoria externa DM7; si no excede el tamaño del búfer hash, el grupo de memoria VPOOL se usa realmente para la operación hash .

SQL> select para_name,para_value from v$dm_ini where para_name='HJ_BUF_SIZE';

Para mejorar la eficiencia de ejecución del sistema, el servidor DM utiliza el archivo SSD como una capa intermedia entre la memoria caché y el disco ordinario, que se denomina "caché SSD".
El servidor DM proporciona los parámetros SSD_BUF_SIZE y SSD_FILE_PATH en dm.ini para configurar el búfer SSD. SSD_BUF_SIZE especifica el tamaño del búfer, la unidad es M y el servidor DM crea un archivo del tamaño correspondiente de acuerdo con este parámetro para usarlo como búfer; SSD_FILE_PATH especifica el archivo donde está ubicado Ruta de la carpeta, el administrador debe asegurarse de que la ruta establecida se encuentre en el disco de estado sólido.

SQL> select para_name,para_value from v$dm_ini where para_name like '%SSD%';

DM gestión de subprocesos

El servidor DM utiliza una estructura multiproceso de "arquitectura simétrica de servidor". Esta arquitectura simétrica del servidor utiliza efectivamente los recursos del sistema al tiempo que proporciona una alta escalabilidad. El hilo al que se hace referencia aquí es el hilo del sistema operativo. Cuando el servidor se está ejecutando, se compone de varias estructuras de datos de memoria y una serie de subprocesos. Los subprocesos se dividen en varios tipos, y diferentes tipos de subprocesos completan diferentes tareas. Los subprocesos acceden y procesan simultáneamente estructuras de datos a través de un cierto mecanismo de sincronización para completar varias tareas enviadas por los clientes. El servidor de base de datos DM es un servidor compartido que permite que varios usuarios se conecten al mismo servidor. El proceso del servidor se denomina proceso de servidor compartido.

El proceso DM incluye principalmente hilos de escucha, hilos de E / S, hilos de trabajo, hilos de programación, hilos de registro, etc.

Vistas relacionadas:

  • V $ LATCHES: esperando información del hilo
  • V $ hilos: información sobre todos los hilos vivos en el sistema actual.
  • V $ wthrd_history: registra información histórica relacionada de todos los hilos activos desde que se inició la base de datos.
  • Proceso V $: vea la información del proceso de datos actual.
SQL> select * from v$process;

SQL> select distinct name,count(1),thread_desc from v$threads group by name,thread_desc order by 2 desc;

Supongo que te gusta

Origin www.cnblogs.com/Forgenvueory/p/12757851.html
Recomendado
Clasificación