Num ambiente replicado algumas vezes temos a necessidade de realizar a troca de papel (role) entre as base de dados (prod/stby), esta parte final visa criar um servico com que facilite o lado do cliente quando essa troca é feita, ela é realizada através de features como Oracle Restart e Dataguard Broker, onde é possivel identificar a troca de role entre as bases e iniciar servicos. A outra parte da configuração é feita através de de configuração dos arquivos de rede.
Ambiente:
Apenas para relembrar o ambiente que foi criado anteriormente, temos configurado conforme a seguir:
Dataguard - Parte 1 - Infra-estrutura
arametro | Producao | Standby |
Hostname | os-indaia-orcl-prod | os-indaia-orcl-stb |
ip | 192.168.1.61 | 192.168.1.62 |
SO | Oracle Linux 5.7 | Oracle Linux 5.7 |
Oracle Version | 11.2.0.3 | 11.2.0.3 |
DB Name | orcl | orcl |
Instance name | orcl | orclstby |
db_unique_name | orcl | orclstby |
service_name | orcl | orclstby |
Listener Name | listener_orcl | listener_orclstby |
Listener Port | 1523 | 1523 |
service_name | s_orcl_prd | s_orcl_stby |
Pre-requisitos
O Oracle Clusterware deve estar instalado em ambos os servidores, produção e standby.
1. Criando o Serviço base em regra (role-based service):
Como oracle, executar os comandos a seguir:
Produção:
srvctl add service -d orcl -s s_orcl_prd -l PRIMARY -q true -e select -m basic -z 10 -w 10
Standby:
srvctl add service -d orclstby -s s_orcl_prd -l PRIMARY -q true -e select -m basic -z 10 -w 10
Legenda:
-d = Database Name
-s = Service Name ( Será utilizado no tnsnames)
-l = Role of the service
-q = HA notifications
-e = Failover type
-m = Failover method
-z = Failover retries
-w = Failover delay
Para completa referencia pode ser executado : srvctl add service -help.
2. Iniciando o Servico em Produção:
Este servico deve ser iniciado somente em produção, o banco de standby este serviço não é iniciado, caso houver uma troca de role entre os DBs o Oracle Restart e Notification Service irão se encarregar de iniciar este serviço.
srvctl start service -d orcl -s s_orcl_prd
3. Criando as entradas de rede (Tnsnames.ora)
Esta entrada no tnsnames deve ser criada em ambos banco de dados:
Note que há duas entradas para direcionar para qual servidor deve ser conectar, como a conexao é baseada em servico, de acordo com a regra do serviço refem configurado o failover é a nivel de select e é feita de 1 a 10 tentativas com intervalos de 10 segundos, até estabelecer a nova conexão ou até o timeout.
orcl_prd =
(DESCRIPTION =
(ADDRESS_LIST =
(FAILOVER = ON)
(LOAD_BALANCE = OFF)
(ADDRESS = (PROTOCOL = TCP)(HOST = os-indaia-orcl-prod)(PORT = 1523))
(ADDRESS = (PROTOCOL = TCP)(HOST = os-indaia-orcl-stb)(PORT = 1523))
)
(CONNECT_DATA =
(SERVICE_NAME = s_orcl_prd)
)
)
Menu Inicial: Dataguard
Nenhum comentário:
Postar um comentário