Alta Disponibilidad para Oracle Internet Directory...

12
Página 1 5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected] Newsletter Marzo 2014 5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 Email.[email protected] Alta Disponibilidad para Oracle Internet Directory 11g Por Ing. Iván García [email protected] Cada día los servicios informáticos se vuelven más imprescindibles, resultando demasiado alto el costo de parar las operaciones. Un fallo que impida a los usuarios acceder a las aplicaciones puede traducirse en mercadería perdida, contratos cancelados, atrasos en entregas, etc., dañando no solo el estado financiero de la empresa sino muchas veces su reputación. Para reducir el tiempo sin servicio, se habla de arquitecturas de Alta Disponibilidad, buscando así incluso no tener tiempos fuera. Alta Disponibilidad se refiere a dar servicio de forma continua (todo el día, todos los días). Por supuesto, existirán momentos en que el servicio se detenga por razones planificadas ( upgrades, aplicación de parche, etc.) o no planificadas (fallo de hardware, fallo de software, fallo eléctrico, etc.). La Alta Disponibilidad busca que estas interrupciones sean lo más cortas posibles, con un porcentaje de servicio cercano al 100%. La Alta Disponibilidad se reduce a una sola palabra: REDUNDANCIA. El concepto básico de redundancia es que existan dos o más objetos del mismo tipo, y en la arquitectura de Alta Disponibilidad se refiere a dos o más de todo. De esta forma no existe un punto único de falla para ningún componente de nuestro sistema. Oracle Internet Directory (OID): componente fundamental de los servicios de seguridad de Oracle Fusion Middleware, sirve como repositorio de usuarios, grupos y credenciales que dan acceso a las aplicaciones Forms, Java, Discoverer, etc. El OID muchas veces no se considera parte fundamental del sistema. Sin embargo, si éste falla, no importará que las aplicaciones se encuentren arriba, ningún usuario tendrá acceso a ellas hasta que se restablezca el OID. Oracle Internet Directory 11g: trabaja acoplado a un Dominio de WebLogic y nos brinda los servicios de Administración por medio de Oracle Enterprise Manager y la aplicación Oracle Directory Services Manager (ODSM). Los servicios de Replicación se ejecutan en el Managed Server wls_ods1, implementados como aplicaciones Java. Contenido Página: 1 Alta Disponibilidad para Oracle Internet Directory 11g 4 Instalación de ADF en Weblogic 12c - Parte 1 8 Cómo Crear un Standby Físico con RMAN Active Duplicate - Parte 2 Editores Generales Francisco Barrundia Alejandro Lau Debbie Morán Autores Contribuyentes Iván García Ángel Leal Francisco Barrundia

Transcript of Alta Disponibilidad para Oracle Internet Directory...

Página 1

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Newsletter – Marzo 2014

5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12

Teléfono: (502)2364-5300Fax: (502)2364-5311

[email protected] Pagina 1/10

Alta Disponibilidad para Oracle Internet Directory 11g

Por Ing. Iván García

[email protected]

Cada día los servicios informáticos se vuelven más imprescindibles, resultando demasiado alto el costo de parar las operaciones. Un fallo que impida a los usuarios acceder a las aplicaciones puede traducirse en mercadería perdida, contratos cancelados, atrasos en entregas, etc., dañando no solo el estado financiero de la empresa sino muchas veces su reputación. Para reducir el tiempo sin servicio, se habla de arquitecturas de Alta Disponibilidad, buscando así incluso no tener tiempos fuera. Alta Disponibilidad se refiere a dar servicio de forma continua (todo el día, todos los días). Por supuesto, existirán momentos en que el servicio se detenga por razones planificadas (upgrades, aplicación de parche, etc.) o no planificadas (fallo de hardware, fallo de software, fallo eléctrico, etc.). La Alta Disponibilidad busca que estas interrupciones sean lo más cortas posibles, con un porcentaje de servicio cercano al 100%. La Alta Disponibilidad se reduce a una sola palabra: REDUNDANCIA. El concepto básico de redundancia es que existan dos o más objetos del mismo tipo, y en la arquitectura de Alta Disponibilidad se refiere a dos o más de todo. De esta forma no existe un punto único de falla para ningún componente de nuestro sistema. Oracle Internet Directory (OID): componente fundamental de los servicios de seguridad de Oracle Fusion Middleware, sirve como repositorio de usuarios, grupos y credenciales que dan acceso a las aplicaciones Forms, Java, Discoverer, etc. El OID muchas veces no se considera parte fundamental del sistema. Sin embargo, si éste falla, no importará que las aplicaciones se encuentren arriba, ningún usuario tendrá acceso a ellas hasta que se restablezca el OID. Oracle Internet Directory 11g: trabaja acoplado a un Dominio de WebLogic y nos brinda los servicios de Administración por medio de Oracle Enterprise Manager y la aplicación Oracle Directory Services Manager (ODSM). Los servicios de Replicación se ejecutan en el Managed Server wls_ods1, implementados como aplicaciones Java.

Contenido

Página:

1 Alta Disponibilidad para

Oracle Internet Directory 11g

4 Instalación de ADF en

Weblogic 12c - Parte 1

8 Cómo Crear un Standby

Físico con RMAN Active Duplicate - Parte 2

Editores Generales

Francisco Barrundia

Alejandro Lau

Debbie Morán

Autores

Contribuyentes

Iván García

Ángel Leal

Francisco Barrundia

Página 2

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Implementaciones de OID para Alta Disponibilidad OID ofrece distintos tipos de implementación para distintas necesidades, con mucha flexibilidad al momento de instalarse. Se presentan dos soluciones para Alta Disponibilidad de servicios OID.

Cluster de OID Un cluster se refiere a dos o más entidades trabajando como una sola. El cliente ve una interfaz única, aunque hay varios componentes para el mismo servicio, accediendo a la misma información. El OID puede instalarse en modo cluster, con dos o más instancias de Identity Management, como se muestra en la imagen. Esta es la solución más completa.

Ambos servidores OIDHOST1 y OIDHOST2 corren OID y comparten un repositorio de base de datos (Metadata Repository). Para que la Alta Disponibilidad sea completa, el repositorio debe ser una base de datos en RAC. También, el único punto de entrada o Load Balancer debe tener su componente respaldo, de modo que siempre al menos un servidor preste el servicio. Esta configuración se realiza al momento de instalación y puede constar de uno (simulando un stand alone) o más nodos. Los nodos se pueden agregar en caliente.

Replicación de OID En la replicación de OID existen dos o más servidores que ejecutan los servicios de OID, pero cada OID consta de su propio repositorio. Se crea un proceso que sincroniza la información entre OIDs, de esta forma, se tiene duplicidad de la información. Esto conlleva un problema: la consistencia de la información a través de los distintos repositorios. Cómo se maneja esta consistencia depende del tipo de replicación. Dos configuraciones muy comunes son:

Maestro – Esclavo

Multi-Maestro

Página 3

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Replicación Maestro-Esclavo Se define un nodo OID como repositorio principal y único autorizado para realizar modificaciones. Los demás nodos OID son considerados esclavos y se utilizan como repositorios de sólo lectura. Replicación Multi-Maestro Todos los nodos OID involucrados pueden realizar operaciones de escritura y lectura. De esta forma, no importa a que nodo se conecte un cliente, siempre verá la misma información.

La configuración de un ambiente de replicación se lleva a cabo una vez los nodos de OID estén ya instalados. Todas las configuraciones se llevan a cabo por medio del Enteprise Manager. ¿Qué Arquitectura Utilizar? Qué implementación de OID nos conviene depende de las necesidades de la empresa. Es importante establecer el tiempo de interrupción permitido, evaluar el costo del hardware y de administración de los sistemas. Para más información consultar: http://www.oracle.com/technetwork/middleware/id-mgmt/overview/index-082035.html

Página 4

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Instalación de ADF en Weblogic 12c - Parte 1

Por Ing. Ángel Leal

[email protected]

Los requerimientos para instalar ADF son:

Una base de datos Oracle 11g Release 2

Sistema operativo Linux de 64 bits

JDK 1.7.0+

Instalación de Weblogic 12c

1. Ejecutamos el instalador de Weblogic.

2. La primera pantalla es de presentación.

En la segunda pantalla escogemos la ubicación para instalar.

En la tercera pantalla seleccionamos "Weblogic Server".

Página 5

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

3. Luego el instalador hace una verificación de requisitos de instalación.

4. Omitimos o desmarcamos la recepción de actualizaciones.

Página 6

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

5. Verificamos los productos y procedemos con la instalación.

Página 7

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Tip Técnico del Mes

Caracter de escape Como bien sabemos % y _ son caracteres de escape que sirven para generar patrones.

% equivale a cero o más caracteres

_ equivale a un caracter

Si en el WHERE de una consulta queremos buscar strings que contengan _ o % como caracteres normales, necesitamos un caracter de escape que le indique a Oracle que no trate a estos caracteres como especiales. SELECT nombre, descripcion FROM producto

WHERE descripcion LIKE '%\%%' ESCAPE '\';

Por Lic. Francisco Barrundia [email protected]

6. Se completa la instalación.

Página 8

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Como Crear un Standby Físico con

RMAN Active Duplicate - Parte 2

Por Lic. Francisco Barrundia

[email protected]

... Continuación del artículo de febrero/2014. Una vez creado el archivo de comandos RMAN, lo ejecutamos en la base de datos target (primaria), que se conectará a la auxiliary (standby).

$ rman target sys/test@prod auxiliary sys/test@stdby

RMAN> @duplicate.rmn

RMAN>

RMAN> run {

2> allocate channel prmy1 type disk;

3> allocate channel prmy2 type disk;

4> allocate channel prmy3 type disk;

5> allocate channel prmy4 type disk;

6> allocate auxiliary channel stby type disk;

7> duplicate target database for standby from active database

8> spfile

9> parameter_value_convert 'prod','stdby'

10> set db_unique_name='stdby'

11> set

db_file_name_convert='/u01/app/oracle/oradata/prod/PROD/datafile/','/u01/app/orac

le/oradata/stdby/STDBY/datafile/'

12> set

log_file_name_convert='/u01/app/oracle/oradata/prod/PROD/onlinelog/','/u01/app/or

acle/oradata/stdby/STDBY/onlinelog/'

13> set

control_files='/u01/app/oracle/oradata/stdby/control/control01.ctl','/u01/app/ora

cle/oradata/stdby/control/control02.ctl'

14> set log_archive_max_processes='10'

15> set fal_client='stdby'

16> set fal_server='prod'

17> set standby_file_management='AUTO'

18> set log_archive_config='dg_config=(prod,stdby)'

19> set log_archive_dest_2='service=prod ASYNC

valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=prod'

20> ;

21> }

...

Starting Duplicate Db at 16-MAY-13

contents of Memory Script:

{

backup as copy reuse

targetfile '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwprod' auxiliary

format

'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwstdby' targetfile

'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileprod.ora' auxiliary format

'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilestdby.ora' ;

Página 9

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

sql clone "alter system set spfile=

''/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilestdby.ora''";

}

executing Memory Script

Starting backup at 16-MAY-13

Finished backup at 16-MAY-13

sql statement: alter system set spfile=

''/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilestdby.ora''

contents of Memory Script:

{

sql clone "alter system set audit_file_dest =

''/u01/app/oracle/oradata/dump/stdby/adump'' comment='''' scope=spfile";

sql clone "alter system set diagnostic_dest =

''/u01/app/oracle/oradata/dump/stdby'' comment='''' scope=spfile";

sql clone "alter system set log_archive_dest_1 =

''location=use_db_recovery_file_dest valid_for=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=stdby'' comment='''' scope=spfile";

sql clone "alter system set db_unique_name =''stdby'' comment=''''

scope=spfile";

sql clone "alter system set db_file_name_convert =

''/u01/app/oracle/oradata/prod/PROD/datafile/'',

''/u01/app/oracle/oradata/stdby/STDBY/datafile/'' comment='''' scope=spfile";

sql clone "alter system set log_file_name_convert =

''/u01/app/oracle/oradata/prod/PROD/onlinelog/'',

''/u01/app/oracle/oradata/stdby/STDBY/onlinelog/'' comment='''' scope=spfile";

sql clone "alter system set control_files =

''/u01/app/oracle/oradata/stdby/control/control01.ctl'',

''/u01/app/oracle/oradata/stdby/control/control02.ctl'' comment=''''

scope=spfile";

sql clone "alter system set log_archive_max_processes = 10 comment=''''

scope=spfile";

sql clone "alter system set fal_client =''stdby'' comment='''' scope=spfile";

sql clone "alter system set fal_server =''prod'' comment='''' scope=spfile";

sql clone "alter system set standby_file_management =''AUTO'' comment=''''

scope=spfile";

sql clone "alter system set log_archive_config = ''dg_config=(prod,stdby)''

comment='''' scope=spfile";

sql clone "alter system set log_archive_dest_2 =

''service=prod ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)

db_unique_name=prod'' comment='''' scope=spfile";

shutdown clone immediate;

startup clone nomount;

}

executing Memory Script

...

contents of Memory Script:

{

backup as copy current controlfile for standby auxiliary format

'/u01/app/oracle/oradata/stdby/control/control01.ctl';

restore clone controlfile to

'/u01/app/oracle/oradata/stdby/control/control02.ctl' from

'/u01/app/oracle/oradata/stdby/control/control01.ctl';

}

executing Memory Script

Página 10

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

...

contents of Memory Script:

{

sql clone 'alter database mount standby database';

}

executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:

{

set newname for tempfile 1 to

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_temp_8qbok7fk_.tmp";

switch clone tempfile all;

set newname for datafile 1 to

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_system_8ocl7bho_.dbf";

set newname for datafile 2 to

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_sysaux_8ocl7k6n_.dbf";

set newname for datafile 3 to

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_sys_undo_8ocl7q6c_.dbf";

set newname for datafile 4 to

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_users_8qbolh3g_.dbf";

backup as copy reuse

datafile 1 auxiliary format

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_system_8ocl7bho_.dbf"

datafile 2 auxiliary format

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_sysaux_8ocl7k6n_.dbf"

datafile 3 auxiliary format

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_sys_undo_8ocl7q6c_.dbf"

datafile 4 auxiliary format

"/u01/app/oracle/oradata/stdby/STDBY/datafile/o1_mf_users_8qbolh3g_.dbf" ;

sql 'alter system archive log current';

}

executing Memory Script

...

contents of Memory Script:

{

switch clone datafile all;

}

executing Memory Script

...

Finished Duplicate Db at 16-MAY-13

...

RMAN> **end-of-file**

Ahora iniciamos el proceso de recuperación de la base de datos standby, en este caso usamos la opción de Active Dataguard.

SQL> alter database open;

Database altered.

SQL> alter database recover managed standby database disconnect;

Página 11

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Database altered.

SQL> select protection_mode, protection_level, database_role from v$database;

PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE

-------------------- -------------------- ----------------

MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY

SQL> select instance_name, host_name from v$instance;

INSTANCE_NAME HOST_NAME

---------------- -----------------------

stdby srvstdby

Regresamos a la base de datos primaria y creamos una tabla llamada prueba en el esquema remitente. Esta tabla no existe en la base de datos standby. SQL> select instance_name, host_name from v$instance;

INSTANCE_NAME HOST_NAME

---------------- -----------------------

prod srvprod

SQL> select protection_mode, protection_level, database_role from v$database;

PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE

-------------------- -------------------- ----------------

MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY

SQL> create table remitente.prueba(codigo number);

Table created.

SQL> insert into remitente.prueba values(1);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

De nuevo en la base de datos standby, vemos que tenemos nuestra tabla prueba recién creada en la primaria. SQL> select protection_mode, protection_level, database_role from v$database;

PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE

-------------------- -------------------- ----------------

MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY

SQL> select instance_name, host_name from v$instance;

Página 12

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

INSTANCE_NAME HOST_NAME

---------------- -----------------------

stdby srvstdby

SQL> select * from remitente.prueba;

CODIGO

----------

1

Para confirmar que la configuración está funcionando, podemos utilizar el siguiente query. Nos muestra el último archivelog recibido/aplicado en la base de datos standby.

SELECT 'Ultimo Recibido : ' Logs,

TO_CHAR(next_time,'DD-MON-YY:HH24:MI:SS') hora, thread#, sequence#

FROM v$archived_log

WHERE sequence# = (SELECT MAX(sequence#) FROM v$archived_log);

UNION

SELECT 'Ultimo Aplicado : ' Logs,

TO_CHAR(next_time,'DD-MON-YY:HH24:MI:SS') hora, thread#, sequence#

FROM v$archived_log

WHERE sequence# = (SELECT MAX(sequence#) FROM v$archived_log WHERE applied='YES')

LOGS HORA THREAD# SEQUENCE#

----------------- ------------------ ---------- ----------

Ultimo Recibido : 16-MAY-13:11:42:52 1 65

Ultimo Aplicado : 16-MAY-13:11:42:52 1 65

Y en la base de datos primaria se puede comprobar cuál es la secuencia actual y cuál es la secuencia en espera de ser aplicada.

SELECT (SELECT name FROM V$DATABASE) bd,

(SELECT MAX(sequence#) FROM v$archived_log WHERE dest_id = 1) Sec_prim,

(SELECT MAX(sequence#) FROM v$archived_log WHERE TRUNC(next_time) > SYSDATE-1

AND dest_id = 2) max_stdby,

(SELECT NVL((SELECT MAX(sequence#)-MIN(sequence#) FROM v$archived_log

WHERE TRUNC(next_time) > SYSDATE-1 AND dest_id=2

AND applied='NO'),0) FROM DUAL) "Para aplicar",

((SELECT MAX(sequence#) FROM v$archived_log WHERE dest_id=1)-

(SELECT MAX(sequence#) FROM v$archived_log WHERE dest_id=2)) "Para enviar"

FROM DUAL;

BD SEC_PRIM MAX_STDBY Para aplicar Para enviar

--------- ------------------- ---------- ------------- -------------

PROD 65 65 0 0