Função de tabela MIRROR_COMPARE_OBJECT
A função de tabela MIRROR_COMPARE_OBJECT devolve as diferenças entre os nós de origem e de destino para o objecto identificado por tipo-objecto, nome-biblioteca e nome-objecto. O objecto não necessita de ser um objecto replicado actualmente.
Para objectos elegíveis para replicação, podem ser executadas operações de comparação para os atributos relacionados com a definição do objecto, os dados contidos no objecto ou ambos. Apenas os objectos *FILE e *OUTQ suportam comparações de dados. Para o objecto a ser comparado, um valor de SIM (YES) tem de ser especificado para pelo menos um dos parâmetros comparar-atributos ou comparar-dados.
- Uma linha é devolvido para cada atributo que é diferente entre nós.
- O valor contido num objecto *DTAARA é considerado um atributo.
- Para um objecto *FILE, é devolvida uma fila para por cada fila de dados que é diferente entre os
nós. O número de registos relativos (RRN, relative record number) é devolvido para identificar a linha.
- Ficheiros com controlo de acesso de fila ou coluna activa, ficheiros com activadores de leitura e ficheiros em estado de verificação pendente não são elegíveis para comparação de dados. Uma linha de resultados será devolvida para indicar que a comparação de dados não foi executada.
- Ficheiros com múltiplos membros, incluindo tabelas particionadas e ficheiros físicos de origem, e que diferenças significativas são encontradas na definição não são elegíveis para comparação de dados. Todos os nomes dos membros têm de corresponder. Uma linha de resultados será devolvida para indicar que a comparação de dados não foi executada.
- Para um objecto *OUTQ, é devolvida uma fila por cada ficheiro em spool que é diferente entre os nós. Esta é a informação devolvida pela vista QSYS2.OUTPUT_QUEUE_ENTRIES_BASIC. O conteúdo do ficheiro em spool não é comparado.
Se não forem encontradas diferenças, não serão devolvidas filas. Se o objecto não for elegível para ser comparado, não são devolvidas filas juntamente com um aviso SQLSTATE de '01H53'. Se o objecto não existir em ambos os nós, não são devolvidas filas juntamente com um erro SQLSTATE de '42704'. Se os nós não estiverem a comunicar, não são devolvidas filas juntamente com um erro SQLSTATE de '560DE'.
- Autoridade *EXECUTE na biblioteca que contém o objecto e
- autoridade *OBJOPR e *READ para o objecto
Para especificar um valor de grau paralelo diferente de NENHUM (NONE), os privilégios mantidos pelo ID de autorização da instrução terão de incluir a autoridade especial *JOBCTL ou terão de estar autorizados a aceder à função de Administrador de SQL ou do IBM® i através da Administração da Aplicação no System i Navigator. O comando Alterar Utilização da Função (CHGFCNUSG), com um ID de função QIBM_DB_SQLADM, pode também ser utilizado para alterar a lista de utilizadores autorizados.
- tipo-objecto
- Uma expressão de caracteres ou cadeia gráfica que identifica o tipo de objecto.Qualquer tipo de objecto de sistema pode ser especificado. No entanto, apenas os seguintes tipos de objecto são instrumentados para operações de comparação. Todos os outros não vão devolver filas e um aviso SQLSTATE de '01H53'.
- *AUTL
- Lista de autorizações. O nome-biblioteca tem de ser QSYS ou tem de ser omitido.
- *DTAARA
- Área de dados, incluindo atributos de sequência de SQL
- *DTAQ
- Fila de dados
- *ENVVAR
- Variável do ambiente ao nível do sistema. O nome-biblioteca tem de ser QSYS ou tem de ser omitido.
- *FCNUSG
- Utilização da função. O nome-biblioteca tem de ser QSYS ou tem de ser omitido.
- *FILE
- Ficheiro de base de dados
- *JOBD
- Descrição do trabalho
- *JOBQ
- Fila de trabalhos
- *JRN
- Diário
- *LIB
- Biblioteca
- *OUTQ
- Fila de saída
- *PGM
- Programa, incluindo atributos de rotina de SQL
- *SECATR
- Atributo de segurança. O nome-biblioteca tem de ser QSYS ou tem de ser omitido. O nome-objecto tem de ser nulo ou tem de ser omitido.
- *SQLPKG
- Pacote de SQL
- *SQLUDT
- Tipo de SQL definido pelo utilizador
- *SQLXSR
- Repositório de esquema SQL XML
- *SRVPGM
- Programa de serviço, incluindo atributos de rotina de SQL
- *SYSVAL
- Valor do sistema. O nome-biblioteca tem de ser QSYS ou tem de ser omitido.
- *USRPRF
- Perfil de utilizador. O nome-biblioteca tem de ser QSYS ou tem de ser omitido.
- nome-biblioteca
- Uma expressão de caracteres ou cadeia gráfica que identifica o nome da biblioteca para o objecto. Se este parâmetro for omitido, QSYS é o predefinido.
- nome-objecto
- Uma expressão de caracteres ou cadeia gráfica que identifica o nome do sistema do objecto a comparar. Para *FCNUSG, o nome é o ID da função. Um nome-objecto é requerido para todos os tipos de objecto excepto *SECATR; nome-objecto é ignorado para o tipo de objecto *SECATR. Se este parâmetro for omitido, nulo é o predefinido.
- comparar-atributos
- Uma expressão de caracteres ou cadeia gráfica que indica se os atributos elegíveis para replicação
são comparados para o objecto.
- NÃO (NO)
- Os atributos não são comparados para o objecto.
- SIM (YES)
- Os atributos são comparados para o objecto. Tipos de objecto que não *FILE ou *OUTQ têm de especificar YES (SIM). Esta é a predefinição.
- comparar-dados
- Uma expressão de caracteres ou cadeia gráfica que indica se os dados dão comparados para um objecto *FILE
ou *OUTQ. O comparar-dados é ignorado quando tipo-objecto não é *FILE ou *OUTQ.
- NÃO (NO)
- Os dados não são comparados para o objecto.
- SIM (YES)
- Os dados são comparados para um objecto *FILE ou *OUTQ. Esta é a predefinição.
- grau-paralelo
- Uma cadeia gráfica ou de caracteres que especifica um grau máximo de paralelismo para utilizar a comparação do objecto.
Se a funcionalidade Db2 Symmetric Multiprocessing (SMP) não for instalada, é emitido um erro se o valor não for NENHUM (NONE).
- 2 a 256
- O máximo grau de paralelismo a ser utilizado.
- NENHUM (NONE)
- Não será utilizado paralelismo. Esta é a predefinição.
O resultado da função é uma tabela que contém linhas com o formato apresentado na seguinte tabela. Todas as colunas são anuláveis.
| Nome da Coluna | Tipo de Dados | Descrição |
|---|---|---|
| ATTRIBUTE_NAME | VARGRAPHIC(512) CCSID 1200
|
O nome do atributo do objecto ou o número de registo relativo (Relative Record Number, RRN) que não é idêntico. |
| VALUE_ON_PRIMARY | VARGRAPHIC(2048) CCSID 1200
|
O valor do nó principal. |
| VALUE_ON_SECONDARY | VARGRAPHIC(2048) CCSID 1200
|
O valor do nó secundário. |
Exemplos
- Lista todos os atributos elegíveis para replicação que são diferentes entre os dois nós para a fila de saída
MYOUTQ na biblioteca APPLIB1. O conteúdo dos ficheiros em spool na fila de saída não serão
comparados.
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 o ficheiro TEST_TABLE na biblioteca TESTLIB, encontre todas as linhas de dados que são diferentes entre
os dois nós. Os atributos de ficheiro não serão
comparados.
SELECT * FROM TABLE(QSYS2.MIRROR_COMPARE_OBJECT( LIBRARY_NAME => 'TESTLIB', OBJECT_NAME => 'TEST_TABLE', OBJECT_TYPE => '*FILE', COMPARE_DATA => 'YES', COMPARE_ATTRIBUTES => 'NO'));
