Escolar Documentos
Profissional Documentos
Cultura Documentos
Datasul Manual Do Administrador Progress PDF
Datasul Manual Do Administrador Progress PDF
Manual do Administrador do
Sistema PROGRESS
Versão: I.00
Data Liberação: 01/Outubro/96
Visão Geral do Banco de Dados PROGRESSS …………………………………… 1-1 ……
1.1. PROGRESS …………………………………………………………………... 1-1 ……
1.2. Estrutura do Banco de Dados ……………………………………………….... 1-1 ……
1.2.1. Extensões do Banco de Dados ……………………………………………… 1-2 ……
1.2.2. Base de Dados ………………………………………………………………. 1-2 ……
1.2.3. Processo do Servidor do Banco de Dados ………………………………….. 1-2 ……
1.2.4. Processo Broker do Banco de Dados ………………………………………. 1-2 ……
1.2.5. Cache do Banco de Dados ………………………………………………….. 1-2 ……
1.2.6. CPU ………………………………………………………………………… 1-2 ……
1.3. DataServer ……………………………………………………………………. 1-3 ……
1.3.1. Schema Holder ……………………………………………………………… 1-4 ……
1.4. Limites do PROGRESS ………………………………………………………. 1-4 ……
1.4.1. Banco de Dados …………………………………………………………….. 1-4 ……
1.4.2. Elementos do Banco de Dados ……………………………………………... 1-5 ……
1.5. Sistemas Operacionais 1-5 ……
…………………………………………………………
1.6. Modos de Conexão …………………………………………………………… 1-5 ……
1.7. Localização do Banco de Dados ……………………………………………… 1-6 ……
1.8. Cliente Servidor ……………………………………………………………. 1-7 ……
Este capítulo apresentará uma visão geral de todo o ambiente e dos principais componentes
da Base de Dados PROGRESS: sua estrutura física e lógica, limitações, etc.
2. Parâmetros
Este capítulo explicará os parâmetros do PROGRESS, dando uma visão geral de cada um
deles, sua função e influencia no PROGRESS.
3. Backup
4. Multi-Volume
Este capítulo explica o que é multi-volume, quando usar e como transformar um banco em
multi-volume.
5. After-Image
Neste capítulo será explicado o que é o processamento after-image (imagem posterior), que
pode usado em um banco de dados. O after-image serve para proteger seu banco de dados em
caso de perda do disco em que ele se localiza. Depois de voltar o backup, você poderá ter as
informações atualizadas até o momento em que ocorreu o erro no disco.
Será explicado, também, como funciona o processamento before-image (imagem anterior) e a
diferença entre os dois.
Mostraremos a sintaxe dos comandos para usar o after-image, bem como alguns exemplos.
1.1. PROGRESS
Este capítulo apresentará uma visão geral de todo o ambiente e dos componentes da
base de dados PROGRESS. Os mecanismos da base de dados são extremamente importantes
para uma boa performance das aplicações desenvolvidas em ambiente PROGRESS. Para cada
um dos principais ambientes operacionais onde precise-se armazenar dados, a PROGRESS
desenvolveu uma robusta estrutura de banco de dados. Atualmente, é possível encontrar
aplicações rodando em bancos de dados com dezenas de gigabytes de dados armazenados e
milhões de processos sendo executados semanalmente. Portanto, é importante conhecermos
os princípios básicos das estruturas que o PROGRESS utiliza para armazenar e manipular, de
forma clara e segura, as informações armazenadas em seus bancos de dados e em diferentes
plataformas.
É importante mencionar que o banco de dados físico é, naturalmente, de extrema
importância quando da escolha da plataforma em que o banco irá trabalhar. As escolhas
típicas de plataformas de hardware incluem muitos dos sistemas UNIX, incluindo SCO, HP,
NCR, RS6000, VMS, IBM AS400, e servidores de redes Novell. O banco de dados nativo da
PROGRESS executa as mesmas funções lógicas indiferente da plataforma, sendo o mesmo
executável para cada tipo de plataforma. Isto garante que a estrutura tirará máximo proveito
da plataforma na qual esta rodando. Por exemplo, uma liberação de espaço de memória em
ambiente VMS , certamente não será idêntica em uma Novell, contudo a estrutura de base de
dados correspondente será montada apropriadamente.
Bases de dados
Físicas
Base de Dados
Processo Intermediário
CPU
Servidor do Banco de Dados
Memória
Compartilhada
Estas são entidades físicas separadas, cada uma contendo uma parte da base de dados,
permitindo que vários dispositivos compartilhem a carga de acesso ao banco de dados. De
forma mais simples, isto significa que a base de dados pode ser dividida em seções de dados,
cada qual sendo uma extensão do banco. Cada uma destas partes pode residir em qualquer
parte da estrutura de disco. Desta maneira, os drives, controladores, e todos os outros recursos
do sistema podem compartilhar a carga do acesso ao banco de dados.
Esta entidade lógica é referenciada por cada programa que acessa a base de dados. A
localização física e a configuração da base de dados permanece transparente ao código que
esta requisitando os seus dados. De fato, quando fazemos uso do Data Servers para bases de
dados externas , cada tipo de banco de dados (PROGRESS, Oracle, etc.) é transparente ao
código.
O processo do servidor serve aos clientes do banco de dados (usuários). Isto inclui os
clientes locais auto-servidores (no mesmo hardware que o banco de dados, ou host-based), e
clientes remotos que podem solicitar múltiplos servidores para manipular suas requisições
acumuladas.
O processo broker está relacionado aos clientes remotos cujos processos residem em
um sistema separado do sistema onde contém o processo broker e o processo de servidor. É
responsável por reconhecer o acesso deles ao banco de dados e iniciar processos de servidor
quando necessários. Note que os clientes remotos não necessariamente são clientes tipo "dial-
in". Por exemplo, dois sistemas UNIX podem estar conectados e enquanto o sistema #1
possui os processo do banco de dados, o sistema #2 pode receber entradas de usuários no
banco de dados e na aplicação.
Os blocos do banco de dados são lidos nesta área da memória e guardá-los tanto
quanto possível para que as leituras subseqüentes para os mesmos dados sejam somente
baseadas na memória, oposto ao baseado em disco (ligado diretamente a performance).
1.2.6. CPU
A próxima seção discute DataServers para mostrar como você poderá acessar bancos
de dados não-PROGRESS transparentemente. Transparentemente, significa que o código
funcionará da mesma maneira, independente do banco de dados usado.
A figura a seguir, apresenta o funcionamento do DataServer.
Bases de dados
Físicas
Base de Dados
Schema Holder
DataServer
Processo Intermediário
Memória
Compartilhada
É um banco de dados PROGRESS vazio que mapeia campos, tabelas, indexes, e todos
os objetos externos em formatos PROGRESS. O programas conectam ao schema holder
como se este possuísse dados (mas, fisicamente não possui); o DataServer então, serve dados
dos bancos de dados externos para a estrutura do PROGRESS. É interessante notar que o
DataServer PROGRESS é atualmente um cliente para um banco de dados externo.
Agora você possui as informações básicas sobre a estrutura do banco de dados, que
permitirá a você compreender completamente o desenvolvimento de uma aplicação de
alcance empresarial. O conceito de uma estrutura de banco de dados verdadeira é peculiar
para alguns que já tenham trabalhado em ambientes como dbase ou clipper. Nestes casos, não
existe uma estrutura verdadeira funcionando. Ao invés, o executável da aplicação (.exe)
contém o mecanismo que solicita e gerencia os dados.
O banco de dados PROGRESS possui suas limitações. Entre elas podemos citar:
Elemento Limite
Tabela Equivale ao tamanho máximo do banco de dados
Índice Depende do tamanho do bloco.
Tamanho do Bloco Número máximo de índices
512 2048
1024 4096
2048 8192
4096 16384
Banco de dados Local O banco de dados está localizado na mesma máquina onde
está a aplicação, ou sessão do PROGRESS.
Banco de dados Remoto O banco de dados está localizado na rede, desde que a
máquina onde esta sendo executada a aplicação também
esteja na mesma rede.
Para banco de dados remoto, podemos citar bancos de dados distribuídos, que nada
mais são do que várias bases de dados distribuídas através da rede. Podendo ser um ou mais
bancos de dados por máquina.
Conexão
Remota
Existem vários parâmetros que você informa ao PROGRESS. Estes parâmetros tem as
mais diversas funções, podendo, por exemplo, dizer ao PROGRESS, o quanto de memória ele
vai usar da máquina, em qual diretório ele deve gravar arquivos temporários, etc.
Estes parâmetros estão explicados a seguir:
Sintaxe UNIX -B n
NT
DOS
OS/2
VMS /BUFFERS=n
Máximo 500.000
Mínimo 10
Padrão (8 * número de
usuários)
• n - número de blocos no buffer do banco de dados. Cada bloco tem a área de um bloco do disco - 512
bytes em DOS, OS2 e VMS, 1024 na maioria dos sistemas UNIX (2048 em alguns). Aumentando este
parâmetros mais blocos do banco ficarão em memória aumentando a performance.
Use este parâmetro para alocar memória para armazenar registros do banco de dados
em memória. Cada vez que um programa acessar um registro do banco, o PROGRESS
verifica se este registro já não está em memória e não haverá necessidade de ler do disco.
Geralmente, o valor do -B é 3% do tamanho do banco. (Ex.: BANCO: 100MB -B:3)
Sintaxe UNIX -c n
DOS
Windows
OS/2
VMS /INDEX_CURSORS=n
Máximo
Mínimo
Padrão (4 * número de
usuários)
• n - número de cursores de índice permitidos. Cada vez que um programa PROGRESS acessar um
arquivo para uma leitura seqüencial será usado cursor de índice. Cada cursor usa 64 bytes. Se este
número estiver baixo o PROGRESS mostra a seguinte mensagem:
• formato - Formato da data que você quer ver ao executar o MAGNUS. Este formato é a combinação
das três letras: d (dia), m (mês), y (ano). O padrão é DIA/MÊS/ANO (dmy).
Sintaxe UNIX -D n
NT
DOS
Windows
OS/2
VMS /COMPILED_FILE_DIRECTORY=n
Máximo 500
Mínimo 5
Padrão 36
Cada programa executado durante uma sessão PROGRESS ocupa uma entrada de
diretório. Cada programa ao ser compilado usa uma entrada de diretório, bem como cada um
de seus includes. Se você receber a seguinte mensagem este parâmetro deverá ser aumentado:
Sintaxe UNIX -E
DOS
Windows
OS/2
VMS /NUMERIC_FORMAT=EUROPEAN
Padrão -E
Este parâmetro deve ser usado para indicar ao PROGRESS para interpretar os campos
decimais no formato europeu. Se não tiver este parâmetro, será usado o formato Americano.
Veja o exemplo a seguir:
Formato Europeu..: 191.065,00
Formato Americano: 191,065.00
Número de Entradas na Tabela de Bloqueio (-L)
Sintaxe UNIX -L n
NT
DOS
Windows
OS/2
VMS /LOCK_TABLE=n
Máximo depende S.O.¹
Mínimo 32
Padrão 500,00
¹ Limitado pela disponibilidade de memória e pelos parâmetros de memória compartilhada
Cada registro acessado em multiusuário usa uma entrada nesta tabela. Você precisa
aumentar o valor deste parâmetro se você ver a seguinte mensagem durante a execução de um
programa:
Os parâmetros -Mn, -Ma e -Mi são usados em sistemas com memória compartilhada e
que vão ter o banco acessado por usuários remotos.
Este parâmetro indica quantos usuários remotos poderão acessar um servidor.
Atraso na Gravação do Arquivo .bi (-Mf)
• n - Número de segundos que o PROGRESS vai atrasar na gravação das transações do arquivo before-
image (.bi).
Este parâmetro pode ser usado para melhorar a performance em sistema muito
carregado. Ele faz com que o PROGRESS não grave imediatamente a transação no arquivo
before-image, com isto você economiza algumas gravações no arquivo before-image. Isto não
significa que seu banco ficará sem integridade. Quando ocorrer um erro do sistema você
poderá perder além da última transação incompleta, outras transações que foram completadas
neste período de atraso que você determinou.
Este parâmetro também pode ser usado em monousuário.
• n - Número de usuários remotos (clientes) num servidor antes de ser iniciado um novo servidor (até o
número máximo de usuários por servidor - parâmetro -Ma).
Os parâmetros -Mn, -Ma e -Mi são usados em sistemas com memória compartilhada e
que vão ter o banco acessado por usuários remotos.
Assim que o usuário remoto acessa o banco, é iniciado um servidor para ele. Este
servidor será iniciado a cada n usuários até o máximo de servidores (especificado pelo
parâmetro -Mn). Por default, um novo servidor é iniciado para cada um dos primeiros 4
usuários remotos. Os próximos usuários serão distribuídos entre estes servidores até que seja
alcançado os parâmetros -Mn ou -Ma.
Número máximo de servidores (-Mn)
• n - Número máximo de servidores para clientes remotos que podem ser inicializados pelo servidor
local..
Suponha que você terá 40 usuários remotos para acessar um banco na sua máquina e
você definiu os seguintes parâmetros:
Sintaxe UNIX -n n
NT
DOS
Windows
OS/2
VMS /NUMBER_OF_USERS=n
Máximo 2048
Mínimo 1
Padrão
O valor máximo pode ser menor se sua máquina não estiver rodando Unix System 5, mas este valor
será no mínimo 10.
Depende do equipamento: UNIX System 5: 20
Pyramid: 50
Openet: 64
MS-DOS: 20
Outros: 10
• n - O número máximo de usuários no banco de dados. Após este número ser alcançado, outros usuários
não vão conseguir iniciar sessão neste banco de dados.
Em sistemas que não tem memória compartilhada, use este parâmetro para limitar o
número de usuários para o servidor do banco. Em sistemas com memória compartilhada, -n
deve incluir usuários locais e remotos.
Impressora (-o)
Veja o capítulo sobre Impressoras neste manual para obter maiores informações sobre
este parâmetro e como configurar impressoras no MAGNUS.
• arquivo - Nome de um arquivo do sistema operacional que contêm parâmetros. Este arquivo deve ter a
terminação .pf e pode ser criado usando-se um editor de textos formato ASCII.
Este arquivo é útil quando você tem muitos parâmetros na linha de comando,
especialmente em DOS onde o tamanho máximo da linha de comando é 128 bytes.
Você pode agrupar neste arquivo todos os parâmetros que pretende usar e indica através
deste parâmetro a localização do mesmo. No MAGNUS, cada banco tem seu próprio arquivo
de parâmetros (i00adm.pf, i00ind.pf e i00com.pf).
Você pode usar mais de um arquivo de parâmetros ao mesmo tempo na linha de comandos.
Sintaxe UNIX -q
NT
DOS
Windows
OS/2
VMS /QUICK_REQUEST
Padrão
1
Veja no capítulo 2 informações sobre PROPATH.
Modo de Compilação de Programas (-rx)
Esta opção poderá ser usada em dois casos: quando iniciando um servidor que vai ser
acessado por usuários remotos, ou quando usando o PROGRESS como usuário remoto. Neste
caso, o nome do servidor deve ser o mesmo nos dois casos.
Em redes Novell usando NLM será necessário criar um nome de servidor para cada um
que você carregar. E para cada usuário que for acessar o servidor do banco deverá ter também
o -S. Por exemplo: coloque o nome do servidor do i00adm como si00adm, o i00ind como
si00ind e o f00com como si00com.
Neste caso para cada usuário você deve definir um diretório de trabalho diferente. Isto
pode ser feito da seguinte maneira:
• n - Número de blocos (em 1024 bytes) que você deseja alocar quando o PROGRESS for fazer uma
classificação (sort) de registros ou quando for reindexar índices 2. O default é 2 KB mas pode estar em
qualquer valor na faixa de 1 a 31 KB.
Este parâmetro é usado para melhorar a performance quando for feita uma classificação
de registros (sort).
Para fazer uma classificação de registros o PROGRESS usa a memória (valor do -TB),
mas a partir do momento que não tem memória para isto, ele vai gravando num arquivo de
trabalho. Então, se for um tamanho maior, mais memória você vai ter para estas
classificações.
2
Veja adiante o tópico Reindexação do Banco de Dados.
Número de Merge (-TM)
• n - Número de blocos que podem ser simultaneamente unidos durante o processo de classificação.
• nome-banco - Nome físico do banco de dados. Pode ser incluído o nome do diretório também.
Este parâmetro é utilizado na hora que você conectar um banco no PROGRESS. Ele
indica a localização física do banco de dados. Atenção: Não confunda o nome físico de um
banco com o nome lógico (parâmetro -ld).
Sintaxe UNIX -1
DOS
NT
Windows
OS/2
VMS
Este parâmetro é utilizado, caso você deseje acessar um banco PROGRESS em monousuário.
Este parâmetro deverá ser usado quando você estiver trabalhando com after-image.
Veja neste manual e no manual Progress System Administration Guide, o capítulo que fala
sobre o Processamento after-image.
Um banco de dados é composto por três arquivos. Por exemplo, para o banco i00adm,
você terá o arquivo i00adm.db, i00adm.bi e i00adm.lg. O arquivo .bi é usado pelo
PROGRESS para processamento de transações.
Por default, o PROGRESS considera que este arquivo está no mesmo diretório do
banco de dados (arquivo .db). Mas, algumas vezes, você pode colocar este arquivo em um
outro disco para ganhar performance, sendo então necessário especificar neste parâmetro
onde está o arquivo .bi do banco.
Por exemplo, você instalou o MAGNUS no diretório /usr/MAGNUS mas, depois
moveu o arquivo .bi do mgadm para o diretório /disco1/MAGNUS. No arquivo mgadm.pf
deverá ter a seguinte linha para indicar que o .bi está neste outro diretório:
-g /disco1/MAGNUS/i00adm.bi
Nome do Usuário do Banco (-U)
• nome-usuário - Nome do usuário que você pretende setar como usuário ativo no banco de dados.
Dentro de cada banco de dados existe o controle de usuários e senhas. Este controle é
feito pelo PROGRESS. Se você desejar definir um usuário padrão para o banco pode ser
informado neste parâmetro. O usuário deverá ter sido previamente cadastrado no banco. Veja
neste manual o capítulo sobre Segurança para maiores detalhes. Neste parâmetro, você
informa o Usuário veja o parâmetro -P a seguir que indica como informar a senha.
• senha - Senha do usuário (parâmetro -U) que você pretende setar como usuário ativo no banco.
3.1. Importância
Entende-se por Backup as cópias que são feitas de um conjunto de arquivos em outro
dispositivo magnético, para o caso da perda do original, ter uma cópia de segurança. Esta
perda pode ser ocasionada por algum problema na máquina. Algumas vezes, você pode fazer
algum teste no banco, não obter o resultado desejado e resolva voltar a cópia antiga, etc.
Enfim, é sempre importante que você tenha uma cópia de segurança do seu banco de dados.
Temos exemplos de clientes que perderam trabalhos de uma semana por não terem feito
backup neste período.
Não espere por uma oportunidade de descobrir por si mesmo a importância do Backup,
previna-se.
E dos outros arquivos semelhantes para os outros banco de dados do MAGNUS que
você possui. No diretório em que foi instalado o MAGNUS você terá os sub-diretórios dos
programas dos módulos (exemplo: ctp é o diretório da Contabilidade). É bom que sempre se
faça cópia destes programas, para o caso de uma perda do disco, você não precise solicitar os
fontes criptografados para recompilar.
Os utilitários diversos são os scripts de inicialização do MAGNUS (smagnus,
MAGNUS e fmagnus), os arquivos que estão no diretório util, o script libera e instala, etc.
Depende do equipamento que você está utilizando para rodar o MAGNUS. Existe por
exemplo, equipamentos que utilizam fita DAT, que tem capacidade para 2 GB, e pode
portanto armazenar todo o diretório do MAGNUS de uma só vez (banco, programas e
utilitários). Existe equipamento que só possui unidade de disquete. Neste caso, é interessante
separar o backup do banco em um jogo de disquetes, e dos programas e utilitários em outro. É
claro que, você pode também separar cada módulo dos programas em um jogo de disquetes
diferente. A mesma coisa para os bancos de dados (i00adm, i00ind e i00com).
Para o backup do Banco de Dados é importante que seja feito diariamente. Veja o
tópico Exemplo de um Esquema de Backup.
Dos programas você pode fazer uma cópia semanal. Isto depende das novas versões
de programas que você recebeu.
E dos utilitários faça uma cópia sempre que alterar algum dos parâmetros dos scripts
(MAGNUS, smagnus, fmagnus, etc).
Você vai usar os comandos do seu sistema operacional para fazer backup da base de
dados, dos programas e utilitários. Opcionalmente, você pode usar o comando probkup do
PROGRESS para backup do banco. Veja o próximo tópico.
A seguir, damos exemplos dos comandos por sistema operacional.
Este comando deverá ser executado para cada um dos bancos (i00adm, i00ind e i00com).
Para fazer o backup dos programas do diretório cdp (Cadastros) execute:
Neste exemplo, estamos supondo que a unidade de disquete é A:. O parâmetro /S indica pro
DOS copiar os sub-diretórios. Para cada diretório de programas execute este comando. No
capítulo 1. MAGNUS I.00 você tem a relação dos módulos.
RESTORE A: C:/S
Obs.: Veja a documentação do MSDOS para maiores detalhes sobre o comando BACKUP e
RESTORE.
Neste sistema operacional sempre se usa o comando cpio. Para fazer um backup
usando este comando, precisaremos de um outro comando do sistema para gerar a lista de
arquivos a serem copiados. Vamos usar o comando find. A sintaxe será a seguinte:
Este comando vai copiar a base de dados do MAGNUS para unidade de fita DAT.
O seguinte comando copia todo o conteúdo do diretório do MAGNUS para fita DAT.
Este comando vai retornar da Fita DAT todos os arquivos que foram copiados previamente
com o cpio.
Veja na documentação do seu sistema operacional maiores informações sobre a
sintaxe do comando cpio, e sobre os dispositivos instalados, pois eles variam de equipamento
para equipamento (nos exemplos aqui, usamos /dev/rmt/0m).
Para fazer backup do banco de dados você pode usar o comando probkup. Este
comando deve ser feito para um banco de dados de cada vez. Se você fizer um probkup do
banco i00adm, você não poderá usar este dispositivo (disquetes, fita DAT, fita streamer) para
os outros bancos. Cada banco deverá ter seu próprio dispositivo.
A vantagem deste comando com relação ao comando do sistema operacional é a seguinte:
• no probkup, você pode usar o backup incremental, ou seja, depois de um backup completo, pode ser
copiado somente o que foi alterado de um dia para o outro. Ainda, existe a possibilidade de se fazer
backup online com o probkup. Ou seja, pode ser feito backup durante o uso do MAGNUS.
Se ocorrer algum problema com o banco de dados, deverá ser feito o seguinte, dependendo do
dia em que precise voltar o backup:
3
O comando probkup e prorest estão descritos, também, no System Administration Guide II do PROGRESS (Versão 6) e System
Administration Reference (Versão 7).
Voltar o Voltar o Voltar o Voltar o Voltar o
backup backup backup backup backup
completo de completo de completo de completo de completo de
Sexta. Segunda. segunda mais segunda mais segunda mais
o backup o backup o backup
incremental incremental incremental
de Terça. de Terça e de Terça,
Quarta. Quarta e
Quinta.
Então, por exemplo, se ocorrer algum problema na quarta-feira e você precisar voltar
o backup, primeiro retorne o backup completo da segunda-feira e em seguida o backup
incremental da terça-feira. Adiante é mostrado como fazer isto.
Você pode ajustar o ciclo conforme suas necessidades. Mas, é importante não deixar
um espaço muito grande entre dois backup's completos. A PROGRESS recomenda pelo
menos um backup completo por semana.
O banco é o nome que você deseja fazer o backup completo. No MAGNUS deverá ser
i00adm, i00ind ou i00com.
O dispositivo é o nome do dispositivo no qual será feito o backup. Depende do
sistema operacional. Veja os exemplos a seguir:
O parâmetro -vs (/SIZE) indica a capacidade em blocos do dispositivo que você está
gravando. O tamanho do bloco depende do sistema operacional (512 em DOS, OS2 e VMS, e
1024 na maioria dos sistemas UNIX). Este parâmetro é util por exemplo ao gravar em
disquete DOS.
O parâmetro -bf (/BLOCKING_FATOR) indica quantos blocos devem ser lidos para
memória antes de gravar no dispositivo. O tamanho do bloco também depende do sistema
(512 em DOS, OS2 e VMS, e 1024 na maioria dos sistemas UNIX).
• A opção do fator de overlap -io (/OVERLAP). Este parâmetro serve para o seguinte: se você usar o
fator de overlap 1, significa que será feito o backup das alterações do dia e também as alterações do
dia anterior. Fator 2 indica que além do backup das alterações do dia, também será feito backup dos 2
dias anteriores e assim por diante.
• A opção -scan (/SCAN) que calcula a área necessária para o backup incremental, já que não é
possível saber esta área antes do backup.
O probkup online pode ser usado para fazer backup de um banco em uso. A sintaxe é
a seguinte:
Enquanto outros modos de backup exigem que o banco não esteja em uso, o backup
online permite que se faça backup durante este uso. Entretanto, usando backup online pode
degradar a performance um pouco. Isto porque, quando o PROGRESS estiver copiando o
arquivo de before-image, você não poderá acessar o banco. Se o before-image estiver muito
grande, você poderá esperar até 30 segundos ou mais para o PROGRESS copiar o arquivo.
Quando for iniciar o backup online, certifique-se que o dispositivo esteja pronto
(disquete, fita, etc.) para o backup. Se não, o PROGRESS não vai poder gravar as
informações no dispositivo. Até o PROGRESS gravar estas informações, você não poderá
acessar o banco. Se você usar mais um volume para backup (exemplo, disquetes) haverá um
tempo de espera durante a troca dos volumes.
4
Veja neste Manual o capítulo sobre processamento After-Image.
Obs.: Backup criado com probkup online só poderá ser restaurado com utilitário prorest da
versão 6. Veja o tópico a seguir.
Quando é feito um backup usando o probkup, você deve usar o comando prorest do
PROGRESS para restaurar o backup. Este programa se encontra no sub-diretório probin no
diretório em que foi instalado o PROGRESS.
A sintaxe do prorest é a seguinte:
banco é o nome do banco que você quer voltar o backup e dispositivo é o dispositivo
onde se encontra o backup. O prorest usa o mesmo fator de bloco que foi feita a gravação.
Você deve restaurar na ordem em que foi feito o backup. Primeiro, restaure o backup
completo, seguido do primeiro backup incremental, seguido do segundo backup incremental e
assim por diante. Se você tentar restaurar um incremental fora de seqüência o PROGRESS
emite uma mensagem de erro e a operação é cancelada.
Se você perder a segunda cópia do incremental, mas usou o fator de overlap 1, então o
terceiro incremental vai restaurar corretamente os dados perdidos do segundo.
Após restaurar um backup completo, não atualize nada no banco, se você tiver mais backup
incremental a ser restaurado. Se você entrar no banco, todos os backup incrementais (ainda
não restaurados) vão ficar inválidos, até que você restaure tudo novamente, a partir do backup
completo.
Se ocorrer uma falha no sistema durante a restauração do banco, recomece a partir o
backup que você estava processando quando ocorreu a falha.
Neste exemplo, vamos fazer um backup do banco i00adm para uma unidade de
disquete no drive a.
1. Na primeira vez que for fazer um backup completo, você pode executar o utilitário
prostrct5 para determinar quantos disquetes serão necessários para fazer o backup.
Neste exemplo o dispositivo é o arquivo \i00adm no drive a. A opção -vs indica que a
área do disquete é 708 * 512 = 362249 bytes (512 = tamanho do bloco em DOS). Por default
o fator de bloco é 30. A seguinte tela mostra o relatório gerado quando o backup inicia:
Na mensagem acima, o PROGRESS diz que é necessário 163 blocos para backup e
302 blocos para restaurar o banco. Esta diferença ocorre porque o PROGRESS compacta os
dados antes do backup.
Já que não foi usada a opção -scan o PROGRESS não pode determinar quantos blocos
serão usados para o backup.
5
Você tem maiores informações sobre o prostrct no capítulo so bre after-image.
4. Para retornar o backup do banco i00adm você usa o prorest. Você pode retornar como
i00adm ou dar um novo nome para o banco, neste caso deverá ser alterado o parâmetro -db no
arquivo .pf6.
5. Para retornar o backup incremental use o comando prorest indicando o nome do banco e o
dispositivo.
Processing volume 1.
a:\i00adm is a full backup of i00adm.db
This backup was taken on Wed Feb 10 20:30:00 1993
It will require a minimum of 38 blocks to restore.
1. Na primeira vez que for fazer um backup completo, você pode executar o utilitário
prostrct7 para determinar quantos blocos serão necessários para fazer o backup.
Processing volume 1.
a:\i00adm1 is a incremental backup of i00adm.db
This backup was taken Fri Feb 13 20:30:10 1993
It is based on the full backup of Wed Feb 10 20:30:00 1993
It will require a minimum of 38 blocks to restore.
6
No capítulo 3. Administração vocè tem informações sobre os parâmetros de banco.
7
Você tem maiores informações sobre o prostrct no capítulo sobre after-image.
probkup i00adm.db /dev/rmt/0m -vs 4000 -bf 20
Neste exemplo o dispositivo é o /dev/rmt/0m. A opção -vs indica que a área do dispositivo é
4000 * 1024 = 4000 Kbytes. O fator de bloco é 20. A seguinte tela mostra o relatório gerado
quando o backup inicia:
4. Para retornar o backup do banco i00adm você usa o prorest. Você pode retornar como
i00adm ou dar um novo nome para o banco, neste caso deverá ser alterado o parâmetro -db no
arquivo .pf8.
1. Como será feito um backup completo, podemos usar o utilitário de estatísticas para saber
quanto de área o banco possui. Execute o comando:
PROGRESS/STRUCTURE/STATISTICS i00adm
8
No capítulo 3. Administração você tem informações sobre os parâmetros de banco.
9
Você tem maiores informações sobre o prostrct no capítulo sobre after-image.
Neste exemplo, o dispositivo de backup deverá ser informado em dispositivo. /SIZE
indica que o dispositivo de backup possui 4000 blocos de área. A seguinte tela surgirá quando
for iniciado o backup completo:
PROGRESS/BACKUP/INCREMENTAL/BLOCKING_FATOR=20/SIZE=4000
i00adm dispositivo
4. Para retornar o backup do banco i00adm você usa o prorest. Você pode retornar como
i00adm ou dar um novo nome para o banco, neste caso deverá ser alterado o parâmetro -db no
arquivo .pf.
Neste tópico damos um exemplo de um esquema para controle de backup. Caso você
for utilizar este esquema com o comando probkup do PROGRESS, aconselhamos a usar
sempre backup completo para cada dia e assim evitar confusão com backup incremental.
O uso deste esquema exige disciplina, mas é um esquema muito seguro para controle
do backup. A rotina de backup do seu banco de dados deve ser efetuada utilizando os
seguintes discos:
Este rodízio é necessário para que as cópias mensais e semanais sejam utilizadas
diariamente também, sendo assim, caso haja algum problema com a cópia (erro físico) você
possa detectar o problema numa cópia diária, o que é menos grave do que encontrar o
problema em uma cópia mensal que é a sua última alternativa.
1. Crie um banco de dados teste (pode ser usado o banco demo do PROGRESS: prodb teste demo).
2. Faça o backup deste banco usando os mesmos comandos que você usa para o seu banco.
3. Retorne este backup para um diretório temporário que seja diferente do diretório em que está o seu
banco teste. (Você deve tomar cuidado ao usar o Backup/Restore do DOS, pois ele grava o diretório
no backup).
Este teste é importante para saber se não há nenhum problema com a mídia na qual
você está fazendo o backup e nem com os comandos que você está usando.
3.10. Cuidados com a Mídia Magnética
Descrevemos a seguir, alguns cuidados que você deve ter, afim de aumentar a vida útil
dos disquetes e fitas que usar para backup. Além, é claro de garantir as informações do seu
backup.
1. Fumar é inadmissível. O maior perigo não está na fumaça, mas nas cinzas. Use cinzeiro daqueles que
seguram o cigarro e o esvazie com freqüência.
2. Faça muitas cópias de segurança.
3. Discos, quando fora de uso, devem ficar guardados em posição vertical, sempre dentro das capas.
4. Tão logo tenha feito um Backup, coloque a etiqueta lateral de proteção e tire-a somente quando, de sã
consciência, for liberar o Backup.
5. Use etiquetas de fácil destaque na hora da remoção, procure fazê-lo com o disquete apoiado (nunca
no ar), firmando pelo canto (nunca pelo centro). Toda operação de colocar ou retirar etiqueta deve ser
feita com o disco dentro da capa. Procure escrever antes de colar; use caneta hidrocolor. A etiqueta,
quando colada de qualquer maneira, pode deixar fragmentos.
6. Evite poeira. Se possível, o ambiente dos discos jamais deve ser varrido (use pano úmido e aspirador
de pó).
7. Evite vapores químicos, detergentes, aerosol, chão-encerado.
8. Se um disco desencapado cair no chão, cuide imediatamente de saber se ainda pode ser lido; faça
nova cópia de segurança.
9. Não se deixe enganar euforicamente quando, após sucessivas mensagens de erro no disquete ele
deixa passar, principalmente se você executou um (I)gnore.
10. Atenção ao colocar o disquete na unidade - se isto for feito de forma dispersiva, você pode esbarrar
as partes sensíveis da gravação em algum obstáculo.
11. Tão logo tenha recebido novos disquetes, formate todos de uma vez, não os deixe virgens por muito
tempo.
12. Evite guardá-los em armários ou gavetas de ferro. Use madeira ou acrílico.
13. Evite colocá-los perto de motores, telefones, rádios, enfim qualquer coisa que possa gerar campo
magnético.
14. Mantenha todo o seu conjunto de computador afastado de alimentos.
15. Muito cuidado: não coloque mais de 10 (dez) disquetes numa caixa de papelão. A maioria dos discos
é danificada pelo excesso de pressão.
16. Pelo fato de terem o nome de "discos flexíveis", não vamos ficar por aí entortando-os.
17. Nunca use grampeador ou clips para anexar bilhetes aos discos, pois os mesmos não suportam serem
perfurados.
18. Quando transportar ou enviar disquetes em malotes ou correio faça uma embalagem resistente com
caixas de material rígido ou de papelão duro para evitar que os discos sejam amassados.
3.11. Outras Recomendações
• Não copiar o banco de dados em uso10 - Certifique, antes de fazer o backup que não tem nenhum
usuário usando o banco de dados. Em ambiente multiusuário você pode executar o comando
fmagnus, conforme descrito no capítulo 3, e verificar se tem algum usuário conectado ao banco. Em
monousuário, veja o arquivo .lg do banco. Nele tem a relação dos usuários que acessaram o banco.
• Teste o Backup - Pior do que você não ter uma cópia de backup para voltar, é esta cópia não voltar
por causa de erro na mídia. Por isso é importante você sempre fazer um teste para ver se o dispositivo
no qual você está fazendo backup é confiável. Volte o backup do banco de dados em um outro
diretório somente para ver se ele está em perfeitas condições.
• Não use mídia magnética de baixa qualidade - Não economize comprando disquetes, fitas streamer
para backup, que sejam de baixa qualidade. Você vai fazer o backup e é importante que seja um
material confiável.
• Não use uma mídia por muito tempo - Com o tempo, alguns disquetes, ou fitas, tendem a perder a
qualidade de gravação. Veja com seu fornecedor qual o tempo de uso da mídia magnética.
• Identifique claramente cada backup - As informações que você colocar na identificação do backup
(etiqueta) devem incluir:
1. data e hora do backup.
2. o nome do banco de dados.
3. o número do volume e o total de volumes da mídia, mesmo se for somente um único volume.
4. o nome da pessoa que fez o backup.
5. o comando para restaurar o backup (importante).
• Mantenha o backup diário por pelo menos duas semanas, o semanal por dois meses, e o mensal por
um ano. Comprar mídia magnética extra, é mais barato do que reconstruir bancos danificados.
• Mantenha algumas cópias de backup em outro prédio que não seja o local de trabalho, na casa de
algum diretor da empresa, por exemplo. Com isto, se ocorrer algum sinistro no prédio da empresa,
você terá suas informações salvas.
• Não esqueça de fazer backup - É muito importante que o cliente esteja sempre com o backup em dia,
pois imprevistos acontecem, e é imprescindível que você possa retornar um backup confiável do seu
banco de dados. Lembre-se que são as informações de sua empresa que estão em jogo.
10
Veja no capítulo 3 o comando proutil holder.
4.1. Conceito de Multi-Volume
• Em alguns sistemas operacionais existe um certo limite para o tamanho máximo de arquivo. Na
verdade, ao alcançar este limite o sistema tende a perder performance. Então, é interessante dividir .db
em várias partes com este tamanho máximo. Exemplo: em DOS, se o seu banco passar de 8 Megabytes
convém usar multi-volume. Consulte o seu sistema operacional para ver se não há algum limite deste
tipo.
• Quando no disco em que estiver o arquivo .db não tiver mais espaço, você pode transformar o .db em
multi-volume e continuar usando o primeiro volume neste disco e os outros volumes podem ser
gravados em outros discos.
• De uma forma geral se for distribuído os volumes em vários discos a performance tende a melhorar,
pois está se distribuindo as gravações e leituras para várias controladoras de disco. É importante
salientar que se distribua em vários discos físicos diferentes. Em alguns sistemas, um mesmo disco pode
ser dividido em unidades lógicas diferentes.
1. i00adm normal:
Dados
i00adm.db
2. i00adm multi-volume:
Localização
das Dados Dados
Extensões .......
É sempre bom fazer o backup do banco, antes de fazer alguma grande alteração no
mesmo. No caso do banco multi-volume, será útil fazer o backup com o probkup, pois você
poderá retornar o backup na nova estrutura que você criou. Se fizer o backup usando os
comandos do sistema operacional isto não será possível.
Usando um editor de textos, formato ASCII, crie um arquivo com a descrição das
extensões do banco que você deseja criar. A seguir, temos um exemplo de um arquivo com
uma estrutura em UNIX:
Para criar a estrutura do banco multi-volume você deverá ter área em disco suficiente
para esta estrutura. No exemplo anterior você precisará de pelo menos 25000 blocos livres
(5000 para cada um das três extensões). Isto porque ao criar uma estrutura o PROGRESS já
aloca a área definida no arquivo de estrutura. Lembre-se de reservar alguma área também para
a última extensão (que é variável).
A partir daqui, poderá surgir três situações diferentes:
1. Você tem área em disco suficiente para criar a estrutura, mesmo com o banco de dados que pretende
transformar em multi-volume.
2. Você não tem área em disco suficiente para criar a estrutura e vai usar o probkup.
3. Você não tem área em disco suficiente para criar a estrutura e não vai usar o probkup.
Nesta situação você deverá ter área em disco suficiente para acomodar o banco de
dados e a estrutura que será criada. Em UNIX, o comando df fornece a área disponível, em
DOS use o comando DIR. Em VMS, use o comando SHOW DEVICE.
Ao criar uma estrutura multi-volume é necessário que ela tenha um nome diferente do
banco. Por isto sugerimos, que antes de criar a estrutura, renomeie o banco de dados. Você
deve renomear o arquivo .db, .bi e .lg.
Exemplo UNIX:
mv i00adm.db i00adm1.db
mv i00adm.bi i00adm1.bi
mv i00adm.lg i00adm1.lg
O comando prostrct está no diretório probin sob o diretório onde foi instalado o
PROGRESS. Por exemplo, se o diretório do PROGRESS é o /usr/dlc você deve executar o
comando /usr/dlc/probin/prostrct.
U tilizando o arquivo de estrutura mostrado no tópico anterior, você deve executar o
seguinte comando em DOS, UNIX ou OS2:
PROGRESS/STRUCTURE/CREATE=i00adm.st i00adm.db
Lembre-se de renomear o banco de dados, se você pretende criar a estrutura com o mesmo
nome do banco. Você terá então no seu disco a estrutura vazia do i00adm e o banco de dados
i00adm1 (que foi renomeado anteriormente). Você precisará agora transferir os dados do
banco para a estrutura criada. Você usará o comando procopy. A sintaxe é a seguinte:
Em VMS execute:
Com este comando será feita a transferência dos dados do banco i00adm1 para a
estrutura i00adm. Após a transferência dos dados, o banco estará pronto para ser usado e você
poderá eliminar o banco antigo usando o comando prodel do PROGRESS. Exemplo em
UNIX/DOS/OS2:
prodel i00adm1
Exemplo VMS:
PROGRESS/DELETE i00adm1
2. Criação de Banco Multi-Volume usando o probkup
Caso você não tenha área em disco suficiente para acomodar a estrutura e o banco de
dados, pode ser usado o probkup para auxiliar na criação do multi-volume. Os passos são os
seguintes:
• usar o probkup para fazer um backup do banco;
• eliminar o banco para obter área em disco suficiente para a estrutura;
• criar a estrutura usando o prostrct create e o arquivo .st;
• retornar o backup do banco para a nova estrutura usando o prorest;
Veja no capítulo 4. Backup como fazer um backup usando o comando probkup. Para
maior segurança, você pode fazer mais de um backup para o banco, usando por exemplo o
comando do seu sistema operacional (BACKUP, cpio, etc). Caso ocorra algum problema
você pode voltar o backup do banco. A seguir, temos um exemplo do uso do probkup em
UNIX para o banco i00adm:
Para eliminar o banco de dados use o comando prodel do PROGRESS. Por exemplo,
se você estiver transformando o i00adm em multi-volume execute o comando prodel i00adm
(em VMS: PROGRESS/DELETE mgadm). Com isto você terá área suficiente para criar a
estrutura vazia do banco.
Para criar a estrutura será usado o comando prostrct create. Veja no item anterior (1.
Criação da Estrutura com área em disco disponível) a sintaxe e um exemplo de como criar a
estrutura.
Após a criação da estrutura você deve retornar o backup feito anteriormente para a nova
estrutura do banco. O comando prorest também é descrito no capítulo 4. Backup. Conforme
o exemplo anterior teríamos:
Este comando vai copiar os dados do banco para a nova estrutura criada e o banco estará
pronto para uso.
Se você não tiver área em disco suficiente para o banco e a estrutura e não utilizar o
probkup para fazer um backup do banco, você deve transformar o seu banco em multi-volume
com uma única extensão e adicionar novas extensões depois.
Você usa o comando prostrct convert para transformar o seu banco para um banco
multi-volume. Lembre-se de truncar o bi12 do banco e fazer um backup.
A sintaxe do comando é a seguinte:
12
O comando para truncar o bi está descrito no capítulo 3> Administração do MAGNUS.
Por exemplo se você quiser transformar o banco i00adm em multi-volume execute o
seguinte comando (UNIX/DOS/OS2):
Este comando vai renomear o arquivo i00adm.db para i00adm.d1 (primeira e única
extensão do banco) e vai criar o i00adm.db como arquivo de estrutura do banco. Você poderá
então adicionar novas extensões para o banco i00adm usando o comando prostrct add que é
descrito a seguir.
*
* nova.st - nova extensão para o banco i00adm
*
d /disco2/MAGNUS/i00adm.d4
Depois que você começar a usar o banco multi-volume, pode ser que a última
extensão do banco, que sempre é de tamanho variável, comece a ficar muito grande e você
queira adicionar novas extensões ao banco. Estas novas extensões podem inclusive estar em
outro disco ou sistema de arquivos. Você pode ainda adicionar novas extensões a um banco
no qual você usou o prostrct convert.
Para tanto, você deve criar um novo arquivo de estrutura (arquivo .st) contendo
somente a descrição das novas extensões que pretende adicionar. Suponha que você esteja
usando o banco i00adm como multi-volume e ele já tenha 3 extensões. Vamos adicionar uma
nova extensão para este banco. Usando um editor de textos, formato ASCII, você pode criar o
arquivo nova.st com o seguinte conteúdo:
Neste caso estamos adicionando a extensão i00adm.d4 ao banco i00adm. Você usará
então o comando prostrct add, cuja sintaxe é a seguinte:
Depois de executar este comando o banco passará a ter 4 extensões. Lembre-se que a última
extensão será sempre variável.
4.4. Listando a Estrutura do Multi-Volume
Para você listar a estrutura de um banco multi-volume você pode usar o comando
prostrct list. Este comando gera um arquivo de estrutura (.st) com o mesmo nome do banco.
A sintaxe do comando é a seguinte:
Exemplo:
Com este comando será gerado o arquivo i00adm.st com a descrição da estrutura do multi-
volume.
Para um banco de dados você pode emitir um relatório da utilização da área do banco
de dados. Você usa o comando prostrct statistics. Este comando lhe fornece as seguintes
informações:
Como foi falado no começo, o multi-volume será útil naqueles sistemas que tem uma
certa limitação para o tamanho máximo de um arquivo, ou quando no disco em que se
encontra o arquivo .db não tem mais área em disco. Se você separar um banco em vários
discos lembre-se que ao fazer backup você deve copiar o arquivo .db, .bi, .lg e todas as
extensões do banco. A não ser que você esteja usando o probkup, que reconhece o banco
multi-volume.
O multi-volume é feito por banco de dados. Nos exemplos deste capítulo, usamos
sempre o banco i00adm. Você pode usar o multi-volume em todos os outros bancos também.
5.1. After-Image e Before-Image
Neste primeiro tópico, falaremos sobre como o PROGRESS faz para recuperar os
dados em caso de erro. Falaremos sobre cada um dos dois métodos: after-image e before-
image.
Convém relembrar que, um banco de dados é composto por um arquivo .db, .bi e .lg.
No caso do i00adm, por exemplo, teremos o i00adm.db, i00adm.bi e i00adm.lg. Quando for
habilitado o after-image teremos ainda um quarto arquivo chamado .ai (i00adm.ai por
exemplo).
Como exemplo, imagine que você está usando o MAGNUS e ocorra queda de energia.
Quando você entrar novamente no MAGNUS você verá as seguintes mensagens na tela:
Você verá esta mensagem para cada banco de dados que estiver sendo modificado no
momento do erro. Esta mensagem indica que a última sessão terminou de modo anormal e
que as transações incompletas estão sendo desfeitas. Tudo aquilo que já foi atualizado no
banco, o PROGRESS mantém. Mas as transações incompletas são desfeitas. No PROGRESS
temos o conceito de transação, que é um conjunto de alterações no banco de dados que deve
ser feita por completo ou não. Por exemplo, a atualização do movimento da Contabilidade,
pode ser considerada uma transação. Se durante a atualização ocorrer algum problema, ela
será desfeita e você deverá reiniciá-la do começo.
Imagine que você vai alterar alguma informação no cadastro de clientes, por exemplo
o endereço. Assim que, você for alterar o registro do cliente, o PROGRESS grava uma cópia
deste registro no arquivo .bi do banco. Você altera o registro de cliente e ele é regravado no
arquivo .db. Se por acaso ocorrer algum erro durante a atualização do registro, o PROGRESS
usa a cópia que ele gravou no arquivo .bi para restaurar a situação anterior do registro no
arquivo .db. Veja o esquema a seguir que ilustra este exemplo:
o Progress lê o registro
arquivo
de clientes do banco (.db)
.db
Se você estiver usando seu banco de dados e ocorrer uma falha no disco em que ele se
localiza, você só vai poder recuperá-lo retornando um backup. Neste caso, você pode perder
todas as alterações feitas desde o último backup. Imagine que foi feito o backup na segunda-
feira à noite, e ocorreu um erro na terça à tarde. Você vai retornar o backup e perder todas as
alterações que foram feitas na terça de manhã. É neste caso que entra o processamento after-
image.
o Progress regrava o
Fim das alterações registro
arquivo
com as alterações no
.db
.db
além de gravar o
registro arquivo
no .db, também é .ai
gravado
uma copia no .ai
No caso de ocorrer um erro no disco em que está o banco de dados, você deve retornar
o backup do banco e reprocessar o after-image do dia. Assim, você terá o seu banco na
mesma situação anterior a que o ocorreu o problema no disco. Então, só faz sentido usar o
after-image, se você tiver mais de um disco. Um para manter o banco de dados (.db, .bi e
.lg) e outro para manter o arquivo de after-image (.ai).
Para usar o after-image é necessário que o mesmo precise ser habilitado. Adiante é
descrito este procedimento. Algumas características do after-image:
Antes de habilitar o after-image você deve tomar conhecimento de alguns pontos, para
que ele possa ser usado de uma forma correta e eficiente.
Como falamos, anteriormente, um banco de dados é composto pelos arquivos .db, .bi
e .lg. Quando você estiver usando after-image teremos ainda um quarto arquivo com
terminação .ai. Para que tenha sentido usar o after-image é necessário ter mais de um disco no
seu equipamento. Normalmente, você terá a seguinte configuração (tomando como exemplo o
after-image para o banco mgadm):
mgadm.db mgadm.ai
Disco 1 Disco 2
mgadm.bi
mgadm.lg
Máquina
Ao definir a localização para os arquivos .db, .bi, .lg e .ai, tenha em mente o seguinte:
• Para proteção contra falhas de hardware coloque o arquivo .ai em um disco diferente dos arquivos
.db, .bi e .lg.
• Por causa de performance você pode colocar o arquivo .bi em um disco diferente do .db 13. Tenha o
cuidado de não colocar o .bi no mesmo disco do .ai.
Obs.: neste capítulo ao falarmos de "banco de dados", estaremos nos referindo aos arquivo
.db, .bi e .lg. O "arquivo after-image" será o arquivo .ai do banco.
13
Você faz isto usando o parâmetro -g, que é descrito no capítulo 3.
5.2.2. Estratégia de Backup
O processamento after-image é uma segurança a mais para o seu banco de dados, mas
ele não funciona sem backup. Veja o seguinte esquema:
Depois de definir sua política de backup, você pode começar a usar o after-image. Você usará
dois utilitários do PROGRESS:
• proutil - este utilitário está no diretório bin que se encontra no diretório em que foi instalado o
PROGRESS.
• rfutil - este utilitário está no diretório bin que se encontra no diretório em que foi instalado o
PROGRESS (ex.: se o PROGRESS foi instalado no diretório /usr/dlc, você deve executar o seguinte
comando para usar o rfutil: /usr/dlc/bin/rfutil <opções>).
Vamos tomar como exemplo o banco i00adm. Suponha que você queira habilitar o after-
image deste banco. Os passos que você deve seguir são os seguintes:
1. Faça um backup do banco de dados. Pode ser usado o probkup ou o comando do seu sistema
operacional (cpio, tar, BACKUP, etc). Antes de fazer o backup é interessante verificar se o banco não
está em uso e truncar o arquivo .bi14.
1. Se você não usou o comando probkup para fazer o backup, você deve marcar o banco como
"backupeado". Adiante é explicado como fazer isto.
2. Habilite o after-image no banco i00adm. Será usado o rfutil.
3. Agora você pode usar o banco i00adm normalmente. A diferença é que você precisa usar o parâmetro
-a para indicar onde se localiza o arquivo after-image.
4. Após o uso do banco, no final do dia, encerre a sessão PROGRESS. Caso esteja sendo usado em
multiusuário derrube o servidor.
5. Faça o backup do banco de dados e do arquivo after-image (.ai).
6. Inicie um novo arquivo after-image usando o rfutil. A partir deste ponto o banco estará liberado
novamente para uso.
14
Veja o capítulo 3. Administração para informações sobre estes comandos.
5.3.2. Fazendo backup do Banco de Dados
Marcar o banco como "backupeado" significa indicar ao PROGRESS que foi feito
backup do mesmo. O PROGRESS verifica isto ao iniciar o after-image. Quando você usa o
probkup não tem necessidade de fazer isto, pois o banco é marcado automaticamente. Se você
usar os comandos do seu sistema operacional (cpio, tar, BACKUP/RESTORE, etc) é
necessário executar o seguinte comando:
Sistema Operacional
Comando para marcar o banco como "backupeado"
UNIX, DOS, OS2 rfutil nome-banco -C mark backedup [ -g nome-bi ]
VMS PROGRESS/UT=MARK_BACKEDUP[/BEFORE_IMAGE=nome
-bi]
nome-banco
PROGRESS/UT=MARK_BACKEDUP i00adm
Para habilitar o after-image você usa o comando rfutil aimage begin. Este comando:
• Cria o arquivo after-image do banco.
• Marca no banco que ele possui after-image habilitado.
O comando é o seguinte:
Neste comando você deve especificar o nome do banco e o nome do arquivo .ai. No
caso do .ai, você deve informar o diretório e disco em que ele deverá ser criado.
Em UNIX/DOS/OS2, a opção BUFFERED faz com que as gravações do .ai sejam
buferizadas pelo sistema operacional. Se for usado UNBUFFERED as gravações serão feitas
diretamente pelo PROGRESS.
Obs.: Em VMS, todas gravações são UNBUFFERED e esta opção não tem efeito no
comando.
Em DOS/OS:
Em VMS:
PROGRESS/UT=AIMAGE_BEGIN/AFTER_IMAGE=USR:[U2]IOOADM.AI I00ADM
A partir deste momento, para usar o banco I00adm deverá ser sempre especificado o
parâmetro -a. Veja a seguir o tópico que explica como fazer isto. Se você tentar iniciar um
after-image para um banco que foi modificado após o último backup, o rfutil mostrará uma
mensagem de erro e vai cancelar.
Para usar um banco com o after-image é preciso usar o parâmetro -a. No caso do
MAGNUS, você pode colocar este parâmetro no arquivo .pf do banco. Por exemplo, se você
for usar o after-image no i00adm, deve ser feita a seguinte alteração no i00adm.pf:
#
# i00adm.pf - parametros do i00adm
#
-db i00adm.db
-ld i00adm
-a /disco2/MAGNUS/mgadm.ai
Após fazer o backup do banco de dados e do arquivo de after-image, você pode usar o
rfutil aimage new para iniciar um novo arquivo after-image. Ou seja, este comando trunca o
arquivo after-image do banco.
Este comando será usado sempre que fizer o backup do banco com after-image
habilitado. Este comando difere do comando para habilitar o after-image pelo uso da opção
new no lugar de begin.
Após este comando não será mais necessário usar o parâmetro -a para acessar o banco.
Sistema Operacional
Comando para reprocessar o after-image
UNIX, DOS, OS2 rfutil nome-banco -C roll forward [verbose]
-a nome-ai [ -g nome-bi -B n -i ]
VMS PROGRESS/UT=ROLL_FORWARD/AFTER_IMAGE=nome-
ai
[/BEFORE_IMAGE=nome-bi/BLOCKS=n/NOINTEGRITY]
nome-banco
Neste comando se você usar a opção -i (NOINTEGRITY) o processo de restauração será mais
rápido.
Se houver algum erro durante o ROLL FORWARD, será necessário voltar o backup do banco
e reiniciar o processo.
Nunca:
• Elimine o arquivo de after-image a não ser que esteja eliminando todo o banco e não necessita mais
do mesmo, ou tem um backup completo e seguro.
• Use o AIMAGE NEW sem ter feito o backup do after-image.
• Faça backup do after-image sem primeiro truncar o before-image.
• Copie o arquivo .db sem copiar o .bi e .lg.
• Elimine o .db ou .bi a não ser que não precise mais do banco, ou tenha um backup completo e seguro
do mesmo.
• Volte o backup do arquivo .db sem voltar também o backup do .bi e .lg.
Se ocorrer algum problema no seu sistema durante o uso de algum destes utilitários,
simplesmente reinicie o processo:
UNIX/DOS/OS2 VMS
proutil BUSY PROGRESS/UT=BUSY
proutil HOLDER PROGRESS/UT=HOLDER
proutil TRUNCATE BI PROGRESS/UT=TRUNCATE_BI
rfutil AIMAGE BEGIN PROGRESS/UT=AIMAGE_BEGIN
rfutil AIMAGE CHANGE PROGRESS/UT=AIMAGE_CHANGE
rfutil AIMAGE END PROGRESS/UT=AIMAGE_END
rfutil AIMAGE SCAN PROGRESS/UT=AIMAGE_SCAN
rfutil AIMAGE NEW PROGRESS/UT=AIMAGE_NEW
rfutil MARK BACKEDUP PROGRESS/UT=MARK_BACKEDUP
Se você estiver executando o rfutil ROLL FORWARD (UNIX/DOS/OS2) ou
PROGRESS/UT=ROLL_FORWARD (VMS), então faça o seguinte:
Backup do after-image (.ai) - Seu after-image contém informações que você necessita
para atualizar o seu banco de dados. Faça backup do after-image num dispositivo diferente no
qual este arquivo está.
Retornando backup do banco de dados - Restaure o backup do banco (.db, .bi e .lg)
que foi feito imediatamente antes do início do after-image atual. Se você estiver usando o
probkup com a opção incremental, retorne o backup completo mais recente e todos os
incrementais que foram feitos. Não retorne o backup de arquivos after-image anteriores. A
seguir, faça o reprocessamento do after-image do banco conforme descrito anteriormente
neste capítulo.
Caso ocorra algum problema no disco do after-image e ele seja perdido, faça o seguinte:
1. desabilite o after-image.
2. trunque o .bi.
3. faça um backup do banco.
4. marque o banco como backedup.
5. habilite o after-image.
Se durante o uso do PROGRESS seu disco lotar, o PROGRESS vai encerrar e mostrar
uma mensagem de erro. Neste caso faça o seguinte:
Se não puder conseguir mais área no disco para o PROGRESS fazer a recuperação
automática, você deve executar procedimentos de acordo com o conteúdo do disco.
Neste caso, você deve conseguir área livre em disco para fazer a recuperação
automática do banco. Se não for possível mude estes arquivos para um disco maior.
• O uso do after-image implica numa pequena diminuição da performance, mas por outro lado, você
terá uma segurança a mais para seu banco de dados.
• Se você for usar o after-image no MAGNUS, isto deverá ser implementado para os três bancos
(i00adm, i00ind e i00com), porque se você perder o disco onde estão os três bancos, deverá ser
reprocessado o after-image nos três bancos para que eles estejam atualizados até o momento do
erro. Não adianta reprocessar somente em um dos bancos, pois eles não estarão mais
sincronizados.
• Como existem diversos passos para usar o after-image, ou seja, execução de diversos comandos,
sugerimos que você coloque estes comandos em script's (UNIX), ou arquivos lote (.BAT em DOS e
OS2) ou arquivos .COM em VMS.
• Por motivos de performance, você deve executar o comando "proaiw nome-do-banco" sempre que for utilizar o after-image.
Este comando deve ser executado logo após a carga do servidor do banco de dados. Informações detalhadas sobre este
procedimento podem ser encontradas no manual do System Administration do PROGRESS.