As informações abaixo sobre o utilitário db2inidb substituem as informações do manual O que Há de Novo na Versão 7.2.
O db2inidb é uma ferramenta fornecida com o DB2 que pode executar recuperação de travamento ou colocar um banco de dados em estado pendente de atualização.
E/S Suspensa suporta disponibilidade contínua de sistema por proporcionar implementação integral para tratamento de espelhamento dividido on-line, ou seja, dividir um espelhamento sem desligar o banco de dados. Se não for possível fazer backups off-line ou on-line em um grande banco de dados, você pode fazer backups ou cópias do sistema a partir de uma imagem espelhada utilizando E/S suspensa e uma imagem espelhada dividida.
E/S suspensa evita gravações em disco enquanto a imagem espelhada dividida de um banco de dados está sendo feita. Todas as operações do banco de dados além de backup e restauração on-line devem funcionar normalmente enquanto um banco de dados está suspenso. No entanto, algumas operações podem esperar que as gravações de E/S sejam retomadas, caso páginas danificadas precisem ser eliminadas do conjunto de buffers ou buffers de log para os logs. Essas operações devem reiniciar normalmente assim que as E/S do banco de dados forem reiniciadas. É importante que as E/S do banco de dados sejam retomadas a partir da mesma conexão da qual foram originalmente suspensas e que nenhuma outra operação seja executada a partir dessa conexão até que a E/S do banco de dados retome. Caso contrário, uma tentativa subseqüente de conexão pode ser interrompida se exigir a limpeza de páginas danificadas do conjunto de buffers para o disco.
As conexões seguintes serão concluídas quando a E/S for retomada. Se suas tentativas de conexão estiverem sendo interrompidas e se tornar impossível retomar a E/S da conexão utilizada para suspendê-la, será necessário executar o comando RESTART com a opção WRITE RESUME. Quando utilizado nessa circunstância, o comando RESTART retomará a E/S sem executar a recuperação após falha. O comando RESTART com a opção WRITE RESUME executará somente a recuperação após falha, quando você utilizá-lo após uma falha no banco de dados.
Em um ambiente de banco de dados particionado, não é necessário suspender gravações de E/S em todas a partições de maneira simultânea. É possível suspender um subconjunto de uma ou mais partições para criar espelhamentos divididos para executar backups off-line. Se o nó do catálogo estiver incluído no subconjunto, ele deve ser a última partição a ser suspensa.
O espelhamento de um banco de dados envolve principalmente a cópia de todo o conteúdo do diretório do banco de dados e do diretório do banco de dados local. O diretório do banco de dados local, sqldbdir está localizado no mesmo nível da estrutura de arquivos que o diretório do banco de dados principal. Além disso, se os contêineres do diretório de log e do espaço de tabelas não estiverem no diretório do banco de dados, eles também devem ser copiados. Como o banco de dados espelhado dividido é dependente desses caminhos de diretório, os caminhos para os quais esses diretórios são copiados devem ser idênticos aos do sistema principal. Isso significa que a instância deve também ser a mesma. Como resultado dessa dependência, não é possível criar um banco de dados espelhado no mesmo sistema do banco de dados principal, a não ser que a nova opção "relocate" da ferramenta db2inidb seja utilizada.
O propósito da opção "relocate" é realocar um banco de dados em um determinado sistema, utilizando o arquivo de configuração especificado. Isso pode envolver alterar o diretório interno do banco de dados, o diretório do contêiner, o diretório de log, o nome da instância e os nomes do banco de dados. Assumindo-se que o diretório do banco de dados, diretórios de contêiner e diretório de registro foram espelhados com sucesso nos diferentes caminhos de diretório no mesmo sistema que o banco de dados principal, a ferramenta db2inidb pode ser utilizada juntamente com a opção "relocate" para atualizar os caminhos internos do banco de dados espelhado. Um cenário de utilização com essa opção pode ser encontrado abaixo.
Dependendo de como os dispositivos de armazenamento estão sendo espelhados, as utilizações de db2inidb irão variar. As seguintes utilizações assumem que todo o banco de dados está espelhado consistentemente através do sistema de armazenamento.
Em um ambiente com vários nós, a ferramenta db2inidb deve ser executada em cada partição antes que o espelhamento dividido possa ser utilizado a partir de qualquer uma das partições. A ferramenta db2inidb pode ser executada em todas as partições simultaneamente utilizando o comando db2_all.
Clonando um Banco de Dados
O objetivo aqui é ter um clone do banco de dados principal para ser utilizado em outro sistema. O seguinte procedimento descreve como um banco de dados clone pode ser feito:
db2 set write suspend for database
db2 set write resume for database
Após executar o comando, o banco de dados principal deve voltar ao estado normal.
db2start
db2inidb database_name AS SNAPSHOT
Você também pode utilizar esse processo para fazer um backup off-line mas, se restaurado no banco de dados principal, esse backup não poderá ser utilizado para atualização, porque a cadeia de logs não será igual.
Utilizando o Espelhamento Dividido como um Banco de Dados de Reserva
Como o banco de dados espelhado (de reserva) é continuamente atualizado por meio de logs, novos logs que são criados pelo banco de dados principal são constantemente recuperados do sistema principal. O seguinte procedimento descreve como um espelhamento dividido pode ser utilizado como um banco de dados de espera:
db2 set write suspend for database
db2 set write resume for database
db2inidb nome_do_banco_de_dados AS STANDBY
Utilizando o Espelhamento Dividido como uma Imagem de Backup
O seguinte procedimento descreve como utilizar o banco de dados espelhado como uma imagem de backup para restaurar no banco de dados principal:
db2inidb database_name AS MIRROR
Dividindo um Espelhamento em um Mesmo Sistema que o Banco de Dados Principal
O seguinte procedimento descreve como utilizar a opção "relocate" da ferramenta db2inidb para espelhar um banco de dados no mesmo sistema que um banco de dados principal. O exemplo assume que o banco de dados será utilizado sob uma nova instância.
db2 set write suspend for database
db2 set write resume for database
db2start
db2inidb database_name as STANDBY relocate using config_file