Buscar

Portfólio de Manutenção e Otimização em Banco de Dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Portfólio de Manutenção e Otimização em Banco de Dados
SQL LOADER 
Vamos falar de SQL LOADER, também conhecido como Oracle Loader, e demonstrar um exemplo prático de como poderemos efetuar uma carga de dados proveniente de um arquivo texto no formato CSV para uma tabela no banco de dados. Basicamente, o SQL*Loader lê arquivos de texto e insere os dados no banco de dados. A vantagem de utilizá-lo é que o mesmo permite realizar uma carga de dados de forma bastante rápida. Ele é capaz de inserir milhões de linhas em questão de segundos. Ele realiza essa carga de dados com base nas instruções de um arquivo de controle (control file) previamente configurado. Atenção! Não confunda o control file de banco de dados com o control file do SQL*Loader. Este arquivo de controle diz ao Loader não só onde inserir os dados, mas também de que forma estes dados serão lidos do arquivo texto (data file). 
 SQL LOADER - é um aplicativo de importação que acompanha o Oracle, tendo como diferencial a flexibilidade na configuração, pois utiliza uma linguagem de scripts para importar os dados. Entre os recursos disponibilizados pela linguagem de script, é possível validar cada registro antes da importação, definir valores default, aplicar alterações sobre os registros lidos, separar os dados importados em duas ou mais tabelas, entre outros. O SQL Loader também permite a importação de tipos BLOB, objetos complexos e coleções de dados. O utilitário foi projetado para importação de arquivos texto que tenham formato de tabela, onde cada registro é representado por uma linha, os campos podem ter tamanho fixo ou variável e qualquer caracter pode ser utilizado para separá-los. O script de importação deve ser salvo em um arquivo texto, conhecido como arquivo de controle (Control File). O SQL Loader é um aplicativo de linha de comando, que interpreta o arquivo de controle passado como parâmetro. A linguagem utilizada no script é específica, denominada SQL Loader´s DDL (Data Definition Language). A documentação completa desta linguagem está disponível na instalação do Oracle. Para ilustrar, a arquitetura do SQL*Loader é demonstrada na figura abaixo. Em relação ao arquivo de descarte (discard file), por ser opcional, não irei mencioná-lo neste artigo.
Para executar o SQL*Loader, é necessário executar o comando sqlldr que está localizado em ORACLE_HOME/bin seja na instalação do Oracle Server ou do Oracle Client. 
Entretanto na maior parte das vezes, executaremos comandos semelhantes a sqlldr {user}/{password} CONTROL={arquivo.ctl} DATA={arquivo.csv}. O exemplo a seguir é um arquivo no formato CSV contendo dados fictícios de pessoas para uma tabela no banco de dados. Segue abaixo a estrutura da tabela:
	SQL> desc pessoa
 Nome 	Nulo?	Tipo
 ------------------ -------- ------------------
 CODIGO 	NOT NULL NUMBER
 NOME 	NOT NULL VARCHAR2(100)
 CIDADE 	VARCHAR2(100)
 UF 	VARCHAR2(2)
 DATA_CADASTRO 	NOT NULL DATE
Em relação aos dados de origem, segue um trecho do arquivo CSV contendo os dados de pessoas que deverão ser carregadas na tabela PESSOA de propriedade do usuário SCOTT. O arquivo dados.csv contém 1000 linhas.
	C:\>type dados.csv
1;Jose Rodrigues;Belo Horizonte;MG;06/01/2001 08:25:23
2;Reinaldo Duarte;Belo Horizonte;MG;04/09/2005 10:22:08
3;Ronaldo Junior;Belo Horizonte;MG;20/07/2006 13:45:34
4;Leonardo Vieira;São Paulo;SP;14/06/2010 14:06:56
5;Joana Santos;Salvador;BA;11/03/2011 17:56:21
6;Laura Fernandes;Rio de janeiro;RJ;25/10/2008 15:12:39
...
Já em relação ao arquivo de controle, segue abaixo a configuração que utilizarei: 
C:\>type pessoa.ctl
OPTIONS (ERRORS=999999999, ROWS=100)
LOAD DATA
INFILE 'dados.csv'
APPEND
INTO TABLE PESSOA
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
 CODIGO,
 NOME,
 CIDADE,
 UF,
 DATA_CADASTRO "to_date(Trim(:DATA_CADASTRO),'DD/MM/YYYY HH24:MI:SS')"
)
Na primeira linha do arquivo de controle eu estou definindo que não quero parar o processo de carga dos dados de forma nenhuma. Independente do número de erros que aconteceram, eu quero continuar com o processo de carga, por isso o parâmetro ERRORS está com um valor alto. O parâmetro ROWS configura a frequência de commits de acordo com os valores de BINDSIZE e READSIZE. Para ambos estou utilizando os valores Default. 
RMAN 
Conhecido tecnicamente como Recovery Manager, ou também chamado de RMAN, é um aplicativo fornecido pela própria Oracle desde a versão sete de seus BD. O objetivo do aplicativo é gerenciar todos o backup através de repositórios ou catálogos, é um aplicativo por linha de comando muito parecido com o SQL PLUS, também executado sobre diversas plataformas, como Windows, Linux e Unix. É muito poderoso em recursos, e, ao mesmo tempo, fácil e seguro na proteção dos backups. Permite realizar diversos tipos de backups, como backup completo (banco de dados offline), incremental (banco de dados online) e por backupset (cópia incremental apenas dos blocos alterados), além de recursos com flashback recovery (recuperação rápida de dados), duplicate auxiliary database (duplicação do banco de dados para uma máquina local ou remota), recovery block (recuperação apenas do bloco de dados corrompida) e o Tablespace Point-In-Time Recovery (TSPITR), recuperação de um ou mais objetos em uma base auxiliar até um determinado período. O melhor de tudo isso é que o RMAN lhe permite outras funcionalidades, como garantir a consistência do backup, política de retenção, exclusão de backups obsoletos, listagem completa e sumarizada por backup, personalização de backup para cada banco de dados, criação de scripts automatizados, pacotes e views específicos no banco de dados.
Backups gerenciados pelo usuário:	Backups realizados pelo usuário (normalmente um DBA) consiste em simplesmente copiar os arquivos de dados para um lugar seguro (disco, tape etc), que possibilite uma posterior restauração, se necessário. A cópia pode ser realizada manualmente através de um prompt de comandos do Sistema Operacional (SO) ou através de scripts/softwares que automatizam o processo de cópia dos arquivos.
Exports/Imports: Cópias lógicas de todos os dados ou parte dos dados de um BD Oracle, realizadas por utilitários Oracle (Export/Import convencional ou Data Pump) que geram um arquivo chamado dump. O dump pode ser utilizado posteriormente para recuperação (através de Imports), quando necessário. Por não realizar um backup físico dos dados, o dump não é considerado um método de "backup completo", mas sim um método adicional ou complementar, para diminuir riscos de perdas de dados ou agilizar a recuperação de dados em algumas (poucas) situações.
Backups gerenciados pelo RMAN: A principal diferença entre os Backups gerenciados pelo RMAN e os outros métodos citados é que o RMAN possui inúmeros recursos e configurações, que tornam este método o mais poderoso para backupear BD´s Oracle. Por isso, acredito eu, é o mais recomendado pela Oracle e o mais utilizado pelos DBA´s.
Dentre os principais componentes do RMAN podemos citar (sem considerar ordem de importância):
A interface gráfica web:
 Conhecida como Oracle Enterprise Manager, é uma ferramenta web que permite se conectar ao BD e utilizar entre inúmeras funcionalidades, as principais funcionalidades do RMAN.
O utilitário de linha de comandos:
 Interface principal de interação entre o usuário e o RMAN que permite utilizar todos os recursos e funcionalidades do RMAN.
O repositório do RMAN:
 Local de armazenamento das informações sobre os backups dos Bd´s que são backupeados (bd´s target). Essas informações podem ser armazenadas em 2 locais: no Control File ou no catálogo de dados do RMAN. O catálogo é um conjunto de objetos opcionais (tabelas, visões e outros objetos) que podem ser criados no Bd Oracle para armazenar as informações de backup e de recuperação. Por padrão estas
informações são armazenadas no Control File do BD, mas a Oracle recomenda que elas sejam armazenadas no catálogo para possibilitar a utilização de todos os recursos do RMAN e centralizar as informações de backups de múltiplos BD´s em um único lugar.
 No catálogo podemos consultar informações tais como: status (sucesso ou falha) dos backups, nomes ou identificadores dos datafiles, control files, archive logs, tablespaces e outros que foram backupeados etc.
 
Os scripts e comandos do RMAN:
 Os comandos do RMAN permitem realizar diversas ações para facilitar a execução de backups e restaurações do BD. Estes comandos, organizados logicamente em scripts, podem ser armazenados no catálogo e podem ser reutilizados para múltiplos backups.
 
Conectividade com mídia tape:
 	O RMAN fornece uma API (Application Program Interface) chamada MML (Media Management Layer), que permite interagir com tape hardware de terceiros para gravar os dados dos backups diretamente nos tapes (ao invés de gravá-los em disco).
DATABASE CONTROL
Este capítulo descreve a funcionalidade e administração do Oracle Enterprise Manager Database Control (Database Control), a interface baseada na Web e a ferramenta principal para gerenciar um banco de dados Oracle. Usando o Controle de Banco de Dados, você pode executar tarefas administrativas, como criar objetos de esquema (tabelas, visualizações, índices, etc.), gerenciar a segurança do usuário, gerenciar memória e armazenamento de banco de dados, fazer backup e recuperar seu banco de dados e importar e exportar dados. Você também pode ver informações de desempenho e status sobre seu banco de dados. Depois de instalar o software Oracle Database, criar ou atualizar um banco de dados e configurar a rede, você pode usar o Database Control para gerenciar seu banco de dados. O Controle de banco de dados também fornece uma interface para consultores de desempenho e utilitários Oracle, como o SQL * Loader and Recovery Manager (RMAN). A Oracle também oferece pacotes de gerenciamento de Oracle Enterprise Manager licenciados separadamente, plug-ins de gerenciamento e outros produtos que você pode comprar para aprimorar os recursos do Oracle Enterprise Manager em ambientes específicos.
Compreendendo os diretórios do Enterprise Manager, quando você instala o Oracle Database, você também instala o Database Control por padrão. Como resultado, o procedimento de instalação do banco de dados Oracle instala um conjunto de diretórios e arquivos do Enterprise Manager no $ORACLE_HOME diretório.
Em particular, os emctlcomandos necessários para controlar o controle de banco de dados são instalados no $ORACLE_HOME/bindiretório.
Os arquivos de suporte do Agente de Gerenciamento e do Serviço de Gerenciamento são instalados em duas localidades em uma instalação do Oracle Database:
Os arquivos que são comuns e compartilhados entre todas as instâncias do banco de dados são armazenados no seguinte diretório:
$ORACLE_HOME/sysman
Por exemplo, os arquivos de administração, que definem os tipos de destino suportados e os scripts usados ​​para executar as tarefas de configuração do Agente de Gerenciamento, são armazenados no $ORACLE_HOME/sysman/admindiretório
Os arquivos que são exclusivos de cada instância do banco de dados são armazenados no seguinte diretório:
$ORACLE_HOME/hostname_dbuniquename/ (para um banco de dados de instância única)
$ORACLE_HOME/nodename_dbuniquename/ (para um banco de dados do Oracle Real Applications Cluster (Oracle RAC)
	Nota:
No Oracle Database 10 g , os arquivos que são exclusivos de cada instância do banco de dados são armazenados no seguinte diretório da casa de dados Oracle 10 g :
$ORACLE_HOME/hostname_sid/ (para um banco de dados de instância única)
$ORACLE_HOME/nodename_sid/ (para um banco de dados Oracle RAC)
Ao longo do resto deste capítulo, $ORACLE_HOME/hostname_dbuniquename/e $ORACLE_HOME/nodename_dbuniquenamepode ser usado de forma intercambiável. (Para liberar 10 g do banco de dados, os diretórios são $ORACLE_HOME/hostname_sid/e $ORACLE_HOME/nodename_sid/.) Ambos os caminhos se referem ao mesmo conceito: o diretório Enterprise Manager para a instância específica do banco de dados. A diferença é que $ORACLE_HOME/hostname_dbuniquename/é usado para bancos de dados de instância única, enquanto $ORACLE_HOME/nodename_dbuniquename/ é usado para bancos de dados de cluster (Oracle RAC). Em bancos de dados de cluster, nodename se refere ao nome público do nó, conforme especificado durante a configuração de Serviços de Cluster Ready (CRS) para ambientes de cluster.
Por exemplo, se o nome do host do banco de dados for mgmt1.example.come o identificador do sistema para o nome do banco de dados db11, os arquivos de log para o Agente de Gerenciamento e o Serviço de Gerenciamento para essa instância estão instalados no seguinte diretório:
$ORACLE_HOME/mgmt1.example.com_db11/sysman/log/
Se um hostname_dbuniquenamediretório não existir no diretório inicial do Oracle, o Controle de banco de dados nunca foi configurado para a instância do banco de dados. Note que no Oracle Database Release 10 g , o diretório é hostname_sid.
Além disso, os arquivos necessários para implantar o Database Control como um aplicativo J2EE são instalados na $ORACLE_HOME/oc4j/j2ee/estrutura do diretório. Database Control é um aplicativo J2EE que é implantado usando a versão autônoma do Oracle Application Server Containers para J2EE (OC4J). O OC4J_DBConsolediretório contém os arquivos de modelo que são usados ​​para criar diretórios de implantação específicos do banco de dados para cada instância de Controle de Banco de Dados implantado na casa Oracle.
Os arquivos de instalação e configuração são armazenados no $ORACLE_HOMEdiretório nos seguintes subdiretórios:
cfgtoollogs/dbua
cfgtoollogs/rconfig
cfgtoollogs/dbca
cfgtoollogs/emca
A Figura 10-1 resume a localização dos diretórios importantes do Enterprise Manager em um diretório inicial típico do Oracle para Oracle Database 11 g Release 2 ou posterior. Observe que as referências hostname_dbuniquenamesão para bancos de dados de instância única; Os bancos de dados de cluster possuem caminhos do formulário nodename_dbuniquename.
Figura 10-1 Estrutura do Diretório no Home do Serviço de Gerenciamento para a Versão 11g ou posterior
Descrição "Figura 10-1 Estrutura do Diretório na Home do Serviço de Gerenciamento para a Versão 11g ou posterior"
Da mesma forma, a Figura 10-2 exibe a estrutura de diretórios dos diretórios do Enterprise Manager no diretório inicial do Oracle para Oracle Database Release 10 g .
Figura 10-2 Estrutura do Diretório na Home do Gerenciamento para a Versão 10g
Descrição de "Figura 10-2 Estrutura do Diretório na Home do Gerenciamento para a Versão 10g"
 
Conclusão
Os bancos de dados contém diversas informações que se relacionam entre si para criar um significado dentro de um contexto computacional. Os Sistemas Gerenciadores de Banco de Dados (SGBDs) como Oracle, MySQL, SQL e PostgreSQL, são a base para a maioria das aplicações utilizadas pelas empresas como os CRM, ERP, SCM, Service Desk ou qualquer outra solução que necessite ter um conjunto de informações que possam ser cruzadas, analisadas, filtradas ou tenham qualquer outro objetivo específico para o seu armazenamento.
Ter um banco de dados com informações atualizadas é fator determinante para o gerenciamento dos processos de uma empresa, entretanto deve ser levado em conta outros problemas que precisam ser observados para se alcançar um alto nível de competitividade no mercado,tais como a falta de recursos de hardware e software; definição de uma estratégia de backup; ausência de um profissional (DBA) e a falta de manutenção e de métricas de controle minam os processos das empresas e impactam em praticamente todas as áreas.
O monitoramento e/ou gerenciamento do banco de dados é vital para o controle destes problemas. Além de identificá-los, é preciso
descobrir qual a causa raiz desses problemas para poder tratá-los ou antecipá-los.
 O gerenciamento adequado do banco de dados impacta diretamente no sucesso ou falha de muitas empresas, por este motivo chego a conclusão de que a informação é muito importante.
Referencias
http://www.devmedia.com.br/artigo-sql-magazine-03-importacao-com-sql*loader/7628
http://eduardolegatti.blogspot.com.br/2013/03/um-pouco-do-sqlloader.html
http://www.devmedia.com.br/rman-introducao-oracle/3848
http://www.fabioprado.net/2011/03/serie-rman-parte-1-entendendo-o-rman.html
https://docs.oracle.com/html/E25494_01/dbcontrol001.htm
https://docs.oracle.com/cd/E11882_01/server.112/e25494/dbcontrol.htm#ADMIN13401

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando