Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sumrio
D
s
[ Flavio Climaco ]
Feedback
eu
edio
ta
sobre e
s
54 Oracle Upgrade: Como fazer upgrade do oracle 11g para 12c Parte 3
[ Ricardo Rezende ]
EXPEDIENTE
Editor
Rodrigo Oliveira Spnola (rodrigo.devmedia@gmail.com)
Subeditor
Eduardo Oliveira Spnola
Consultora Tcnica
Daniella Costa (daniella.devmedia@gmail.com)
Jornalista Responsvel
Kaline Dolabella - JP24185
Capa e Diagramao
Romulo Araujo
Distribuio
FC Comercial e Distribuidora S.A
Rua Teodoro da Silva, 907
Graja - RJ - 206563-900
Atendimento ao leitor
A DevMedia possui uma Central de Atendimento on-line, onde voc
pode tirar suas dvidas sobre servios, enviar crticas e sugestes e
falar com um de nossos atendentes. Atravs da nossa central tambm
possvel alterar dados cadastrais, consultar o status de assinaturas
e conferir a data de envio de suas revistas. Acesse www.devmedia.
com.br/central, ou se preferir entre em contato conosco atravs do
telefone 21 3382-5038.
Publicidade
publicidade@devmedia.com.br 21 3382-5038
Anncios Anunciando nas publicaes e nos sites do Grupo DevMedia,
voc divulga sua marca ou produto para mais de 100 mil desenvolvedores
de todo o Brasil, em mais de 200 cidades. Solicite nossos Media Kits, com
detalhes sobre preos e formatos de anncios.
Projeto de Sistema
Um projeto pode ser definido como um processo nico
e consistente formado por um conjunto coordenado de
etapas datadas para atingir um determinado objetivo.
Num projeto de sistema, a etapa inicial consiste na
interpretao mais realista possvel de um minimundo
qualquer, visando atender um conjunto de necessidades
levantadas diante do cliente. Dada essa abstrao, surge
o que se chama de anlise de requisitos. Em sntese,
essa etapa pode ser encarada como a descrio tcnica
detalhada do que o usurio entende como sendo as
funcionalidades que o sistema tem que possuir. Essa
etapa muito importante, pois todo esse levantamento
ser futuramente validado pelo cliente. Cumprida essa
etapa, a mesma deve ser documentada, pois com essa
documentao o analista ser capaz de dar incio fase
conceitual do modelo.
De posse do modelo criado de forma conceitual, ou seja, independente do banco de dados a ser escolhido para abrigar os dados,
toma-se a deciso de qual banco ser utilizado pelo projeto. Com
isso o d-se incio etapa fsica do projeto. A partir desse momento, propriedades particulares do banco de dados sero levadas em
conta na construo do modelo. Como ser mostrado em breve,
o ERWin faz esse tipo de converso do modelo lgico para fsico
mediante a escolha do banco. Os tipos de dados dos campos das
tabelas, o espao de armazenamento, entre outras caractersticas
passaro a ser relevantes na montagem do modelo fsico. Concluda essa etapa, materializa-se o que foi definido no modelo
dentro do banco propriamente dito e dado o go do projeto em
produo. O que se v a partir da so manobras operacionais e
gerenciais para controlar, manutenir e evoluir o sistema.
Modelo Conceitual
Pode-se dizer que nesse momento surgem as famosas entidades.
E aqui cabe uma observao que deve ser respeitada. Modelar
dados nada mais do que definir conjuntos. Por exemplo, em uma
Modelo Fsico
Uma vez concluda a fase abstrata, d-se incio parte fsica.
Teoricamente, o modelo fsico deve ser gerado a partir do modelo
lgico. Uma vez criado, este deve respeitar as regras do SGBD
escolhido. Nesse sentido, a base de dados ser uma simbiose entre
o modelo e as regras impostas pelo banco em questo.
Para construir o modelo fsico no banco de dados, utiliza-se uma
linguagem de definio de dados que, na maioria das vezes, so
scripts gerados pelo CASE e submetidos ao banco atravs da prpria ferramenta. Vale lembrar que, segundo as melhores prticas,
os objetos criados por esses scripts compem o que se chama de
esquema de banco de dados.
Criar um banco a partir do CASE uma tarefa simples, mas o sucesso do projeto fsico no depende somente disso. Pois se a performance
da aplicao for imprescindvel, o volume de dados e a quantidade
de transaes tero influncia direta no sistema. Portanto, a escolha
correta do banco a ser utilizado vital nesse processo.
Colocando em prtica tudo o que foi dito anteriormente e partindo do pressuposto que o banco escolhido foi o Oracle Database.
A Listagem 1 mostra o script equivalente aos exemplos supra
citados.
Listagem 1. Script de Criao das Entidades
CREATE TABLE EMPREGADO (
CPF INTEGER NOT NULL,
NOME VARCHAR(40),
SOBRENOME VARCHAR(40),
SEXO CHAR(1),
DEPARTAMENTO INTEGER,
FOLHA_PAGAMENTO CHAR(1),
IDADE INTERGER,
STATUS CHAR(1),
);
CREATE TABLE DEPARTAMENTO (
ID INTEGER NOT NULL,
NOME VARCHAR(40),
DESCRICAO VARCHAR(40)
);
CREATE TABLE PROJETO (
ID INTEGER NOT NULL,
NOME VARCHAR(40),
RESPONSAVEL INTEGER,
DEPARTAMENTO INTEGER,
);
Aps a concluso do modelo fsico de suma importncia validar o que foi gerado, pois o modelo deve responder a todos os
requisitos cadastrais e funcionais. Uma forma fcil e prtica para
cumprir essa tarefa criar resposta ao modelo e ver se as entidades
e os relacionamentos atendem a essa solicitao. Para garantir esse
processo deve-se checar se foi gerada alguma associao incorreta
entre as entidades. Verificar se h ou no a necessidade de uma
entidade ou de um relacionamento evitando redundncia dos
dados e excesso dos mesmos. Checar se h a necessidade ou no
de histrico transacional dos registros e de preferncia pensar em
como expurgar esses dados, caso eles no tenham mais utilidade
dentro da base. Essa etapa importante, pois o retrabalho para
esses casos pode se transformar em novo projeto dependendo do
tamanho da mudana a ser processada numa base muito grande.
Um modelo bem estruturado e que atende a todas as exigncias de
um sistema tende a se perpetuar e pode ser facilmente migrado
para outra base sem maiores problemas.
ERWin
O ERwin uma ferramenta que oferece um ambiente colaborativo de modelagem de dados para o gerenciamento de
dados corporativos atravs de uma interface grfica intuitiva.
- Bancos de Dados;
- Projetos;
- Mquinas;
- Fabricantes de hardware, sistemas operacionais e banco de
dados.
Requisitos funcionais do Sistema:
- O sistema deve ser capaz de identificar a melhor configurao
de hardware e software, segundo as exigncias das aplicaes,
levando em considerao os indicadores de performance, escalonamento, robustez, em funo dos parmetros de custo,
tempo e qualidade;
- O sistema deve contemplar todas as plataformas existentes
com suas respectivas tecnologias;
- O sistema deve gerar relatrio e consultas online respeitando
a atualizao constante de sua base.
Estudo de Caso
De posse da documentao gerada nos itens anteriores e respeitando o conceito de conjuntos, fica fcil perceber quais as
principais entidades compem o sistema. Segundo a Figura 2,
torna-se evidente que os cadastros de Sistemas Operacionais,
Bancos de Dados, Projetos, Fabricantes e Mquinas devem fazer
parte do modelo.
Quanto aos relacionamentos, o analista deve ter em mente que
para armazenar as informaes cadastrais solicitadas nas especificaes, no mnimo ele precisa criar cadastros para:
Todos os bancos de dados existentes;
Saber quais os sistemas que a empresa desenvolve;
Os fabricantes de software (SO e BD) e hardware do mercado;
As mquinas utilizadas.
Gerao do Modelo
Para gerar o modelo com o ERWin muito simples, basta conectar
base de dados de destino atravs da opo Database Connection
Novos conceitos surgem na criao do modelo fsico atravs do script de criao da base. Os tamanhos dos campos
e os tipos de dados, como CHAR, INTEGER, NUMBER, por
exemplo, devem ser especificados para atender anlise
de requisitos realizada. Se isso no for feito, a estrutura da
base pode passar por manutenes indesejadas quando j
estiver em produo. Com intuito de garantir a integridade
dos dados, surgiro tambm as restries de PRIMARY KEY,
FOREIGN KEY e CHECK CONSTRAINT. Nunca demais
lembrar, mas as chaves primrias so utilizadas para garantir a unicidade dos dados dentro de uma tabela. As chaves
estrangeiras formam os relacionamentos, impedindo que
registros indesejveis sejam cadastrados e que registros pais
sejam removidos quando houver algum filho relacionado.
As restries de checagem so vistas como a manuteno de
um pequeno domnio dentro de possveis valores de dados
em algum campo da tabela.
Um dado relevante do CASE a criao da tabela de relacionamento associativo MAQUINA_PROJETO gerada automaticamente pela ferramenta. Essa a tabela onde sero cadastradas
as combinaes pertinentes aos projetos da empresa. Caber
aos analistas definirem as funcionalidades dos mesmos para
gerar tais combinaes.
);
CREATE TABLE MAQUINA
(
IP
CHAR(15) NOT NULL PRIMARY KEY,
HOSTNAME
VARCHAR2(50) NULL ,
ARQUITETURA
INTEGER NULL ,
PRECO
NUMBER(9,2) NOT NULL ,
ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL,
ID_BANCO
INTEGER,
CONSTRAINT FK_MAQ_BANCO FOREIGN KEY(ID_BANCO)
REFERENCES BANCO_DADOS (ID_BANCO),
CONSTRAINT FK_MAQ_SO FOREIGN KEY(ID_SISTEMA_OPERACIONAL) REFERENCES
SISTEMA_OPERACIONAL (ID_SISTEMA_OPERACIONAL)
);
CREATE TABLE PROJETO
(
ID_ PROJETO
INTEGER NOT NULL PRIMARY KEY,
NOME
VARCHAR2(50) NULL ,
DESCRICAO
VARCHAR2(120) NULL
);
CREATE TABLE MAQUINA_ PROJETO
(
IP
CHAR(15) NOT NULL,
ID_PROJETO
INTEGER NOT NULL,
CONSTRAINT FK_MS_MAQUINA FOREIGN KEY(IP) REFERENCES MAQUINA (IP),
CONSTRAINT FK_MS_PROJETO FOREIGN KEY(ID_PROJETO) REFERENCES SISTEMA
(ID_PROJETO)
);
11
A modelagem dos dados correta faz com que se tenha uma reduo na complexidade do projeto a um ponto que o projetista possa
compreender e manipular os dados e no podemos esquecer que
modelar os dados da empresa faz parte do sistema de monitoramento do ciclo de vida das atividades de governana de dados.
Essa atividade crucial no processo de tomada de deciso que os
CIOs fazem uso durante a gesto. Portanto, modelar dados possui
uma funo estratgica dentro de uma empresa.
);
CREATE TABLE MAQUINA
(
IP
CHAR(15) NOT NULL PRIMARY KEY,
HOSTNAME
VARCHAR(50) NULL ,
ARQUITETURA
INTEGER NULL ,
PRECO
DECIMAL(9,2) NOT NULL ,
ID_SISTEMA_OPERACIONAL CHAR(10) NOT NULL,
ID_BANCO
INTEGER,
FOREIGN KEY(ID_BANCO) REFERENCES BANCO_DADOS (ID_BANCO),
FOREIGN KEY(ID_SISTEMA_OPERACIONAL) REFERENCES SISTEMA_OPERACIONAL
(ID_SISTEMA_OPERACIONAL)
);
CREATE TABLE PROJETO
(
ID_SISTEMA
NOME
DESCRICAO
);
Links:
CA Thecnologies, Descritivo da Soluo, CA ERwin Data Modeler Community
Edition 2013.
CA Thecnologies, Folha de Produto, CA ERwin Data Modeler Workgroup Edition
2013
Heuser, Carlos Alberto, Projeto de Banco de Dados, Srie de Livro Ditticos,
quarta edio, 1998.
Frozza, Angelo Augusto MSc, Projeto de Banco de Dados - Projeto Conceitual,
Instituto Federal de Educao, Cincia e Tecnologia, 2011.
Autor
Flavio Jesus de Souza
flavio.souza@creta.inf.br
Mestre em Computao pela UFRJ, especialidade em Computao Quntica. MBA em TI (MBTI-e) em Gesto Empresarial de TI.
Graduado em Informtica pela UNESA e ex-aluno do IME - Engenharia Mecnica. Certificado em OCE Linux Oracle 10g, OCP ORACLE 8i, 9i e 10g.
Rob, Peter e Coronel Carlos, Sistemas de Banco de Dados - Projeto, Implementao e Administrao, oitava edio norte-americana.
13
BOX1. LUN
LUN uma unidade lgica ou um disco de um Storage. Atravs do uso de LUNs possvel obter
uma flexibilidade que muito importante no armazenamento de grandes volumes de dados e em
ambientes crticos, pois as unidades lgicas podem ser movidas ou, em outras palavras, migradas
para servidores diferentes de uma forma prtica, garantindo uma indisponibilidade muito baixa
para acesso aos dados contidos nelas.
Como nosso job utilizar um comando PowerShell, imprescindvel que a mquina esteja apta e liberada para a execuo
de scripts desse tipo. Para isso, devemos executar os seguintes
passos:
1. Clique no boto iniciar e procure pelo programa chamado
Windows PowerShell;
2. Clique com o boto direito em Windows PowerShell e selecione
a opo Executar como Administrador;
3. Dentro do PowerShell, execute o comando Set-ExecutionPolicyRemoteSigned, depois digite S e d Enter.
15
Para que esse passo seja executado com sucesso preciso ter uma
pasta compartilhada no servidor, pois nesse step estamos copiando o arquivo CSV de uma pasta na mquina local para uma pasta
tambm chamada DBA localizada em nosso servidor, cujo IP
Aps finalizarmos a conexo para acesso ao SQL Server, conforme mostrado na Figura 4, agora temos que iniciar o nosso fluxo
no SSIS. Para isso, dentro do prprio SSIS, clique em View > Other
Windows > SSIS Toollbox e, na tela de toolbox, d um duplo clique
na opo Data Flow Task.
Logo aps, abra o componente Data Flow Task criado e, na aba de
Data Flow, crie um novo Flat File Source, o qual ir configurar uma
nova conexo para ler o arquivo CSV gerado anteriormente.
Para criarmos esse componente que ir realizar a leitura do
arquivo CSV, dentro de Data Flow Task, clique com o boto direito
em Connection Managers e selecione New Flat File Connection, que
a opo utilizada para a leitura de arquivos .txt e .csv.
Concluda essa etapa, uma nova tela ser aberta, onde devemos
apontar essa conexo para viabilizar a leitura dos dados. A partir
disso conseguiremos recuperar os dados fornecidos pelo job e
popularmos nossa tabela TB_DBA_Espaco.
Neste momento importante atentar para os itens grifados em
vermelho na Figura 5, pois eles iro garantir que as informaes
sejam lidas do arquivo correto e no formato desejado. Note que
o diretrio de onde estamos lendo o arquivo o mesmo diretrio
que foi configurado em nosso job.
17
A Figura 6 demonstra como cada uma das variveis deve ser configurada no Derived Column. Nesse momento muito importante
conferir se os nomes das variveis e seus respectivos tipos esto
19
Autor
Walter Santos de Carvalho
Walter.santoscarvalho@gmail.com
Atua na rea de informtica h mais de sete anos. Formado em
Sistemas de Informao pelo CES-JF. Possui cursos de especializao DBA SQL Server e Oracle. No momento atua como Administrador
de Dados no CAED-UFJF em Juiz de Fora.
Autor
Autor
Flavio Alexandre Martins
flavioalexandre@gmail.com
Atua no ramo de Tecnologia da Informao h 10 anos e h 6
anos como DBA MS SQL Server. Tecnlogo em informtica
Empresarial pela Universidade Presidente Antnio Carlos (Unipac).
Possui curso concludo para certificao Microsoft SQL Server (2779 /
2780) realizado na Allen Informtica (RJ).
Links:
Pgina com informaes sobre LUNs:
http://technet.microsoft.com/pt-br/library/cc754590(v=ws.10).aspx
Integration services
http://msdn.microsoft.com/en-us/library/ms169917.aspx
Flat File Connections
http://msdn.microsoft.com/en-us/library/ms170583.aspx
OleDB Connections
http://msdn.microsoft.com/en-us/library/ms170365.aspx
Data Flow task
http://msdn.microsoft.com/en-us/library/ms170425.aspx
Reporting services parameters
http://msdn.microsoft.com/en-us/library/dd220464.aspx
Reporting services connections
http://msdn.microsoft.com/en-us/library/ms156450(v=sql.105).aspx
21
Pentaho BI:
Conhecendo a
ferramenta open source
E
Para entender melhor o que componente PDI realiza, ser preciso responder a seguinte questo: O que um processo de ETL
(Extract, Transform and Load) e qual sua importncia? ETL um
processo de extrao, transformao e carga de dados, provenientes de uma ou mais bases de dados e destinada a uma ou mais
bases para compor um Data Warehouse.
Este processo o mais crtico e demorado na criao de um
DW, pois consiste na extrao de informaes heterogneas, na
padronizao de dados, na transformao e limpeza destes dados,
e na carga dos dados na base do DW.
Aps ocorrer o processo de extrao, transformao e a limpeza de dados, so efetuadas a correo de erros de digitao e
caracteres desconhecidos, permitindo a descoberta de possveis
violaes e garantindo a integridade dos dados. A importncia
deste processo moldar e entregar os dados formatados para que
estes fiquem de forma homognea para serem carregados no DW
e facilitar as consultas de sistemas OLAP. Assim, transformando
dados em inteligncia empresarial, no intuito de trazer recursos
em dados e anlise para a tomada de deciso, apresentando uma
viso macro dentro de algumas perspectivas.
Mas, o que um sistema de Data Warehouse? um sistema
utilizado para armazenar informaes de forma consolidada. Sua
estrutura favorece a obteno de relatrios e anlise de grandes
volumes de dados, coletando informaes transacionais e auxilia
na obteno estratgica de informaes para tomada de decises,
com a ressalva de que os dados so apenas para consulta.
O PDI uma ferramenta de ETL, que suporta vrios tipos de
entrada e sada, mas com uma vantagem: orientado a metadados. Sendo assim, no preciso escrever nenhuma linha de
cdigo, tornando-o fcil de ser utilizado por qualquer tipo de
usurio.
Funcionamento do PDI
23
Pentaho Reporting
Este mdulo se refere a um conjunto de ferramentas de cdigo
aberto para gerar relatrios, que pode escalar cenrios com mltiplas dimenses em larga escala, de fcil formatao, visualizao
e manipulao de dados, com um alto poder de performance com
um baixo consumo de memria e de processamento.
Nele esto inclusos Report Designer, Reporting Engine e Reportings SDK. Baseia-se em JFreeReports, uma biblioteca open
source do Java. Alm disso, gera relatrios incorporados ao BI com
finalidades gerenciais, operacionais e de produo, que podem
ser usados em outras aplicaes.
Report Designer um editor grfico, responsvel pelo ambiente
visual de design que facilita a formatao e personificao de aparncia de relatrios sofisticados e ricos, podendo ser usado para
desktop. O recurso Reporting Engine faz integrao da biblioteca
JFreeReport do Java para o gerenciamento dos relatrios e o SDK
o apoio de todas as bibliotecas necessrias para o funcionamento
da Engine. Este conjunto de ferramentas possibilita a integrao
com outro aplicativo servidor ou desktop.
O Pentaho Reporting facilmente personalizvel. Utilizando
o styling reports, pode-se manipular a granularidade de aparncia e dados, sendo possvel adicionar recursos visuais como
imagens e logotipos. Suporta tambm a exportao dos relatrios
em diversos formatos: PDF, HTML, XML, CSV, Rich Text ou TXT.
Pentaho Analysis
uma ferramenta para otimizar a capacidade do processamento de anlises
poderosas em um grande volume de dados
multidimensionais, com endereamento
complexo e alta velocidade de resposta.
O Pentaho Business Analytics coloca
anlises poderosas nas mos de usurios
corporativos. Com uma interface intuitiva
25
Dashboards
Dashboards so um mdulo para gerar
informaes especficas como desempenho individual, departamental ou at de
toda a empresa, incorporando mtricas,
filtros e relatrios, podendo serem ou no
personalizados. So teis e recomendados
para demonstrar KPIs (indicadores de
performance), e utilizados para apresentar
dados com detalhes. Na Figura 6 so exibidas duas possibilidades de composio
de dashboards.
Mobile BI
E que tal gerenciar tudo isso pelo smartphone e/ou tablet? O Mdulo de BI do
Autor
Andressa de Andrade Freitas
andie.andrade@hotmail.com
Analista de Sistemas Ita. Formada em anlise e desenvolvimento de sistemas pela Fatec. Cursando MBI em Tecnologia
de Software na PECE POLI USP. Trabalha h 7 anos com TI, 4 anos com
desenvolvimento e atualmente com gerenciamento de projetos.
Links:
[1] Pentaho
http://www.g3itcon.com/product/pentaho-business-intelligence
[2] Pentaho Business Analytics
http://www.pentaho.com/product/business-visualization-analytics
[3] Big Data In Banking: Its Time To Act
http://www.pentaho.com/sites/default/files/uploads/resources/forrester-research-bigdatain-banking.pdf
[4] Optimize the Data Warehouse
http://www.pentaho.com/Optimize-the-Data-Warehouse
[5] Transformations, Steps, and Hops
http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Fconcept_
pdi_usr_transformations.html
27
29
1048576
fs.file-max
6815744
kernel.shmmni
4096
kernel.sem
net.ipv4.ip_local_port_range
9000 65500
net.core.rmem_default
262144
net.core.rmem_max
4194304
net.core.wmem_default
262144
net.core.wmem_max
1048586
Minimizar falhas e travamento do S.O. ajuda a manter o ambiente clusterizado mais seguro. Para isso, os parmetros lidos
pela Oracle RAC foram configurados e devem ser inseridos no
arquivo sysctl.conf, permitindo somente ser usado o valor mximo
definido para cada recurso visto na Tabela 1.
Cada parmetro lido no momento da inicializao do S.O. Suas
funes so distintas e devem ser ajustadas para otimizar o mximo de recurso possvel dentro de um ambiente clusterizado.
Para essa configurao, valem as definies:
fs.aio-max-nr: valor mximo de requisies I/O concorrentes
permitidas;
fs.file-max: total de arquivos que o Linux dever suportar em
paralelo;
kernel.shmmni: mximo de segmentos de memria compartilhada;
kernel.sem: mximo de semforos para performance da rede;
<tipo>
<item>
<valor>
oracle
Soft
nproc
2047
oracle
Hard
nproc
16384
oracle
Soft
nofile
1024
oracle
Hard
nofile
65536
oracle
Soft
stack
10240
31
Configurao do DNS
O servidor DNS o principal item para atender a outro recurso
chamado SCAN do Oracle RAC, com a funcionalidade do balanceamento de carga esttico utilizando algoritmo Round Robin. Este
algoritmo utiliza uma tcnica que faz o direcionamento de forma
circular com as requisies que esto sendo distribudas para os
servidores. Por exemplo, as conexes de entrada so direcionadas
para o servidor A, depois para o servidor B e para o servidor C,
retornando ao servidor A. Por ser esttico, o desempenho dos
processadores definido no incio da execuo, tendo como objetivo reduzir o tempo de execuo total de um programa atual,
enquanto minimiza o atraso de comunicao.
Em um ambiente onde vrios nodos atuam como um nico
sistema, a diviso da carga de trabalho feita entre eles para que
possam ter aproveitamento do poder de processamento de cada
mquina, assim ganhando produtividade.
Conforme ilustrado na Figura 5, as requisies clientes
so direcionadas para o servidor DNS e esse servidor retorna
um endereo IP ao cliente em uma ordem diferente para cada
conexo. Durante a instalao da ferramenta Oracle RAC, para
cada um dos trs endereos IPs criado um IP virtual SCAN
e um ouvinte (listener), criando uma relao de dependncia
entre eles. Isso significa que cada par de recurso (IP virtual
SCAN + listener) criado em um servidor diferente no cluster.
Toda conexo que estabelecida armazenada em parmetros
do banco de dados chamados local_listerner e remote_listener.
O local_listener especifica a conexo do ouvinte local. O remote_listener identifica os ouvintes SCAN. Quando um dos nodos
falha, o IP virtual SCAN ir perder conexo com o listener
local. Ao perder a conexo, o recurso SCAN ir redirecionar
essa conexo para o prximo endereo IP (listener local) que
ir acessar os parmetros do banco de dados onde so armazenadas as conexes e direcionar a conexo para o nodo com
menor carga de trabalho.
Foi utilizado para implementao de DNS o BIND (Berkeley
Internet Name Domain) junto ferramenta Nslookup, que serve
para obter informaes de um determinado domnio, host e IP
do servidor.
Com a instalao do BIND, o arquivo named que significa Name
Daemon, seguiu as regras especificadas nas normas do protocolo
DNS. Para conexes das mquinas clientes, dos nodos dos clusters
para o servidor de DNS, a criao de zonas de conexes diretas
e reversas fazem parte do servidor de DNS. Isso ir garantir que
o host do servidor ser traduzido para o seu endereo IP e viceversa. Para as conexes diretas foi criado:
zone localdomain. IN { type master;
file 1.168.192.in-addr.arpa;
allow-update { none; }; };
A
A
A
A
A
A
A
A
A
A
127.0.0.1
192.168.1.10
192.168.1.20
192.168.0.1
192.168.0.2
192.168.1.100
192.168.1.200
192.168.1.55
192.168.1.56
192.168.1.57
O mesmo feito para o arquivo 1.168.192.in-addr.arpa.zone. A diferena dessas instrues est na instruo IN PTR, onde acontece o
apontamento reverso (ver Listagem 3). Vale ressaltar que cada nodo
do cluster precisa conter no arquivo resolv.conf o IP do servidor de
DNS e por onde o host ir buscar para que haja comunicao entre
eles. O named deve ser iniciado automaticamente e para isso deve
ser ativado seu respectivo servidor no sistema operacional.
IN
IN
IN
IN
IN
IN
IN
PTR
PTR
PTR
PTR
PTR
PTR
PTR
rac01.rac.com.
rac02.rac.com.
rac01-vip.rac.com.
rac02-vip.rac.com.
rac01-scan.rac.com.
rac01-scan.rac.com.
rac01-scan.rac.com.
Parmetro
Valor
export ORACLE_HOSTNAME
export ORACLE_UNQNAME
ORCL
export ORACLE_BASE
/u01/app/oracle
export ORACLE_HOME
$ORACLE_BASE/product/11.2.0/db_1
export GRID_HOME
/u01/app/11.2.0/grid
export ORACLE_SID
export ORACLE_TERM
Xterm
export PATH
/usr/sbin:$PATH
export PATH
$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export LD_LIBRARY_PATH
$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH
$ORACLE_HOME/JRE:$ORACLE_HOME/
jlib:$ORACLE_HOME/rdbms/jlib
33
apenas um nodo e copiando esse arquivo para o outro. Os comandos podem ser vistos na Listagem 4.
Vale ressaltar que a relao de confiana criada para os servidores do cluster, mas no necessrio para instalao do Oracle
RAC, porque no assistente grfico da instalao da ferramenta h
como criar essa relao de confiana.
35
37
Autor
Danilo Migliorini Caneschi
caneschi.danilo@gmail.com
https://www.linkedin.com/pub/danilo-caneschi/60/710/b71
Recm graduado em Cincias da Computao pela Faculdade
Governador Ozanam Coelho, FAGOC. Atua com analise, adaptao/
correo em banco de dados utilizando SQL e em sistemas ERP.
Links:
[1] Oracle Corporation
http://www.oracle.com/
[2] DNS Bind
http://www.isc.org/
Figura 17. Estrutura do ambiente criado para Oracle RAC
servidor de NFS e DNS com balanceamento de carga Round
Robin est concluda. Uma das formas de saber se a instalao
obteve sucesso acessar o diretrio /u01/app/11.2.0/grid/bin
e executar o comando crsctl status resource t. Ele ir mostrar
que o banco de dados ORCL est com status open para os
dois nodos do cluster.
Este artigo apresentou todos os passos para a instalao da ferramenta Oracle Real Application Cluster com balanceamento de
carga Round Robin, utilizando mquinas virtuais com o objetivo
de criar um ambiente clusterizado.
[3] VirtualBox
https://www.virtualbox.org/
[4] Sistema Operacional Linux CentOS
http://www.centos.org/
39
Resolvendo problemas
no Oracle e no SQL Server
A
Troubleshooting
Troubleshooting a forma de resolver problemas e detectar
falhas e erros de modo sistemtico onde o analista atua na
causa raiz do problema at que este problema seja totalmente
resolvido e assim o produto ou processo volte a ficar disponvel
e operacional.
Em todos os ambientes de databases, sejam eles de maior ou
menor criticidade, importante que o DBA tenha em mente
que erros e falhas sempre vo aparecer e indiferente do problema, o profissional precisa considerar que alm do foco no
processo de identificao, manter a calma um fator de extrema importncia. Isto pode determinar muitas vezes o melhor
caminho na tomada de decises para o sucesso no processo
como um todo.
Alguns passos em relao a troubleshooting se seguidos com
cuidado podem ajudar muito no processo de deteco e correo
do problema, a saber:
Sintomas: Conhea os sintomas, uma coleta de evidncias
primordial para decidir quais so os passos que devem ser
seguidos. Neste aspecto, os logs dos bancos de dados so muito importantes. Sendo assim, colete o mximo de evidncias
possveis;
Problema: Se as consequncias no forem catastrficas, reproduza o problema baseando-se nos sintomas evidenciados
no passo anterior, assim o analista ter a certeza de que o
problema realmente existe;
Hipteses: Formule e separe as possveis hipteses, em
seguida, elas devem ser testadas. Estes testes sero importantes para reduzir o nmero de causas deste problema.
Alteraes feitas recentemente, atualizaes que foram executadas, processos realizados de ltima hora, cargas de dados,
mudana de estruturas e hardwares. Estes so exemplos que
podem ser listados e podem ajudar neste aspecto;
Causa: Neste ponto a causa do problema j deve estar bem
mais clara, e se ela apareceu mediante os passos realizados
anteriormente, com base nas hipteses, alcanar o sucesso pode
estar bem perto;
Correo: Com a causa em mente, o DBA deve verificar a
documentao do produto para no ter dvidas, e assim realizar a correo de maneira segura. Alm disso, um ponto de
extrema importncia, se possvel o planejamento de um rollback
deve ser realizado, afinal, deixar o problema pior do que j se
encontra, pode custar muitas horas extras de trabalho;
Validao: Antes de liberar o ambiente para os usurios,
deve-se validar e testar para ter a confirmao de que o problema est resolvido. Esse pode ser um fator fundamental nas
relaes de confiana entre um DBA e as outras reas;
Documentao: A documentao daquele problema ou daquela falha pode ajudar outras pessoas da empresa em um futuro.
Assim, todo o processo da causa e resoluo deve estar devidamente documentado.
Em muitos casos, uma metodologia de troubleshooting, como
esta apresentada, precisa ser realizada com eficincia e normalmente o tempo que o DBA tem no o bastante para conseguir
percorrer corretamente todas as etapas. Sendo assim, como em
toda metodologia, este processo pode ser moldado, dependendo
da estimativa de tempo que o problema precisa ser resolvido.
Os exemplos aqui relacionados se caracterizam por situaes
que aparecem no dia a dia de um DBA, sendo muito comuns
em ambientes transacionais.
Troubleshooting Acessos
Em um ambiente de banco de dados de uma empresa, controlar
o acesso de usurios pode ser uma tarefa difcil, afinal propor
regras de acesso geralmente limita os acessos das pessoas, e isso
pode gerar um certo desconforto aos analistas. Porm, quando as
polticas de acesso so bem implementadas, o risco de desastres
e execuo errada de comandos diminui e, assim, o ambiente se
torna mais confivel.
Quando um projeto criado na produo, geralmente este projeto
passou pelas etapas de desenvolvimento, foi testado em homologao e posteriormente enviado para a produo. Sendo assim, todas
as polticas de acesso j foram bem definidas desde a sua criao
no ambiente de desenvolvimento. Este o mundo ideal, porm em
alguns casos os acessos no so bem definidos, e somente depois
que o projeto est na produo as pessoas notam que em algum momento faltou uma ou outra permisso de acesso para algum usurio
de aplicao. Isso muito comum nas empresas, principalmente se
este projeto no est documentado e os testes no foram bem feitos.
Neste tpico demonstraremos como detectar problemas de acesso
no banco de dados.
Detectando e Solucionando
Geralmente detectar problemas de acesso no tarefa difcil,
visto que os SGBDs so bem exatos em relao aos tipos de erros
que ocorrem no momento de uma falta de permisso.
Interpretar esses erros cabe ao DBA, que em muitos casos se depara
com variados tipos de mensagens de erros em relao aos acessos.
A falta de acesso pode ser desde a falta da existncia do usurio,
at a falta de permisso de um objeto de banco de dados (tabela,
view, procedure, function, etc.). Demonstraremos a partir de
agora os principais erros em relao aos acessos no SQL Server e
no Oracle. Selecionamos algumas das mensagens de erros mais
comuns e em seguida, descrevemos os comandos que solucionam
tais mensagens de erro (Listagem 1).
Para selecionar o erro 916, o DBA deve conceder acesso de um
usurio na base de dados do SQL Server, em alguns casos o Login
j existe, ento o DBA precisa criar o usurio na base de dados
apenas. No caso do login existir, cabe ao DBA associar o login com
o usurio de banco de dados. Para criar um usurio em uma base
de dados SQL Server e associar este usurio com o login, proceda
conforme a Listagem 2.
O erro 229 est em dois exemplos: o primeiro demonstra que um
usurio no tem acesso a um objeto fone, que pode ser uma tabela
por exemplo. No segundo exemplo, o mesmo erro 229 mostra uma
falha no acesso de um usurio em uma procedure (Listagem 3).
Nos dois exemplos, o DBA deve conceder acesso do usurio nestes componentes. Para conceder acesso tabela fone e procedure
podemos utilizar os comandos:
GRANT SELECT ON fone to user_CRM
GRANT EXEC ON TruncateFone TO user_CRM
Listagem 1. Erro 916.
SQL Server
Erro 916 Falta de acesso ao banco de dados
Msg 916, Level 14, State 1, Line 1
The server principal user_CRM is not able to access the database DB_CRM under
the current security context.
Listagem 2. Concedendo acesso a uma base de dados para o usurio.
Use DB_CRM
CREATE USER user_CRM FROM LOGIN user_CRM;
--Associando login ao usurio.
EXEC sp_change_users_login LOGIN, USER
Listagem 3. Erro 229.
Erro 229 Falta de acesso a uma tabela do banco de dados
Msg 229, Level 14, State 5, Line 1
The SELECT permission was denied on the object fone, database teste1, schema
dbo.
Erro 229 Falta de acesso a uma procedure do banco de dados
Msg 229, Level 14, State 5, Procedure TruncateFone, Line 1
The EXECUTE permission was denied on the object TruncateFone , database
DB_CRM, schema dbo.
41
Demonstraremos no erro 262 que mostra uma falta de acesso para criao de tabelas no SQL Server. Logo em seguida,
temos o comando para conceder acesso de criao de tabelas
(Listagem 4).
Listagem 4. Erro 262.
Erro 262 Falta de acesso para criar tabela em um banco de dados
Msg 262, Level 14, State 1, Line 1
CREATE TABLE permission denied in database DB_CRM.
GRANT ALTER ON SCHEMA::dbo TO user_CRM
GRANT CREATE table TO user_CRM
Oracle
O erro 00942 mostra uma falta de acesso em uma tabela de um
schema:
Error: ORA-00942 table or view does not exist in oracle.
Detectando e Solucionando
Quando uma performance est prejudicada, evidenciar o
problema pode ser uma tarefa no muito fcil. Basicamente, a
performance de um banco de dados pode ser entendida como
performance de servidor e performance de aplicao. As aplicaes utilizam as consultas SQL para acessar dados de uma base,
e estas consultas podem estar mal escritas gerando assim um
gargalo muito grande no servidor. Isso traz como consequncia
uma performance ruim.
Tendo em vista que vrios fatores podem influenciar na performance de uma aplicao como rede, host, servidor, o DBA
precisa estar atento a estas variveis. Um passo importante neste
ponto a realizao de um trace, afim de rastrear esta conexo
e finalmente encontrar a query que pode ser um dos motivos de
uma performance prejudicada. Uma query com um tempo de
resposta alto est diretamente ligada a vrios fatores: desde uma
anlise mal feita do modelo de dados, at o uso de ms prticas
em relao linguagem de consultas SQL.
Demonstraremos agora como melhorar uma consulta usando
ndices. Iremos considerar que a query j foi detectada e precisa
ser submetida a um plano de execuo do SGBD para identificar
onde est o gargalo.
O plano de execuo uma arma que o DBA tem como aliada.
Nele possvel ver como o SGBD est processando aquela consulta, e quais os passos percorridos na consulta para chegar ao
resultado final. Tanto o SQL Server como o Oracle possuem esta
ferramenta. Mostraremos o plano de execuo das duas ferramentas em forma de texto.
SQL Server
Inicialmente temos a query na Listagem 5 com o comando que
abre o plano de execuo no SQL Server.
Troubleshooting ndices
Os ndices dos bancos de dados so uma estrutura que deve ser
observada com cuidado, ao mesmo tempo que um ndice pode
ajudar na consulta, ele tambm pode fazer o contrrio, que seria
tornar a consulta lenta. comum encontrarmos ambientes em
que o analista criou vrios ndices de forma exagerada e nenhum
deles atende sua inteno.
Em muitos casos, o ndice foi criado de forma correta, porm
existem outros fatores em relao performance que devem ser
observados. O ideal que no momento em que a performance
est prejudicada, deve-se observar todas estas outras variveis,
que seriam, componentes de hardware, dimensionamento de
memria, concorrncia, consulta mal escrita, tamanho da tabela,
dentre outros.
Neste tpico iremos demonstrar quando um ndice necessrio
e como detectamos esta necessidade.
juno externa esquerda, left semi join e left anti semi join, onde
fazem uma pesquisa na tabela interna para cada linha da tabela
exterior. Sendo assim, seria interessante criarmos um ndice
nonclustered para o campo StandardCoast, que o campo onde
so filtrados os dados. Neste caso incluiremos a coluna ProductCategoryID, afinal esta coluna usada para unir duas tabelas em
uma clusula Inner Join.
Na Figura 4 apresentamos o plano de execuo novamente, porm agora existe um ndice criado. Notem que o plano de execuo
agora apresenta duas linhas a menos que o primeiro. Isso bom,
afinal, o SGBD agora faz menos execues nesta consulta. Com
isso, as linhas do resultado da consulta diminuram, o valor dos
bytes diminuiu e o custo de CPU tambm.
Em um processo de anlise do plano de execuo, uma ou mais
queries podem ser analisadas em um processo do sistema, normalmente melhorar apenas uma query no o bastante, podem
existir vrias.
A Listagem 6 apresenta o comando para criao do ndice nonclustered para a coluna StandardCost da tabela Product.
Na Figura 2, alguns valores do plano de execuo em modo texto,
antes e depois da criao do ndice. Destacamos a coluna TotalSubtreeCost que demonstra o custo de cada linha da instruo
SQL. Podemos notar que este valor diminuiu comparando o antes
e o depois. Podemos notar que os valores da estimativa de linhas,
EstimateRows, tambm diminuiu na penltima linha.
Oracle
Na Listagem 7 apresentamos a query e o comando que abre o
plano de execuo do Oracle.
Figura 2. Valores no resultado do plano de execuo do SQL Server antes e depois da criao
do ndice
43
Erro
Quando Gerado
A rea temporria de um banco de dados extremamente importante para o sistema que usa este banco. Os SGBDs de mercado
proporcionam ao desenvolvedor criar tabelas que existem apenas em tempo de execuo, sendo alocadas assim em uma rea
temporria. Alm de usurios, componentes internos do banco
de dados usam as reas temporrias. Quando essa memria se
torna insuficiente, podem ocorrer interrupes significativas no
database.
O DBA deve ficar atento na criao de tabelas temporrias,
visto que uma vez criada em tempo de execuo, dependendo
de como executado esse processo, uma tabela TEMP pode
encher a rea temporria causando assim um gargalo no banco de dados e prejudicando os outros processos que tambm
utilizam essa rea.
Por precauo, uma rea temporria deve ser criada separada
dos arquivos de dados e dos arquivos de log. Uma boa estratgia em relao infraestrutura de banco de dados criar a rea
temporria em um disco separado. Isso pode melhorar muito a
performance do ambiente.
1101 ou 1105
3959
O armazenamento de verso est cheio. Este erro normalmente aparece depois de um erro 1105 ou 1101 no log.
3967
3958 ou 3966
Detectando e solucionando
Uma rea Temp deve ser monitorada constantemente. O dicionrio de dados do SQL Server e do Oracle guardam informaes
em relao ao armazenamento do TempDB (SQL Server) e da
tablespace Temporria (Oracle). Sendo assim, detectar uma rea
temporria com pouco espao e o porqu dessa falta de espao
tarefa simples. Mostraremos aqui neste tpico como o DBA pode
detectar uma rea temporria com pouco espao e como ele pode
aument-la para que o banco no fique indisponvel.
SQL Server
No SQL Server a rea temporria o database TempDB, que
um banco de dados de sistema que criado automaticamente
quando o SQL Server instalado. Toda vez que a instncia do SQL
Server iniciada, este banco de dados volta a ficar vazio, afinal
ele somente armazena dados temporrios.
A Tabela 1 mostra a lista de erros relativos aos problemas de
espao no TempDB. Esses erros podem aparecer em aplicativos
em execuo e mesmo no log de erros do SQL Server.
Segue um exemplo de erro comum em relao a espao insuficiente no tempdb:
Server: Msg 1101, Level 17, State 10, Line 1
Could not allocate new page for database TEMPDB.
Oracle
O Oracle tem como rea temporria a tablespace Temp. Nela
pode-se armazenar todas as tabelas temporrias criadas para um
usurio de aplicao. O Oracle geralmente utiliza a tablespace temporria para armazenar objetos transitrios durante as classificaes e agrupamentos de dados e durante a execuo de uma SQL.
Autor
Flavio Climaco
f_climaco@yahoo.com.br
Atua no ramo de Tecnologia da Informao h mais de 10 anos.
formado na rea de Tecnologia da Informao pela UNIPAC/JF,
Ps Graduado em Administrao de Banco de Dados pelo CES/JF e MBA
em Administrao de Banco de Dados pela FIAP/SP. Possui certificao
MCITP, MCTS Microsoft SQL Server e OCA, OCP Oracle.
Links:
45
Oracle Materialized
Views: Gerenciando em
standby lgicos no Oracle
U
Testaremos alguns cenrios para atualizao de materialized views em bancos de dados configurados como standby
lgico. Testaremos desde atualizaes bem simples, onde no
h necessidade da materialized view no banco de standby, at
chegarmos no exemplo onde precisamos da MV e o banco de
standby no pode ter os mesmos privilgios que o banco de
dados principal.
Para demonstrarmos os cenrios a seguir, iremos trabalhar com
trs bancos de dados:
ORCL Banco de dados principal;
ORCLS Standby lgico, utilizado nos exemplos como banco
de dados de relatrio;
ODB - Banco de dados de origem. Utilizaremos a tabela TORIGEM como fonte para as materialized views que criaremos.
Materialized views so objetos do banco de dados Oracle utilizados para armazenar dados de consultas que precisem ler uma
grande quantidade de dados de diferentes tabelas/views. Elas
funcionam como uma tabela do banco, populada manualmente
ou via job, que permite a execuo de queries complexas, lendo
um nico objeto de banco de dados. Alm de permitir a criao de
ndices exclusivos, que no impactam na performance das tabelas
usadas como origem de dados para as materialized views.
Alm do uso para gerar uma tabela a partir de uma consulta,
outro uso para as materialized views a criao local de uma tabela existente em outro banco de dados, evitando trfego de rede
durante as consultas, podendo mover este trfego para perodos
onde o banco de dados no esteja muito carregado (quando os
valores da tabela no precisam estar com a verso mais atual).
47
OBJECT_TYPE
----------------------TABLE
Listagem 6. Criando uma tabela para materialized view criada no banco primrio
depois do standby ter sido criado
DBMS_METADATA.GET_DDL(TABLE,MV2_TESTE,AAO)
--------------------------------------------------------------------------------
GUARD_S
------ALL
49
NOME
-------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
DEPOIS MV3_TESTE
NOME
--------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
NOME
-------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
DEPOIS MV3_TESTE
SYS@ORCLS>
Database altered.
SYS@ORCLS>
Listagem 11. Criando usurio com permisso de leitura nos dados de origem
SYS@ODB> create user AAO_READ identified by *** default tablespace USERS;
User created.
SYS@ODB> grant create session to aao_read;
Grant succeeded.
SYS@ODB> grant select on aao.torigem to aao_read;
Grant succeeded.
SYS@ODB> create synonym aao_read.torigem for aao.torigem;
Synonym created.
SYS@ODB> conn aao_read/***
Connected.
AAO_READ@ODB> select * from torigem;
CODIGO
----------------1
2
3
4
NOME
--------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
DEPOIS MV3_TESTE
AAO_READ@ODB>
51
Database altered.
SYS@ORCLS>
Criamos database link para atualizao de dados da materialized view. O primeiro comando desativa a proteo do banco de
dados de standby. O segundo conecta no banco de dados com o
usurio owner da MV. O terceiro remove o database link utilizado para leitura da tabela no banco de origem. Esse database link
foi criado quando criamos o banco de dados de standby, e ele foi
criado usando o mesmo usurio/privilgios do banco de dados
primrio. O quarto comando recria o database link usando um
usurio com acesso restrito, para que o banco de dados de standby
no use o mesmo database link para acessar mais informaes
do que so necessrias. O quinto loga no banco de dados com o
usurio SYS; e o ltimo comando reativa a proteo do banco de
dados de standby.
Para testar essa modificao, vamos adicionar alguns registros
tabela de origem no banco de dados ODB, que utilizada como
fonte de dados para a materialized view. Para adicionar os registros no banco de origem, proceda conforme a Listagem 13.
CODIGO
-----------------1
2
3
4
5
NOME
-----------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
DEPOIS MV3_TESTE
NOVO DB LINK
5 rows selected.
SYS@ORCL>
Autor
NOME
----------------------------ANTES MV1_TESTE
ANTES MV2_TESTE
ANTES MV3_TESTE
DEPOIS MV3_TESTE
NOVO DB LINK
5 rows selected.
AAO@ORCLS> conn / as sysdba
Connected.
SYS@ORCLS> alter database guard all;
Database altered.
SYS@ORCLS>
Links:
Gerenciando banco de dados standby lgico Seo Materialized views
http://docs.oracle.com/cd/E11882_01/server.112/e41134/manage_ls.htm#SBYDB4833
Listagem 16. Criando materialized view usando usurio com acesso restrito
SYS@ORCLS> alter database guard none ;
Database altered.
53
Efetuando o backup
O Oracle RMAN (Recovery Manager) um gerenciador
de backup e recuperao fornecido para bancos de dados
Oracle. Ele apresenta funcionalidades de backup, restaurao e recuperao, abordando alta disponibilidade e
recuperao de falhas em casos de desastres. A Oracle
recomenda o RMAN como seu mtodo preferido para
backup e recuperao e apresenta interface em modo de
linha de comando e grfica (via Oracle Enterprise Manager). Os projetistas do RMAN visam a integrao com
servidores de banco de dados Oracle, proporcionando
deteco de corrupo no nvel de bloco durante o backup
e restaurao. O RMAN otimiza o desempenho e consumo do espao durante o backup atravs da multiplexao
de arquivos e compresso de backup-sets.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41. RMAN> exit
42.
43.
44. Recovery Manager complete.
Criando o pfile
A primeira etapa a criao do arquivo de parmetros de
inicializao e os diretrios necessrios. A Listagem 3 apresenta a criao dos diretrios administrativos enquanto que a
Listagem 4 mostra a criao do pfile.
Deve-se entrar no diretrio que sero utilizados como base
($ORACLE_BASE) e ento comea-se a criar os diretrios.
55
Oracle Upgrade: Como fazer upgrade do oracle 11g para 12c Parte 3
24.
25. OPatch succeeded.
Listagem 3. Criao da estrutura de diretrios.
01.
02.
03.
04.
05.
06.
07.
08.
Executando o catcdb.sql
O script catcdb.sql o responsvel pela criao dos vrios componentes de banco de dados no root, como os pacotes PL/SQL, etc.
A Listagem 6 apresenta a execuo deste script.
Ainda conectado ao CDB atravs do SQL*Plus simplesmente
executou-se o script (linha 01). solicitada uma nova senha para
o usurio SYS (linha 02) e tambm para o usurio SYSTEM (linha
03). O nome da tablespace temporria tambm solicitado (linha
04). O script executado de maneira rpida, e pronto, estamos
32.
33.
30.
31.
SQL> @?/rdbms/admin/catcdb.sql
Enter new password for SYS:
Enter new password for SYSTEM:
Enter temporary tablespace name: TEMP
Connected.
...
...
...
...
Session altered.
Session altered.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46. Database created.
47.
48. Elapsed: 00:01:20.96
Utilizar replicao;
Utilizar o pacote DBMS_PDB.
Ser abordado neste artigo a ltima opo. O DBMS_PDB
um pacote construdo pela prpria Oracle e disponibilizado no
banco de dados, parte dos famosos Built-in Packages, que so
os DBMS_*.
Ele permite a criao de um arquivo de metadados em formato
XML referente ao non-CDB, fazendo com que ele seja descrito da
mesma forma que quando um PDB desconectado (unplugged).
Isso permite que o non-CDB possa ser conectado como um PDB
em um CDB existente.
Vale lembrar que todas as funcionalidades presentes no PDB
devem estar presentes no CDB, portanto tome o cuidado de verificar este item. A primeira coisa a ser feita finalizar o non-CDB
e inici-lo em modo somente leitura (read only), como apresentado
na Listagem 7.
Definiu-se a varivel de ambiente ORACLE_SID para o nome
do SID do non-CDB e iniciou-se o utilitrio SQL*Plus (linha 02).
Conectou-se instncia do non-CDB com o usurio SYS (linha 08)
e finalizou-se o banco de dados (linha 10). Em seguida, iniciou-se
o non-CDB em modo read only (linha 14). Abrir o non-CDB em
modo read only um passo obrigatrio, pois para a continuidade do
processo mandatrio que no haja nenhuma alterao no banco
de dados (ter o banco em modo read only oferece essa garantia).
Agora o momento de efetuar a descrio do non-CDB utilizando o procedimento DESCRIBE do pacote DBMS_PDB, ou seja,
DBMS_PDB.DESCRIBE. Este procedimento criar um arquivo
57
Oracle Upgrade: Como fazer upgrade do oracle 11g para 12c Parte 3
SQL> BEGIN
2 DBMS_PDB.DESCRIBE(
3 PDB_DESCR_FILE => /oracle/admin/SQL12c/SQL12c.xml);
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
Autor
Ricardo Rezende
ricarezende@gmail.com
http://www.devmedia.com.br/ricardorezende
http://purl.org/ricarezende/blog
http://twitter.com/ricarezende
DBA Oracle certificado pela Oracle University (DBA 9i track e DBA OCP
10g). IBM Certified Database Associate DB2 9. DBA Oracle na IBM do Brasil em projeto
internacional administrando ambiente de produo de alta criticidade. Lider de equipe
de DBAs envolvendo Brasil e Filipinas. Palestrante em vrios eventos em diversas universidades e institutos. Editor tcnico da revista SQL Magazine. Mestrando em Cincia da
Computao pelo Instituto de Computao da Universidade Estadual de Campinas IC
UNICAMP. Docente na Fundao Indaiatubana de Educao e Cultura FIEC.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
...
...
...
9 END;
10 END;
11 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.06
SQL>
SQL> WHENEVER SQLERROR CONTINUE;
SQL> ALTER PLUGGABLE DATABASE OPEN;
PDB altered.
SQL> SELECT name, open_mode
2 FROM v$pdbs;
NAME
-------------SQLPDB1
OPEN_MODE
------------------READ WRITE
1 row selected.
Links:
Backing Up the Database
https://docs.oracle.com/database/121/BRADV/rcmbckba.htm#BRADV8003
How to create a CDB in Oracle 12.1.0
http://juliandontcheff.wordpress.com/2013/06/30/how-to-create-a-cdb-in-oracle-12-1-0/
Multitenant : Create and Configure a Container Database (CDB) in Oracle Database
12c Release 1 (12.1)
http://oracle-base.com/articles/12c/multitenant-create-and-configure-container-database12cr1.php
Multitenant : Migrate a Non-Container Database (CDB) to a Pluggable Database
(PDB) in Oracle Database 12c Release 1 (12.1)
http://oracle-base.com/articles/12c/multitenant-migrate-non-cdb-to-pdb-12cr1.php
59
Weka Software:
Minerao de dados
com Weka
A
Teoria da Probabilidade
O clculo de probabilidades um ferramental estatstico destinado ao estudo de fenmenos aleatrios ou probabilsticos.
Em tais fenmenos o resultado de um experimento no pode
ser previsto com certeza, mas geralmente possvel relacionar
todos os resultados possveis de ocorrer. Chamamos de espao
amostral ou espao das probabilidades este conjunto de resultados. Na sequncia, ser explicada a teoria das probabilidades, a
qual fundamenta as Redes Bayesianas, que a base para alguns
classificadores clssicos da literatura.
A tomada de deciso uma teoria prescritiva ou normativa com o
objetivo de ajudar as pessoas a tomarem decises mais adequadas s
suas preferncias. A probabilidade um evento que mede nosso grau
de certeza com relao a algum acontecimento, uma vez que representa nosso grau de crena no possvel resultado. Podemos definir
probabilidade como sendo o quociente entre o nmero de resultado
para os quais o evento em questo se verifica e o nmero de todos
resultados possveis. Desta forma, temos a seguinte equao:
P(A) = m/n.
Onde (m) o nmero de resultados favorveis ao evento (A),
e o (n) o nmero de resultados possveis. Uma probabilidade
geralmente est condicionada com o estado de uma informao
Mtodo Proposto
Atualmente existem diversas ferramentas disponveis para o
desenvolvimento de modelos Bayesianos. Para este artigo foi adotado o ferramental estatstico disponibilizado pela Universidade
de Waikato na Nova Zelndia, que se chama Weka. A ferramenta
permite explorar recursos de forma grfica ou ainda adicionar as
suas funcionalidades em programas externos desenvolvidos em
Java, atravs de bibliotecas com os algoritmos implementados em
classes e mtodos.
Para modelar a RB, ser utilizado um conjunto de dados para
sua configurao. O conjunto de dados provm de uma fonte de
dados real, o dataPoa. Os dados utilizados para configurao da
rede sero os dados do ano de 2012, que totalizam 20202 acidentes
registrados na cidade de Porto Alegre - RS. Destes acidentes, houve
um total de 6122 com feridos. possvel utilizar dados de outros
anos, ou ainda unir dados de anos diferentes, gerando bases de
treinamento maiores.
Para realizar a validao do modelo sero classificados dados do ano de 2013, tambm disponibilizados no site dataPoa.
A classificao consiste em atribuir a classe a uma instncia. Cada
instncia (acidente) de 2012, possui um atributo que o classifica,
que o penltimo atributo (FERIDOS), indicando se houve vtima
no acidente ou no. Desta forma, cada instncia dos dados de
2013 ter o atributo classe removido, e em seguida os dados sero
classificados utilizando o modelo desenvolvido, o qual atribuir
o atributo classe probabilisticamente. Por fim, cada instncia ser
validada comparando o atributo classe gerado pelo modelo com
o atributo que de fato foi obtido nos dados coletados.
Os dados coletados so apresentados na Tabela 1, onde a primeira coluna se refere ao atributo e a segunda coluna detalha
cada atributo.
A RB constituda por um algoritmo que consegue realizar
a classificao de 1 at N instncias, desde que tenha recebido
informaes anteriores com a quantidade de instncias maior ou
igual a N. Essa classificao consiste em predizer se um acidente
ocorrido tem ou no vtimas. possvel identificar um acidente
61
Significado do atributo
LOG1
LOG2
LOCAL
DIA_SEM
TEMPO
NOITE_DIA
REGIO
FERIDOS
FATAIS
Implementao
Para realizar a implementao, os dados originais do dataPoa
foram tratados a fim de obter apenas dados nominais, isto ,
apenas dados que tenham valores previamente identificados, por
exemplo segunda-feira, tera-feira. Os dados disponibilizados
pelo dataPoa encontram-se no formato Comma Separated Values
(CSV), no entanto para facilitar a leitura dos arquivos pelo modelo desenvolvido, os arquivos foram convertidos para o formato
Attribute Relation File Format (ARFF).
Dentre os diversos classificadores disponveis pela ferramenta
Weka, foi utilizado o classificador BayesNet. Durante a implementao foi desenvolvido um sistema para desktop utilizando a
linguagem de programao Java. Na Figura 1 apresentada a tela
principal (Classifiers) do sistema.
Nesta tela possvel selecionar qual a base de treinamento e
definir a(s) instncia(s) a serem classificadas (apenas 2013). Pode
ser classificada apenas uma instncia especfica ou ainda uma
quantidade qualquer desde que menor que 20.202, pois a base
de treinamento possui tal quantidade de instncias. Tambm
possvel classificar grupos pr-definidos de instncias, sendo
que tais grupos foram definidos apenas para fins de testes. Cada
grupo possui 1.550 instncias.
O sistema tambm possui uma tela secundria chamada (Geo
Statistics), onde possvel visualizar graficamente em um mapa da
cidade de Porto Alegre - RS os locais onde ocorreram acidentes no
ano de 2012, 2013, acidentes com vtimas fatais em 2012 e acidentes
Colocando em prtica
Para testar o funcionamento da ferramenta Weka, foram testados exemplos disponibilizados no pacote do mesmo, alm
disso, foi montada uma RB que leva em
considerao nove atributos para definir
a classe de uma instncia.
Para configurao da RB e criao da
tabela de probabilidades foram inseridas
duas instncias de teste, desta forma a
tabela de probabilidades pode ser vista na
Figura 3, com 50% de chance para YES
e 50% de chance para NO.
Para verificar a operao da tabela de
probabilidades foi inserida mais uma
instncia, sendo que esta provocou um
aumento nas chances do atributo classe
receber o valor YES.
Conforme pode ser observado na Figura 4,
a tabela de probabilidades possui um percentual maior de chances (62,50 %) para o
valor YES, j que mais uma instncia foi
adicionada na base de treinamento com o
valor YES.
Testes e Resultados
Os classificadores da ferramenta Weka
foram testados classificando os dados
de 2012, que totalizam 20.202 acidentes.
A ferramenta realiza a classificao dos
dados e apresenta um relatrio de informaes sobre o comportamento dos dados
de entrada. Os dados de entrada podem
estar em um arquivo ou em um banco de
dados, os dados do experimento estavam
no formato CSV. Para classificar dados de
um arquivo, basta abrir a ferramenta e
clicar no boto Explorer, ser exibida a
tela conforme mostra a Figura 5.
Na tela Explorer existem diversos
painis, o primeiro deles o painel Preprocess. Neste painel possvel visualizar
graficamente o comportamento dos dados,
para isso deve ser selecionado um arquivo
com o boto Open file.... Em seguida
uma das utilidades que pode oferecer uma
visualizao rica sobre os dados a opo
Visualize All. Na Figura 6 apresentado
o resultado da opo Visualize All.
Podemos observar na figura o comportamento, bem como se d a diviso
dos dados de entrada, antes de realizar a
classificao propriamente dita.
63
Classificador
ndice de acerto
Total
BayesNet
71,1365 %
3.187
11.184
RBFNetwork
71,686 %
2.229
12.235
DecisionTable
71,7553 %
1.672
12.824
IBk
70,9286 %
2.132
12.197
KStar
70,5376 %
2.227
12.023
NaiveBayes
71.8543 %
2.513
12.003
J48
72.4681 %
1.894
12.746
NaiveBayesSimple
71.8543 %
2.513
12.003
NaiveBayesUpdateable
71.8543 %
2.513
12.003
BayesNet
60,3058 %
865
11.318
65
Instncias
Acerto para NO
10
39,6713 %
3.999
4.014
100
36,7011 %
4.492
2.922
200
36,6219 %
4.519
2.879
400
36,5724 %
4.526
2.862
1000
36,5724%
4.528
2.860
2000
36,5773%
4.529
2.860
3000
36,5823%
4.529
2.861
4000
36,5724%
4.529
2.859
Autor
Marcelo Josu Telles
marcelojtelles@gmail.com
Mestrando em Computao Aplicada pela UNISINOS.
Graduado em Licenciatura da Computao pela Universidade Feevale(2007), especialista em informtica na Educao pela
UFRGS(2011). Cursou disciplinas do Programa de Ps Graduao em
Computao na UFRGS (PPGC e PGMICRO), como aluno especial. Atua como professor
desde 2008. Atualmente leciona na Escola de Educao Profissional Olmpio, Escola
de Educao Bsica Feevale Escola de Aplicao, Instituto de Educao Ivoti. Leciona
as disciplinas de Lgica de Programao, Linguagens de Programao, Eletrnica,
Eletricidade Bsica, Eletrnica para Computao, Sistemas Operacionais, Bancos de
Dados, Manuteno de Computadores e Desenvolvimento de Projetos. Trabalhou com
desenvolvimento de software nas linguagens PHP, Java e Visual Basic.
Autor
Paulo Henrique Santini
paulinho.h.santini@gmail.com
Mestrando em Computao Aplicada pela UNISINOS. Graduado
em Anlise e Desenvolvimento de Sistemas pelo SENAC (2013).
Atualmente, aluno do Programa Interdisciplinar de Ps Graduao em
Computao Aplicada (PIPCA) da Universidade do Vale do Rio dos Sinos
(UNISINOS). Bolsista do projeto Santander Universidades e colaborador em projetos de
pesquisa no Laboratrio de Computao Mvel (MobiLab/UNISINOS). Trabalhou com
ferramentas do Google, como: Google Adwords e Google Analytics, tambm trabalhou
com desenvolvimento de software nas linguagens PHP e Java. Seus interesses de pesquisa
incluem Computao Mvel e Ubqua.
Links:
(1) Boni, Mauro Henrique Lima de. Framework para criao e manipulao de
redes bayesianas em dispositivos mveis, Universidade de Braslia 2013.
http://repositorio.unb.br/handle/10482/13282.
(2) ISBA, International society for bayesian analysis.
http://bayesian.org
(3) Ferramentas para desenvolver uma rede bayesiana
http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html.
(4) Weka, WEKA - Machine Learning Algorithms in Java
http://www.cs.waikato.ac.nz/.
(5) DataPoa, Dados coletados referentes acidentes de trnsito
http://www.datapoa.com.br.
67