Función de tabla MIRROR_COMPARE_OBJECT
La función de tabla MIRROR_COMPARE_OBJECT devuelve las diferencias entre los nodos de origen y de destino para el objeto identificado por tipo-objeto, nombre-biblioteca y nombre-objeto. No es necesario que el objeto sea un objeto replicado actualmente.
Para cada objeto que se compara, las operaciones de comparación pueden realizarse para los atributos de definición del objeto, los datos contenidos en el objeto, o ambos. Sólo los objetos *DTAQ, *FILE, *OUTQ, *USRIDX y *USRSPC admiten comparaciones de datos. Para el objeto que se compara, debe especificarse un valor de YES o QUICK para al menos uno de los parámetros compare-attributes o compare-data
- Se devuelve una fila para cada atributo que es diferente entre los nodos.
The attributes compared for an object vary based upon the objeto-tipo. No todos los atributos pueden compararse
- El valor contenido en un objeto *DTAARA se considera un atributo.
- Para un objeto *DTAQ, se devuelve una fila para cada entrada de la cola de datos que es diferente entre los nodos.
- Para un objeto *FILE elegible para replicación, se devuelve una fila por cada fila de datos que sea diferente entre los nodos. Se devuelve el número relativo de registro (RRN)
para identificar la fila.
- Los archivos con control de acceso a filas o columnas activo, archivos con desencadenantes READ y archivos en estado pendiente de comprobación no son elegibles para la comparación de datos. Se devolverá una fila de resultados para indicar que la comparación de datos no se ha realizado.
- Los archivos con varios miembros, incluidas las tablas particionadas y los archivos físicos fuente, en los que se encuentren diferencias significativas en la definición, no son elegibles para la comparación de datos. Todos los nombres de miembro deben coincidir. Se devolverá una fila de resultados para indicar que la comparación de datos no se ha realizado.
- Para un objeto *OUTQ, se devuelve una fila para cada archivo en spool que es diferente entre los nodos. La comparación utiliza la información devuelta por la vista QSYS2.OUTPUT_QUEUE_ENTRIES_BASIC. El contenido del archivo en spool no se compara.
- Para un objeto *USRIDX, se devuelve una fila para cada entrada del índice de usuario que es diferente entre los nodos.
- Para un objeto *USRSPC, la fila devuelta indica si el espacio de usuario es diferente entre los nodos.
- Se devuelve una sola fila que indica que existe al menos una diferencia para el objeto entre nodos. No se incluyen detalles adicionales sobre el tipo de diferencia en la fila devuelta.
Si no se encuentran diferencias, no se devuelve ninguna fila. Si el objeto no es elegible para la comparación, no se devuelve ninguna fila junto y se devuelve un SQLSTATE de aviso '01H53'. Si el objeto no existe en ningún nodo, no se devuelve ninguna fila y se devuelve un SQLSTATE de error '42704'. Si los nodos no se comunican, no se devuelve ninguna fila y se devuelve un SQLSTATE de error '560DE'.

Autorización: Los privilegios que posee el ID de autorización de la sentencia deben incluir la autorización especial *ALLOBJ. Para conocer la autoridad necesaria para utilizar esta función, consulte Autorización.
Para especificar un valor de grado paralelo que no sea NONE, los privilegios que tiene el ID de autorización de la sentencia deben incluir la autorización especial *JOBCTL o la autorización de uso de función QIBM_DB_SQLADM.

- tipo-objeto
- Expresión de serie gráfica o de caracteres que identifica el tipo de objeto.
Se puede especificar cualquier tipo de objeto del sistema. Sin embargo, los siguientes tipos de objetos elegibles para replicación que devuelven un valor que no es INELIGIBLE de la función QSYS2.CHECK_REPLICATION_CRITERIA son instrumentados para operaciones de comparación más robustas.- *AUTL
- Lista de autorizaciones. nombre-biblioteca debe ser QSYS o debe omitirse.
- *DTAARA
- Área de datos, incluidos los atributos de secuencia SQL
- *DTAQ
- Cola de datos
- *ENVVAR
- Variable de entorno de nivel de sistema. nombre-biblioteca debe ser QSYS o debe omitirse.
- *FCNUSG
- Uso de función. nombre-biblioteca debe ser QSYS o debe omitirse.
- *FILE
- Archivo de base de datos
- *JOBD
- Descripción de trabajo
- *JOBQ
- Cola de trabajos
- *JRN
- Diario
- *LIB
- Biblioteca
- *OUTQ
- Cola de salida
- *PGM
- Programa, incluidos atributos de rutina SQL
- *SECATR
- Atributo de seguridad. nombre-biblioteca debe ser QSYS o debe omitirse. nombre-objeto debe ser nulo o debe omitirse.
- *SQLPKG
- Paquete SQL
- *SQLUDT
- Tipo definido por el usuario de SQL
- *SQLXSR
- Repositorio de esquemas XML de SQL
- *SRVPGM
- Programa de servicio, incluidos los atributos de rutina SQL
- *SYSVAL
- Valor del sistema. nombre-biblioteca debe ser QSYS o debe omitirse.
- *USRIDX
- Índice de usuario
- *USRPRF
- Perfil de usuario. nombre-biblioteca debe ser QSYS o debe omitirse.
- *USRSPC
- Espacio de usuario

- nombre-biblioteca
- Expresión de serie gráfica o de caracteres que identifica el nombre de biblioteca del objeto. Si se omite este parámetro, QSYS es el valor predeterminado.
- nombre-objeto
- Expresión de serie gráfica o de caracteres que identifica el nombre de sistema del objeto que debe compararse. Para *FCNUSG, el nombre es el ID de función. Es necesario un nombre-objeto para todos los tipos de objeto excepto *SECATR; nombre-objeto se ignora para el tipo de objeto *SECATR. Si se omite este parámetro, nulo es el valor predeterminado.
- comparar-atributos
Expresión de carácter o cadena gráfica que indica si se comparan atributos para el objeto. Los tipos de objeto distintos de *DTAQ, *FILE, *OUTQ, *USRIDX y *USRSPC deben especificar YES o QUICK
- NO
- No se comparan los atributos para el objeto.
- QUICK
- Los atributos se comparan para el objeto hasta que se encuentra la primera diferencia. Solo se devuelve una única fila si se detecta alguna diferencia. Esta opción es más rápida porque no se devuelve una lista completa de diferencias.
- SI
- Se comparan todos los atributos elegibles para el objeto. Se devuelve una fila para cada diferencia encontrada. Este es el valor por omisión.
- comparar-datos
- Expresión de cadena de caracteres o gráfica que indica si los datos se comparan para un objeto *DTAQ, *FILE, *OUTQ, *USRIDX y *USRSPC. compare-data se ignora cuando object-type no es *DTAQ, *FILE, *OUTQ, *USRIDX, o *USRSPC.
- NO
- No se comparan los datos para un objeto.
- QUICK
- Los datos se comparan para un objeto *DTAQ, *FILE, *OUTQ, *USRIDX y *USRSPC hasta que se encuentra la primera diferencia. Solo se devuelve una única fila si se detecta alguna diferencia. Esta opción es más rápida porque no se devuelve una lista completa de diferencias.
- SI
- Se comparan todos los datos de un objeto *DTAQ, *FILE, *OUTQ, *USRIDX y *USRSPC. Se devuelve una fila para cada diferencia encontrada. Este es el valor por omisión.
- grado-paralelo
- Serie gráfica o de caracteres que especifica el grado máximo de paralelismo que debe utilizarse para comparar el objeto.
Si la característica Db2® Symmetric Multiprocessing (SMP) no está instalada, se emite un error si el valor no es NONE.
- 2-256
- El grado máximo de paralelismo que se debe utilizar.
- NONE
- No se utilizará ningún paralelismo. Este es el valor por omisión.
El resultado de la función es una tabla que contiene filas con el formato que se muestra en la tabla siguiente. Todas las columnas admiten nulos.
| Nombre de columna | Tipo de datos | Descripción |
|---|---|---|
| ATTRIBUTE_NAME | VARGRAPHIC(512) CCSID 1200
|
El nombre del atributo de objeto o el número relativo de registro (RRN) que no es idéntico. |
| VALUE_ON_PRIMARY | VARGRAPHIC(2048) CCSID 1200
|
El valor del nodo primario. Cuando una comparación que utiliza la opción QUICK detecta una diferencia, contiene el valor DIFFERENT. |
| VALUE_ON_SECONDARY | VARGRAPHIC(2048) CCSID 1200
|
El valor del nodo secundario. Cuando una comparación que utiliza la opción QUICK detecta una diferencia, contiene el valor DIFFERENT. |
Ejemplos
- Listar todos los atributos elegibles para le réplica que son distintos entre los dos nodos para la cola de salida MYOUTQ de la biblioteca
APPLIB1. El contenido de los archivos en spool de la cola de salida no se comparará.
SELECT * FROM TABLE(QSYS2.MIRROR_COMPARE_OBJECT( OBJECT_TYPE => '*OUTQ', LIBRARY_NAME => 'APPLIB1', OBJECT_NAME => 'MYOUTQ', COMPARE_ATTRIBUTES => 'YES', COMPARE_DATA => 'NO')) ORDER BY ATTRIBUTE_NAME; - Para el archivo TEST_TABLE de la biblioteca TESTLIB, buscar todas las filas de datos que sean diferentes entre los dos nodos. Los atributos de archivo
no se compararán.
SELECT * FROM TABLE(QSYS2.MIRROR_COMPARE_OBJECT( LIBRARY_NAME => 'TESTLIB', OBJECT_NAME => 'TEST_TABLE', OBJECT_TYPE => '*FILE', COMPARE_DATA => 'YES', COMPARE_ATTRIBUTES => 'NO'));
