0% encontró este documento útil (0 votos)
155 vistas

Creating A Physical Standby Database Using Oracle Dataguard 11g On Linux 5

Este documento describe cómo configurar una base de datos Oracle de copia de seguridad física utilizando Oracle Data Guard 11g en dos máquinas virtuales de Linux. Explica los pasos para instalar los sistemas operativos Oracle Linux en las máquinas virtuales, instalar el software de base de datos Oracle, configurar la base de datos primaria en el servidor 1 y crear e inicializar la base de datos de copia de seguridad física en el servidor 2.

Cargado por

josedx22
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
155 vistas

Creating A Physical Standby Database Using Oracle Dataguard 11g On Linux 5

Este documento describe cómo configurar una base de datos Oracle de copia de seguridad física utilizando Oracle Data Guard 11g en dos máquinas virtuales de Linux. Explica los pasos para instalar los sistemas operativos Oracle Linux en las máquinas virtuales, instalar el software de base de datos Oracle, configurar la base de datos primaria en el servidor 1 y crear e inicializar la base de datos de copia de seguridad física en el servidor 2.

Cargado por

josedx22
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 82

Creating a physical standby database using Oracle Dataguard 11g on

Linux 5.6 (ESP)


July 19, 2012EmmanuelLeave a commentGo to comments

En este post les mostrare como crear una base de datos Standby Fisica paso a paso, usando
Oracle Dataguard y Rman. Para completar la configuracin utilizaremos dos mquinas virtuales
las cuales simularemos que se encuentran ubicadas en localidades remotas (Santo Domingo,DR
y La Romana, DR).
Cada servidor virtual tendr una base de datos non RAC con el filesystem local para el
almacenamiento y el dataguard broker para administrar la configuracin.
Necesitaras:

Un equipo fsico con mas de 6 Gb de RAM y un procesador dual core o mas.


Descargar la media de Oracle Database 11g 11.2.0.3 64bits. Puedes hacerlo aqu
Descargar la imagen de Oracle Linux 5 U6 x86_64. Puedes hacerlo aqu.
A continuacin los detalles de cada mquina virtual

Server 1
Name:
Ram:
Location:
Hostname:
Ip:
Nic:
Db_name:
Role:

Server 2
oralab1
2.5 Gb
Santo Domingo, DR
oralab1.localdomain
192.168.10.151
1 briged adapter
stgdgo
Primary

Name:
Ram:
Location:
Hostname:
Ip:
Nic:
Db_name:
Role:

oralab2
2.5 Gb
La Romana, DR
oralab2.localdomain
192.168.10.152
1 briged adapter
romana
Physical Standby

La instalacin constara de las siguientes partes:


Parte I

Configuracin de mquinas virtuales


Instalacin de sistemas operativos
Parte II

Instalacin del software de bases de datos


Creacin y configuracin de base de datos primaria (stgdgo)
Creacin de la base de datos Standby
Configuracin del Dataguard Broker
Realizando cambios de roles.

Comencemos:
Parte I
Abrir el Oracle Virtual Box manager y hacer click en NEW para crear nuestra primera mquina
virtual.
Aqu les muestro:

Nuestra primera maquina virtual se llamara oralab1. Colocar el nombre oralab1, seleccionar
Oracle Linux 64 y continuar

Asignar 2500 Mb de RAM y continuar.

Crear el disco de nuestra maquina virtual siguiendo las siguientes pantallas.

El tamao de nuestro disco ser de unos 50 Gb, colocar 50.64 en la casilla y continuar

Presionar crate para crear nuestra primera maquina virtual

Ir a los settings de nuestra maquina virtual y seleccionar el tipo de adaptador briged para
nuestra tarjeta de red como se muestra en la pantalla siguiente.

Ejecutar por primera vez nuestra maquina virtual y hacer click en Next para continuar

Seleccionemos la imagen de nuestro sistema operativo y continuemos

Presionar start para iniciar la instalacin

Presionamos enter y continuamos

Seleccionamos SKIP para continuar con la instalacin y saltarnos la verificacin de la media.

Una vez termine de cargar el instalador, presionamos NEXT para continuar

Seleccionamos el idioma de nuestro sistema y teclado.

Al hacer click en next en la pantalla anterior nos pedir si deseamos formatear nuestro disco,
hacemos click en yes y continuamos

En la siguiente pantalla escogemos los valores por defecto y continuamos

Nos preguntara si deseamos borrar todo el disco, contestamos que si y continuamos

En la siguiente pantalla nos permitir configurar la red de nuestro servidor, editar los valores
como estn a continuacin

Seleccionar nuestra zona horaria y continuar

Entrar nuestro password de root y continuar

Seleccionar Customize now y continuar

Navegar a Base System/System Tools y seleccionar el paquete oracle-validated como


muestro a continuacin

En la prxima pantalla hacer click en next para comenzar la instalacin

Una vez termine, hacer click en reboot y esperar que reinicie.

Cuando termine de cargar el servidor, completar la instalacin siguiendo las pantallas siguientes

Una vez reinicie nuestro servidor necesitaremos entrar con el usuario: oracle y password:
oracle

Una vez dentro de nuestro servidor necesitaremos instalar en virtualbox guest addition,
encontrar la opcin en el men principal de nuestra maquina virtual debajo de Devices. Una vez
que la imagen se monte en nuestro servidor aparecer un cuadro como este:

Ya montada la imagen del Vboxguestaddicions, ejecutamos los siguientes comandos desde la


consola como root como se muestran en rojo en la siguiente pantalla
cp /media/VBOXADDITIONS_4.1.14_77440/VBoxLinuxAdditions.run ~

sh VBoxLinuxAdditions.run

Editaremos el archivo /etc/hosts con el contenido siguiente:

# Public oracle nodes


192.168.10.151 oralab1.localdomain oralab1
192.168.10.152 oralab2.localdomain oralab2

Edit los archivos /home/oracle/.bashrc y /home/oracle/.bash_profile y adjuntar el contenido


siguiente.

# Oracle Variables
export ORACLE_SID=stgdgo
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.3/db1
export ORACLE_HOSTNAME=oralab1.localdomain
export ORACLE_UNQNAME=stgdgo
export PATH=$PATH:$ORACLE_HOME/bin

Crear los directorios de instalacin con los siguientes sentencias.

chown -p /u01/app/oracle/product/11.2.3/db1
chown -R oracle:oinstall /u01
chown -R /u01

Para crear nuestra segunda maquina virtual clonaremos el disco perteneciente a la


maquinaoralab1 y lo renombraremos a oralab2 ubicndolo en otra unidad para aliviar el I/O.
Desde el equipo fsico Tu laboratorio, en mi caso es windows ejecutar el siguiente comando
desde el cmd o shell:

"C:\Program Files\Oracle\VirtualBox\"VBoxManage clonehd


"C:\Users\oracle\VirtualBox VMs\oralab1\oralab1.vdi"
"E:\Virtual_Disks\oralab2.vdi"

Una vez clonado nuestro disco, procederemos a crear nuestra segunda maquina virtual. S que
ya conocen el proceso, solo les mostrare las pantallas como gua.

Aqu es donde seleccionamos el disco clonado. En este caso esta en E:\Virtual_Disks\oralab2.vdi

Editamos las propiedades de nuestra segunda maquina virtual y cambiamos el modo de


operacin de nuestra nic a briged adapter como sigue:

Iniciamos nuestro segundo servidor virtual y editamos las interfaces de red como muestro aqui

Eliminamos la interfaz de sobra como muestro en la siguiente pantalla

Editamos la interfaz eth0 y colocamos los valores mostrados en la siguiente pantalla.

Editamos el hostname y los dns

Salvamos la configuracin y activamos la interfaz

Para probar conectividad hacer ping desde una maquina a otra con los siguientes comandos:

#Desde oralab1
ping oralab2
ping oralab1
#Desde oralab2
ping oralab1
ping oralab2

Parte II
Hasta este punto tendremos nuestros dos servidores virtuales listos para la instalacin del
software de base de datos.
En esta parte procederemos a instalar el software de base de datos en cada uno de nuestros
servidores virtuales. Comencemos con el servidor oralab1.
Entrar en el servidor oralab1 como el usuario Oracle y descomprimir la media de instalacin de la
base de datos.

unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip

Al descomprimir estos dos archivos se creara un folder llamado database entrar en este folder y
ejecutar el instalador con la sentencia:

./runInstaler

Una vez cargue el instalador proceder con el wizard acorde la las siguientes pantallas.

Al presionar ok, el instalador pedir que ejecutes dos scripts como root. Abrir otra terminal como
root y ejecutar los scripts.

Al ejecutar los scripts finaliza la instalacin

Abrimos el Enterprise manager para verificar

Ahora nos entramos en el servidor oralab2 como el usuario Oracle y editamos el archivo
/home/oracle/.bashrc y /home/oracle/.bash_profile con el siguiente contenido:

# Oracle Variables
export ORACLE_SID=romana
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.3/db1
export ORACLE_HOSTNAME=oralab2.localdomain
export ORACLE_UNQNAME=romana
export PATH=$PATH:$ORACLE_HOME/bin

Descomprimir los archivos de instalacin del software de bases de datos de igual forma que el
servidor oralab1.

unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
Dentro del folder creado llamado database ejecutar el instalador
./runInstaler

Seguir el proceso de instalacin acorde a las pantallas

Debido a que solo hicimos una instalacin solo del software en este servidor, debemos crear el
listener que este utilizara. Pueden hacerlo mediante el netca como muestra la siguiente pantalla

Seleccinar add para agregar un listener

nuevo
Dejar el nombre por defecto y continuar

Escogemos los protocolos a utilizar y continuamos.

Dejamos el puerto por defecto y continuamos

Seleccionamos que no deseamos crear otro listener y finalizamos

Verificamos el estatus de nuestro nuevo listener

Hasta en este punto tenemos nuestros servidores oralab1 y oralab2 configurados


completamente y con la base de datos stgdgo corriendo en el nodo oralab1 localizado en
Santo domingo.
Es tiempo que comencemos con la creacin de la base de datos romana que estar ubicada en
el servidor oralab2 localizado en La Romana. Desde el servidor oralab1 y con el
usuario oracleeditar el archivo
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = stgdgo_DGMGRL)
(SID_NAME = stgdgo)
(ORACLE_HOME = /u01/app/oracle/product/11.2.3/db1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab1.localdomain)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
As debe quedar:

Es necesario que se reinicie el listener para refrescar el cambio. Lo puedes hacer con la
sentencia:
lsnrctl reload
Editar el archivo $ORACLE_HOME/network/admin/tnsnames.ora y agrear el siguiente
contenido:

STGDGO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab1.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stgdgo)
)
)
ROMANA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab2.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = romana)
)
)
As debe quedar:

En el servidor oralab2 con el usuario oracle editar los mismos archivos pero con el siguiente
contenido:
El archivo $ORACLE_HOME/network/admin/listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = romana_DGMGRL)
(SID_NAME = romana)
(ORACLE_HOME = /u01/app/oracle/product/11.2.3/db1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab2.localdomain)(PORT =
1521))
)
)

Reiniciar el listener con:


lsnrctl reload
El archivo $ORACLE_HOME/network/admin/tnsnames.ora

STGDGO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab1.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stgdgo)
)
)
ROMANA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oralab2.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = romana)
)
)

En el servidor oralab2 creamos el archivo init.ora dentro de la ruta $ORACLE_HOME/dbs y


agregamos DB_NAME=romana. Lo puedes hacer ejecutando estas sentencias:

touch $ORACLE_HOME/dbs/init.ora
echo DB_HOME=romana >> $ORACLE_HOME/dbs/init.ora

Vamos a la ruta $ORACLE_HOME/dbs y desde all subimos la instancia dummy que utilizaremos
para el clonado de la base de datos primaria stgdgo. Puedes hacerlo de la siguiente forma.
1.
2.
3.

cd $ORACLE_HOME/dbs
sqlplus / as sysdba
startup nomount pfile=init.ora
Siguiendo la secuencia

Creamos el directorio donde se almacenaran los standby redologs SRLs

mkdir -p /u01/app/oracle/fast_recovery_area/standbylog
Ahora desde el servidor oralab1 vamos a preparar nuestra base de datos primaria para la
configuracin. Deberemos alterar algunos parmetros necesarios en la instancia, mediante el
sqlplus ejecutar los siguientes
alter system set log_archive_config=dg_config=(stgdgo,romana) scope=spfile;
alter system set log_archive_max_processes=4 scope=spfile;

alter system set log_archive_dest_2='service=romana SYNC REOPEN=15


NET_TIMEOUT=15 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
db_unique_name=romana' scope=spfile;
alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST
valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=stgdgo'
scope=spfile;
alter system set standby_file_management='AUTO' scope=spfile;
ALTER SYSTEM SET FAL_SERVER=stgdgo;
ALTER SYSTEM SET FAL_CLIENT=romana;
alter system set dg_broker_start=TRUE;

Como es nuestro caso aplicamos los parmetros al spfile, es necesario que reiniciemos nuestra
base de datos como sigue:

Shutdown immediate;
Startup;

Necesitaremos crear los Standby redo logs (SRL). Para esto creamos la ruta siguiente:

mkdir -p /u01/app/oracle/fast_recovery_area/standbylog
Creado el directorio, volvemos a sqlplus y ejecutamos las sentencias:
ALTER DATABASE ADD STANDBY LOGFILE
/u01/app/oracle/fast_recovery_area/standbylog/SRL1.log SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE


'/u01/app/oracle/fast_recovery_area/standbylog/SRL2.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/fast_recovery_area/standbylog/SRL3.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/fast_recovery_area/standbylog/SRL4.log' SIZE 50M;
Ahora es tiempo de copiar el password file de la base de datos stgdgo en el
server oralab1 hasta nuestro servidor standby oralab2. Esto lo podemos hacer siguiente los
siguientes pasos.

cd $ORACLE_HOME/dbs scp orapwstgdgo


oralab2:/u01/app/oracle/product/11.2.3/db1/dbs/orapwromana

Con todo listo haste este punto podemos iniciar la creacin de nuestra base de datos standby.
Utilizaremos la opcin duplicate for standby from active database propio de RMAN 11g.

rman target /
connect auxiliary sys/oracle@romana;

Nota: La clave de sys en la base de datos principal es oracle. Si usted le puso alguna
otra utilizarla.
Una vez en el prompt de RMAN ejecutamos el siguiente comando.

run {
allocate channel stgdgo1 type disk;
allocate channel stgdgo2 type disk;
allocate auxiliary channel romana1 type disk;
duplicate target database for standby from active database
spfile
parameter_value_convert 'stgdgo','romana'
set 'db_unique_name'='romana'
set control_files='/u01/app/oracle/oradata/romana/control01.ctl'
set
db_file_name_convert='/u01/app/oracle/oradata/stgdgo/','/u01/app/oracle/o
radata/romana/'
set
log_file_name_convert='/u01/app/oracle/oradata/stgdgo/','/u01/app/oracle/
oradata/romana/'
set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
set DB_RECOVERY_FILE_DEST_SIZE='10G'
nofilenamecheck;
}

Este comando hace lo siguiente:

Abre dos canales para el backup en la base de datos primaria stgdgo


Abre un canal para la restauracin en el site remoto ( auxiliary)
Define un solo controlfile. No recomendado en produccin!!.
Define nuevas rutas para los datafiles y logfiles
Define el fast_recovery_area para nuestra nueva base de datos y el tamao de este.
Una vez complete su ejecucin vern una pantalla como esta

Necesitaremos ajustar algunos parmetros en nuestra base de datos recin creada en el


servidor oralab2. Desde sqlplus en el servidor oralab2 ejecutar los siguientes

ALTER
ALTER
ALTER
ALTER
ALTER

SYSTEM
SYSTEM
SYSTEM
system
SYSTEM

SET
SET
SET
set
SET

STANDBY_FILE_MANAGEMENT=AUTO;
FAL_SERVER=romana;
FAL_CLIENT=stgdgo;
dg_broker_start=TRUE;
LOG_ARCHIVE_CONFIG='DG_CONFIG=(stgdgo,romana)';

Alterados los parametros necesarios en nuestra base de datos standby romana podemos
activar la replicacion mediante SQL o via el dataguard brker. Les mostrare como crear la
configuracion mediante el brker.

1.
2.

Desde el servidor oralab1 ejecutar los siguientes sentencias


dgmgrl
connect sys/oracle

3.
4.

CREATE CONFIGURATION stgdgo as PRIMARY DATABASE IS stgdgo CONNECT


IDENTIFIER IS stgdgo;
ADD DATABASE romana AS CONNECT IDENTIFIER IS romana MAINTAINED AS
PHYSICAL;
Asi queda.

Al ejecutar los comandos anteriores ya tenemos la configuracin lista. Pueden verla con el
comando show configuration, solo nos queda activarla.

Enable configuration;

Una vez activada la configuracin hagamos un switchover desde stgdgo hasta romana y
viceversa con:

Switchover to romana;
Switchover to stgdgo;

Con esto ya tenemos nuestro dataguard configurado para la base de datos primaria stgdgo
ubicada en santo domingo y nuestra base de datos standby romana ubicada en La romana.
Para mas informacion pueden consultar la documentacion oficial de Dataguard y Dataguard
Broker en OTN.

También podría gustarte