Utilitários usados para multilocação

Este artigo contém os seguintes tópicos:
casm173
Este artigo contém os seguintes tópicos:
Esta seção descreve utilitários usados para gerenciar um ambiente multilocação.
Observação:
os parâmetros obrigatórios estão encerrados entre "{ }" e os opcionais entre "[ ]".
pdm_buildtenant
— Criando inquilinos a partir de outro objeto
O utilitário
pdm_buildtenant
é usado para criar inquilinos de outro objeto. Você deve ter usado partições de dados e outro objeto do CA SDM para obter algumas das funcionalidades agora fornecidas pela multilocação. Se quiser converter uma implementação em multilocação, a primeira etapa será usar pdm_buildtenant para mapear os dados no objeto usando anteriormente para o objeto de novo inquilino.
Antes de executar pdm_buildtenant, você
deve
configurar o provedor de serviço.
Nessa seção, o objeto usado para manter as informações do inquilino é denominado objeto de pré-inquilino. Para a maioria das localidades com estes requisitos, o objeto org (organização) é o objeto pré-inquilino, mas a seguinte abordagem pode ser usada para qualquer objeto pré-inquilino.
O utilitário pdm_buildtenant cria os objetos de inquilino a partir de objetos de pré-inquilino. Esse aplicativo cria um inquilino para cada objeto de pré-inquilino e define o atributo de inquilino nesse objeto para fazer referência ao novo inquilino. Este utilitário tem a seguinte sintaxe:
pdm_buildtenant [-h] | [-f [configuration_file]
  • -f configuration_file
    (Opcional) Especifica o local de um arquivo de configuração especificando as regras de criação de inquilinos a partir do objeto de pré-inquilino. Se esse argumento não estiver incluído, o pdm_buildtenant usará o arquivo de configuração do diretório $NX_ROOT/site/cfg. Esse arquivo considera que o objeto de pré-inquilino é org; se esse não for o caso, você
    deverá
    editar o arquivo de configuração antes de usar pdm_buildtenant.
    Você
    deve
    copiar buildtenant.xml para o diretório $NX_ROOT/site/cfg. Além disso, o arquivo buildtenant.xsd deve estar no mesmo diretório que o arquivo buildtenant.xml, ou você receberá uma mensagem de erro. Quando você instala o produto, buildtenant.xsd está localizado em $NX_ROOT/site/cfg, por isso não é necessário copiar esse arquivo.
  • -h
    Exibe informações de uso para pdm_buildtenant.
A seguir, o formato do arquivo de configuração:
<?xml version="1.0" encoding="utf-8" ?> <BuildTenant> <Object from="MajicObjectName"> <Attribute from="sourceAttribute1" to="tenantAttribute1" /> <Attribute from="sourceAttribute2" to="tenantAttribute2" /> </Object> </BuildTenant>
O atributo
from
da marca Object identifica o objeto de pré-inquilino. Cada marca Attribute identifica um atributo a ser copiado do objeto de pré-inquilino para um atributo do novo inquilino.
Para implementações UNIX de multilocação,
é preciso
executar pdm_task para exportar LIBPATH antes de executar os utilitários pdm_settenant e pdm_buildtenant. Se não executar pdm_task antes de executar esses utilitários, você receberá erros de sistema. Use ../pdm_task para executar o comando.
pdm_clean_attachments — Excluir anexos redundantes depois da importação de dados do inquilino
Depois de importar os dados do inquilino, exclua os anexos redundantes. Este utilitário tem a seguinte sintaxe:
pdm_perl pdm_clean_attachments.pl [-h] | [-n repository_name] | [-S|-K]
  • -h
    Especifica a exibição da ajuda da linha de comandos.
  • -n
    repository_name
    Especifica o nome do repositório a ser processado. Quando não especificado, todos os repositórios são processados.
  • -S
    Especifica se apenas repositórios do CA SDM são processados.
  • -K
    Especifica se apenas os repositórios do gerenciamento de conhecimento e das imagens integradas são processados.
Executar o comando pdm_clean_attachments.pl sem nenhum argumento processará todos os repositórios.
No UNIX, o LIBPATH precisa ser definido antes de executar vários utilitários do CA SDM. Use o
pdm_task
para definir o LIBPATH antes de executar o utilitário. Por exemplo, digite "pdm_task pdm_clean_attachments...".
pdm_settenant — Atribuindo inquilinos a objetos
Após definir os inquilinos, use o utilitário
pdm_settenant
para definir a coluna de inquilinos em outros objetos. Este utilitário tem a seguinte sintaxe:
pdm_settentant [-h] | {-f [configuration_file] | -r} [-d domsrvr]
  • -d domsrvr
    (Opcional) Especifica um domsrvr a usar. Se o argumento não estiver especificado, o pdm_settenant usará o domsrvr padrão.
  • -f
    configuration_file
    (Opcional) Especifica o local de um arquivo de configuração definindo os dados que serão atualizados e as regras de atualização do arquivo. Se esse argumento não for especificado, pdm_settenant usará o arquivo de configuração do diretório de $NX_ROOT/site/cfg (depois que o arquivo de configuração for copiado para a pasta $NX_ROOT/site/cfg).
    Observação:
    é possível modificar o arquivo de exemplo settenant.xml ou criar um arquivo e copiá-lo para o diretório $NX_ROOT/site/cfg. Adicionalmente, settenant.xsd deve estar no mesmo diretório que settenant.xml, ou ocorrerá um erro. Quando você instala o produto, settenant.xml é localizado em $NX_ROOT/site/cfg, por isso não é necessário copiar esse arquivo.
O exemplo de código XML a seguir descreve o formato desse arquivo:
<?xml version="1.0" encoding="utf-8" ?> <SetTenant> <Object name="MajicObjectName"> <TenantRule type="SREL">MajicColumName</TenantRule> <Where>tenant is null</Where> </Object> <Object name="MajicObjectName"> <TenantRule type="Name">TenantName</TenantRule> <Where>tenant is null</Where> </Object> </SetTenant>
Cada marca de Objeto especifica um objeto do CA SDM a ser locado. A marca TenantRule especifica como o pdm_settenant deve determinar o inquilino, e a marca Where seleciona os objetos a serem locados. Há dois tipos de marcas TenantRule.
  • type="Name"
    Especifica um inquilino explícito por nome.
  • type="SREL"
    Especifica um atributo SREL no objeto. O pdm_settenant copia o inquilino do objeto mencionado pelo SREL.
  • -h
    Exibe as informações de uso do pdm_settenant.
  • -r
    Gera um relatório que exibe o número total de linhas em cada tabela de inquilino obrigatório e a quantidade de tabelas com uma coluna de inquilino nula.
Se os argumentos -f e -r forem especificados, o pdm_settenant irá gerar um relatório depois de executar sua atualização. Se você especificar apenas o argumento -r, o pdm_settenant gerará um relatório, mas não atualizará nenhum dado.
Executar o pdm_settenant sem nenhum argumento exibirá as informações de uso. Para executar o pdm_settenant usando o arquivo de configuração padrão, especifique a opção -f sem o argumento configuration_file. O utilitário pdm_settenant lê seu arquivo de configuração e processa em sequência cada regra que ele define. Grava a saída para o arquivo pdm_settenant.log no diretório $NX_ROOT/log.
É possível executar o pdm_settenant quantas vezes forem necessárias. A primeira transmissão pode demorar significativamente (possivelmente várias horas em um site grande). As vezes seguintes serão mais rápidas, pois só será necessário processar as linhas ainda não atualizadas. Isso prepara o banco de dados antes da instalação da opção Multi-locação.
Nas implementações do UNIX de multilocação, execute o pdm_task para exportar LIBPATH antes de executar os utilitários pdm_settenant e pdm_buildtenant. Se não executar pdm_task antes de executar esses utilitários, você receberá erros de sistema. Use ../pdm_task para executar o comando.
Considerações sobre a atribuição de inquilinos a objetos
Após definir os inquilinos, use o utilitário pdm_settenant (atribuir inquilinos a objetos) para definir a coluna de inquilino em outros objetos. Ao alterar o inquilino de um objeto, considere a possibilidade de alterar a locação em objetos alocados relacionados para manter a integridade dos dados. A falta de sincronização entre esses objetos pode fazer com que os dados pareçam ter ICs, relacionamentos, MDR, controle de versão faltando, dentre outros itens. Os seguintes objetos do CA CMDB são alocados:
  • nr — Definições de IC
  • nr_com — Entradas de log associadas a um IC
  • bmhier — Relacionamentos associados a ICs
  • mdr_idmap — Definições de provedor do MDR
  • ci_mdr_idmap — Mapeamentos de IC/MDR federado
Para cada IC, faça o seguinte para sincronizar os dados ao usar pdm_settenant para alterar a locação:
  • Especifique nr como nome do objeto de IC.
  • Mude as entradas de log associadas ao IC em nr_com para exibir as entradas de log do novo inquilino.
Exemplo: XML para mudar o inquilino e o log
O seguinte XML muda o inquilino de um IC nomeado CITest para T2, bem como as entradas de log correspondentes em nr_com:
<Object name="nr"> <TenantRule type="Name">T2</TenantRule> <Where>name = 'CITest'</Where> </Object> <Object name="nr_com"> <TenantRule type="Name">T2</TenantRule> <Where>asset_id.name = 'CITest'</Where> </Object>
pdm_tenant_delete — Excluindo os dados do inquilino de um banco de dados
O utilitário
pdm_tenant_delete
remove de um banco de dados todos os dados de determinado inquilino.
As restrições de referência no ca_ tables devem ser eliminadas antes da execução do pdm_tenant_delete, e restauradas depois.
Este utilitário tem a seguinte sintaxe:
pdm_tenant_delete -h|-t tenant_name [-C|-R] [-Q]
  • -h
    Exibe as informações de uso de pdm_tenant_delete.
  • -t
    tenant_name
    Especifica o nome do inquilino dos dados a serem excluídos.
    O inquilino deve ser marcado como inativo antes de poder usar esse utilitário para excluir os dados.
  • -C
    Especifica se todos os contatos de um inquilino serão marcados como inativo. Como é possível compartilhar contatos entre produtos, a lógica padrão não deve excluir ou desativar contatos em massa, exceto quando solicitado explicitamente.
    Esta opção será ignorada se a opção -R for especificada.
  • -R
    Especifica se todas as linhas em todas as tabelas de inquilinos marcadas como CA_COMMON, no ddict.sch, serão excluídas, incluindo o próprio objeto Inquilino.
    Essas tabelas são compartilhadas entre vários produtos, assim use esta opção com cautela.
  • -Q
    Especifica processamento rápido de consultas para executar consultas no banco de dados o mais rápido possível. Se este argumento não for especificado, o utilitário usará o processo de consulta em segundo plano, de modo que as consultas sejam executadas apenas quando o sistema estiver ocioso de alguma forma. Este argumento melhora o tempo de execução ao preço de um impacto maior em um sistema ativo.
    No UNIX, o LIBPATH precisa ser definido antes de executar vários utilitários do CA SDM. Use o
    pdm_task
    para definir o LIBPATH antes de executar o utilitário. Por exemplo, digite "pdm_task pdm_clean_attachments...".
pdm_tenant_extract — Extraindo dados de inquilino
O utilitário
pdm_tenant_extract
extrai de um banco de dados todos os dados de determinado inquilino. Os dados são extraídos no formato pdm_userload de modo que possam ser facilmente carregados em outro banco de dados. Este utilitário tem a seguinte sintaxe:
pdm_tenant_extract -h | -c control_file [-d domsrvr] [-g yes|no] [-o output_file] -p phase [[-t tenant_name]...] [-Q] [table1 [table2...]]
  • -h
    Exibe as informações de uso para pdm_tenant_extract.
  • -c
    control_file
    Especifica o local do arquivo de controle para essa extração de inquilino. Para a fase Inicial, o arquivo é criado no local especificado (e ainda não deve existir). O arquivo deve existir para as fases Atualização e Final.
  • -d domsrvr
    (Opcional) Especifica um domsrvr a usar.
  • -g yes|no
    (Opcional) Especifica se dados públicos ou não são incluídos no arquivo de saída. Se esse argumento não for especificado, os dados públicos de todas as tabelas são incluídos.
  • -o
    output_file
    (Opcional) Especifica a localização do arquivo de saída. Se esse argumento não estiver especificado, a saída será direcionada a stdout.
  • -p
    phase
    Especifica a fase da extração. Use um dos seguintes valores:
    I
    — Inicial
    U
    — Atualização
    F
    — Final
  • -t
    tenant_name
    Especifica o nome de um inquilino a ser extraído. Esse argumento é necessário para a fase Inicial e pode ser repetido para vários inquilinos. Não é válido nas fases Atualização e Final.
  • -Q
    Especifica processamento rápido de consultas para executar consultas no banco de dados o mais rápido possível. Se esse argumento não for especificado, o utilitário usará o processo de consulta em segundo plano, de modo que as consultas sejam executadas apenas quando o sistema estiver ocioso de alguma forma.
  • table1 [table2...]
    (Opcional) Especifica as tabelas a serem extraídas. Se omitido, todas as tabelas são extraídas.
A saída da fase inicial deve ser carregada para um banco de dados que nunca tenha sido usado para o CA SDM ou para qualquer outro produto. Cada tabela carregada a partir dos dados iniciais da fase é truncada antes da carga, o que poderia causar perda de dados se o banco de dados já estiver em uso.
Para evitar problemas de referência durante o carregamento de dados, execute o script de eliminação de restrição apropriado ($NX_ROOT/samples/views/Oracle/OracleDropConstraints.sql ou $NX_ROOT/samples/views/SQLServer/SQLDropConstraints.sql). Depois da conclusão dos carregamentos, aplique novamente as restrições com o script xxxAddConstraints.sql apropriado localizado no mesmo diretório.
pdm_userload — Carregar dados do inquilino
O utilitário
pdm_userload
é usado para carregar dados em um banco de dados do CA SDM. Esse utilitário estará disponível mesmo se a multilocação não estiver instalada. A multilocação agrega suporte a um argumento adicional (-t) que especifica o nome de um inquilino cuja Id deva ser incluída na coluna de inquilinos de todas as linhas inseridas e atualizadas em uma tabela com inquilinos. O inquilino especificado já deve estar no banco de dados.
Ao extrair dados, execute estas etapas para prevenir erros no stdlog:
  1. Antes de iniciar o carregamento de dados, encerre o CA SDM e reinicie o produto no modo DBADMIN, como segue:
    • Windows
      Execute pdm_d_mgr -s DBADMIN
    • UNIX
      Execute pdm_init -s DBADMIN
  2. Depois do carregamento dos dados, encerre o CA SDM usando o comando pdm_halt.
  3. Reinicie o CA SDM no modo normal.