9.2 Mantendo o ZENworks Data Store no PostgreSQL

As seções a seguir fornecem instruções para fazer backup e restauração do Armazenamento de Dados do PostgreSQL:

9.2.1 Exibindo a senha para o banco de dados PostgreSQL padrão

A senha para o banco de dados padrão do ZENworks PostgreSQL é armazenada como texto simples no Servidor Principal ZENworks. Você poderá acessar o banco de dados sem a senha se estiver conectado como Root.

Se precisar da senha para fins de manutenção, você poderá usar o comando a seguir para exibi-la (você deverá estar conectado como Root):

cat /etc/opt/novell/zenworks/serversecret

9.2.2 Compreendendo a manutenção automatizada do banco de dados

Se você estiver usando um banco de dados PostgreSQL, há algumas tarefas de manutenção automatizadas que são executadas com freqüência diária e mensal.

Manutenção diária: Uma vez por dia, as versões antigas são marcadas, permitindo que o espaço usado por esses registros sejam usados por novos dados; as estatísticas usadas pelo mecanismo de consulta são atualizadas para atingir o melhor desempenho possível. Essa manutenção é executada diariamente às 2:15 h.

Manutenção mensal: Diferentemente da manutenção diária, a manutenção mensal realmente libera o espaço usado pelos registros antigos marcados; isso impede uma grande disparidade entre o espaço em disco alocado para o banco de dados e o espaço real usado pelo banco de dados. Como esse é um processo intensivo, ele é programado para ocorrer mensalmente e não uma vez por dia. Ele é executado às 3:15 h no primeiro dia de cada mês.

9.2.3 Fazendo backup do ZENworks Data Store

Esta seção só será relevante se você usar o banco de dados PostgreSQL como o Armazenamento de Dados.

Você pode usar zlm_dbbackup.sh para fazer um backup do Armazenamento de Dados. Esse utilitário de backup está localizado em /opt/novell/zenworks/sbin.

  1. É importante que você efetue login em um Servidor ZENworks como root.

  2. No Servidor Principal do ZENworks com o armazenamento de dados local, digite o seguinte no prompt de comando:

    zlm_dbbackup.sh

    Para fazer backup do banco de dados do Servidor Secundário do ZENworks, digite o seguinte no prompt de comando:

    zlm_dbbackup.sh -H nome_de_host_do_servidor_principal ou endereçoIP_do_Servidor_Principal

NOTA:A operação de backup do banco de dados será suportada a partir de um Servidor Secundário apenas se sua versão do banco de dados PostgreSQL for igual ou superior à da versão no Servidor Principal. Por exemplo, não será possível executar o utilitário de backup de um Servidor Secundário SLES 9 se o Servidor Principal for um servidor SLES 10. Isso ocorre porque o utilitário pg_dump do servidor SLES 9, que é usado pelo utilitário de backup, é incompatível com a versão do banco de dados PostgreSQL executada no Servidor Principal. É necessário executar o utilitário de backup no Servidor Principal.

Um diretório com a data atual é criado em /var/opt/novell/zenworks/backup/db. O arquivo de backup, denominado marcação_de_horário-zenworks-backup.tar.gz, é gravado nesse diretório. Por exemplo, se o backup for feito em 23 de agosto de 2005 às 23:30 h, o diretório e o arquivo a seguir serão criados:

/var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz

As informações de registro sobre a operação de backup são gravadas no arquivo /var/opt/novell/log/zenworks/dbbackup.log.

O utilitário não requer nenhuma interação do usuário. Se quiser, você poderá programar a operação de backup do banco de dados como uma tarefa cron.

9.2.4 Restaurando o ZENworks Data Store

Esta seção só será relevante se você usar o banco de dados PostgreSQL como o Armazenamento de Dados.

Se necessário, é possível restaurar o ZENworks Data Store com um backup que você tenha criado. Use zlm_dbrestore.sh, localizado em /opt/novell/zenworks/sbin, para restaurar o Armazenamento de Dados de um backup.

A operação de restauração elimina o banco de dados existente e cria um novo.

Para restaurar o ZENworks Data Store:

  1. Em todos os Servidores ZENworks, interrompa os serviços do Servidor ZENworks (novell-zenserver) e do Carregador do ZENworks (novell-zenloader) com os seguintes comandos:

    /etc/init.d/novell-zenserver stop

    /etc/init.d/novell-zenloader stop

    Como todos os Servidores ZENworks acessam o Armazenamento de Dados, é preciso interromper esses serviços em todos os Servidores ZENworks do sistema. Também é necessário garantir que todas as conexões externas com o banco de dados sejam encerradas.

  2. É importante que você efetue login em um Servidor ZENworks como root.

  3. No Servidor Principal do ZENworks, digite o seguinte no prompt de comando:

    zlm_dbrestore.sh -F caminho_arquivo_backup

    Para restaurar um backup de um Servidor Secundário, digite o seguinte no prompt de comando:

    zlm_dbrestore.sh -F caminho_para_o_arquivo_de_backup -H nome_de_host_do_servidor_principal

    Se você tiver feito backup do banco de dados a partir do servidor secundário, poderá restaurar o banco de dados a partir dele apenas se sua versão do banco de dados PostgreSQL for igual à versão no servidor principal.

    A opção -F deve incluir o caminho completo do arquivo de backup. Por exemplo:

    zlm_dbrestore.sh -F /var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz
    
  4. Se solicitado, insira S a fim de parar o Servidor ZENworks (novell-zenserver).

  5. Se solicitado, insira S a fim de parar o ZENworks Loader (novell-zenloader).

  6. Quando solicitado a fornecer uma senha para descartar o banco de dados, digite a senha configurada em /etc/opt/novell/zenworks/hibernate.cfg.xml, usada para fazer a autenticação no banco de dados do PostgreSQL.

  7. Quando solicitado a fornecer uma senha para criar o novo banco de dados, digite a senha configurada em /etc/opt/novell/zenworks/hibernate.cfg.xml, usada para fazer a autenticação no banco de dados do PostgreSQL.

    As informações de registro sobre a operação de restauração são gravadas no arquivo/var/opt/novell/log/zenworks/dbrestore.log.

  8. Após a restauração, é necessário verificar se o Armazenamento de Dados está sincronizado com o Armazenamento de Objetos. Para obter instruções, consulte a Seção 9.4, Sincronizando o Armazenamento de Objetos e o Armazenamento de Dados.

  9. Em todos os Servidores ZENworks, inicie o Servidor ZENworks (novell-zenserver) e o Carregador do ZENworks (novell-zenloader) com os seguintes comandos:

    /etc/init.d/novell-zenserver start

    /etc/init.d/novell-zenloader start

9.2.5 Otimizando o banco de dados do servidor

Para melhorar o desempenho do banco de dados do servidor, use o script zlm-pgsql-vacuum, encontrado no diretório /opt/novell/zenworks/bin do Servidor ZENworks. Quando você instala um Servidor Principal do ZENworks em um banco de dados do PostgreSQL local, o programa de instalação cria um script que é executado diariamente.

O script zlm-pg-vacuum executa o comando vacuumdb, que tem um impacto significativo sobre o desempenho do banco de dados. Efetue login como root antes de executar o script zlm-pg-vacuum. Para obter o desempenho ideal, execute os seguintes scripts vacuum:

  • zlm-pg-vacuum ou zlm-pg-vacuum --busy-tables: Dependendo da atividade do banco de dados, execute o script diária ou semanalmente. Execute o script uma vez por semana em um servidor com carga leve e uma vez por dia em um servidor com carga pesada.

  • zlm-pg-vacuum --full: Execute o script durante um período de menor atividade ou durante o tempo de espera do servidor de banco de dados. Dependendo da atividade do banco de dados, execute o script semanal ou quinzenalmente. Ele executa uma análise vacuum completa e bloqueia exclusivamente tabelas. É recomendável executar manualmente o script zlm-pg-vacuum --full uma vez por mês, executando as seguintes etapas:

    • 1. Pare todos os serviços do ZENworks executando zlm-config --stop.
    • 2. Execute zlm-pg-vacuum --full.
    • 3. Inicie todos os serviços do ZENworks executando zlm-config --start.

Adicionalmente, você pode ajustar os parâmetros a seguir dependendo do dimensionamento e dos requisitos de memória:

  • No arquivo /etc/sysctl.conf, configure kernel.shmmax.

  • No arquivo postgresql.com, configure buffer_compartilhado, mem_classif, mem_vacuum, buffers_wal e segmentos_ponto_de_verificação.

Para obter mais informações sobre como ajustar os parâmetros, consulte a documentação do PostgreSQL.

Veja a seguir um cenário de exemplo que ilustra como é possível ajustar os parâmetros do banco de dados. Os valores indicados nesse cenário são de exemplo; você deve ajustá-lo de acordo com seus requisitos. Para obter mais informações sobre como ajustar os parâmetros, consulte a documentação do PostgreSQL.

Um cenário de exemplo: Nesse cenário, suponha que o servidor ZENworks esteja em execução em um IBM x346 com dois processadores Xeon e 4 GB de RAM. O banco de dados está em execução no mesmo servidor. 2 GB de RAM são dedicados a outros processos do ZENworks, 1 GB de RAM ao sistema operacional e processos não-ZENworks, e o 1 GB de RAM restante é para o PostgreSQL.

Para otimizar o desempenho do banco de dados do servidor:

  1. No arquivo /etc/sysctl.conf, defina o valor de kernel.shmmax como 1572864000, de modo que o processo possa ter 1,5 GB de memória compartilhada.

    O parâmetro do kernel shmmax permite que o PostgreSQL consuma mais memória compartilhada. Por padrão, o kernel permite apenas que um processo consuma 32 MB de memória compartilhada.

    NOTA:Esta etapa não se aplica quando o ZENworks 7.3 Linux Management está sendo executado em um dispositivo do SLES 10, pois, por padrão, o valor de kernel.shmmax é 4 GB no SLES 10.

  2. No arquivo postgresql.com, configure os seguintes parâmetros:

    • buffers_compartilhados = 131072

    • mem_classif = 10240

    • mem_vacuum = 102400

    • buffers_wal = 20

    • segmentos_ponto_de_verificação = 20

  3. Reinicialize o servidor para que as mudanças entrem em vigor.

9.2.6 Reiniciando serviços do Servidor Novell ZENworks após reiniciar o banco de dados

Depois da reinicialização do banco de dados PostgresSQL no Servidor ZENworks Linux Management, as conexões do banco de dados serão restauradas em aproximadamente 15 minutos. Durante esse período, o ZENworks Control Center e o utilitário zlman poderão exibir erros de conexão do banco de dados.

Para restaurar as conexões imediatamente, reinicie os serviços do Novell ZENworks executando este comando:

/opt/novell/zenworks/bin/zlm-config --restart