Académique Documents
Professionnel Documents
Culture Documents
Manual do Administrador do
Sistema PROGRESS
Verso: I.00
Data Liberao: 01/Outubro/96
Viso 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. Extenses 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
Parmetros 2-1
2.1. Parmetros . 2-1
Blocos no Buffer do Banco de Dados (-B) ... 2-1
Nmero de Cursores de ndice (-c) ... 2-1
Formato da Data (-d) 2-2
rea do Diretrio de Programas (-D) ... 2-2
Formato Numrico Europeu (-E) .. 2-3
Nmero de Entradas na Tabela de Bloqueio (-L) . 2-3
Nmero mximo de clientes por servidor (-Ma) ... 2-4
Atraso na Gravao do Arquivo .bi (-Mf) . 2-4
Nmero mnimo de clientes por servidor (-Mi) . 2-5
Nmero mximo de servidores (-Mn) ... 2-5
Exemplo de uso dos parmetros -Mn, -Ma e -Mi . 2-6
Nmero de Usurios (-n) .. 2-6
Impressora (-o) .. 2-7
Programa Inicial (-p) . 2-7
Arquivo de Parmetros (-pf) . 2-7
Pedido Rpido (-q) 2-8
Modo de Compilao de Programas (-rx) . 2-8
Nome do Servidor (-S) .. 2-9
Diretrio para Arquivos Temporrios (-T) ... 2-9
Classificao Rpida (-TB) 2-10 ..
Nmero de Merge (-TM) ...... 2-11 ..
Nome Fsico do Banco de Dados (-db) . 2-11 ..
Nome Lgico do Banco de Dados (-ld) 2-11 ..
Acesso em Monousurio (-l) . 2-12 ..
Nome do Arquivo de After-Image (-a) . 2-12 ..
Nome do Arquivo Before-Image (-g) ... 2-12 ..
Nome do Usurio do Banco (-U) .. 2-13 ..
Senha do Usurio do Banco (-P) .. 2-13 ..
Backup .. 3-1
3.1. Importncia 3-1
3.2. Do que deve ser feito Backup ? . 3-1
3.3. Qual mdia magntica utilizar para o Backup ? . 3-1
3.4. Perodo de Backup 3-2
3.5. Backup Utilizando o Sistema Operacional 3-2
3.5.1. Backup em DOS/OS2 . 3-2
3.5.2. Backup em UNIX ... 3-3
3.5.3. Backup em VMS . 3-3
3.6. Backup utilizando probkup e prorest . 3-4
3.6.1. Probkup Completo do Banco de Dados .. 3-4
3.6.2. Probkup incremental ... 3-5
3.6.3. Probkup Online ... 3-5
3.6.4. Restaurando Backup feito com o probkup (prorest) .. 3-6
3.6.5. Regras importantes para restaurar backup incremental .. 3-7
3.7. Exemplos de Uso do probkup e prorest . 3-7
3.7.1. Exemplo de uso do probkup em DOS 3-7
3.7.2. Exemplo de uso do probkup em UNIX .. 3-8
3.7.3. Exemplo de uso do probkup em VMS 3-9
3.8. Exemplo de um esquema de Backup do Banco de Dados . 3-11 ..
3.9. Teste do Backup 3-12 ..
3.10. Cuidados com a Mdia Magntica 3-13 ..
3.11. Outras Recomendaes .... 3-14 ..
Multi-Volume 4-1
4.1. Conceito de Multi-Volume 4-1
4.2. Passos para transformar um banco em Multi-Volume ... 4-2
4.2.1. Backup do Banco de Dados 4-2
4.2.2. Criao do Arquivo de Estrutura (.st) 4-2
4.2.3. Criao da Estrutura do Banco Multi-Volume ... 4-3
1. Criao da Estrutura com rea em disco disponvel .. 4-3
2. Criao de Banco Multi-Volume usando o probkup 4-5
3. Criao do Banco Multi-Volume sem usar o probkup . 4-5
4.3. Adicionando novas extenses ao Multi-Volume 4-5
4.4. Listando a Estrutura do Multi-Volume .. 4-7
4.5. Usando Estatsticas do Banco 4-7
4.6. Algumas consideraes sobre multi-volume .. 4-7
Este captulo apresentar uma viso geral de todo o ambiente e dos principais componentes
da Base de Dados PROGRESS: sua estrutura fsica e lgica, limitaes, etc.
2. Parmetros
Este captulo explicar os parmetros do PROGRESS, dando uma viso geral de cada um
deles, sua funo e influencia no PROGRESS.
3. Backup
4. Multi-Volume
Este captulo explica o que multi-volume, quando usar e como transformar um banco em
multi-volume.
5. After-Image
Neste captulo 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
informaes atualizadas at o momento em que ocorreu o erro no disco.
Ser explicado, tambm, como funciona o processamento before-image (imagem anterior) e a
diferena entre os dois.
Mostraremos a sintaxe dos comandos para usar o after-image, bem como alguns exemplos.
1.1. PROGRESS
Este captulo apresentar uma viso geral de todo o ambiente e dos componentes da
base de dados PROGRESS. Os mecanismos da base de dados so extremamente importantes
para uma boa performance das aplicaes 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, possvel encontrar
aplicaes rodando em bancos de dados com dezenas de gigabytes de dados armazenados e
milhes de processos sendo executados semanalmente. Portanto, importante conhecermos
os princpios bsicos das estruturas que o PROGRESS utiliza para armazenar e manipular, de
forma clara e segura, as informaes armazenadas em seus bancos de dados e em diferentes
plataformas.
importante mencionar que o banco de dados fsico , naturalmente, de extrema
importncia quando da escolha da plataforma em que o banco ir trabalhar. As escolhas
tpicas 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 funes lgicas indiferente da plataforma, sendo o mesmo
executvel para cada tipo de plataforma. Isto garante que a estrutura tirar mximo proveito
da plataforma na qual esta rodando. Por exemplo, uma liberao de espao de memria em
ambiente VMS , certamente no ser idntica em uma Novell, contudo a estrutura de base de
dados correspondente ser montada apropriadamente.
Bases de dados
Fsicas
Base de Dados
Processo Intermedirio
CPU
Servidor do Banco de Dados
Memria
Compartilhada
Estas so entidades fsicas separadas, cada uma contendo uma parte da base de dados,
permitindo que vrios 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 sees de dados,
cada qual sendo uma extenso 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 lgica referenciada por cada programa que acessa a base de dados. A
localizao fsica e a configurao da base de dados permanece transparente ao cdigo 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
cdigo.
O processo do servidor serve aos clientes do banco de dados (usurios). Isto inclui os
clientes locais auto-servidores (no mesmo hardware que o banco de dados, ou host-based), e
clientes remotos que podem solicitar mltiplos servidores para manipular suas requisies
acumuladas.
O processo broker est relacionado aos clientes remotos cujos processos residem em
um sistema separado do sistema onde contm o processo broker e o processo de servidor.
responsvel por reconhecer o acesso deles ao banco de dados e iniciar processos de servidor
quando necessrios. Note que os clientes remotos no necessariamente so 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 usurios no
banco de dados e na aplicao.
1.2.6. CPU
A prxima seo discute DataServers para mostrar como voc poder acessar bancos
de dados no-PROGRESS transparentemente. Transparentemente, significa que o cdigo
funcionar da mesma maneira, independente do banco de dados usado.
A figura a seguir, apresenta o funcionamento do DataServer.
Bases de dados
Fsicas
Base de Dados
Schema Holder
DataServer
Processo Intermedirio
Memria
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 possusse dados (mas, fisicamente no possui); o DataServer ento, 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 informaes bsicas sobre a estrutura do banco de dados, que
permitir a voc compreender completamente o desenvolvimento de uma aplicao 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, no
existe uma estrutura verdadeira funcionando. Ao invs, o executvel da aplicao (.exe)
contm o mecanismo que solicita e gerencia os dados.
O banco de dados PROGRESS possui suas limitaes. Entre elas podemos citar:
Elemento Limite
Tabela Equivale ao tamanho mximo do banco de dados
ndice Depende do tamanho do bloco.
Tamanho do Bloco Nmero mximo de ndices
512 2048
1024 4096
2048 8192
4096 16384
Banco de dados Local O banco de dados est localizado na mesma mquina onde
est a aplicao, ou sesso do PROGRESS.
Banco de dados Remoto O banco de dados est localizado na rede, desde que a
mquina onde esta sendo executada a aplicao tambm
esteja na mesma rede.
Para banco de dados remoto, podemos citar bancos de dados distribudos, que nada
mais so do que vrias bases de dados distribudas atravs da rede. Podendo ser um ou mais
bancos de dados por mquina.
Conexo
Remota
Existem vrios parmetros que voc informa ao PROGRESS. Estes parmetros tem as
mais diversas funes, podendo, por exemplo, dizer ao PROGRESS, o quanto de memria ele
vai usar da mquina, em qual diretrio ele deve gravar arquivos temporrios, etc.
Estes parmetros esto explicados a seguir:
Sintaxe UNIX -B n
NT
DOS
OS/2
VMS /BUFFERS=n
Mximo 500.000
Mnimo 10
Padro (8 * nmero de
usurios)
n - nmero 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
parmetros mais blocos do banco ficaro em memria aumentando a performance.
Use este parmetro para alocar memria para armazenar registros do banco de dados
em memria. Cada vez que um programa acessar um registro do banco, o PROGRESS
verifica se este registro j no est em memria e no 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
Mximo
Mnimo
Padro (4 * nmero de
usurios)
n - nmero de cursores de ndice permitidos. Cada vez que um programa PROGRESS acessar um
arquivo para uma leitura seqencial ser usado cursor de ndice. Cada cursor usa 64 bytes. Se este
nmero estiver baixo o PROGRESS mostra a seguinte mensagem:
formato - Formato da data que voc quer ver ao executar o MAGNUS. Este formato a combinao
das trs letras: d (dia), m (ms), y (ano). O padro DIA/MS/ANO (dmy).
Sintaxe UNIX -D n
NT
DOS
Windows
OS/2
VMS /COMPILED_FILE_DIRECTORY=n
Mximo 500
Mnimo 5
Padro 36
Cada programa executado durante uma sesso PROGRESS ocupa uma entrada de
diretrio. Cada programa ao ser compilado usa uma entrada de diretrio, bem como cada um
de seus includes. Se voc receber a seguinte mensagem este parmetro dever ser aumentado:
Sintaxe UNIX -E
DOS
Windows
OS/2
VMS /NUMERIC_FORMAT=EUROPEAN
Padro -E
Este parmetro deve ser usado para indicar ao PROGRESS para interpretar os campos
decimais no formato europeu. Se no tiver este parmetro, ser usado o formato Americano.
Veja o exemplo a seguir:
Formato Europeu..: 191.065,00
Formato Americano: 191,065.00
Nmero de Entradas na Tabela de Bloqueio (-L)
Sintaxe UNIX -L n
NT
DOS
Windows
OS/2
VMS /LOCK_TABLE=n
Mximo depende S.O.
Mnimo 32
Padro 500,00
Limitado pela disponibilidade de memria e pelos parmetros de memria compartilhada
Cada registro acessado em multiusurio usa uma entrada nesta tabela. Voc precisa
aumentar o valor deste parmetro se voc ver a seguinte mensagem durante a execuo de um
programa:
n - Nmero de segundos que o PROGRESS vai atrasar na gravao das transaes do arquivo before-
image (.bi).
Este parmetro pode ser usado para melhorar a performance em sistema muito
carregado. Ele faz com que o PROGRESS no grave imediatamente a transao no arquivo
before-image, com isto voc economiza algumas gravaes no arquivo before-image. Isto no
significa que seu banco ficar sem integridade. Quando ocorrer um erro do sistema voc
poder perder alm da ltima transao incompleta, outras transaes que foram completadas
neste perodo de atraso que voc determinou.
Este parmetro tambm pode ser usado em monousurio.
n - Nmero de usurios remotos (clientes) num servidor antes de ser iniciado um novo servidor (at o
nmero mximo de usurios por servidor - parmetro -Ma).
n - Nmero mximo de servidores para clientes remotos que podem ser inicializados pelo servidor
local..
Suponha que voc ter 40 usurios remotos para acessar um banco na sua mquina e
voc definiu os seguintes parmetros:
Sintaxe UNIX -n n
NT
DOS
Windows
OS/2
VMS /NUMBER_OF_USERS=n
Mximo 2048
Mnimo 1
Padro
O valor mximo pode ser menor se sua mquina no estiver rodando Unix System 5, mas este valor
ser no mnimo 10.
Depende do equipamento: UNIX System 5: 20
Pyramid: 50
Openet: 64
MS-DOS: 20
Outros: 10
n - O nmero mximo de usurios no banco de dados. Aps este nmero ser alcanado, outros usurios
no vo conseguir iniciar sesso neste banco de dados.
Em sistemas que no tem memria compartilhada, use este parmetro para limitar o
nmero de usurios para o servidor do banco. Em sistemas com memria compartilhada, -n
deve incluir usurios locais e remotos.
Impressora (-o)
Veja o captulo sobre Impressoras neste manual para obter maiores informaes sobre
este parmetro e como configurar impressoras no MAGNUS.
arquivo - Nome de um arquivo do sistema operacional que contm parmetros. Este arquivo deve ter a
terminao .pf e pode ser criado usando-se um editor de textos formato ASCII.
Este arquivo til quando voc tem muitos parmetros na linha de comando,
especialmente em DOS onde o tamanho mximo da linha de comando 128 bytes.
Voc pode agrupar neste arquivo todos os parmetros que pretende usar e indica atravs
deste parmetro a localizao do mesmo. No MAGNUS, cada banco tem seu prprio arquivo
de parmetros (i00adm.pf, i00ind.pf e i00com.pf).
Voc pode usar mais de um arquivo de parmetros ao mesmo tempo na linha de comandos.
Sintaxe UNIX -q
NT
DOS
Windows
OS/2
VMS /QUICK_REQUEST
Padro
1
Veja no captulo 2 informaes sobre PROPATH.
Modo de Compilao de Programas (-rx)
Esta opo poder ser usada em dois casos: quando iniciando um servidor que vai ser
acessado por usurios remotos, ou quando usando o PROGRESS como usurio remoto. Neste
caso, o nome do servidor deve ser o mesmo nos dois casos.
Em redes Novell usando NLM ser necessrio criar um nome de servidor para cada um
que voc carregar. E para cada usurio que for acessar o servidor do banco dever ter tambm
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 usurio voc deve definir um diretrio de trabalho diferente. Isto
pode ser feito da seguinte maneira:
n - Nmero de blocos (em 1024 bytes) que voc deseja alocar quando o PROGRESS for fazer uma
classificao (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 parmetro usado para melhorar a performance quando for feita uma classificao
de registros (sort).
Para fazer uma classificao de registros o PROGRESS usa a memria (valor do -TB),
mas a partir do momento que no tem memria para isto, ele vai gravando num arquivo de
trabalho. Ento, se for um tamanho maior, mais memria voc vai ter para estas
classificaes.
2
Veja adiante o tpico Reindexao do Banco de Dados.
Nmero de Merge (-TM)
n - Nmero de blocos que podem ser simultaneamente unidos durante o processo de classificao.
nome-banco - Nome fsico do banco de dados. Pode ser includo o nome do diretrio tambm.
Este parmetro utilizado na hora que voc conectar um banco no PROGRESS. Ele
indica a localizao fsica do banco de dados. Ateno: No confunda o nome fsico de um
banco com o nome lgico (parmetro -ld).
Sintaxe UNIX -1
DOS
NT
Windows
OS/2
VMS
Este parmetro utilizado, caso voc deseje acessar um banco PROGRESS em monousurio.
Este parmetro dever ser usado quando voc estiver trabalhando com after-image.
Veja neste manual e no manual Progress System Administration Guide, o captulo que fala
sobre o Processamento after-image.
Um banco de dados composto por trs 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 transaes.
Por default, o PROGRESS considera que este arquivo est no mesmo diretrio do
banco de dados (arquivo .db). Mas, algumas vezes, voc pode colocar este arquivo em um
outro disco para ganhar performance, sendo ento necessrio especificar neste parmetro
onde est o arquivo .bi do banco.
Por exemplo, voc instalou o MAGNUS no diretrio /usr/MAGNUS mas, depois
moveu o arquivo .bi do mgadm para o diretrio /disco1/MAGNUS. No arquivo mgadm.pf
dever ter a seguinte linha para indicar que o .bi est neste outro diretrio:
-g /disco1/MAGNUS/i00adm.bi
Nome do Usurio do Banco (-U)
nome-usurio - Nome do usurio que voc pretende setar como usurio ativo no banco de dados.
Dentro de cada banco de dados existe o controle de usurios e senhas. Este controle
feito pelo PROGRESS. Se voc desejar definir um usurio padro para o banco pode ser
informado neste parmetro. O usurio dever ter sido previamente cadastrado no banco. Veja
neste manual o captulo sobre Segurana para maiores detalhes. Neste parmetro, voc
informa o Usurio veja o parmetro -P a seguir que indica como informar a senha.
senha - Senha do usurio (parmetro -U) que voc pretende setar como usurio ativo no banco.
3.1. Importncia
E dos outros arquivos semelhantes para os outros banco de dados do MAGNUS que
voc possui. No diretrio em que foi instalado o MAGNUS voc ter os sub-diretrios dos
programas dos mdulos (exemplo: ctp o diretrio da Contabilidade). bom que sempre se
faa cpia destes programas, para o caso de uma perda do disco, voc no precise solicitar os
fontes criptografados para recompilar.
Os utilitrios diversos so os scripts de inicializao do MAGNUS (smagnus,
MAGNUS e fmagnus), os arquivos que esto no diretrio 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 diretrio do MAGNUS de uma s vez (banco, programas e
utilitrios). 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 utilitrios em outro.
claro que, voc pode tambm separar cada mdulo 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
tpico Exemplo de um Esquema de Backup.
Dos programas voc pode fazer uma cpia semanal. Isto depende das novas verses
de programas que voc recebeu.
E dos utilitrios faa uma cpia sempre que alterar algum dos parmetros 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 utilitrios. Opcionalmente, voc pode usar o comando probkup do
PROGRESS para backup do banco. Veja o prximo tpico.
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 diretrio cdp (Cadastros) execute:
Neste exemplo, estamos supondo que a unidade de disquete A:. O parmetro /S indica pro
DOS copiar os sub-diretrios. Para cada diretrio de programas execute este comando. No
captulo 1. MAGNUS I.00 voc tem a relao dos mdulos.
RESTORE A: C:/S
Obs.: Veja a documentao 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 contedo do diretrio do MAGNUS para fita DAT.
Este comando vai retornar da Fita DAT todos os arquivos que foram copiados previamente
com o cpio.
Veja na documentao do seu sistema operacional maiores informaes 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 no poder usar este dispositivo (disquetes, fita DAT, fita streamer) para
os outros bancos. Cada banco dever ter seu prprio dispositivo.
A vantagem deste comando com relao 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 esto descritos, tambm, no System Administration Guide II do PROGRESS (Verso 6) e System
Administration Reference (Verso 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 Tera. de Tera e de Tera,
Quarta. Quarta e
Quinta.
Ento, 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 tera-feira. Adiante mostrado como fazer isto.
Voc pode ajustar o ciclo conforme suas necessidades. Mas, importante no deixar
um espao 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 parmetro -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 parmetro util por exemplo ao gravar em
disquete DOS.
O parmetro -bf (/BLOCKING_FATOR) indica quantos blocos devem ser lidos para
memria antes de gravar no dispositivo. O tamanho do bloco tambm depende do sistema
(512 em DOS, OS2 e VMS, e 1024 na maioria dos sistemas UNIX).
A opo do fator de overlap -io (/OVERLAP). Este parmetro serve para o seguinte: se voc usar o
fator de overlap 1, significa que ser feito o backup das alteraes do dia e tambm as alteraes do
dia anterior. Fator 2 indica que alm do backup das alteraes do dia, tambm ser feito backup dos 2
dias anteriores e assim por diante.
A opo -scan (/SCAN) que calcula a rea necessria para o backup incremental, j que no
possvel 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 no esteja em uso, o backup
online permite que se faa 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 no 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 no, o PROGRESS no vai poder gravar as
informaes no dispositivo. At o PROGRESS gravar estas informaes, voc no 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 captulo sobre processamento After-Image.
Obs.: Backup criado com probkup online s poder ser restaurado com utilitrio prorest da
verso 6. Veja o tpico 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-diretrio probin no
diretrio 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 gravao.
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 seqncia o PROGRESS
emite uma mensagem de erro e a operao cancelada.
Se voc perder a segunda cpia do incremental, mas usou o fator de overlap 1, ento o
terceiro incremental vai restaurar corretamente os dados perdidos do segundo.
Aps restaurar um backup completo, no atualize nada no banco, se voc tiver mais backup
incremental a ser restaurado. Se voc entrar no banco, todos os backup incrementais (ainda
no restaurados) vo ficar invlidos, at que voc restaure tudo novamente, a partir do backup
completo.
Se ocorrer uma falha no sistema durante a restaurao 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 utilitrio
prostrct5 para determinar quantos disquetes sero necessrios para fazer o backup.
Neste exemplo o dispositivo o arquivo \i00adm no drive a. A opo -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 relatrio gerado quando o backup inicia:
Na mensagem acima, o PROGRESS diz que necessrio 163 blocos para backup e
302 blocos para restaurar o banco. Esta diferena ocorre porque o PROGRESS compacta os
dados antes do backup.
J que no foi usada a opo -scan o PROGRESS no pode determinar quantos blocos
sero usados para o backup.
5
Voc tem maiores informaes sobre o prostrct no captulo 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 parmetro -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 utilitrio
prostrct7 para determinar quantos blocos sero necessrios 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 captulo 3. Administrao voc tem informaes sobre os parmetros de banco.
7
Voc tem maiores informaes sobre o prostrct no captulo sobre after-image.
probkup i00adm.db /dev/rmt/0m -vs 4000 -bf 20
Neste exemplo o dispositivo o /dev/rmt/0m. A opo -vs indica que a rea do dispositivo
4000 * 1024 = 4000 Kbytes. O fator de bloco 20. A seguinte tela mostra o relatrio 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 parmetro -db no
arquivo .pf8.
1. Como ser feito um backup completo, podemos usar o utilitrio de estatsticas para saber
quanto de rea o banco possui. Execute o comando:
PROGRESS/STRUCTURE/STATISTICS i00adm
8
No captulo 3. Administrao voc tem informaes sobre os parmetros de banco.
9
Voc tem maiores informaes sobre o prostrct no captulo 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 parmetro -db no
arquivo .pf.
Neste tpico 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 confuso 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 rodzio necessrio para que as cpias mensais e semanais sejam utilizadas
diariamente tambm, sendo assim, caso haja algum problema com a cpia (erro fsico) voc
possa detectar o problema numa cpia diria, o que menos grave do que encontrar o
problema em uma cpia 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. Faa o backup deste banco usando os mesmos comandos que voc usa para o seu banco.
3. Retorne este backup para um diretrio temporrio que seja diferente do diretrio em que est o seu
banco teste. (Voc deve tomar cuidado ao usar o Backup/Restore do DOS, pois ele grava o diretrio
no backup).
Este teste importante para saber se no h nenhum problema com a mdia na qual
voc est fazendo o backup e nem com os comandos que voc est usando.
3.10. Cuidados com a Mdia Magntica
Descrevemos a seguir, alguns cuidados que voc deve ter, afim de aumentar a vida til
dos disquetes e fitas que usar para backup. Alm, claro de garantir as informaes do seu
backup.
1. Fumar inadmissvel. O maior perigo no est na fumaa, mas nas cinzas. Use cinzeiro daqueles que
seguram o cigarro e o esvazie com freqncia.
2. Faa muitas cpias de segurana.
3. Discos, quando fora de uso, devem ficar guardados em posio vertical, sempre dentro das capas.
4. To logo tenha feito um Backup, coloque a etiqueta lateral de proteo e tire-a somente quando, de s
conscincia, for liberar o Backup.
5. Use etiquetas de fcil destaque na hora da remoo, procure faz-lo com o disquete apoiado (nunca
no ar), firmando pelo canto (nunca pelo centro). Toda operao 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 possvel, o ambiente dos discos jamais deve ser varrido (use pano mido e aspirador
de p).
7. Evite vapores qumicos, detergentes, aerosol, cho-encerado.
8. Se um disco desencapado cair no cho, cuide imediatamente de saber se ainda pode ser lido; faa
nova cpia de segurana.
9. No se deixe enganar euforicamente quando, aps sucessivas mensagens de erro no disquete ele
deixa passar, principalmente se voc executou um (I)gnore.
10. Ateno ao colocar o disquete na unidade - se isto for feito de forma dispersiva, voc pode esbarrar
as partes sensveis da gravao em algum obstculo.
11. To logo tenha recebido novos disquetes, formate todos de uma vez, no os deixe virgens por muito
tempo.
12. Evite guard-los em armrios ou gavetas de ferro. Use madeira ou acrlico.
13. Evite coloc-los perto de motores, telefones, rdios, enfim qualquer coisa que possa gerar campo
magntico.
14. Mantenha todo o seu conjunto de computador afastado de alimentos.
15. Muito cuidado: no coloque mais de 10 (dez) disquetes numa caixa de papelo. A maioria dos discos
danificada pelo excesso de presso.
16. Pelo fato de terem o nome de "discos flexveis", no vamos ficar por a entortando-os.
17. Nunca use grampeador ou clips para anexar bilhetes aos discos, pois os mesmos no suportam serem
perfurados.
18. Quando transportar ou enviar disquetes em malotes ou correio faa uma embalagem resistente com
caixas de material rgido ou de papelo duro para evitar que os discos sejam amassados.
3.11. Outras Recomendaes
No copiar o banco de dados em uso10 - Certifique, antes de fazer o backup que no tem nenhum
usurio usando o banco de dados. Em ambiente multiusurio voc pode executar o comando
fmagnus, conforme descrito no captulo 3, e verificar se tem algum usurio conectado ao banco. Em
monousurio, veja o arquivo .lg do banco. Nele tem a relao dos usurios que acessaram o banco.
Teste o Backup - Pior do que voc no ter uma cpia de backup para voltar, esta cpia no voltar
por causa de erro na mdia. Por isso importante voc sempre fazer um teste para ver se o dispositivo
no qual voc est fazendo backup confivel. Volte o backup do banco de dados em um outro
diretrio somente para ver se ele est em perfeitas condies.
No use mdia magntica de baixa qualidade - No economize comprando disquetes, fitas streamer
para backup, que sejam de baixa qualidade. Voc vai fazer o backup e importante que seja um
material confivel.
No use uma mdia por muito tempo - Com o tempo, alguns disquetes, ou fitas, tendem a perder a
qualidade de gravao. Veja com seu fornecedor qual o tempo de uso da mdia magntica.
Identifique claramente cada backup - As informaes que voc colocar na identificao do backup
(etiqueta) devem incluir:
1. data e hora do backup.
2. o nome do banco de dados.
3. o nmero do volume e o total de volumes da mdia, 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 dirio por pelo menos duas semanas, o semanal por dois meses, e o mensal por
um ano. Comprar mdia magntica extra, mais barato do que reconstruir bancos danificados.
Mantenha algumas cpias de backup em outro prdio que no seja o local de trabalho, na casa de
algum diretor da empresa, por exemplo. Com isto, se ocorrer algum sinistro no prdio da empresa,
voc ter suas informaes salvas.
No esquea de fazer backup - muito importante que o cliente esteja sempre com o backup em dia,
pois imprevistos acontecem, e imprescindvel que voc possa retornar um backup confivel do seu
banco de dados. Lembre-se que so as informaes de sua empresa que esto em jogo.
10
Veja no captulo 3 o comando proutil holder.
4.1. Conceito de Multi-Volume
Em alguns sistemas operacionais existe um certo limite para o tamanho mximo de arquivo. Na
verdade, ao alcanar este limite o sistema tende a perder performance. Ento, interessante dividir .db
em vrias partes com este tamanho mximo. Exemplo: em DOS, se o seu banco passar de 8 Megabytes
convm usar multi-volume. Consulte o seu sistema operacional para ver se no h algum limite deste
tipo.
Quando no disco em que estiver o arquivo .db no tiver mais espao, 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 distribudo os volumes em vrios discos a performance tende a melhorar,
pois est se distribuindo as gravaes e leituras para vrias controladoras de disco. importante
salientar que se distribua em vrios discos fsicos diferentes. Em alguns sistemas, um mesmo disco pode
ser dividido em unidades lgicas diferentes.
1. i00adm normal:
Dados
i00adm.db
2. i00adm multi-volume:
Localizao
das Dados Dados
Extenses .......
sempre bom fazer o backup do banco, antes de fazer alguma grande alterao 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 no ser possvel.
Usando um editor de textos, formato ASCII, crie um arquivo com a descrio das
extenses 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 trs extenses). Isto porque ao criar uma estrutura o PROGRESS j
aloca a rea definida no arquivo de estrutura. Lembre-se de reservar alguma rea tambm para
a ltima extenso (que varivel).
A partir daqui, poder surgir trs situaes 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 no tem rea em disco suficiente para criar a estrutura e vai usar o probkup.
3. Voc no tem rea em disco suficiente para criar a estrutura e no vai usar o probkup.
Nesta situao 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 disponvel, em
DOS use o comando DIR. Em VMS, use o comando SHOW DEVICE.
Ao criar uma estrutura multi-volume necessrio 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 diretrio probin sob o diretrio onde foi instalado o
PROGRESS. Por exemplo, se o diretrio do PROGRESS o /usr/dlc voc deve executar o
comando /usr/dlc/probin/prostrct.
U tilizando o arquivo de estrutura mostrado no tpico 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 ento 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 transferncia dos dados do banco i00adm1 para a
estrutura i00adm. Aps a transferncia 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. Criao de Banco Multi-Volume usando o probkup
Caso voc no tenha rea em disco suficiente para acomodar a estrutura e o banco de
dados, pode ser usado o probkup para auxiliar na criao do multi-volume. Os passos so 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 captulo 4. Backup como fazer um backup usando o comando probkup. Para
maior segurana, 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.
Criao da Estrutura com rea em disco disponvel) a sintaxe e um exemplo de como criar a
estrutura.
Aps a criao da estrutura voc deve retornar o backup feito anteriormente para a nova
estrutura do banco. O comando prorest tambm descrito no captulo 4. Backup. Conforme
o exemplo anterior teramos:
Este comando vai copiar os dados do banco para a nova estrutura criada e o banco estar
pronto para uso.
12
O comando para truncar o bi est descrito no captulo 3> Administrao 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
extenso do banco) e vai criar o i00adm.db como arquivo de estrutura do banco. Voc poder
ento adicionar novas extenses para o banco i00adm usando o comando prostrct add que
descrito a seguir.
*
* nova.st - nova extenso para o banco i00adm
*
d /disco2/MAGNUS/i00adm.d4
Depois que voc comear a usar o banco multi-volume, pode ser que a ltima
extenso do banco, que sempre de tamanho varivel, comece a ficar muito grande e voc
queira adicionar novas extenses ao banco. Estas novas extenses podem inclusive estar em
outro disco ou sistema de arquivos. Voc pode ainda adicionar novas extenses 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 descrio das novas extenses que pretende adicionar. Suponha que voc esteja
usando o banco i00adm como multi-volume e ele j tenha 3 extenses. Vamos adicionar uma
nova extenso para este banco. Usando um editor de textos, formato ASCII, voc pode criar o
arquivo nova.st com o seguinte contedo:
Neste caso estamos adicionando a extenso i00adm.d4 ao banco i00adm. Voc usar
ento o comando prostrct add, cuja sintaxe a seguinte:
Depois de executar este comando o banco passar a ter 4 extenses. Lembre-se que a ltima
extenso ser sempre varivel.
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 descrio da estrutura do multi-
volume.
Para um banco de dados voc pode emitir um relatrio da utilizao da rea do banco
de dados. Voc usa o comando prostrct statistics. Este comando lhe fornece as seguintes
informaes:
Como foi falado no comeo, o multi-volume ser til naqueles sistemas que tem uma
certa limitao para o tamanho mximo de um arquivo, ou quando no disco em que se
encontra o arquivo .db no tem mais rea em disco. Se voc separar um banco em vrios
discos lembre-se que ao fazer backup voc deve copiar o arquivo .db, .bi, .lg e todas as
extenses do banco. A no ser que voc esteja usando o probkup, que reconhece o banco
multi-volume.
O multi-volume feito por banco de dados. Nos exemplos deste captulo, usamos
sempre o banco i00adm. Voc pode usar o multi-volume em todos os outros bancos tambm.
5.1. After-Image e Before-Image
Neste primeiro tpico, falaremos sobre como o PROGRESS faz para recuperar os
dados em caso de erro. Falaremos sobre cada um dos dois mtodos: after-image e before-
image.
Convm 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 sesso terminou de modo anormal e
que as transaes incompletas esto sendo desfeitas. Tudo aquilo que j foi atualizado no
banco, o PROGRESS mantm. Mas as transaes incompletas so desfeitas. No PROGRESS
temos o conceito de transao, que um conjunto de alteraes no banco de dados que deve
ser feita por completo ou no. Por exemplo, a atualizao do movimento da Contabilidade,
pode ser considerada uma transao. Se durante a atualizao ocorrer algum problema, ela
ser desfeita e voc dever reinici-la do comeo.
Imagine que voc vai alterar alguma informao no cadastro de clientes, por exemplo
o endereo. Assim que, voc for alterar o registro do cliente, o PROGRESS grava uma cpia
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 atualizao do registro, o PROGRESS
usa a cpia que ele gravou no arquivo .bi para restaurar a situao 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 alteraes feitas desde o ltimo backup. Imagine que foi feito o backup na segunda-
feira noite, e ocorreu um erro na tera tarde. Voc vai retornar o backup e perder todas as
alteraes que foram feitas na tera de manh. neste caso que entra o processamento after-
image.
o Progress regrava o
Fim das alteraes registro
arquivo
com as alteraes no
.db
.db
alm de gravar o
registro arquivo
no .db, tambm .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 situao anterior a que o ocorreu o problema no disco. Ento, 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 necessrio que o mesmo precise ser habilitado. Adiante
descrito este procedimento. Algumas caractersticas 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
terminao .ai. Para que tenha sentido usar o after-image necessrio ter mais de um disco no
seu equipamento. Normalmente, voc ter a seguinte configurao (tomando como exemplo o
after-image para o banco mgadm):
mgadm.db mgadm.ai
Disco 1 Disco 2
mgadm.bi
mgadm.lg
Mquina
Ao definir a localizao para os arquivos .db, .bi, .lg e .ai, tenha em mente o seguinte:
Para proteo 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 no colocar o .bi no mesmo disco do .ai.
Obs.: neste captulo 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 parmetro -g, que descrito no captulo 3.
5.2.2. Estratgia de Backup
O processamento after-image uma segurana a mais para o seu banco de dados, mas
ele no funciona sem backup. Veja o seguinte esquema:
Depois de definir sua poltica de backup, voc pode comear a usar o after-image. Voc usar
dois utilitrios do PROGRESS:
proutil - este utilitrio est no diretrio bin que se encontra no diretrio em que foi instalado o
PROGRESS.
rfutil - este utilitrio est no diretrio bin que se encontra no diretrio em que foi instalado o
PROGRESS (ex.: se o PROGRESS foi instalado no diretrio /usr/dlc, voc deve executar o seguinte
comando para usar o rfutil: /usr/dlc/bin/rfutil <opes>).
Vamos tomar como exemplo o banco i00adm. Suponha que voc queira habilitar o after-
image deste banco. Os passos que voc deve seguir so os seguintes:
1. Faa 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 no
est em uso e truncar o arquivo .bi14.
1. Se voc no 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 diferena que voc precisa usar o parmetro
-a para indicar onde se localiza o arquivo after-image.
4. Aps o uso do banco, no final do dia, encerre a sesso PROGRESS. Caso esteja sendo usado em
multiusurio derrube o servidor.
5. Faa 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 captulo 3. Administrao para informaes 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 no tem necessidade de fazer isto, pois o banco marcado automaticamente. Se voc
usar os comandos do seu sistema operacional (cpio, tar, BACKUP/RESTORE, etc)
necessrio 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 diretrio e disco em que ele dever ser criado.
Em UNIX/DOS/OS2, a opo BUFFERED faz com que as gravaes do .ai sejam
buferizadas pelo sistema operacional. Se for usado UNBUFFERED as gravaes sero feitas
diretamente pelo PROGRESS.
Obs.: Em VMS, todas gravaes so UNBUFFERED e esta opo no 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
parmetro -a. Veja a seguir o tpico que explica como fazer isto. Se voc tentar iniciar um
after-image para um banco que foi modificado aps o ltimo backup, o rfutil mostrar uma
mensagem de erro e vai cancelar.
Para usar um banco com o after-image preciso usar o parmetro -a. No caso do
MAGNUS, voc pode colocar este parmetro no arquivo .pf do banco. Por exemplo, se voc
for usar o after-image no i00adm, deve ser feita a seguinte alterao no i00adm.pf:
#
# i00adm.pf - parametros do i00adm
#
-db i00adm.db
-ld i00adm
-a /disco2/MAGNUS/mgadm.ai
Aps 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 opo
new no lugar de begin.
Aps este comando no ser mais necessrio usar o parmetro -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 opo -i (NOINTEGRITY) o processo de restaurao ser mais
rpido.
Se houver algum erro durante o ROLL FORWARD, ser necessrio voltar o backup do banco
e reiniciar o processo.
Nunca:
Elimine o arquivo de after-image a no ser que esteja eliminando todo o banco e no necessita mais
do mesmo, ou tem um backup completo e seguro.
Use o AIMAGE NEW sem ter feito o backup do after-image.
Faa 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 no ser que no precise mais do banco, ou tenha um backup completo e seguro
do mesmo.
Volte o backup do arquivo .db sem voltar tambm o backup do .bi e .lg.
Se ocorrer algum problema no seu sistema durante o uso de algum destes utilitrios,
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), ento faa o seguinte:
Backup do after-image (.ai) - Seu after-image contm informaes que voc necessita
para atualizar o seu banco de dados. Faa 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 incio do after-image atual. Se voc estiver usando o
probkup com a opo incremental, retorne o backup completo mais recente e todos os
incrementais que foram feitos. No retorne o backup de arquivos after-image anteriores. A
seguir, faa o reprocessamento do after-image do banco conforme descrito anteriormente
neste captulo.
Caso ocorra algum problema no disco do after-image e ele seja perdido, faa o seguinte:
1. desabilite o after-image.
2. trunque o .bi.
3. faa 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 faa o seguinte:
Neste caso, voc deve conseguir rea livre em disco para fazer a recuperao
automtica do banco. Se no for possvel mude estes arquivos para um disco maior.
O uso do after-image implica numa pequena diminuio da performance, mas por outro lado, voc
ter uma segurana a mais para seu banco de dados.
Se voc for usar o after-image no MAGNUS, isto dever ser implementado para os trs bancos
(i00adm, i00ind e i00com), porque se voc perder o disco onde esto os trs bancos, dever ser
reprocessado o after-image nos trs bancos para que eles estejam atualizados at o momento do
erro. No adianta reprocessar somente em um dos bancos, pois eles no estaro mais
sincronizados.
Como existem diversos passos para usar o after-image, ou seja, execuo 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 aps a carga do servidor do banco de dados. Informaes detalhadas sobre este
procedimento podem ser encontradas no manual do System Administration do PROGRESS.