essbase series - backup
TRANSCRIPT
Essbase Series
March 19
2012 Este artigo tem como objetivo demonstrar o que é necessário para fazer Backup e Restauração de dados e estrutura no Essbase.
Backup e Restore
Oracle Essbase
A parte mais crucial na manutenção de um banco de dados é o Backup, quando
estamos falando de Oracle Essbase isso não é uma excessão. É muito importante
sincronizar os backups dos banco de dados do Essbase com a manutenção dos
ambientes de produção e desenvolvimento principalmente.
A frequencia dos backups é muito relativa e depende diretamente do tipo de
volatilidade e necessidade que o ambiente necessita, como por exemplo, um ambiente
de desenvolvimento requer backups de tempos em tempos, às vezes até mais que um
backup por dia, por se tratar de um ambiente onde existem muitas alterações de
códigos e objetos. Já um ambiente de produção necessita de pelo menos um backup
no dia, mas também é uma situação que deve ser analisada no ciclo de vida do banco
de dados. O mais importante nesse processo é garantir que no momento em que
precisar restaurar o sistema os arquivos de backup estejam prontos com a última
posição ou com a posição necessária para se restaurar devidamente o ambiente.
Existem dois métodos para fazer backup no Essbase:
Preparar o banco de dados para backup no File System
Neste tipo de backup, preparamos os componentes do banco de dados, tais
como, objetos, variáveis, estrutura de metadado, arquivos de propriedades,
arquivos de segurança e etc, para serem copiados através do file system do
sistema operacional.
Exportar os dados para arquivo texto
Neste tipo de backup, preparamos os dados para serem copiados.
Backup – Arquivos importantes
Abaixo segue um quadro contendo todos os arquivos que são importantes e que deve
ser feito backup ao menos diariamente.
Arquivo Local
essn.ind \essbase\app\appname\dbname
essn.pag \essbase\app\appname\dbname
dbname.esm \essbase\app\appname\dbname
dbname.tct \essbase\app\appname\dbname
dbname.ind \essbase\app\appname\dbname
appname.app \essbase\app
dbname.db \essbase\app\appname\dbname
x.lro \essbase\app\appname\dbname
essbase.sec \essbase\bin
essbase.bak \essbase\bin
essbase.cfg \essbase\bin
Objetos de banco de dados tais como .otl, .csc, .rul, .rep, .eqp, e .sel
\essbase\app\appname\dbname
Scripts ESSCMD e MaxL Não tem um local padrão para armazenamento, deve-se verificar na documentação do projeto para identificar quais diretórios foram criados e em qual servidor para guardar os scripts de integração.
Notas:
É muito importante lembrar que os arquivos .ind e .pag podem ter mais de
uma ocorrência por banco de dados, e que devemos fazer o backup de todos
os arquivos encontrados.
Antes de fazer o backup do arquivo essbase.sec os serviços do essbase
devem estar parados.
Backup – File System
Um método muito utilizado para fazer o backup dos banco de dados do servidor
Essbase é copiando todas as pastas do banco de dados. Você pode fazer essa tarefa
utilizando qualquer aplicativo de backup existente no mercado. Podemos copiar desde
diretórios específicos até fazer a cópia de toda a estrutura de diretórios onde estão os
bancos de dados e objetos.
Mas, para que esse tipo de backup seja bem sucedido, devemos primeiro parar o
serviço do Servidor Essbase, isto significa que o banco de dados deve ficar parado e
sem acesso até que o processo de backup esteja concluído, caso o serviço esteja
“Iniciado”, o processo não terá êxito ao copiar determinados arquivos. Outra
alternativa é o chamado HOT BACKUP, que consiste em fazer com que o banco de
dados entre em estado de “MODO LEITURA” ou como é chamado em inglês READ-
ONLY MODE, veremos detalhes sobre esse tipo de configuração no próximo capítulo.
Backup – Modo Leitura e Gravação
Colocando o banco de dados em Modo de Leitura
O Essbase provêm uma maneira de preparar o banco de dados para Backup
permitindo também que os usuários façam consultas, emitam seus relatórios enquanto
o processo de Backup está sendo executado. Para isso, devemos colocar o banco de
dados em Modo Leitura (Read-Only ou Archive Mode), isso faz com que o banco de
dados esteja disponível apenas para leituras de dados, não podendo realizar nenhum
processo de gravação de dados durante o tempo em que estiver neste Modo. Após o
término do processo de Backup você poderá voltar o banco de dados para o Mode
Leitura e Gravação (Read-Write mode). Para colocar o essbase em Modo Leitura use o
comando abaixo:
Ferramenta Instrução
MaxL alter database begin archive
ESSCMD BEGINARCHIVE
Nota: Se houver tentativa de cancelamento dos commandos MaxL ou ESSCMD antes
do término será mostrada a seguinte mensagem no console “can’t cancel”. Esta
mensagem ocorre pois o processo para colocar o banco de dados em Mode de Leitura
é complexo (será descrito abaixo) e para protenção o Essbase cancela qualquer
tentativa de quebra de ponteiro, caso o administrador tenha colocado o banco de
dados em Modo Leitura, espere até o final e volte ao Modo de Leitura-Gravação com o
comando apropriado.
O comando begin-archive faz o seguinte quando executado:
Finaliza todas as modificações pendentes no banco de dados em disco
(conhecido também como “Commit”).
Troca o modo do banco de dados para Modo de Leitura (read-only mode).
Re-abre os arquivos do banco de dados em modo compartilhado.
Cria um arquivo contendo a lista de arquivos que devem ser feito Backup.
Como padrão o arquivo é chamado de archive.lst. Este arquivo é gravado no
diretório padrão do banco de dados.
Se o usuário tentar modificar algum dado ou inserir algum dado novo durante o
processo de backup, uma messagem de alerta será mostrada indicando que o sistema
está em modo leitura para a realização de backup.
Os comando begin-archive e end-archive não fazem o backup; eles apenas são
utilizados para alterar o “MODO” do banco de dados. Para fazer o backup é necessário
um utilitário específico, ou uma rotina de sistema operacional para fazer a cópia dos
arquivos necessários para a mídia específica.
ATENÇÃO:
Se você estiver fazendo o backup sem utilizar o comando begin-archive, tenha certeza
que todas as aplicações e bancos de dados do Essbase que você deseja fazer o backup
estejam “paradas” e todos os usuários estejam sem acesso às mesmas durante o
processo de backup. Caso contrário, existe um forte risco de corromper os bancos de
dados.
Colocando o banco de dados em Modo de Leitura-Gravação
Depois da realização do backup é necessário voltar o banco de dados Essbase ao modo
de leitura-gravação (read-write mode). Para colocar o Essbase em Modo Leitura-
Gravação, use os comandos abaixo:
Ferramenta Instrução
MaxL alter database end archive
ESSCMD ENDARCHIVE
O comando end-archive faz o seguinte quando executado:
Retorna o banco de dados ao Modo Leitura-Gravação.
Re-abre os arquivos do banco de dados em modo exclusivo (read-write mode).
Backup – Exportar Dados
Até o momento falamos apenas dos backups de arquivos e estruturas dos bancos de
dados Essbase. Neste capítulo, iremos abordar a extração dos dados dos bancos de
dados. Esse processo é chamado de Exportação ou Export e consiste em extrair os
dados de um banco de dados Essbase e gerar um ou mais arquivos texto. Os arquivos
são gerados no formato ASCII e contém apenas dados, não são incluídos controles,
outlines, informações de segurança.
Utilizamos esse recurso para as seguintes necessidades:
Transferência de dados entre plataformas. Exemplo: Exportar os dados de uma
regional do ambiente de produção para o ambiente de homologação para testar
um novo desenvolvimento.
Fazer backup de parte do banco de dados. Exemplo: Exportar apenas os dados
do cenário Planejado para as contas de Vendas e Custos, ou por exemplo,
exportar apenas os dados de nível 0 sem considerar as consolidações.
Exportar as informações em formato texto. Exemplo: Fazer backup completo do
banco de dados em formato .TXT.
Algumas vantagens ao utilizar a exportação de dados como um recurso:
Você pode usar o resultado do arquivo ASCII gerado para transferir
informações entre plataformas distintas, exemplo: desenvolvimento –
homologação - produção, enfim pode criar um ambiente de origem e destino
utilizando um arquivo texto. Mas lembre-se, quando geramos os dados a
estrutura não é carregada neste arquivo, logo, o banco de dados de origem e o
banco de dados ao qual será carregada a informação devem ter o mesmo
desenho do outline, caso contrário será reportado um erro.
Durante o processo de exportação a integridade dos dados é verificada pois
cada bloco de dados é verificado para confirmar se corresponde a página e
arquivos de índice.
É possível reduzir a fragmentação em um banco de dados exportando os dados
para um arquivo texto, fazendo a limpeza do banco de dados e carregando o
arquivo texto novamente para o banco de dados.
Você pode exportar um banco de dados no formato de colunas, isso pode
facilitar nas atividades de manipulação do arquivo, utilização com outros
sistemas, criação de regras de carga no Essbase para carregar as informações
em outros bancos de dados e etc.
Algumas desvantagens ao utilizar a exportação de dados como um recurso:
Membros dinâmicos não são exportados, apenas membros gravados em disco
são utilizados no processo de Export de dados.
No momento em que os dados estão sendo exportados os usuários não podem
atualizar o banco de dados. Caso isso venha a acontecer o usuário irá receber
uma mensagem de erro. Ou seja, apenas a leitura de dados está disponível
quando o processo de Exportação de dados tem inicio.
ATENÇÃO:
Os dados gerados para arquivo texto não tem compressão de dados, logo não se
assuste caso o arquivo texto gerado seja maior que o tamanho do banco de dados.
Outro ponto importante é que, quanto maior o banco de dados maior será o tempo
gasto para gerar um Export de dados.
Exportando os dados
Para exportar os dados, use um dos comandos abaixo:
Ferramenta Instrução
EAS Selecione Database > Export
ESSCMD EXPORT ou PAREXPORT
MaxL Export data
Todos os métodos utilizados requerem algumas informações básicas:
A quantidade de dados a exportar:
o Todos os dados.
o Blocos de nível 0 (blocos contendo apenas combinações de membros de
dimensões esparsas de nível 0, estes blocos podem conter dados de
nível superior para membros de dimensão densa).
o Blocos de dados de entrada (blocos de dados contendo dados criados a
partir de uma carga ou planilha através dos comandos Lock & Send).
Exportar os dados em formato de coluna ou formato livre.
Defina o diretório e o nome padrão para o arquivo texto.
Exportando arquivos de dados maiores que 2 Gb
Alguns sistemas de gerenciamento de arquivos de texto não suportam arquivos
maiores que 2 Gb. Em qualquer sistema operacional, o Essbase se antecipa quando o
arquivo for superior a 2 Gb e cria dois ou mais arquivos de exportação, conforme
necessário.
Quando o Essbase cria múltiplos arquivos de exportação, ele usa o nome do arquivo
principal. Um “_” (sublinhado) e um número sequencial são anexados aos nomes dos
arquivos adicionais, começando com “_1”. Como por exemplo, imagine o nome do
arquivo expJan.txt e o tamanho do banco de dados seja maior que 4 Gb, neste caso
o Essbase irá criar 3 arquivos, o nome deles ficaria assim: expJan.txtb,
expJan_1.txt e expJan_2.txt.
Backup – Impotar Dados (Arquivo Texto)
Para carregar os dados a partir de um arquivo texto use um dos comandos abaixo:
Ferramenta Instrução
EAS Considere a carga dos dados sem utilizar uma regra de carga (Rule File). Selecione Database > Data Load
ESSCMD IMPORT
MaxL Import data
Quando carregamos os dados através de um arquivo texto, os dados são marcados
como dados de entrada. Se este arquivo contém apenas dados exportados de blocos
nível 0 ou blocos de entrada é necessário recalcular o banco de dados após a carga.
Quando o Essbase recalcula o banco de dados, ele o faz para cada bloco de dados.
Se você exportar todos os dados (All data) e em seguida importar esses dados, o
Essbase irá marcar todos os blocos de dados como blocos de entrada (input block).
Consequentemente, se tentar limpar os dados selecionando Database > Clear Data >
Non-Input Blocks a partir do EAS (Essbase Administration Services), nenhum dado será
deletado, pois o banco de dados não tem nenhum bloco Non-Input.
Quando carregamos os dados exportados, o Essbase também marca o bloco de dados
como sujo. Se o banco de dados foi calculado antes de exportar os dados para ganhar
tempo durante o próximo cálculo, devemos definir o estado de limpeza para os blocos.
Se o banco de dados não foi calculado antes de exportar os dados então não
precisamos definir o estado de limpeza do bloco.
Para apagar o status do bloco no banco de dados após a exportação/importação de
todos os dados, podemos executar o seguinte CALC SCRIPT:
Backup – Restaurar o banco de dados
Para restaurar um banco de dados, substitua os arquivos que estão no disco pelos
arquivos que estão no Backup. Veja o capítulo Backup – Arquivos Importantes, para
saber a lista de arquivos que devem ter um backup regular.
Para restaurar a aplicação e o banco de dados devem estar parados, não deve haver
conexões com este banco de dados no momento de restauração, apenas do
administrador.
Arquivos essênciais para o banco de dados
Os arquivos listados abaixo são componentes chave do banco de dados Essbase:
Arquivo Descrição
essn.pag arquivo de dados do Essbase
essn.ini arquivo de índice do Essbase
dbname.esm arquivo do Kernel do Essbase
dbname.tct arquivo do Controle de Transação do Essbase
dbname.ind arquivo de Fragmentação de dados e índices do Essbase
dbname.otl arquivo do outline do Essbase
Se existir algum problema com qualquer um dos arquivos listados acima, o banco de
dados estará corrompido. O banco de dados deverá ser restaurado a partir dos
arquivos de backup e os dados a partir do arquivo texto gerado.
Existem situações em que o banco de dados corrompe. Nestas situações, o banco de
dados não pode ser iniciado, os dados não podem ser acessados, tão pouco podemos
executar nenhum comando neste banco de dados, a única maneira de reestabelecer o
banco de dados é fazer a sua restauração. Para isso, delete todos os arquivos listados
abaixo:
essn.pag
essn.ind
dbname.esm
dbname.tct
dbname.ind
Após deletar esses arquivos, reinicie o banco de dados e copie os arquivos (estrutura e
dados) que estão no backup feito antes do banco de dados corromper.