lunes, 3 de enero de 2011

CREANDO MANUALMENTE UN DATA GUARD EN ORACLE

CREANDO MANUALMENTE UN DATA GUARD EN ORACLE Oracle 10g Data Guard es una excelente herramienta para asegurar la alta disponibilidad, protección de datos y restauración, ante desastres que viene integrado con la Oracle 10g Enterprise Edition. La configuración que se presenta es para la versión 10.2.0.1. La base de datos Primaria y Secundaria se encuentran en dos ordenadores diferentes llamado el primario ORCLA y el secundario ORCLB. I. Antes de empezar: 1. Nos aseguraremos de que el sistema operativo y las características del hardware son idénticas en ambos nodos. 2. Debemos instalar el software de ORACLE en las dos PC's con los siguientes datos: * BBDD PRIMARIA SID=ORCLA (poner el nombre que se desee, tanto en la BD como en el SID) * BBDD STANDBY SID=ORCLB (poner el nombre que se desee, tanto en la BD como en el SID) También asegurarnos de que los directorios en ambos ordenadores son idénticos, es decir el oracle_home.

Oracle 10g Data Guard es una excelente herramienta para asegurar la alta disponibilidad, protección de datos y restauración, ante desastres que viene integrado con la Oracle 10g Enterprise Edition.

La configuración que se presenta es para la versión 10.2.0.1. La base de datos Primaria y Secundaria se encuentran en dos ordenadores diferentes llamado el primario ORCLA y el secundario ORCLB.

I. Antes de empezar:

1. Nos aseguraremos de que el sistema operativo y las características del hardware son idénticas en ambos nodos.

2. Debemos instalar el software de ORACLE en las dos PC's con los siguientes datos:
* BBDD PRIMARIA SID=ORCLA (poner el nombre que se desee, tanto en la BD como en el SID)

* BBDD STANDBY SID=ORCLB (poner el nombre que se desee, tanto en la BD como en el SID)

También asegurarnos de que los directorios en ambos ordenadores son idénticos, es decir el oracle_home.

3. Comprobaremos que la base de datos Standby funciona correctamente.

II. Trabajando en la base de datos Primaria:

1. Habilitaremos el forced logging en nuestra base de datos Primaria (desde SQL/PLUS):

SQL> alter database force logging;

2. Crearemos un archive de contraseñas en:

$cd %ORACLE_HOME%\database

$orapwd file=pwdORCLA.ora password=sys force=y

(Nota: sys es la contraseña por defecto que ponemos siempre en la instalación)

3. Configurando los Standby Redo log.

a. El tamaño de todos los Standby redo log deben ser idénticos a los que hay en la bbdd

Primaria. Podemos comprobarlo con el siguiente comando:

SQL> select bytes from v$log;

b. Creando los grupos de Standby Redo log.

La base de datos Primaria por defecto siempre trae 3 redologs así que crearemos otros 3 para el Standby, utilizaremos el siguiente comando:

SQL>alter database add standby logfile group 4 size 50m;

SQL>alter database add standby logfile group 5 size 50m;

SQL>alter database add standby logfile group 6 size 50m;

c. Para verificar que se han creado correctamente podemos lanzar el siguiente comando:

SQL>select * from v$Standby_log;

4. Habilitando el archivelog en la bbdd Primaria.

Si la base de datos no esta en modo Archive log, con los siguientes comandos la habilitaremos para dicha opción:

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database archivelog;

SQL>alter database open;

SQL>archive log list;

5. Creando y configurando el pfile:

a. Crearemos una copia del spfile a un archive pfile para ello lanzaremos el siguiente comando:

SQL>create pfile='c:\orcla.ora' from spfile;


b. Editamos el orcla.ora para agregar los parámetros de la BD Primaria y la de Standby:

orcla.__db_cache_size=83886080
orcla.__java_pool_size=4194304
orcla.__large_pool_size=4194304
orcla.__shared_pool_size=71303168
orcla.__streams_pool_size=0
*.archive_lag_target=0
*.audit_file_dest='c:\oracle\product\10.2.0/admin/orcla/adump'
*.background_dump_dest='c:\oracle\product\10.2.0/admin/orcla/bdump'
*.compatible='10.2.0.1.0'
*.control_files='c:\oracle\product\10.2.0/oradata/orcla/\control01.ctl','c:\oracle\product\10.2.0/oradata/orcla/\control02.ctl','c:\oracle\product\10.2.0/oradata/orcla/\control03.ctl'
*.core_dump_dest='c:\oracle\product\10.2.0/admin/orcla/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ORCLA'
*.db_recovery_file_dest='c:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.DB_UNIQUE_NAME='ORCLA'
*.dg_broker_start=TRUE
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclaXDB)'

*.fal_client='ORCLA'
*.fal_server='ORCLB'
*.inORCLBce_name='ORCLSID'
*.job_queue_processes=10
*.log_archive_config='dg_config=(ORCLB)'
*.log_archive_dest_1='LOCATION=C:\oracle\product\10.2.0\oradata\orcla VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLA'
orcla.log_archive_dest_1='location="C:\oracle\product\10.2.0\oradata\orcla"','valid_for=(ONLINE_LOGFILE,ALL_ROLES)'
*.log_archive_dest_2='service="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=SRV- 002)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLB_XPT)(INORCLBCE_NAME=ORCLSID)(SERVER=dedicated)))"',' ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 max_connections=1 reopen=300 db_unique_name="ORCLB" register net_timeout=180 valid_for=(online_logfile,ORCLAary_role)'
*.log_archive_dest_state_1='ENABLE'
orcla.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='DBSID_%t_%s_%r.arc'
orcla.log_archive_format='DBSID_%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_archive_min_succeed_dest=1
orcla.log_archive_trace=0
*.log_checkpoint_interval=10000
*.log_checkpoint_timeout=1800
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
orcla.Standby_archive_dest=''
*.Standby_file_management='auto'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='c:\oracle\product\10.2.0/admin/orcla/udump'

6. Ahora que hemos modificado el pfile le diremos a oracle que utilice a partir de ahora nuestro pfile para ello debemos convertirlo a spfile con el siguiente comando:

SQL> shutdown immediate;

SQL> startup nomount pfile='c:\orcla.ora';

SQL>create spfile from pfile='c:\orcla.ora';

SQL>shutdown immediate;

SQL>Startup;

Con esto concluimos la configuración para el servidor primario(Primary), a continuación se presenta la información que iría en el servidor secundario(Standby).


III. Configurando la BD Standby:

1. Creamos una copia de la los datafiles y redologs de la Primaria a la de Standby (los control files de la primaria no son necesarios).

En la base de datos Primaria, pararemos la BD:

SQL>shutdown immediate;

En la BD secundaria, pararemos también la BD y renombraremos el directorio entero de

E:\oracle\product\10.2.0\oradata\ORCLB por el

E:\oracle\product\10.2.0\oradata\ORCLB_OLD.

Luego crearemos un nuevo directorio ORCLB en E:\oracle\product\10.2.0\oradata\
Y otro directorio en E:\oracle\product\10.2.0\oradata\ llamado ORCLA, es decir que el árbol de directorios debe quedar así:

E:\oracle\product\10.2.0\oradata\ORCLA
E:\oracle\product\10.2.0\oradata\ORCLB

2. Copiamos los datafiles (dbf) y los redologs desde la Primaria es decir todos los archivos que están en E:\oracle\product\10.2.0\oradata\ORCLA a

E:\oracle\product\10.2.0\oradata\ORCLB.

3. Verificaremos que los directorios que se muestran existen:

E:\oracle\product\10.2.0\oradata\ORCLB\ONLINELOG y

E:\Oracle\flash_recovery_area\ORCLB\ONLINELOG.


4. Crearemos un control file para la BD Standby (desde la Primaria):

En la BD Primaria lanzamos el siguiente comando:

SQL>startup mount;

SQL>alter database create Standby control file as 'ORCLB.ctl';

SQL>alter database open;

Una vez lanzado el comando para la creación del control file del Standby, lo copiaremos desde la ubicación de la BD Primaria C:\oracle\product\10.2.0\db_1\database\ORCLB.ctl a E:\oracle\product\10.2.0\oradata\


5. Ahora debemos crear el archivo de parámetros para la base de datos secundaria, para ello crearemos un nuevo documento de texto y copiaremos lo que viene a continuación:


orclb.__db_cache_size=100663296
orclb.__java_pool_size=4194304
orclb.__large_pool_size=4194304
orclb.__shared_pool_size=54525952
orclb.__streams_pool_size=0
*.aq_tm_processes=0
*.archive_lag_target=0
*.audit_file_dest='c:\oracle\product\10.2.0/admin/orclb/adump'
*.background_dump_dest='c:\oracle\product\10.2.0/admin/orclb/bdump'
*.compatible='10.2.0.1.0'
*.control_files='c:\oracle\product\10.2.0/oradata/orclb/\stand.ctl'
*.core_dump_dest='c:\oracle\product\10.2.0/admin/orclb/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ORCLA'
*.db_recovery_file_dest='c:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='orclb'
*.dg_broker_start=TRUE
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclaXDB)'
*.fal_client='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=SRV- 002)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLB_XPT)(INSTANCE_NAME=ORCLSID)(SERVER=dedicated)))'
*.fal_server='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=SRV- 001)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLA_XPT)(SERVER=dedicated)))'
*.instance_name='ORCLSID'
*.job_queue_processes=0
*.log_archive_config='dg_config=(ORCLA)'
*.log_archive_dest_1='LOCATION=C:\oracle\product\10.2.0\oradata\orclb VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLB'
orclb.log_archive_dest_1='location="C:\oracle\product\10.2.0\oradata\orclb"','valid_for=(ALL_LOGFILES,ALL_ROLES)'
*.log_archive_dest_2='SERVICE=ORCLA ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 reopen=300 register VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLB'
*.log_archive_dest_state_1='ENABLE'
orclb.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='DEFER'
*.log_archive_format='DBSID_%t_%s_%r.arc'
orclb.log_archive_format='DBSID_%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_archive_min_succeed_dest=1
*.log_archive_start=true
*.log_archive_trace=0
orclb.log_archive_trace=0
*.log_checkpoint_interval=10000
*.log_checkpoint_timeout=1800
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
orclb.standby_archive_dest='C:\oracle\product\10.2.0\oradata\orclb'
*.standby_file_management='auto'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='c:\oracle\product\10.2.0/admin/orclb/udump'

6. En la BD secundaria comprobaremos que los directorios adump, bdump, cdump, udump, y los destinos de los archived log para la BD de Standby existan.

7. Ahora copiaremos el archivo de contraseña que hemos creado que se encuentra en C:\oracle\product\10.2.0\db_1\database en la BD Primaria y lo a la misma ubicación en la BD de Standby.

8. Si el servicio ORCLB no esta creado en la BD Standby lo crearemos con el siguiente comando:

$oradim –NEW –SID ORCLB –STARTMODE manual


IV.

Configuración del listener.ora y tnsnames.ora:

a. LISTENER.ORA DE LA BBDD PRIMARIA:

# listener.ora Network Configuration File:

c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.


LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-001)(PORT = 1521))

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = )

(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(SID_NAME = orclsid)

)


TNSNAMES.ORA DE LA BASE DE DATOS PRIMARIA:

# tnsnames.ora Network Configuration File:

c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ORCLB =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-002)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLB)

)
)

ORCLA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-001)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLA)

)
)

ORCLSID =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = ORCLSID))

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-001)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLSID)

)
)


LISTENER.ORA DE LA BBDD STANDBY:

# listener.ora Network Configuration File:

c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-002)(PORT = 1521))

)
SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = )

(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(SID_NAME = orclsid)

)
)

TNSNAMES.ORA DE LA BBDD STANDBY:


# tnsnames.ora Network Configuration File:

c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora

# Generated by Oracle configuration tools.

ORCLB =

(DESCRIPTION =

ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-002)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLB)

)
)

ORCLA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-001)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLA)

)
)

ORCLSID =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = ORCLSID))

(ADDRESS = (PROTOCOL = TCP)(HOST = SRV-002)(PORT = 1521))

)
(CONNECT_DATA =

(SERVICE_NAME = ORCLSID)

)
)


Ahora bien debemos reiniciar los servicios de listener en ambos ordenadores, luego debemos comprobar que las variables de entorno de ambas BD sean correctas.

Set ORACLE_HOME y ORACLE_SID.

Iniciaremos la BD de Standby con el parámetro nomount para cargar el parámetro de

configuración pfile y utilizarlo en esta bbdd y generar un spfile.

SQL>startup nomount pfile=’c:\orclb.ora’;

SQL>create spfile from pfile=’c:\orclb.ora’;

SQL>shutdown immediate;

SQL>startup mount;

Ahora habilitaremos el envío de los redologs con los siguientes comandos “desde la primaria”:

SQL> alter system set LOG_ARCHIVE_DEST_state_2=enable scope=both;

SQL> alter system switch logfile;


Arrancando la Standby:

La instancia de standby se debe ejecutar en modo startup nomount. Esta base de datos nunca debe ser abierta ya que sino invalidaremos el estado STANDBY, en consecuencia para que los datos se recuperen en dicha STANDBY a continuación los comandos para que la BD quede en standby:


1. Utilizando el SQL*Plus nos conectaremos a la bbdd de standby:

SQL> connect / as sysdba

2. Iniciaremos la instancia de la bbdd de oracle sin montar la misma por ejemplo:

SQL> startup nomount;

3. Montamos la bbdd en modo standby de la siguiente manera:

SQL> alter database mount standby database;

Lanzando recuperacion:

Modo de recuperación administrado permite automatizar la aplicación de los redologs a la

BD de standby, para ello debemos lanzar el siguiente comando:

SQL> alter database recover managed standby database disconnect;


Si queremos lanzarlo de modo manual, lo podemos hacer de la siguiente manera:

SQL> recover STANDBY DATABASE;

Este último comando invoca la recuperación y aplicación manual de los redologs, si al ejecutar el comando nos da un error de Oracle de que el medio no se ha recuperado es decir el siguiente error:

SQL> recover managed Standby database disconnect

ORA-01153: an incompatible media recovery is active

Lanzamos el siguiente comando:

RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


Parada y Arranque de la BD:

Existe un orden del cual se debe respetar para que no se desincronizen las base de datos primaria y standby, estos son los pasos:

Iniciaremos la BD de standby y listeners antes que la BD primaria.

Pararemos primero la BD primaria y luego la de standby.

Posibles errores de archivado:

Si encontramos error de archivado en la BD de standby, debemos chequear el estado de los mismos y si detectamos problemas debemos lanzar el siguiente comando:

SQL>alter system set log_archive_dest_2='service=DBSID_DG2 ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 reopen=300 register';

Si el dataguard esta activado este paso se hace automaticamente:

Si el archivado en la bbdd primaria se ha parado, por posibles fallos de disco lleno, para reparar dicho problema debemos lanzar el siguiente comando:

SQL>archive log start;

Configurando el DGMGRL (DataGuard Manager):

El dataguard manager o dgmgrl es una aplicación propia de Oracle para facilitar la transición de estados de primaria a standby y viceversa, en vez de utilizar por línea de comando varias opciones.
Desde el SQLPLUS lanzamos la sentencia para comprobar el nombre de la bbdd en la que estamos trabajando:

SQL> show parameter db_unique_name;

Luego activaremos el dgmgrl con el siguiente comando, siempre desde el SQLPLUS:

SQL> alter system set dg_broker_start=true scope=both;

Ahora comprobaremos la configuración del dgmgrl:

SQL> show parameter dg

Ahora lanzaremos el dgmgrl para configurarlo desde cero, desde el cmd lanzamos el comando dgmgrl:

C:\>dgmgrl

Nos conectamos a la instancia:

DGMGRL>connect/ Connected.

Comprobamos si existe configuración:

DGMGRL> show configuration


Error: ORA-16532: Data Guard broker configuration does not exist.

unable to describe configuration

Si obtenemos el error anterior quiere decir que el archivo de configuración no existe y debemos crearlo como se muestra a continuación:

DGMGRL> create configuration 'DBSID_DG' AS

> primary database is 'ORCLA'

> connect identifier is ORCLA;


Configuration "DBSID_DG" created with primary database "DBSID_dg2".

Comprobamos si ahora existe configuración:

DGMGRL> show configuration

Configuration
Name: DBSID_DG

Enabled: NO

Protection Mode: MaxPerformance

Databases:
ORCLA - Primary database

Current status for "DBSID_DG":

DISABLED

Ahora agregaremos la BD de standby:

DGMGRL> add database 'ORCLB' as

> connect identifier is ORCLB

> maintained as physical;


Database "ORCLB" added.

Comprobamos si ahora existen los dos sid ORCLA y ORCLB:

DGMGRL> show configuration

Configuration

Name: DBSID_DG

Enabled: NO

Protection Mode: MaxPerformance

Databases:

ORCLA - Primary database

ORCLB - Physical standby database

Current status for "DBSID_DG":

DISABLED

Como podemos comprobar podemos ver la configuración pero todavía no está activa, por eso el estado DISABLED.

Activamos la configuración:

DGMGRL> enable configuration;

Comprobamos nuevamente si ya están los dos SID ORCLA y ORCLB y si el estado ha cambiado de DISABLED a SUCCESS.

DGMGRL> show configuration

Configuration
Name: DBSID_DG

Enabled: YES

Protection Mode: MaxPerformance

Databases:
ORCLA - Primary database

ORCLB - Physical standby database

Current status for "DBSID_DG":

SUCCESS

DGMGRL>

Eso quiere decir que ya podemos en cualquier momento hacer la transición desde un nodo a otro.

Cambiando de Swithover/Failover en la BD de Standby:

Modo manual sin el dgmgrl:

Lanzamos el SQLPLUS con los siguientes comandos:

sqlplus / as sysdba

SQL> SELECT switchover_status from v$database;

SWITCHOVER_STATUS
------------------------------------------------------------
TO STANDBY

SQL> alter database commit to switchover to physical standby;

Database altered.

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1577058304 bytes

Fixed Size 1322520 bytes

Variable Size 400282088 bytes

Database Buffers 1174405120 bytes

Redo Buffers 1048576 bytes

Database mounted.


Ahora la base de datos primaria ha pasado a standby fisico. Esto se utiliza para poder seguir

reparar la BD en caso de fallo o avería y delegar el control a la otra BD.

Modo dgmgrl (dataguard):

Para realizar la transición de la BD de uno a otro debemos realizar la siguiente operación, desde el DGMGRL lanzamos el comando switchover y lo apuntamos al nodo o SID que necesitemos alternar es decir que si ahora la BD primaria es la ORCLA y esta tiene problemas, debemos apuntar el comando switchover a la que tengamos libre o disponible que en este caso de ejemplo es la ORCLB.

DGMGRL> switchover to "ORCLB";

Performing switchover NOW. Please wait...

Operation requires shutdown of instance "DBSID" on database "ORCLA".

Shutting down instance "DBSID"...

ORA-01017: invalid username/password; logon denied

You are no longer connected to ORACLE

Please connect again.

Unable to shut down instance "DBSID".

You must shut down instance "DBSID" manually.

Operation requires shutdown of instance "DBSID" on database "ORCLA".

You must shut down instance "DBSID" manually.

Operation requires startup of instance "DBSID" on database "ORCLB".

You must start instance "DBSID" manually.

Operation requires startup of instance "DBSID" on database "ORCLA".

You must start instance "DBSID" manually.

Switchover succeeded. New primary is "ORCLB"


DGMGRL>



Como podemos comprobar ya se ha efectuado la transición y ahora ya tenemos conexión con la base de datos.

Si queremos volver a dejar como primaria la base de datos original después de reparar el error debemos lanzar el comando switchover apuntando a la ORCLA nuevamente.

Publicado por:

++ Carmina Fajardo

++ Claudia Figueroa

++ Jeimhy Figueroa




1 comentario:

vianchi.nieto dijo...

Muchas gracias de antemano por tomarse el tiempo de explicar todo el paso a paso del manejo de data guard, deseo que medidas debo tener en cuenta y cuanto tiempo tarda el proceso completo, el bd respaldo debe estar vacio. o en que estado debe estar gracias