SQL Magazine 1048
SQL Magazine 1048
SQL Magazine 1048
9 771677 918004
00138
Sumrio
Contedo sobre Boas Prticas
Feedback
eu
edio
ta
sobre e
s
EXPEDIENTE
Editor
Rodrigo Oliveira Spnola (rodrigo.devmedia@gmail.com)
Subeditor
Eduardo Oliveira Spnola
Consultor Tcnico
Joel Neto (joelrlneto@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.
Guia HTML 5
DEVMEDIA
http://www.devmedia.com.br/guias/guia-html/3
Normalizao dados
A normalizao dos dados o primeiro passo para se
obter sucesso com um modelo de dados ntegro, uma
vez que sendo estas normas respeitadas, as redundncias e inconsistncias podero ser evitadas.
Uma caracterstica fundamental nos bancos de dados relacionais
so as transaes, operaes que manipulam os dados no banco e
que podem ser comportas por inseres, buscas, atualizaes ou
excluses. Espera-se que ao realizar transaes sejam atendidas
as propriedades ACID, descritas a seguir:
Atomicidade: esta propriedade garante que uma transao seja
atmica, ou seja, indivisvel. De modo geral, ou tudo acontece ou
nada acontece. Isto significa que em uma transao composta por
vrias operaes, se por algum motivo alguma operao no for
realizada, todas as demais tambm no sero e caso alguma tenha
sido realizada anteriormente, dever ser anulada;
Consistncia: esta propriedade garante que um banco de dados
consistente dever continuar consistente aps uma transao. Um
exemplo para melhor entendimento o caso de uma transao
que deve excluir 1.000 registros na base de dados e falha durante a excluso do registro de nmero 600. Haver essa mesma
quantidade de registros a serem excludos e 400 no excludos
temporariamente. Para manter a consistncia em casos como
este, a transao dever deixar o banco de dados no estado em
que ele estava antes da transao iniciar, ou seja, sem excluir os
600 registros;
Relacionamentos e cardinalidades
No processo de modelagem, a cardinalidade um passo intuitivo para quem tem experincia com banco de dados. No entanto,
para os iniciantes na prtica, pode representar um momento de
dificuldades no desenvolvimento de diagramas. Na sequncia,
sero vistos os tipos de diagramas e a cardinalidade que se aplica
a todos eles.
A cardinalidade representa a maneira sob a qual as tabelas se
relacionam e podem ser de trs tipos:
Relacionamento um-para-um ou 1:1: este utilizado quando
uma entidade A se relaciona com uma entidade B e vice-versa,
e cada uma dever ter apenas um registro do outro. O exemplo
mais clssico desta cardinalidade seria o relacionamento entre
cnjuges, em uma tabela pessoa. Logicamente pode-se dizer que
Um marido est relacionado com apenas uma esposa e uma
esposa est relacionada apenas com um marido;
Relacionamento um-para-muitos 1:N: este utilizado nos casos
em que uma entidade A pode se relacionar com uma ou mais entidades B. Um exemplo dessa cardinalidade o relacionamento entre
cidade e estado. Pode ser dito que Uma cidade est relacionada a
apenas um estado, mas um estado tem diversas cidades;
Relacionamento muitos-para-muitos N:N: este utilizado
quando uma entidade A pode se relacionar com vrias entidades B
e vice-versa. nesse caso que ser gerada uma entidade associativa
Modelagem de Dados
A modelagem o ato de transcrever um
problema de um cenrio real para uma
estrutura de armazenamento de dados. A
modelagem de dados pode estar em trs
nveis de abstrao:
Modelo Conceitual: o modelo conceitual
uma viso mais alto nvel de um modelo
de banco de dados. Independentemente da
sua implementao (SGBD), deve abranger as entidades e os relacionamentos de
maneira simples, permitindo at mesmo
que uma pessoa que no compreenda o
conceito de banco de dados possa compreender a regra de negcios representada
pelo modelo;
Modelo Lgico: o modelo lgico uma
verso mais detalhada do modelo conceitual, descrevendo alm das entidades e
relaes, tambm os campos que compem
as tabelas e os respectivos tipos de dados
de cada campo;
Ferramenta
Mac OS
SQL Server
Oracle
PostgreSQL
MySQL
Atualizao
DBDesigner
No
Sim
Sim
Sim
Sim
Sim
Sim
Sim
2015
DBEdit
No
Sim
Sim
Sim
Sim
Sim
Sim
Sim
2015
Erwin
No
Sim
Sim
Sim
Sim
Sim
Sim
Sim
2015
MySQL Workbench
No
Sim
Sim
Sim
No
Sim
No
No
2015
Sim
Sim
Sim
Sim
No
No
No
Sim
2015
Sim
Sim
Sim
Sim
No
Sim
Sim
Sim
2012
Toad
Sim
Sim
Sim
No
No
Sim
Sim
Sim
2013
Sabendo que no universo de tecnologia da informao a utilizao de ferramentas gratuitas bem vista, pois sempre oferece
um bom custo benefcio ao desenvolvedor, como ferramenta de
modelagem de dados para o nosso estudo foi escolhido o MySQL
Workbench, que est disponvel para os sistemas operacionais
Windows, Linux e Mac OS.
A partir de agora ser explanado um contedo misto, relacionando o desenvolvimento do modelo de dados teoria. Antes disso,
Aps a normalizao da tabela Disciplina, nota-se que foi adicionado um campo TELEFONES na tabela Pessoa, o que d a entender
que um nico campo poder armazenar diversos telefones. No
entanto, isso caracteriza um caso de campo multivalorado, outra
infrao relacionada primeira forma normal. Para manter Pessoa
na primeira forma normal este atributo deve ser removido desta
tabela e criada uma nova para armazenar os telefones. Em seguida
basta criar uma relao entre Pessoa e os telefones pertencentes a ela.
10
11
11
Autor
Figura 10. Passo 9 Incluso das entidades Estado e Cidade
Assim, a tabela Pessoa passar a contar com dois campos relacionados Cidade e ao Estado, respectivamente, id_cidade e id_estado.
No entanto, como id_estado depende transitivamente de id_cidade,
afinal, a partir da relao entre as entidades Pessoa e Cidade pode-se
descobrir o id_estado, a presena de id_estado na entidade pessoa
est infringindo a terceira forma normal, que especifica que no
deve haver dependncia transitiva entre os campos.
Para solucionar este caso basta remover o atributo id_estado da
tabela Pessoa. Com isso o modelo para o sistema escolar proposto
estar pronto e normalizado de acordo com as trs formas normais
(vide Figura 11).
12
Disco de Qurum
Determinamos se um cluster necessita de um disco de qurum
dependendo da quantidade de elementos votantes de um cluster. Cada elemento do cluster tem um voto vlido, um cluster
se mantm ativo ou iniciado se a maioria dos votos vlidos
estiver ativa.
Uma configurao de qurum adequada tem efeitos diretos na
disponibilidade do cluster, assegurando que em caso de falhas
de um n (problemas de comunicao entre os ns, parada programada para atualizaes e manutenes) o cluster se manter
ativo.
No cenrio que descreveremos neste artigo utilizaremos dois
ns, fazendo necessria a configurao de um disco de qurum.
Mltiplas Sub-Redes
Em uma configurao de mltiplas sub-redes, podemos ter cada
n do cluster respondendo em uma sub-rede diferente ou at
mesmo um conjunto delas. Essa configurao pode ser no mesmo local ou em um local geograficamente diferente, o que alm
de proporcionar disponibilidade, pode fornecer um recurso de
recuperao de desastres. Porm, nesta configurao geralmente
no haver compartilhamento do armazenamento, levando
necessidade de replicar os dados atravs das sub-redes utilizadas
na configurao.
13
13
Como um exemplo de utilizao de FCI com mltiplas subredes imagine um cluster com trs ns: node1 e node2 esto na
subrede1, enquanto node3 est na subrede2. Esta uma configurao em cluster de vrias sub-redes, que permite fornecer uma
alta disponibilidade local adicional devido ao fato do node3 estar
em outra sub-rede. Sua dependncia de recurso IP ser definida
como OR.
Dependncias de IP definidas como AND, OR ou mistas no
so suportadas, como:
IP1 AND IP2 OR IP3
14
Causa de um failover
A causa de um failover ou reinicializao definida pela propriedade Failure Condition Level, que determina se o status de
integridade pode ou no causar um failover ou reinicializao.
As condies de falhas so definidas de forma crescente considerando nveis entre 1 e 5. Cada um deles inclui as condies dos
nveis anteriores alm de suas prprias condies. Essas configuraes podem ser alteradas para o nvel desejado.
A seguir temos os nveis e condies para ocorrncias de failover
ou reinicializao:
Nvel 0: nenhum failover ou reinicializao automtica em nenhum
caso de falha. Destinado apenas manuteno programada;
Nvel 1: failover ou reinicializao quando o servidor estiver
inativo. Ser gerado um failover ou reinicializao sempre que o
servio do SQL Server estiver inativo;
Nvel 2: failover ou reinicializao em caso de servidor sem resposta. Ser gerado um failover ou reinicializao sempre que ocorrer a condio de nvel 1 ou a instncia no estiver respondendo;
Nvel 3: failover ou reinicializao em caso de erros crticos de
servidor. Ser gerado um failover ou reinicializao sempre que
ocorrerem as condies de nveis 1 e 2 ou o procedimento armazenado SP_SERVER_DIAGNOSTICS retornar erro de sistema;
Nvel 4: failover ou reinicializao em caso de erros moderados
de servidor. Ser gerado um failover ou reinicializao sempre que
ocorrer as condies de nveis 1, 2, 3 ou o procedimento armazenado SP_SERVER_DIAGNOSTICS retornar erro de recurso;
Nvel 5: failover ou reinicializao em qualquer condio de
falha qualificada. Ser gerado um failover ou reinicializao
sempre que ocorrer as condies de nveis 1, 2, 3, 4 ou o procedimento armazenado SP_SERVER_DIAGNOSTICS retornar erro
de processamento de consulta.
Momento do failover
SQL Server operacional. Em caso de um failover, no ser necessrio a desmontagem dos volumes de um n e montagem em outro.
Outra vantagem que o CSV faz uso do chkdsk, que permite a
deteco de danos aos volumes sem tempo de indisponibilidade
e uma melhor gesto da instncia SQL Server, pois possvel
gerenciar o armazenamento de qualquer n quando existe acesso
aos discos por ambos os ns.
No momento de um failover, todos os recursos disponveis naquele n sero transferidos para o outro disponvel, isto : o nome
de rede registrado na criao do cluster, o endereo IP, o servio
do mecanismo de banco de dados, SQL Server Agent e Analysis
Services (caso esteja instalado).
Neste momento, todas as pginas sujas do buffer sero gravadas
em disco, o novo proprietrio dos recursos inicia o servio do
SQL Server e as conexes sero destinadas ao novo proprietrio
do servio. Vale a pena lembrar que no haver alteraes nas
aplicaes, o nome de rede utilizado ser mantido.
O failover pode levar algum tempo at o servio estar disponvel
novamente, isso porque o servidor detentor dos servios poder
Criao do WSFC
Neste artigo criaremos um cluster no
Windows Server 2012 R2. Os passos de
instalao no mudam muito em relao
criao no Windows Server 2008. Vale
a pena lembrar que o usurio que criar
o cluster necessita das permisses para
criao de objetos de computador para a
OU (Unidade Organizacional) no Active
Directory. Caso no tenha as permisses,
solicite ao administrador de domnio
que pr-configure um objeto de domnio
para o cluster. Para comear, necessrio
instalar a role failover clustering no menu
add roles and features do Server Manager
em todos os ns envolvidos no cluster.
Feito isso em todos os ns, abra o Failover Cluster Manager. O prximo passo
primordial para a criao do cluster,
pois garante que suas configuraes
de ambiente estejam de acordo com as
recomendaes da Microsoft. Execute a
opo validate configuration, adicione os
ns que participaro do cluster e execute
todos os testes conforme recomendado.
Aps seu trmino, criaremos nosso cluster com a opo create cluster. Defina um
nome de rede para seu cluster e abaixo
sero exibidas as redes disponveis. Selecione a(s) rede(s) e adicione um IP vlido
para cada uma. No prximo passo sero
mostradas as configuraes definidas
para o cluster com nome, IP(s), e ns
atribudos ao cluster.
Com o cluster criado, voc poder ver
em seu Domain Controller que foi criado um novo objeto como se fosse um
computador de sua rede com o nome
atribudo ao cluster em sua criao e a
descrio failover cluster virtual network
name account.
Criao de Qurum
15
15
Instalao avanada
Na instalao avanada teremos que
preparar os ns que faro parte do nosso
cluster. Para isso, executaremos em ambos
os ns o setup do SQL Server. Em advanced
encontraremos a opo Advanced Cluster
Figura 3. Failover
16
Instalao integrada
Comeamos pelo n primrio do cluster.
Execute o setup do SQL Server 2014, v at
a aba installation e selecione a opo New
SQL Server Failover Cluster Installation. Insira a chave de produto e aceite os termos de
licena. Sero listadas as rules de failover
cluster que sero instaladas.
necessrio que esta etapa seja concluda
sem erros. Selecione as features que deseja
instalar nesta instncia, informe um nome
de rede para ela, insira um nome para o
grupo de recursos de cluster do SQL Server e selecione os discos que utilizaremos
para ele. Sero listadas todas as redes
disponveis, no nosso caso, duas.
Vamos selecionar as redes que utilizaremos e definir IPs vlidos para cada rede.
Adicionaremos contas de domnio para
executar o SQL Agent e o mecanismo de
banco de dados. Na aba data directories
poderemos personalizar nossa instalao
definindo o local de cada tipo de arquivo
em discos diferentes do nosso mount
point, que aparecer no caminho C:/
ClusterStorage/nomedisco e com isso
terminamos nossa instalao no primeiro
n. Esta instncia j est pronta para uso,
porm, sem alta disponibilidade, pois temos apenas um n instalado. Agora vamos
adicionar uma nova instncia.
Para adicionar ns FCI, vamos ao n
que ser adicionado e executamos o instalador do SQL Server. Na aba installation
encontraremos a opo Add node to a SQL
Server Failover Cluster. Aps checar as rules
que sero instaladas, ser apresentado o
nome do recurso de cluster definido na
instalao anterior. Poderemos notar que
estaro listados o hostname do servidor
primrio, as features e o nome de rede que
definimos durante a instalao anterior.
Vamos prosseguir definindo as redes que
utilizaremos (observe que os IPs j esto
definidos). Adicione as contas de domnio
para executar os servios e j temos nossa
Remoo de ns do cluster
Remover um n de uma FCI to simples
quanto adicionar. Executaremos o setup do
SQL Server no assistente de instalao, em
seguida, na aba maintenance, selecionaremos a opo remove node from a SQL Server
failover cluster. Ser necessrio especificar a
instncia da qual desejamos retirar um n
e o nome do n ser listado no campo name
of this node. O n escolhido ser removido
do cluster.
Autor
Leandro Romualdo da Silva
leandroromualdosilva@gmail.com
Apaixonado por tecnologia, em especial SGBDs, formando
em banco de dados pela FIAP e DBA SQL Server e Oracle.
17
17
18
Novas terminologias
Configurar um service broker, para quem est fazendo pela
primeira vez, pode ser um desafio. Um conjunto de novos termos
ser adicionado ao dia-a-dia do DBA. Alguns deles so:
Dialog Conversation: ponto de incio para qualquer troca de
mensagens do Service Broker. Antes que uma troca de mensagens possa acontecer, uma conversation precisa ser estabelecida.
As mensagens so entregues de maneira EOIO (exactly-once-inorder);
Conversation Groups: geralmente usado para agrupar conversas relacionadas a uma mesma lgica de negcio. Normalmente usado para que mensagens diferentes, que possam ser
agrupadas por um mesmo grupo de negcio, sejam processadas
em ordem;
Message Types: utilizado para definir qual o tipo dado a mensagem ir conter;
Contratos: os contratos definem quais message types podem ser
trocados dentro de uma dada conversation;
Filas: so objetos fsicos que criam tabelas onde as mensagens
sero armazenadas e servem de ponto de represamento para as
mensagens que chegam at que elas sejam processadas. Estas
tabelas so acessveis atravs dos comandos SEND e RECEIVE;
Endpoint: permite conexes com servios via protocolos do
SQL Server: TCP, Namedpipes e Sharedmemory. Uma definio
19
19
20
Iniciamos o script declarando as variveis necessrias para realizar o parse do documento XML recm-chegado fila (linhas 8
a 10). Em seguida, da linha 18 at a 24, usamos a clusula receive
que est sendo apontada para nossa queue (SQLMAG_BROKER_
DEMO_FILA_CHEGADA). Este comando estar dentro de uma
estrutura WAITFOR () TIMEOUT 100 que significa que a
cada 100ms haver uma validao de checagem da fila afim de
encontrar uma nova mensagem. Se nenhuma nova mensagem
for encontrada, a procedure para de ser executada at a prxima
validao (linha 27). Caso haja uma nova mensagem, o prximo
passo ser transform-la de XML para o formato tabular e, ento,
inserir as informaes nas tabelas de destino (linhas 40 a 66).
Para que a procedure funcione corretamente, ser necessrio criar
algumas tabelas que recebero os dados contidos nas mensagens
recebidas. A definio das tabelas pode ser vista na Listagem 7.
44
45
46
47
48
--CABEALHO DA VENDA
49
INSERT INTO VENDAS (venda, vendedor, data, total)
50
(SELECT VENDA, VENDEDOR, DATA, sum(TOTAL*QUANTIDADE)
51
FROM OPENXML(@handle, /PRODUTOS/VENDA,2)
52
WITH(
53
VENDA VARCHAR(100) @ID,
54
VENDEDOR VARCHAR(100) @VENDEDOR,
55
DATA VARCHAR(10) @DATA,
56
TOTAL DECIMAL(10,2),
57
QUANTIDADE INT
58
)
59
group by VENDA, VENDEDOR, DATA)
60
61
62
--DETALHES DA VENDA
63
INSERT INTO VENDAS_DETALHES (venda, codigo, descricao, total, quantidade)
64
(SELECT *
65
FROM OPENXML(@handle, /PRODUTOS/VENDA,2)
66
WITH (
67
VENDA VARCHAR(100) @ID,
68
CODIGO INT,
69
DESCRICAO VARCHAR(100),
70
TOTAL DECIMAL(10,2),
71
QUANTIDADE INT
72
)
73
)
74
/*Libera a rea de memria alocada pelo documento no primeiro passo.*/
75
EXEC sp_xml_removedocument @handle
76
77
DECLARE @HASH VARCHAR(100) = (SELECT conversation_handle FROM
@tabelaStage)
78
79
INSERT INTO LOG_BROKER_MANUAL (HASH_MENSAGEM, INICIO, FINAL)
80
VALUES (@HASH, @INICIO, GETDATE())
81
82
COMMIT TRANSACTION;
83
end
84
85
END --while
86
87 END PROC
14 TOTAL DECIMAL(10,2),
15 QUANTIDADE INT
16 )
17
18 --TABELA QUE IR ARMAZENAR LOG DE EXECUO DE CADA IMPORTAO.
19 CREATE TABLE LOG_BROKER_MANUAL(
20 ID INT IDENTITY(1,1),
21 HASH_MENSAGEM VARCHAR(100),
22 INICIO DATETIME,
23 FINAL DATETIME,
24 DATA_REGISTRO DATETIME DEFAULT(GETDATE())
25 )
21
21
Troca de Mensagens
Para que possamos simular uma troca de mensagens real, ser
necessrio que um documento XML seja criado e fornecido como
um parmetro para o SQL Server. A Listagem 8 apresenta um
trecho de um documento XML que representa a venda de livros.
Na linha 3 declaramos uma varivel do tipo XML, que ser
usada para armazenar o documento XML relacionado venda
de livros e uma varivel uniqueidentifier (@dialog_id), que ser
usada na Listagem 9 como parte da sintaxe de criao de uma
conversation. As demais linhas da listagem definem um conjunto
de dados de venda.
Listagem 8. Documento XML
01 --Para nosso exemplo usaremos um XML que simula a troca de mensagens
02 --de venda de livros.
03 declare @mensagem xml, @dialog_id uniqueidentifier
04 set @mensagem =
05 <?xml version=1.0?>
06 <PRODUTOS TIPO=XML_SQLMAGAZINE>
07 <VENDA ID=2 VENDEDOR=DHIEGO PIROTO DATA=2015/01/01>
08 <CODIGO>12</CODIGO>
09 <DESCRICAO>GUIA DE BOLSO MSSQL SERVER</DESCRICAO>
10 <TOTAL>331.99</TOTAL>
11 <QUANTIDADE>10</QUANTIDADE>
12 </VENDA>
13 <VENDA ID=2 VENDEDOR=DHIEGO PIROTO DATA=2015/01/01>
14 <CODIGO>15</CODIGO>
15 <DESCRICAO>C# GUIA DO PROGRAMADOR</DESCRICAO>
16 <TOTAL>59.90</TOTAL>
17 <QUANTIDADE>3</QUANTIDADE>
18 </VENDA>
19 <VENDA ID=2 VENDEDOR=DHIEGO PIROTO DATA=2015/01/01>
20 <CODIGO>14</CODIGO>
21 <DESCRICAO>GUIA DO XML</DESCRICAO>
22 <TOTAL>95.9</TOTAL>
23 <QUANTIDADE>10</QUANTIDADE>
24 </VENDA>
25 </PRODUTOS>
22
Consultando Filas
Se voc quiser saber quantas mensagens ainda esto em uma
dada fila, basta executar uma instruo select simples no objeto
queue. A consulta a seguir retorna a lista de mensagens aguardando para serem processadas. A Figura 2 apresenta o resultado
da execuo da consulta:
SELECT CONVERT(NVARCHAR(MAX),MESSAGE_BODY), --Mensagem
*
FROM SQLMAG_BROKER_DEMO_FILA_SAIDA
Monitoramento de Filas
Assim como todo produto Microsoft, possivel monitorar o
comportamento de uma determinada funcionalidade atravs do
Autor
Dhiego Piroto
dhiegopiroto@gmail.com
Graduado em Sistemas de Informao. Atua h seis anos na rea
de TI, apoiado na tecnologia de banco de dados SQL Server 2005
a 2014. Possui o ttulo de MCP e MCTS Microsoft SQL Server e membro
ativo da comunidade MSDN SQL Server.
Links:
Service Broker Performance
https://technet.microsoft.com/en-us/library/ms166135(v=sql.105).aspx
Uso do ssbddiagnose Utility
https://msdn.microsoft.com/en-us/library/bb934450.aspx
Perfmon
https://technet.microsoft.com/en-us/library/ms166069(v=sql.105).aspx
23
23
Estratgias de backup e
restore no PostgreSQL
Saiba como criar um ambiente robusto
24
Os logs de WAL nada mais so do que um histrico das transaes ocorridas no banco de dados. Todas as operaes so gravadas primeiramente nos logs de transao para s depois serem
escritas nos arquivos de dados do banco, tambm conhecidos com
datafiles. Por isso a importncia deles no desempenho, pois como
temos a certeza de que os logs possuem a informao guardada,
o banco no precisa ficar se preocupando em gravar todas as
alteraes em tempo real nos datafiles.
Os arquivos de WAL tambm so necessrios para integridade.
Com o histrico guardado nos arquivos de log, mesmo as informaes que ainda no foram salvas nos datafiles depois de uma
queda de energia ou outro desastre podem ser refeitas. Esse processo chamado de roll-foward recovery, tambm conhecido como
REDO. Em resumo o fluxo seria: usurio inseriu uma informao
e logo em sequncia realizou um commit; os dados so descarregados do buffer dos logs para os arquivos de redo, para s depois
serem escritos nos arquivos do banco de dados.
No PostgreSQL, os arquivos de log so armazenados dentro do
diretrio pg_xlog que fica armazenado no diretrio de dados da
sua instncia. Por padro, o banco inicia com 3 segmentos WAL.
Estes segmentos possuem um tamanho total de 16M e so compostos por blocos de 8k.
25
25
26
Aps a criao do usurio com o privilgio Replication, precisamos adicionar uma nova linha ao arquivo pg_hba.conf. Essa nova
linha necessria para que nosso novo usurio possa se conectar
ao banco de dados. Como este arquivo pode variar em cada instalao, usaremos o comando show hba_files para descobrir onde
ele se encontra, como mostrado na Listagem 3.
Feito isso, adicione a linha apresentada na Listagem 4 ao final
do arquivo pg_hba.conf. Logo em seguida, reinicie o banco de
dados para que as mudanas tenham efeito.
Depois de configurar o arquivamento, iremos realizar o backup completo de toda estrutura da base. Usaremos o utilitrio
pg_basebackup passando os parmetros necessrios para nossas
configuraes:
01 pg_ctl stop
02 mkdir -p /bkp_antes_restore
03 chown postgres.postgres /bkp_antes_restore
04 cp -r /postgres/* /bkp_antes_retore/
05 cd /backup/31102015/
06 tar -xvf base.tar.gz -C /postgres/
Cenrio 1
J temos nosso backup base restaurado, agora precisamos realizar a recuperao completa do nosso banco de dados. Para isso,
precisamos criar o arquivo recovery.conf. Este arquivo passa ao
PostgreSQL os parmetros necessrios para o recovery. Nesse
cenrio iremos indicar apenas a localizao das sequncias arquivadas dos logs de WAL e durante o processo de incio do banco
de dados sero lidos e aplicados todos os logs de REDO para que
o banco seja recuperado at a ltima sequncia gerada. Observe
como proceder no cdigo a seguir:
-- Recuperao completa
restore_command = cp /backup/archives/%f %p
Aps a leitura e recuperao usando os logs arquivados, o PostgreSQL ir renomear o arquivo recovery.conf para recovery.done
indicando que ele realizou a recuperao conforme solicitado
no arquivo.
Cenrio 2
A diferena deste cenrio que aqui iremos realizar a recuperao para um determinado perodo no tempo e no necessariamente at a ltima sequncia arquivada. Assim como no primeiro
cenrio, aps a restaurao do backup base, iremos criar o arquivo
recovery.conf, porm aqui sero necessrias algumas linhas a mais
no arquivo, conforme mostrado a seguir:
recovery_target_time=2015-10-31 13:30:42
recovery_target_inclusive = true
restore_command = cp /backup/archives/%f %p
27
27
recovery_target_inclusive: indica que a recuperao ser realizada at o momento descrito no comando. Se a opo escolhida
fosse false, ento a recuperao iria ocorrer at um perodo menor
do que o indicado no comando;
restore_command: indica o local onde esto os arquivos.
Existem outras configuraes durante a recuperao. Recomendamos a leitura da documentao para se aprofundar no assunto
(veja seo Links).
Autor
Thiago Lima de Castro
thiago_L_C@hotmail.com
Possui 8 anos de experincia na rea de banco de dados. Atuou
em vrios projetos de alta disponibilidade usando tecnologias
Oracle em ambiente de misso crtica. Possui certificaes Oracle OCP,
OCE, ITIL Foundation e IBM DB2. Graduado em Telemtica pelo IFCE Instituto Federal de Educao, Cincia e Tecnologia do Cear. Atualmente trabalha como
DBA alocado no Tribunal de Justia do Cear.
28
Replicando DB
relacional na nuvem da
Amazon
Uma forma simples de garantir disponibilidade e
contingncia de dados
Melhorias em consultas SQL um assunto velho e muito debatido em diversos fruns. Mas preciso que o analista ou desenvolvedor tenha em mente uma boa estrutura de dados, que permita
consultas inteligentes e rpidas. Nos casos de grandes massas de
dados e muitos acessos de leitura, muito importante entender
sobre normalizao e desnormalizao.
A acessibilidade, disponibilidade e contingncia so essenciais
em quase todas as aplicaes, principalmente nas aplicaes mveis e empresas de servio online. Atravs do console do AWS,
podemos melhorar nossa base de dados com uso de rplicas de
leitura para ter mais desempenho, rplica Multi-AZ para maior
segurana, ou unindo os dois recursos para obter maior desempenho e segurana. Tudo isto pode ser feito sem entender de cdigo
ou ter profundos conhecimentos de banco de dados.
29
29
30
Preparando o ambiente
Antes de criar nosso banco de dados e replic-lo, precisamos
fazer nosso plano de estrutura. Devemos pensar sobre a real
necessidade da base de dados e tentar prever os detalhes, tendo
respostas para perguntas como:
De que forma vamos utilizar nossa base de dados?
Como ele ser acessado?
Onde ele precisa estar?
Qual o tamanho necessrio para armazenamento?
Qual a banda de acesso necessria?
A Amazon oferece data centers nas principais regies do mundo.
Isto facilita muito a escolha do local onde ser instalado o banco de
dados. Voc pode escolher colocar a base de dados bem prxima
da sua regio ou da regio onde seus clientes esto. Ter a base de
dados prxima ajuda a obter uma melhor latncia.
No Brasil, a Amazon possui data centers no Rio de Janeiro e em
So Paulo, mas os custos so mais elevados que os data centers
nos EUA devido aos impostos brasileiros. Por isso, muitas vezes
prefervel perder um pouco em latncia e pagar menos utilizando
servios fora do pas.
31
31
32
33
33
34
35
35
36
37
37
38
Autor
Antonio Marcos Ferreira
hipertrix@gmail.com
Graduado em Sistemas Para Internet pela Faculdade Metrocamp
IBTA em Campinas. Co-fundador da empresa W3da, onde
desempenha o papel de Gesto de Negcios, BI e P&D. Com mais de
15 anos de experincia em sistemas para internet, sendo destes 6 anos
focados em sistemas de gesto de cartes de crdito e dbito.
Links:
O que so IOPS?
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html
Sobre a Amazon Aws
https://aws.amazon.com/pt/enterprise/
O que so EC2?
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
Implantaes Multi-AZ do Amazon RDS
https://aws.amazon.com/pt/rds/details/multi-az/
Amazon RDS: Announcing Read Replicas
https://aws.amazon.com/pt/blogs/aws/amazon-rds-announcing-read-replicas/
39
39
Minerao de texto:
Anlise comparativa de
algoritmos
Avaliao de acurcia, cobertura, preciso e
tempo de execuo
randes massas de dados so geradas diariamente pelos sistemas que apoiam as atividades
rotineiras das organizaes, dificultando a
tarefa analtica dos gestores. Diante dessa necessidade,
surgiram os Sistemas de Apoio Deciso (SADs) que
permitem apoiar, contribuir e influenciar no processo
de tomada de deciso. Os SADs permitem, a partir dos
dados transacionais da organizao, gerar informaes
gerenciais que facilitam o referido processo.
Como grande parte dos dados manipulados pelas organizaes est em formato textual, torna-se fundamental o
uso da tcnica de minerao de texto (tambm conhecido
por Knowledge Discovery in Texts, KDT) para identificar
padres e conhecimentos para auxiliar nas decises.
O conhecimento gerado pode ser avaliado para determinar se o mesmo relevante ou no para o usurio, ou
seja, avaliar o desempenho do processo de minerao
para a gerao do conhecimento. Existem vrias mtricas, sendo as principais relacionadas ao desempenho,
acurcia, preciso e cobertura.
Neste artigo iremos apresentar um estudo de caso
realizado em uma organizao ABC. A ACB lida com
um imenso volume de informaes, sendo necessria a
utilizao de mecanismos que tornem efetivas as atividades de auditoria. Auditoria a atividade que realiza
a validao das informaes, verificao da obedincia
s normas e recomendaes e avaliaes dos controles
em busca dos resultados da gesto. Objetivando atender
as necessidades da ABC, desenvolvemos uma aplicao
que realiza a minerao de texto em qualquer campo
descritivo de um sistema, a ferramenta TextMining.
A aplicao permite determinar se uma descrio
ou no evidncia de irregularidade, tornando efetivo o
40
trabalho do auditor na identificao de irregularidades. Para classificar uma descrio, a ferramenta dispe de um algoritmo, Nave
Bayes, de forma parametrizada, especificando um limiar mnimo
para auxiliar no processo classificatrio. importante destacar
que existem trs mtodos para o Nave Bayes: Hbrido (utilizao da frequncia do termo da amostra com tf, term frequency,
da sentena), Frequncia Inversa (tfidf, term frequency inverse
document frequency, da amostra com tf da sentena) e Frequncia
(frequncia da amostra com frequncia da sentena).
Este trabalho introduziu um segundo algoritmo, Similaridade,
na ferramenta citada e foram avaliadas as mtricas de qualidade
e desempenho para as duas abordagens. A avaliao se deu por
meio da coleta de mtricas de tempo mdio, acurcia, cobertura,
medida F e preciso de cada algoritmo.
Assim, este artigo objetiva comparar o desempenho e qualidade
de dois algoritmos de minerao de texto aplicados a histricos
de contas pblicas custodiadas pela organizao ABC. A anlise
comparativa determinar o melhor algoritmo da ferramenta
Minerao de Texto
41
41
42
Similaridade de documentos
Um documento pode ser considerado um vetor de termos. Cada
elemento do vetor considerado uma coordenada dimensional e
os documentos podem ser colocados num espao euclidiano de
n dimenses onde n o nmero de termos. A posio do documento em cada dimenso dada pelo peso (pontuao calculada
na fase de indexao). A distncia entre um documento e outro
o grau de similaridade. Documentos que possuem os mesmos
termos acabam sendo colocados numa mesma regio no espao
euclidiano, ou seja, so similares.
A similaridade entre dois documentos tambm pode ser obtida
pelos termos que ocorrem em ambos, ou seja, pelos termos compartilhados. Os documentos mais similares so os que possuem
mais termos em comum. No clculo da similaridade, so ignorados os termos que ocorrem em um documento e que no ocorrem
no outro. Em outras palavras, s interessam os termos que ocorrem
nos dois, isto , a ocorrncia positiva desse em ambos.
Similaridade considerada o corao do mtodo de classificao K-Nearest-Neighbor. A diferena entre ambos que no
d2
43
43
()
()
()
44
Classificado como
Classe 1
Classe 2
...
Classe n
Classe 1
V1,1
V1,2
...
V1,n
Classe 2
V2,1
V2,2
...
V2,n
...
...
...
...
...
Classe n
Vn,1
Vn,2
...
Vn,n
Predicted class
Positive
Negative
Positive
Negative
Ferramenta TextMining
O TextMining permite determinar se informaes so ou no
evidncias de irregularidades, ou seja, se uma descrio est ou
no de acordo com a lei e com o que se espera dos jurisdicionados. Desta forma, a ferramenta tem como objetivo tornar efetivo
o trabalho do auditor na identificao de irregularidades. Suas
principais funcionalidades so o gerenciamento de perfis, de
dicionrios e de classificaes. Considera-se gerenciamento o
conjunto de funes relacionadas ao cadastro, edio, consulta,
excluso e visualizao de informaes.
Iniciando pelo gerenciamento de perfis, este um mecanismo
que auxilia nas consultas por meio dos filtros anexados aos
perfis. Conforme mostrado na Figura 14, por meio deles que
o usurio poder determinar dinamicamente os campos que
deseja filtrar nas telas, nas quais poder escolher o perfil. Na
TextMining, est disponvel para o usurio as funcionalidades
de cadastro, consulta e excluso.
A criao de um perfil poder ocorrer s uma vez e pode ser
compartilhado por todos os usurios. Como o custo da operao
muito baixo, se houver a necessidade de alterao dele, basta
exclu-lo e criar outro novamente. Esta caracterstica torna a
aplicao flexvel e genrica atravs da gerao de perfis de
consulta diferenciados para qualquer tabela e campos contidos
na base de dados.
45
45
46
Mdulo Dicionrio:
- A tela de criao de dicionrios foi alterada para permitir
a incluso de amostras avulsas;
- A tela de consulta de dicionrios foi alterada para que os
botes Editar e Excluir ficassem desabilitados quando
no existissem dicionrios cadastrados;
- A tela Dicionrios Bloqueados foi alterada para que o
boto Liberar ficasse desabilitado quando no existissem
dicionrios bloqueados.
Mdulo Classificao:
- Criao da classe similaridade, algoritmo de classificao;
- Criao da classe abstrata Classificador, superclasse das
classes Similaridade e NaiveBayes. A classe Classificador
possui um mtodo esttico ClassificadorFactory que retorna
um objeto do tipo Classificador, o qual pode ser uma instncia das classes NaiveBayes ou Similaridade;
- Na tela Classificao, o algoritmo Similaridade foi
includo nas opes de mtodos de classificao;
- Na tela Classificao, foram adicionados os percentuais
51 e 55 ao componente Limiar Classificao %;
- A tela Classificao foi alterada para os componentes
Dicionrios, Perfil, Limiar Classificao %, Mtodo,
Medidas, Filtros, Classificar e Descrio da Classificao serem desabilitados quando um processo classificatrio fosse iniciado;
- A tela de consulta de classificaes foi alterada para que os
botes Excluir e Detalhes ficassem desabilitados quando
no existissem classificaes cadastradas;
- As alteraes da tela Dados da Classificao foram:
- Criao do componente Tempo de Classificao para
visualizar o tempo da classificao realizada;
- Atribuio do valor --- para o componente Limiar
de Classificao % quando o algoritmo de minerao
utilizado no for o Nave Bayes, porque este o nico
que utiliza limiar;
- Parametrizao da tabela Evidncias, em que o label
e os valores da coluna do Limiar/Score sero formatados
de acordo com o algoritmo utilizado na classificao.
Por exemplo, caso o algoritmo seja Nave Bayes, o label
da coluna ser Limiar e os valores da coluna estaro
formatados em porcentagem, mas se for escolhido Similaridade, o label da coluna ser Score e os valores
da coluna estaro formatados em nmeros com casas
decimais.
Implementamos uma adaptao do algoritmo de similaridade
de documentos. O mtodo convencional de similaridade realiza um clculo de similaridade entre todos os documentos do
dicionrio e o documento a ser classificado, apenas levando
em conta os termos que ocorrem em ambos.
Para classificar o novo documento, o algoritmo convencional
apenas considera as ocorrncias do maior score, ignorando
todos os outros. Nessa abordagem, existe a possibilidade de
47
47
Entrada:
sc, sentena a ser classificada como Evidncia ou Em Conformidade
dic, dicionrio utilizado para classificar a sentena
Sada:
result, resultado da classificao da sentena, ou seja, objeto ResultadoGenerico contendo a classe e o score da sentena classificada
1. Calcular o tf (term frequency) para cada termo de sc.
2. Para cada amostra que contenha pelo menos um termo de sc,
calcular o score para cada amostra, criar um objeto ResultadoGenerico para cada amostra analisada, contendo nesse objeto a classe
da amostra e o score calculado e, por fim, armazenar o objeto no
vetor de ResultadoGenerico.
3. Ordenar o vetor de ResultadoGenerico em ordem crescente
pelo score.
4. Se o vetor estiver vazio Ento
Retorne um objeto ResultadoGenerico com classe igual a falso
e score
igual a zero.
Seno
5. Se o vetor possuir apenas um elemento Ento
Retorne o nico objeto ResultadoGenerico dentro do vetor.
Seno
6. Se dentre os objetos ResultadoGenerico no vetor existe apenas
uma ocorrncia de um objeto com o maior score Ento
Retorne o objeto ResultadoGenerico com maior score.
Seno
7. Para todas as ocorrncias dos objetos ResultadoGenerico com
maior score, realizar a contagem de objetos que possuem classe
igual a falso (Em Conformidade) e tambm os que possuem
classe igual a verdadeiro (Evidncia).
8. Se a quantidade de verdadeiro for maior que a de falso Ento
Retorne um objeto ResultadoGenerico com classe igual a
verdadeiro e score igual ao maior score.
Seno
9. Se a quantidade de falso for maior que a de verdadeiro Ento
Retorne um objeto ResultadoGenerico com classe igual a falso
e score igual ao maior score.
Seno
10. Enquanto no for possvel classificar a sentena (quantidade de
verdadeiros e falsos forem iguais) e nem todos os objetos do vetor
foram analisados, realizar os passos 6 a 9, considerando que o novo
maior score ser o score do objeto ResultadoGenerico que antecede a
primeira ocorrncia do objeto que possui o atual maior score.
11. Se no foi possvel classificar analisando todos os elementos
do vetor Ento
Retorne um objeto ResultadoGenerico com classe igual a falso e score
igual a zero.
Estudo de caso
A realizao do estudo de caso teve por objetivo principal a
validao dos resultados emitidos pela ferramenta TextMining
para deteco de irregularidades nos pagamentos de dirias
48
Dicionrio utilizado
Diria uma espcie de auxlio financeiro ou ajuda de custo
para um colaborador prestar algum servio fora da localidade do
rgo ao qual esteja vinculado. Em outras palavras, um auxlio
recebido pelo colaborador com o intuito de custear seus gastos
para a realizao de servio fora do local de trabalho. A concesso
de dirias diversificada, pois abrange gastos referentes capacitao, viagens para reunies com superiores, entre outras.
Diante do exposto, proibida a concesso de dirias para
fins que no sejam relacionados prestao de servio.
Existem inmeras justificativas consideradas evidncias
de irregularidades para concesso de dirias como realizao de uma viagem particular. Assim, para a definio do
Sentena Evidncia
A SERVIO DA ASSEMBLEIA
A TRABALHO
CONSULTA MDICA
DESPESAS MDICA
REVISO MDICA
TRATAMENTO MDICO
TRATAMENTO DE SADE
TRATAMENTO DE SADE
TRATAMENTO DE SADE
TRATAMENTO DE SADE
TRATAMENTO DE SADE
49
49
AMOSTRAS AVULSAS
Sentena Em Conformidade
Sentena Evidncia
ABLATIVA; ABORTO; ACUPUNTURA; ALOPATIA; AMPUTAO; ANESTESIA; ANTI-SEPSIA; APENDICECTOMIA; ASSEPSIA; AUSCULTAO; AUTPSIA; BARITRICA; BIPSIA; CABEA; CARDACA; CAUTERIZAO; CHECK-UP; CIRURGIA;
COLUNA; COSTURA; DRENO; ...
AMBULATRIO; ASSISTNCIA MDICA; ATENDIMENTO MDICO; CARDIOGRAMA; CLNICA; CONSULTA MDICA; CONSULTRIO; DIAGNSTICO MDICO; DESPESA MDICA; ELETROENCEFALOGRAMA; EMERGNCIA; EXAMES MDICOS;
HISTRICO DE SADE; HOSPITAL; LAUDO; PERCIA MDICA; POLICLNICA; PROCEDIMENTO DE SADE; PRONTOSOCORRO; QUADRO CLNICO; RADIOGRAFIA; REVISO MDICA; VACINA
50
Classificado como
Classificao Correta
Evidncia
Em Conformidade
Evidncia
NSCCE
NSCEC
Em Conformidade
NSCEE
NSCCC
Resultados
Aps a realizao do estudo de caso, foram coletados os valores
das matrizes de confuso de cada execuo para cada algoritmo
e unidade escolhida. Com os valores das matrizes de confuso
foi possvel coletar as mtricas para avaliar todas as abordagens.
Vale ressaltar que para um mesmo algoritmo e unidade gestora,
Unidades
Unidade A
Unidade B
Unidade C
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
136
137
137
137
363
363
363
362
613
603
603
588
457
449
449
430
Tabela 6. Valores da matriz de confuso por algoritmo e unidade gestora Diagonal Principal
Valores da Matriz de Confuso Diagonal Secundria
NSCEE (FP)
NSCEC (FN)
Unidades
Unidade A
Unidade B
Unidade C
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
11
21
21
36
40
48
48
67
Tabela 7. Valores da matriz de confuso por algoritmo e unidade gestora Diagonal Secundria
Execues
Preciso
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
1 Exec.
99,80 %
100 %
100 %
99,80 %
100 %
100 %
100 %
99,28
%
2 Exec.
99,80 %
100 %
100 %
99,80 %
100 %
100 %
100 %
99,28
%
3 Exec.
99,80 %
100 %
100 %
99,80 %
100 %
100 %
100 %
99,28
%
Mdia
99,80 %
100 %
100 %
99,80 %
100 %
100 %
100 %
99,28
%
Execues
Tabela 8. Comparativo das mtricas acurcia e preciso para cada algoritmo na Unidade A
1 Exec.
2 Exec.
3 Exec.
Mdia
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
99,27 %
100 %
100 %
100 %
99,63 %
100 %
100 %
99,64 %
99,27 %
100 %
100 %
100 %
99,63 %
100 %
100 %
99,64 %
99,27 %
100 %
100 %
100 %
99,63 %
100 %
100 %
99,64 %
99,27 %
100 %
100 %
100 %
99,63 %
100 %
100 %
99,64 %
Tabela 9. Comparativo das mtricas cobertura e medida F para cada algoritmo na Unidade A
Execues
1 Exec.
2 Exec.
3 Exec.
Mdia
N.B.
H.
N.B.
F.
SIM.
135,88 s
133,49 s
146,79 s
84,78 s
135,24 s
139,28 s
153,68 s
83,39 s
134,64 s
134,81 s
156,64 s
82,22 s
135,25 s
135,86 s
152,37 s
83,46 s
Tabela 10. Comparativo da mtrica tempo de execuo para cada algoritmo na Unidade A
51
51
Execues
1 Exec.
2 Exec.
3 Exec.
Mdia
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
98,08 %
98,08 %
98,08 %
98,08 %
96,64 %
96,64 %
96,64 %
96,64 %
96,64 %
96,64 %
96,64 %
96,64 %
94,08 %
94,08 %
94,08 %
94,08 %
Preciso
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
0,00 %
0,00 %
0,00 %
0,00 %
4,55 %
4,55 %
4,55 %
4,55 %
4,55 %
4,55 %
4,55 %
4,55 %
0,00 %
0,00 %
0,00 %
0,00 %
Tabela 11. Comparativo das mtricas acurcia e preciso para cada algoritmo na Unidade B
Execues
N.B.
H.
N.B.
F.
SIM.
1 Exec.
0,00 %
100 %
100 %
2 Exec.
0,00 %
100 %
3 Exec.
0,00 %
Mdia
0,00 %
Medida F
N.B.
H.
N.B.
F.
0,00 %
8,70 %
8,70 %
100 %
0,00 %
8,70 %
8,70 %
100 %
100 %
0,00 %
8,70 %
8,70 %
100 %
100 %
0,00 %
8,70 %
8,70 %
N.B. F.I.
SIM.
Tabela 12. Comparativo das mtricas cobertura e medida F para cada algoritmo na Unidade B
Execues
1 Exec.
2 Exec.
3 Exec.
Mdia
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
256,01 s
268,49 s
276,44 s
159,55 s
259,67 s
258,26 s
266,54 s
158,14 s
254,64 s
271,76 s
291,13 s
159,16 s
256,77 s
266,17 s
278,04 s
158,95 s
Execues
Tabela 13. Comparativo da mtrica tempo de execuo para cada algoritmo na Unidade B
1 Exec.
2 Exec.
3 Exec.
Mdia
Preciso
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
SIM.
92,00 %
90,40 %
90,40 %
86,40 %
6,98 %
5,88 %
5,88 %
2,90 %
92,00 %
90,40 %
90,40 %
86,40 %
6,98 %
5,88 %
5,88 %
2,90 %
92,00 %
90,40 %
90,40 %
86,40 %
6,98 %
5,88 %
5,88 %
2,90 %
92,00 %
90,40 %
90,40 %
86,40 %
6,98 %
5,88 %
5,88 %
2,90 %
Execues
Tabela 14. Comparativo das mtricas acurcia e preciso para cada algoritmo na Unidade C
1 Exec.
2 Exec.
3 Exec.
Mdia
N.B.
H.
N.B.
F.
SIM.
N.B. F.I.
N.B.
H.
N.B.
F.
100 %
100 %
100 %
66,67 %
13,04 %
11,11 %
11,11 % 5,56 %
100 %
100 %
100 %
66,67 %
13,04 %
11,11 %
11,11 % 5,56 %
100 %
100 %
100 %
66,67 %
13,04 %
11,11 %
11,11 % 5,56 %
100 %
100 %
100 %
66,67 %
13,04 %
11,11 %
11,11 % 5,56 %
Tabela 15. Comparativo das mtricas cobertura e medida F para cada algoritmo na Unidade C
52
SIM.
Execues
Tempo de Execuo
N.B.
F.I.
N.B.
H.
N.B.
F.
SIM.
1 Exec.
184,19 s
201,97 s
245,13 s
117,37 s
2 Exec.
212,91 s
185,20 s
311,77 s
114,61 s
3 Exec.
187,70 s
194,69 s
256,87 s
119,11 s
Mdia
194,93 s
193,95 s
271,26 s
117,03 s
Tabela 16. Comparativo da mtrica tempo de execuo para cada algoritmo na Unidade C
53
53
Autor
Autor
Methanias Colao Jnior
mjrse@hotmail.com
Possui doutorado pela Universidade
Federal da Bahia. Atua especialmente
na interface entre a Tecnologia da Informao
e as estratgias de Gesto e Marketing. Atualmente professor da Universidade Federal de Sergipe. Possui
1 livro publicado.
Figura 24. Grfico da mtrica tempo mdio de execuo
54
55
55
56
57
57
58
Nota
Sempre teste as entradas TNSNAMES conectando efetivamente
na mquina. O TNSPING somente testa se o listener est no ar.
No testa se SERVICE_NAME ou SID esto ativos, nem se o
database est pronto para receber conexes.
Nota
O tamanho dos standby redo logs deve sempre ser
correspondente ao tamanho dos redo logs existentes na
base primria. A quantidade recomendada de pelo menos
a quantidade de grupos existentes na produo + 1 em
ambientes single. Em ambientes RAC deve-se usar a seguinte
equao:
(nmero mximo de redo log groups por thread + 1) * nmero
mximo de threads.
59
59
60
61
61
62
63
63
Start observer;
64
65
65
DG1
DG2
Observer
Tabela 1. Sequncia de acontecimentos em uma simulao de falha em que o observer realiza o failover automaticamente
disponibilidade de bancos de dados Oracle, e o Fast-Start Failover facilita o trabalho de Failover em caso de problemas com o
ambiente primrio de forma bastante segura. Esta funcionalidade
faz parte do pacote oferecido pelo Oracle Enterprise Edition, bastando que os processadores do servidor standby tambm sejam
licenciados como Enterprise Edition.
Como complemento ainda pode ser habilitada a option Active
Data Guard, que permite manter aberto em read only o banco de
dados secundrio (standby), enquanto o mesmo recebe transaes
do banco primrio. Esta option paga especialmente interessante
em bancos de dados que possuem aplicaes que realizam somente leitura, como gerao de relatrios ou anlises de BI ou cargas
(externas) de bancos DW.
Autor
Ivan Ricardo Schuster
ivanrs79@gmail.com
Com mais de 15 anos de carreira como DBA, j trabalhou
em diversos projetos de Bancos de Dados de alta criticidade,
apresentando solues para as mais diversas falhas de infraestrutura,
em ambientes de alta disponibilidade e alta complexidade. Possui
diversas certificaes Oracle, tais como OCP 10g, 11g e 12c, OCE RAC e Exadata, trabalha
atualmente na Teiko Tecnologia da Informao Ltda. como consultor DBA.
66
Links:
Guide to Oracle Data Guard Fast-Start Failover
http://www.oracle.com/technetwork/articles/smiley-fsfo-084973.html
Client Failover Best Practices for Highly Available Oracle Databases: Oracle
Database 11g Release 2
http://www.oracle.com/au/products/database/maa-wp-11gr2-client-failover-173305.pdf
Database High Availability Best Practices
https://docs.oracle.com/database/121/HABPT/config_dg.htm#HABPT4876
Programador Java:
Por onde comear?
Descubra nesse vdeo como entrar
na carreira Java com o p direito!
DEVMEDIA
http://www.devmedia.com.br/programador-java-por-onde-comecar/33638
Copyright - Proibido copiar ou distribuir. Todos os direitos reservados para DevMedia
67
67
68