Conceitos e Beneficios do HDR
- HDR permite que todos os dados em uma instancia IDS seja copiada em um outro servidor em uma rede;
- É uma “instace level”, tecnologia de replicação para fornecer copias de seus dados para outros servidores Informix.
- Não tem restrições, como exigir chaves primarias em suas tabelas, etc. Exige que seus bancos de dados sejam “logged”, no entento, sua tecnologia é baseada nos registros de logs. Isso não replica dados BLOBspaces.
- Sistemas Operacionais subjacentes e versão do IDS deve ser identica nos servidores envolvidos o HDR.
- Beneficios em caso de desastres: Servidores e Dados são redundantes minimizando o downtime
- Pode-se criar um Servidor de relatorios com o servidor secundario, tendo o beneficio da performance: descarregamentos de algumas atividades, queries no servidor secundario. Melhor performance.
- Dados locais para usuarios remotos, melhor performance.
HDR antes da versão 11
- Primario: Este é o servidor que os usuários normalmente se conectam. Permite atualizações de dados, como de costume. Este é a fonte de dados copiado para o secundario.
- Secundario: Um servidor de backup somente leitura que recebe atualizações do primario.
HDR (IDS 11.50)
- Primario: Este é o servidor que os usuários normalmente se concectam. Permite atualizações de dados como de costume. Este é a fonte de dados copiado para o secundario.
Uma das melhorias mais importantes em HDR a partir da versão 11.10 é que agora você pode ter multiplos servidores secundarios, ates você estava limitado a somente um servidor secundario. Alem disso, existem diferentes tipos de servidores secundarios que lhe permite uma configuração adequada para suas necessidades empresarias. - Secundario: Servidor de backup que recebe os dados do servidor primario. Ele também permite UPDATEs usando o “redirect writes” (ex, as atualizações são realmente enviadas para o servidor primario e, em seguida recebidos através de replicação.
- Checkpoints entre o servidor Primario e o HDR secundario são sempre sincronizados.
- Commits entre o servidor Primario e o servidor secundario pode ou não ser sincronizados (depende da sua configuração).
- Servidor secundario Standalone remoto (RSS): Um novo tipo de servidor secundario foi introduzido na versão 11.10 o que é atualizado em modo assincrono e tem mais conectividade mais flexivel com o servidor primário.
- Adequado para usar como um servidor de relatorios e tambem locais distantes geograficamente e em redes de baixa velocidade, para fazer balanceamento de CPU, memoria, e tambem como um rápido e facil failover se o servidor primario falhar.
- Requer indexação em paginas de logging.
- Shared Disk Secondary (SDS): Um novo tipo de servidor secundario introduzido na versão 11.10. Tal como o nome implica, ele não tem sua própria copia separada do espaços de disco. Discos compartilhados com o servidor primario.
- Normalmente usado com arrays de discos ou SAN
HDR no IDS 11.50
- Os servidores que participam do HDR são servidores IDS regulares, colocado em um papel especifico ( primario, HDR, secundario, RSS, SDS) usando o comando onmode.
- Pode haver um servidor primario, zero ou um HDR secundario, e zero, um multiplos servidores RSS e SDS em um clauster MACH 11 ( MACH = Multi node Active Cluster for High availability)
- Servidores RSS/SDS pode ser seus unicos servidores secundarios, ou eles podem ser utilizados com um HDR secundario.
- HDR é inicialmente configurado com um backup nivel zero e um physical restore (execto para servidores SDS).
- Após a configuração inicial, os dados entre os servidores são mantidos em sincronia usando os logical logs.
- DRINTERVAL – parametro onconfig que controla se a replicação ocorre de maneira assincrona ou sincrona.
- DRINTERVAL –1 – (sincrono, ex. servidor primario aguarda por notificação vindo do servidor secundario antes de descarregar o logical-log buffer, como um commit)
- DRINTERVAL outro valor exeto –1 ( assincrono – exemplo 30 segundos)
- HDR Threads
- drprsend: (primario) envia buffers
- drsecrecv: (secundario) recebe buffers
- drprping: (primario) checa a conectividade
- drsecping: (secundario) checa a conectividade
- drsecapply: (secundario) recepção da copia do buffer para o recuperação do buffer
- logrecvr: (secundario) recuperação logica – atualização dos dbspaces
- RSS_send: usa uma comunicação full duplex ( ex. sem aguardar o recebimento de uma notificação), esse thread envia paginas de logs para um servidor RSS. (roda no servidor primario)
- RSS_recv: recebe paginas de logs vinda do servidor primario. (roda no servidor RSS)
- RSS_apply: copia o conteudo do buffer de recepção para o buffer de recuperação. (roda no RSS server)
- Atualizando o servidor secundario através do Redirected Writes
- uma das melhorias mais significantes na versão HDR 11.50
- Servidores secundarios (todos os tipos) agora permitem atualizações de dados.
- As atualizações são transferidas para o servidor primario e então propagadas de volta para o servidor secundario
- Inserts, updates e deletes para a maioria dos tipos de dados são suportados.
- Usando as novas caracteristicas de controle de versões do IDS faz escritas redirecionadas trabalhando com maior eficiencia.
- Gerencimaneto de conectividade
- Novo componente de software que gerencia os pedidos de conexões a partir das aplicações clientes.
- Permite você definir niveis de serviços (SLAs) e configuração automatica failover.
- Monitora todos os servidores dentro do clauster.
- Pode decidir sobre o servidor mais adequado para a conexão da aplicação cliente.
- Planejar um servidor HDR é obrigação
- Requisitos de negocios ( ex. planejamento de recuperação de desastre, capacidade adicional de comunicação, dados locais) conduz a configuração técnica.
- Com base nos requisitos de negocios, hardware/software disponiveis e redes disponiveis, você decidira sobre o tipo e o numero de secundários.
- Sistema Operacional e versão do Informix tem que ser identica.
- Layouts dos chunks deve ser identico ( mas espelhamentos de chunks não há necessidade)
- Banco de dados devem ser logged.
Planejamento e configuração do HDR
DRAUTO
0 (OFF) – significa não mudar automaticamente o tipo de servidor.
1 (RETAIN_TYPE) – significa mudar automaticamente do secundario para o padrao se a replicação falhar, volta para o secundario quando o HDR reinicializar.
2 (REVERSE_TYPE) – significa mudar automaticamente do secundario para o padrao numa falha, para o primario quando o HDR reinicializar.
DRIDXAUTO
0 (off) significa que não há replicação automatica de indices para o secundario caso esteja corrompido.
1 (on) significa replicação automatica dos indices para o servidor secundario se os indices estiverem corrompidos. A configuração habilitada é requerida para servidores RSS.
DRINTERVAL
Interalo maximo, em segundos, entre a descarga do buffer de replição.
Valores aceitos –1, 0 e valores positivos inteiros
Valor padrão é de 30 segundos o que significa que se pode levar até 30 segundos para que as alterações do servidores primarios seja replicado para o servidor secundario.
-1 – significa configuração sincrona.
DRLOSTFOUND
Caminho para os arquivos lost&found da replicação.
Quando a replicação assincrona é utilizada e em caso de falha, isso possibilita que algumas transações sejam comitadas no servidor primario mas não no servidor secundario. Essas transações são armazenadas em um arquivo em lost&found.
DRTIMEOUT
Periodo de tempo, em segundos, que o servidor primario aguarda para receber uma notificação vinda do servidor secundario.
Após este periodo de tempo decorrido e sem notificação de recebimento, o Informix reconhece que houve uma falha.
Default é 30 segundos.
Passo a passo:
Requisitos e planejamento são completos e seguindo um cenário tipico é selecionado:
Primeiro passo:
Assegurar que todos os servidores tem o TCP/IP necessário configurados como por exemplo /etc/hosts.
vishnu server
vishnu:~ # cat /etc/hosts
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server.
# Syntax:
#
# IP-Address Full-Qualified-Hostname Short-Hostname
#
127.0.0.1 localhost
10.0.1.5 vishnu.ajmsolutions vishnu
10.0.1.9 isis.ajmsolutions isis
vishnu:~ #
isis server
isis:~ # cat /etc/hosts
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server.
# Syntax:
#
# IP-Address Full-Qualified-Hostname Short-Hostname
#
127.0.0.1 localhost
10.0.1.9 isis.ajmsolutions isis
10.0.1.5 vishnu.ajmsolutions vishnu
127.0.0.2 isis.ajmsolutions isis
isis:~ #
Segundo passo:
Assegurar que todos os servidores estão em modo de confiança entre si (“trust mode”) - /etc/hosts.equiv
vishnu server
vishnu:~ # cat /etc/hosts.equiv
#
# hosts.equiv This file describes the names of the hosts which are
# to be considered "equivalent", i.e. which are to be
# trusted enough for allowing rsh(1) commands.
#
# hostname
isis
vishnu:~ #
isis server
isis:~ # cat /etc/hosts.equiv
#
# hosts.equiv This file describes the names of the hosts which are
# to be considered "equivalent", i.e. which are to be
# trusted enough for allowing rsh(1) commands.
#
# hostname
vishnu
isis:~ #
Terceiro Passo:
Verifique se o serviço do informix (ports) de cada servidor não esta bloqueado e esta sendo reconhecido em cada servidor (/etc/services)
vishnu server
vishnu:~ # cat /etc/services |egrep "prdsrv|tstsrv"
prdsrv 1540/tcp
tstsrv 1550/tcp
vishnu:~ #
isis server
isis:~ # cat /etc/services |egrep "prdsrv|tstsrv"
prdsrv 1540/tcp
tstsrv 1550/tcp
isis:~ #
Quarto Passo:
Garantir que cada servidor tem entradas dos outros servidores em seus arquivos sqlhosts do Informix. Você deve usar uma conexão TCP/IP e não conexões de memorias compartilhadas para configuração do HDR.
vishnu server
informix@vishnu:/> cat $INFORMIXDIR/etc/sqlhosts
#**************************************************************************
#
# Licensed Material - Property Of IBM
#
# "Restricted Materials of IBM"
#
# IBM Informix Dynamic Server
# (c) Copyright IBM Corporation 1996, 2004 All rights reserved.
#
# Title: sqlhosts.demo
# Description:
# Default sqlhosts file for running demos.
#
#**************************************************************************
# IANA (www.iana.org) assigned port number/service names for Informix:
# sqlexec 9088/tcp
# sqlexec-ssl 9089/tcp
prd onipcshm vishnu prd
prdsoc onsoctcp vishnu prdsrv
tstsoc onsoctcp isis tstsrv
isis server
informix@isis:~> cat $INFORMIXDIR/etc/sqlhosts
#**************************************************************************
#
# Licensed Material - Property Of IBM
#
# "Restricted Materials of IBM"
#
# IBM Informix Dynamic Server
# Copyright IBM Corporation 1996, 2009
#
# Title: sqlhosts.demo
# Description: Default sqlhosts file for running demos.
#
#**************************************************************************
# The connectivity information for each database server includes four fields
# of required information and one optional field. You can also configure
# database server groups.
#
# The format for the five fields of connectivity information for a database
# server is one line in the UNIX sqlhosts file, as follows:
#
# <dbservename> <nettype> <hostname> <servicename> <options>
#
# dbservername is the name of a database server on the network.
#
# nettype is an 8-character string specifying the protocol in this format:
#
# ddiiippp
#
# where
# dd = Database product [|ol|on|dr]
# iii = Interface type [ipc|soc|tli|sql]
# ppp = Protocol [imc|nmp|shm|spx|str|tcp|ssl|mux]
#
# hostname is the name of the computer where the database server resides.
#
# servicename is a service name entry from the services file.
#
# options in the fifth field:
#
# b=<connection buffer size>
# c=<connection redirection>
# g=<group name>
# i=<group identifier>
# e=<end of group>
# m=<multiplexed connection>
# k=<keep alive setting>
# r=<client security setting>
# s=<server security setting>
# csm=<communication support module>
#
# To create an entry for a group, put a group name in the dbservername field,
# the word group in the nettype field, a hyphen in both the hostname and the
# servicename fileds, and i=<group identifier> in the options field.
#
# For additional information on the parameters, see the IBM Informix
# Administrator's Guide.
#**************************************************************************
# IANA (www.iana.org) assigned port number/service names for Informix:
# sqlexec 9088/tcp
# sqlexec-ssl 9089/tcp
tst onipcshm isis tst
tstsoc onsoctcp isis tstsrv
prdsoc onsoctcp vishnu prdsrv
informix@isis:~>
Quinto Passo:
Assegure-se que os seguintes valores do ONCONFIG estejam identicos entre os servidores.
ROOTNAME, ROOTPATH, ROOTOFFSET, ROOTSIZE
PHYSDBS, PHYSFILE
TAPEBLK, TAPESIZE, LTAPEBLK, LTAPESIZE
LOGFILES, LOGSIZE
DRAUTO, DRINTERVAL, DRTIMEOUT
Sexto Passo:
Pegue um archive nivel 0 do servidor primario (vamos utilizar mais adiante)
Setima Passo:
Configurar o servidor primario para iniciar como um primario ligando ao servidor secundario
informix@vishnu:~/etc> onmode -d primary tstsoc
Oitavo Passo
Restaurar o archive nivel 0 como uma restauração fisica no HDR secundario.
informix@isis:~> ontape -p
Restore will use level 0 archive file /ontapeDir/archiveDir/isis_0_L0. Press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: IBM Informix Dynamic Server Version 11.50.FC8GE
Archive date: Wed Apr 18 11:58:18 2012
User id: informix
Terminal id: /dev/pts/0
Archive level: 0
Tape device: /ontapeDir/archiveDir/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Spaces to restore:1 [rootdbs ]
2 [dbsphyslog ]
3 [dbslog ]
4 [dbsnfe ]
5 [prd ]
6 [dbscrm ]
Archive Information
IBM Informix Dynamic Server Copyright 2001, 2010 IBM Corporation.
Initialization Time 07/17/2011 00:47:09
System Page Size 2048
Version 18
Index Page Logging OFF
Archive CheckPoint Time 04/18/2012 11:58:17
Dbspaces
number flags fchunk nchunks flags owner name
1 40001 1 1 N B informix rootdbs
2 40001 2 1 N B informix dbsphyslog
3 40001 3 1 N B informix dbslog
4 42001 4 1 N TB informix dbstmp1
5 42001 5 1 N TB informix dbstmp2
6 42001 6 1 N TB informix dbstmp3
7 40001 7 1 N B informix dbsnfe
8 40001 8 8 N B informix prd
9 40001 16 1 N B informix dbscrm
Chunks
chk/dbs offset size free bpages flags pathname
1 1 0 150000 114833 PO-B /dbroot/rootdbs
2 2 0 500053 0 PO-B /dblogs/physlog/dbsphyslog
3 3 0 1750053 0 PO-B /dblogs/logs/dbslog
4 4 0 200053 199527 PO-B /dbtmp/dbstmp.1
5 5 0 200053 199750 PO-B /dbtmp/dbstmp.2
6 6 0 200053 199644 PO-B /dbtmp/dbstmp.3
7 7 0 1500053 1145313 PO-B /dbnfe/dbsnfe
8 8 0 1500053 63 PO-B /dblogix/prd.1
9 8 0 1500003 16 PO-B /dblogix/prd.2
10 8 0 1500003 18 PO-B /dblogix/prd.3
11 8 0 1500003 175 PO-B /dblogix/prd.4
12 8 0 1500003 284 PO-B /dblogix/prd.5
13 8 0 1500003 86187 PO-B /dblogix/prd.6
14 8 0 1500003 1500000 PO-B /dblogix/prd.7
15 8 0 1500003 1500000 PO-B /dblogix/prd.8
16 9 0 1000053 697460 PO-B /dblogix/crm.1
Continue restore? (y/n)y
Do you want to back up the logs? (y/n)y
File created: /ontapeDir/logicalLogs/isis_0_Log0000000007
File created: /ontapeDir/logicalLogs/isis_0_Log0000000008
Log salvage is complete, continuing restore of archive.
Restore a level 1 archive (y/n) n
Nono Passo:
Configure o servidor HDR secundario para inicializar como secundario ligando ao servidor primario
informix@isis:~/etc> onmode –d secondary prdsoc
Décimo Passo:
Verifique se agora você tem um HDR pariado
vishnu server
informix@vishnu:~> onstat -g dri
IBM Informix Dynamic Server Version 11.50.FC8GE -- On-Line (Prim) -- Up 03:04:24 -- 2857436 Kbytes
Data Replication at 0xd4caf028:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
primary on tstsoc -1 / -1 NA
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 0
DRLOSTFOUND /usr/informix/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
informix@vishnu:~>
isis server
informix@isis:~> onstat -g dri
IBM Informix Dynamic Server Version 11.50.FC8GE -- Fast Recovery (Sec) -- Up 01:03:41 -- 2889780 Kbytes
Data Replication at 0xf320f028:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
HDR Secondary on prdsoc -1 / -1 N
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 0
DRLOSTFOUND /usr/informix/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
informix@isis:~>
Muito bom, procurei outros tutoriais sobre HDR na internet e estava meio complicado, utilizei o seu e funcionou perfeitamente.
ResponderExcluirParabéns