Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
BACKUP E ALTA DISPONIBILIDADE
Dayse Soares Santos
Clailson S. D. de Almeida
RESUMO
O artigo relata sobre a importância do backup da base de dados de um
sistema, a escolha do tipo de armazenamento a ser definido e o uso de alta
disponibilidade. As tecnologias de banco de dados mais usadas na atualidade são
Oracle e o SQL Server e por essa razão esse artigo tem algumas práticas de backup
e restore. Também serão especificadas as funções de um administrador em banco
de dados (DBA), relativas ao tema abordado.
Palavras-chave:
Base de dados, Backup, Oracle, SQL Server,DBA
1. INTRODUÇÃO
Nesse artigo serão discutidos alguns tipos de armazenamento e suas
características, destacando o cache e memória principal, armazenamento de disco
magnético e armazenamento óptico.
Uma das maiores responsabilidades de um DBA é assegurar que o banco
de dados esteja sempre disponível para o uso, ou seja, o banco de dados precisa
funcionar em quase todo o tempo. Pode se dizer que um banco de dados precisa
continuar funcionando mesmo quando existem vários tipos de falhas, ou seja, deve
ser aplicada a alta disponibilidade.
Uma empresa que possui um sistema de cadastro e não realiza backup, a
mesma está correndo grandes riscos de perder seus dados e pode comprometer a
Formada em Sistemas para Internet, pela Faculdade de Administração e Negócios de Sergipe e
Desenvolvedora de Sistemas Júnior atuando na Stefanini Aracaju/Se, [email protected].
sua sobrevivência. É por essa razão que se deve dá muita importância na criação de
estratégias de backup e restore.
Esse artigo é principalmente indicado para estudantes em especialização em
banco de dados e profissionais atuantes na área.
2. DESENVOLVIMENTO
2.1. TIPOS DE ARMAZENAMENTO
Para se montar uma estratégia de backup é necessário conhecer alguns
tipos de armazenamento.
Existem vários tipos de armazenamento de dados na maioria dos sistemas
de computadores. Esses meios de armazenamento são classificados pela
velocidade com que os dados podem ser acessados, pelo custo por unidade de
dados para comprar, ou pela confiabilidade de armazenamento.
Entre os meios normalmente disponíveis, destacamos estes:
Cache: Forma de armazenamento mais rápida e dispendiosa, memória
pequena, uso gerenciado pelo hardware do sistema de computadores.
Memória principal: Meio de armazenamento utilizado para os dados que
estão disponíveis para serem operados. É considerado um meio de armazenamento
muito caro e muito pequeno para armazenar um banco de dados inteiro. Os dados
se perdem se houver falta de energia.
Armazenamento de disco magnético: Considerado como o principal meio
para armazenamento de dados online em longo prazo. O armazenamento de disco
sobrevive à falta de energia e falhas do sistema.
Armazenamento óptico: Considerado como as formas mais populares de
armazenamento óptico são os CD’s e DVD’s, os dados são armazenados de forma
óptica em um disco e são lidos por laser. Apesar de não ser um meio de
armazenamento dinâmico (leitura, escrita repetidas), seu uso para backup é muito
utilizado.
Armazenamento em fita: Muito usado para backup e arquivamento de
dados. A fita magnética é mais barata, porém o acesso aos dados é muito lento,
pois, a fita precisa ser acessada sequencialmente desde o início. Por esse motivo, o
armazenamento em fita é chamado de armazenamento por acesso sequencial.
2.1.1. ESTRUTURA DE ARMAZENAMENTO
Armazenamento volátil: Normalmente não sobrevivem as falhas do
sistema como falta de energia. Exemplo para esse tipo de armazenamento é a
memória principal e a memória cache. O acesso ao armazenamento volátil é
extremamente rápido.
Armazenamento não volátil: Diferente do armazenamento volátil o
armazenamento não volátil sobrevivem a falhas do sistema. Exemplo desse
armazenamento são os discos e as fitas magnéticas. O acesso ao armazenamento
não volátil é mais lento que o armazenamento volátil.
2.2. BACKUP E ALTA DISPONIBILIDADE
Para se iniciar um projeto de backup varias questões devem ser resolvidas.
O primeiro passo é realizar um bom planejamento de estratégia de backup.
Para a empresa ter uma boa administração de servidores, é interessante ter dois
servidores fisicamente separados. Isso evitará que caso haja um desastre no
ambiente que está o servidor primário, não possa danificar o servidor secundário.
O segundo passo é o modo de backup que será realizado na empresa, um
bom exemplo para o modo de backup, seria definir os horários de backup, a
tolerância de perda de dados, o tempo de limite para recuperação dos dados e o
tráfego de dados por dia.
Por exemplo:
Horário de funcionamento: De segunda a Sexta das 08:00 as 18:00 horas e
aos Sábados das 08:00 às 16:00 horas.
Tolerância de perda de dados: 03:00 horas.
Tempo de limite de recuperação dos dados: 02:00 horas
Tráfego de dados por dia: 600MB a 800MB
O terceiro passo é o tipo de backup que será realizado pode ser o completo,
o diferencial ou por log's. Lembrando que isso depende muito da empresa, da
importância que os dados têm para a empresa e com que frequência esses dados
são atualizados.
Por exemplo:
O backup completo pode ser realizado nos finais de semana ou dependendo
do tempo que leva para a realização do backup completo pode ser feito diariamente
depois do expediente.
O backup diferencial pode ser realizado diariamente depois do expediente,
porém, é necessário um backup completo para a restauração dos dados.
O backup log's pode ser realizado a cada 3 horas, sendo que o backup
iniciará às 12 horas até às 17 horas.
Backup FULL Semanal, Diferencial diário e Log a cada 3 horas.
O quarto passo é a restauração de backups para e por ultimo a validação.
2.2.1. DETECÇÃO DE FALHAS
É muito importante que o servidor de backup detecte quando o servidor
primário falhou, por esse motivo existe a necessidade de implantar vários enlaces de
comunicação com modos de falhas independentes entre o servidor primário e o
secundário (servidor de backup).
2.2.2. TRANSFERÊNCIA DE CONTROLE
Quando o servidor primário falha, o secundário assume o processamento e
se torna o novo servidor primário. E quando ele se recupera, passa a desempenhar
o papel de servidor secundário e recebe os log’s de atualizações executadas pelo
atuante. Porém, se for necessário que o servidor primário que falhou assuma suas
funções anteriores, basta desconecta-lo e assim o outro servidor assumirá sua
função anterior de primário.
2.2.3. TEMPO DE RECUPERAÇÃO
O tipo de recuperação que será mencionado nesse artigo é o baseado em
log, ou seja, transacional. Porém, o que é log? Log é uma sequência de registro
onde são detalhadas todas as atividades de atualização no banco de dados.
Se o log no backup remoto se tornar muito grande, a recuperação levará
muito tempo. O servidor de backup remoto pode processar periodicamente os
registros de redo log que recebeu e realizar um ponto de verificação, de modo que,
as partes anteriores do log possam ser excluídas, com isso, o atraso anterior pode
ser reduzido.
Existe a configuração hot-spare, onde o servidor de backup processa
continuamente os registros de redo log. Assim que a falha do servidor primário é
detectada, o servidor de backup completa a recuperação, revertendo às transações
incompletas e em seguida está pronto para processar novas transações.
2.3. OBRIGAÇÕES DE UM ADMINISTRADOR DE BANCO DE DADOS
Uma das maiores responsabilidades de um DBA (Administrador de Banco de
Dados) é assegurar que o banco de dados esteja sempre disponível para o uso e
por essa razão, caso ocorra um erro no banco de dados o DBA deve ser ágil para
recuperação desses dados.
A fim de proteger o Banco de Dados dos diversos tipos de falhas, um DBA
deve efetuar o Backup do Banco de Dados regularmente. Sem a existência de um
Backup atual, é impossível recuperar o Banco de Dados em função de uma perda de
dados ou desastres (falha de energia, problema de HW, arquivos corrompidos e
etc.).
Um dos grandes erros que um DBA pode fazer é realizar o backup do banco
e não testá-lo. O backup pode ter sido realizado com sucesso, porém, não podemos
supor que um backup existe sem que o mesmo tenha sido testado.
Podem ocorrer diversos tipos de erros durante a recuperação de um backup,
dentre eles:
Falha de comando;
Falha no processo do usuário;
Erro do usuário;
Falha de instância;
Falha de mídia.
E por essa razão é necessário à utilização de estratégias de backup e
restauração.
2.4. BANCO DE DADOS ORACLE
O Oracle Secure Backup é uma ferramenta de proteção de dados que
simplifica e automatiza o backup e restauração de arquivos em um SGBD. O
software também pode servir como uma camada de meios de gestão para o Gestor
de recuperação.
O Oracle Secure Backup permite a proteção de dados confiáveis através do
sistema de arquivos de backup em fita. Ele suporta todas as principais unidades de
fita e biblioteca de fita. Suporta Internet Protocol v4 (IPv4), Internet Protocol v6
(IPv6), e ambientes mistos IPv4/IPv6 em todas as plataformas que suportam o IPv6.
Fornece backup distribuído escalável e capacidades de recuperação.
O Oracle Secure Backup organiza os computadores e dispositivos de fita em
um domínio administrativo, representando a rede de computadores contendo os
dados a serem apoiados.
Cada máquina em um domínio administrativo deve ser atribuído um ou mais
dos seguintes Oracle Secure Backup papéis:
Servidor administrativo
Cada domínio deve ter exatamente um servidor administrativo. Durante a
configuração pós-instalação, o servidor deve ser configurado com os dados
completos sobre os outros hosts no domínio, suas funções e seus dispositivos de fita
conectados. Esta informação de configuração é mantida em um conjunto de ficheiros
de configuração armazenados no servidor.
Servidor de mídia
Um servidor de mídia de comunicação é um hospedeiro com pelo menos um
dispositivo de fita a ela ligada. Ele transfere dados para os dispositivos de fita e tem
pelo menos um anexo a uma unidade de fita ou a uma biblioteca delas.
Cliente
O papel do cliente é atribuído a qualquer máquina que tenha acesso ao
sistema de arquivos ou banco de dados de dados que podem ser copiados ou
restaurados pela Oracle Secure Backup. Qualquer host onde o Oracle Secure
Backup está instalado pode ser um cliente ou o servidor administrativo.
O banco de dados Oracle oferece alta disponibilidade com capacidades, tais
como Real Application Clusters (RAC), Data Guard, Automatic Storage Management
(ASM), Flashback, Recovery Manager (RMAN), reorganização Online, Edition
redefinição, etc estão disponíveis como recursos internos do Banco de Dados
Oracle. Esses recursos oferecem a melhor solução para o banco de dados Oracle
para reduzir ou eliminar tanto tempo de inatividade planejado e não planejado.
2.4.1. PRÁTICAS DE BACKUP ORACLE
Quando se cria um novo banco de dados no oracle, duas contas de usuários
com privilégios de administrador são criadas:
Usuário: SYS Senha padrão: CHANGE_ON_INSTALL
Usuário: SYSTEM Senha padrão: MANAGER
SYSDBA e SYSOPER são privilégios cujo controle está fora do escopo do
Banco de Dados.
Nesse artigo será usado o privilégios do SYSDBA pela autenticação do
Sistema Operacional
Para se iniciar os passos a seguir, será necessário ter o Oracle instalado na
máquina.
Abra a tela de prompt de comando e digite na tela os comando abaixo:
C:\> sqlplus /nolog
SQL> connect / as sysdba
Um banco de dados Oracle só fica disponível para os seus usuários quando
o DBA inicia a instância e abre o Banco de Dados.
Os seguintes processos são necessários para tornar um banco de dados
Oracle disponível:
Iniciar uma Instância
Montar o Banco de Dados
Abrir o Banco de Dados
Comando: SQL> startup
Uma Instância Oracle pode operar em dois modos: ARCHIVELOG e
NOARCHIVELOG, sendo que cada um deles determina o tipo de procedimento de
backup e recuperação. No modo NOARCHIVELOG (modo padrão) os arquivos de
redo são utilizados de forma circular.
Os procedimentos para transformar a instância Oracle para noarchivelog:
Informe o código “shutdown” para fechar o banco de dados;
Informe o código “startup mount” para montar o banco sem a necessidade de
abri-lo;
Informe “alter database noarchivelog” para altera o modo de arquivamento para
noarchivelog;
Use o comando “archive log list” para verificar se os processos anteriores foram
realizados com sucesso.
Na imagem abaixo os processos realizados na integra.
Resultado dos códigos mencionado acima
Sobre os procedimentos de um backup completo: Primeiro é necessário
fechar o banco de dados usando o comando “shutdown”.
No Explorer copie a pasta “Oraclexe” e cole em um disco de backup
Copie e cole na pasta de backup
C:\oraclexe\app\oracle\product\10.2.0\server\database
C:\oraclexe\app\oracle\product\10.2.0\server\dbs
C:\oraclexe\app\oracle\flash_recovery_area
C:\oraclexe\oradata
Esse tipo de backup é conhecido como backup fechado.
Agora é só colocar o comando “SQL> startup” para montar e abrir o banco.
2.5.2. PRÁTICAS COM RESTORE BACKUP ORACLE
É necessário um Backup Completo Fechado para restaurar o banco de
dados. Vamos fazer um teste usando o backup que foi feito no tópico anterior.
Informe o código “SQL> shutdown” para fechar o banco de dados;
Restaure o backup copiando e colando em seus diretórios de origem:
C:\oraclexe\app\oracle\product\10.2.0\server\database
C:\oraclexe\app\oracle\product\10.2.0\server\dbs
C:\oraclexe\app\oracle\flash_recovery_area
C:\oraclexe\oradata
Informe “SQL> Startup” para montar e abrir o banco de dados.
Seu banco foi restaurado.
Lembre-se que esse processo é o backup e restauração completa e
procedimento do banco fechado.
2.6. BANCO DE DADOS SQL SERVER
O Microsoft Sql Server é um SGBD desenvolvido pela Microsoft. Foi criado
em parceria com a Sybase em 1988 inicialmente para plataforma OS/2. A parceria
durou até 1994, o sql server é um software cuja principal função é a de armazenar e
recuperar dados. Seu gerenciamento é baseado em diretivas, instalação dinâmica e
coleção de dados de desempenho.
A versão 2008 fornece uma plataforma abrangente, entregando inteligência
onde seus usuários precisam dela.
A versão 2012 traz melhorias no armazenamento, maior disponibilidade,
proteção e consistência dos dados.
A ferramenta esta pronta para nuvem. Com isso, os usuários podem
compartilhar o banco de dados entre equipes, realizar alterações a partir de qualquer
computador e acessá-lo em todo lugar.
O SQL Server AlwaysOn Availability Groups (aumenta a capacidade de
Database Mirroring), SQL Server AlwaysOn Failover Cluster Instances (melhora o
Clustering Failover) e SQL Server AlwaysOn Secondaries (habilita instâncias
secundárias).
2.6.1. PRÁTICAS DE BACKUP SQL SERVER
Um backup pode ser feito do banco de dados inteiro, que copia todos os
dados, mais o log de transações (a tabela syslogs). Se esse backup for restaurado,
todo o conteúdo do banco de dados é restaurado e sobrescreve o conteúdo atual.
Existem diversos tipo de backups:
Completo
Diferencial
Arquivo/filegroup
Transaction log
Tail log
Parcial
Copy only
Snapshot
O backup completo é necessário a quase todas as estratégias de backup e o
primeiro a ser restaurado.
Exemplo de sintaxe do T-SQL
BACKUP DATABASE DBAcad
TO Disk = ‘d:\dbacad_full.bak’;
O backup diferencial depende de um backup completo anterior usando a mesma
mídia para gravação.
Exemplo de sintaxe do T-SQL
BACKUP DATABASE DBAcad
TO Disk = ‘d:\dbacad_diff.bak’
WITH Differential;
O backup de log depende de um backup completo anterior usando a mesma mídia
para gravação.
Exemplo de sintaxe do T-SQL
BACKUP LOG DBAcad
TO Disk = ‘d:\dbacad_log.bak’;
4.2. PRÁTICAS DE RESTORE BACKUP SQL SERVER
De posse da mídia de backup, você pode validar quais/quantos arquivos de
dados existem no backup para que não haja problemas na restauração. Neste caso,
alguns comandos podem auxiliar:
Restauração a partir de um Backup Completo
Exemplo de sintaxe do T-SQL:
RESTORE DATABASE DBAcad
FROM Disk = ‘d:\dbacad_full.bak’
WITH Stats=10;
DBCC CHECKDB(DBAcad);
Restauração a partir de um Backup Diferencial
Exemplo de sintaxe do T-SQL:
RESTORE DATABASE DBAcad
FROM Disk = ‘d:\dbacad_full.bak’
WITH Stats=10, NORECOVERY;
RESTORE DATABASE DBAcad
FROM Disk = ‘d:\dbacad_dif.bak’
WITH Stats=10, RECOVERY;
DBCC CHECKDB(DBAcad);
Restauração a partir de um Backup Log
Exemplo de sintaxe do T-SQL:
RESTORE DATABASE DBAcad FROM Disk = ‘d:\dbacad_full.bak’
WITH Stats=10, NORECOVERY;
RESTORE DATABASE DBAcad FROM Disk = ‘d:\dbacad_dif.bak’
WITH Stats=10, NORECOVERY;
RESTORE DATABASE DBAcad FROM Disk = ‘d:\dbacad_log01.bak’
WITH Stats=10, NORECOVERY;
RESTORE DATABASE DBAcad FROM Disk = ‘d:\dbacad_log02.bak’
WITH Stats=10, RECOVERY;
DBCC CHECKDB(DBAcad);
4.3. METODOS DE BACKUP E RESTORE USANDO O MANAGEMENT STUDIO
Clique com o botão direito no banco de dados desejado e escolha a opção ‘Tasks’,
‘Back Up...’ .
Nessa tela configure exatamente como está na imagem ao lado. Em
database: escolha o seu banco de dados, em backup type: escolha a opção ‘Full’,
para o tipo de backup completo, em name informe o nome do backup desejado,
adicione o diretório onde deseja salvar seu backup e OK para finalizar.
3. CONSIDERAÇÕES FINAIS
Analisando as duas tecnologias, podemos concluir que as duas são muito
eficientes, tanto na administração como na conclusão do backup, os passos para
configuração do backup automático, ambos, são eficientes. Uma empresa nos
tempos atuais, contendo um sistema computacional, que grande parte das
funcionalidades da empresa está em função do mesmo, corre grandes riscos em
não fazer backup da base de dados desse sistema, é necessária uma administração
dessas bases e a realização de estratégias de prevenção.
Ambos os SGBDs fornecem alta disponibilidade com suas particularidades e
tecnologias muito eficientes. O oracle com o real applications clusters (RAC), data
guard, automatic storage management (ASM) e etc. O SQL Server com o AlwaysOn.
ABSTRACT
The article reports on the importance of the backup of the database system, the
choice of the type of storage to be set. Will reported the pros and cons between the
two technologies currently used in large companies, Oracle and Sql Server,
presenting the steps to perform backup, giving a final position on the two
technologies. Be specified functions of an administrator in the database.
Keywords:
Database, Backup, Oracle, SQL Server, DBA
4. RELAÇÃO BIBLIOGRAFICAS
SILBERSCHATZ, KORTH, SUDARSHAN. Sistema de Banco de Dados, Ed. Campus, 2006.
WATSON, John et BERSINIC, Damir. Oracle Database 10g. Ed. Rio de Janeiro: Alta Books, 2006.
ORACLE, Site oficial – documentação atualizada: http://www.oracle.com/technetwork/pt/indexes/documentation/index.html#storage
SQL SERVER, Site oficial – documentação atualizada:
http://msdn.microsoft.com/pt-br/library/ee210540(v=sql.105)
SPÍNOLA, Rodrigo Oliveira. Revista SQL Magazine, Recuperação de Dados. Edição 62. 2007.
SPÍNOLA, Rodrigo Oliveira. Revista SQL Magazine, Backup. Edição 22. 2005.
Site: apostilando.com, Oracle – 21/12/2011