miércoles, 18 de agosto de 2010

Database Vault

Ahora me ha tocado aprender database vault para un proyecto en el que iba a ser consultora, y por vueltas del destino me tocó ser el dba que instaló el producto en varias bases de datos del mismo proyecto.
Les paso la guía que generé después de algo de investigación, espero que les guste y les sirva.
Agradezco a mi compañero Nacho Vega por ayudarme a mejorar y completar mi documentación.

saludos!


1. Ingresar al servidor y fijar ambiente a la base de datos a instalar.

2. Realizar respaldo de la base de datos en frío.

3. Realizar respaldo del Home de Oracle de la base de datos a instalar.

4. Configurar el oraInventory:

Dependiendo el sistema operativo :
AIX /etc
Solaris /var/opt/oracle
a. Renombrar el archivo oraInst.loc, y renombrar el archivo oraInst de la base de datos a actualizar a oraInst.loc, o en su defecto, modificar la ruta de oraInst.loc para que apunte al inventory del Home de Oracle a instalar.
b. Esto es para que la instalación quede registrada en el inventory propio de la base de datos.

5. crear password file para la base de datos

6. Realizar los pasos de instalación de emca (opcional, se usará la consola de DBVault 11g):
a. Ejecutar el script de creación del usuario dbsnmp:
?/rdbms/admin/catsnmp.sql
b. Ejecutar emca con la siguiente sintaxis:
emca –config dbcontrol db –repos create

preguntara varios datos

Database SID:
Listener port number:
Password for SYS user:
Password for DBSNMP user:
Password for SYSMAN user:
Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):

c. En caso de ser necesario recrear o eliminar el repositorio, seguir los pasos indicados en la nota de metalink 278100.1
7. Respaldar los siguientes archivos:

Dependiendo el sistema operativo
AIX /etc
Solaris /var/opt/Oracle

a. oratab

Respaldar los archivos de red

b. /var/opt/oracle/listener.ora
c. /var/opt/oracle/tnsnames.ora

8. Revisar que el archivo de script bndlchk, ubicado en $ORACLE_HOME/bin, tenga configurado correctamente el ORACLE_HOME, para evitar errores al momento de instalar DBVault.

9. Crear un servicio de red (listener) con nombre LISTENER y en el puerto 1521.

10. Asegurarse que la variable TNS_ADMIN y ORACLE_BASE no tenga valor asignado.

unset TNS_ADMIN
unset ORACLE_BASE

11. bajar los servicios excepto el listener del puerto 1521

12. Ejecutar runinstaller como se muestra a continuación:

13. runInstaller ORACLE_HOSTNAME= xxx (donde xxx es el nombre del equipo)









14. El log de instalación puede ser monitoreado en $ORACLE_HOME/oraInventory/logs

15. Introducir los datos correspondientes al ambiente:

a. ORACLE_HOME donde será instalado.
b. Base de datos donde será instalado.
c. Usuario y contraseña del dueño de DBVault (dvowner).
d. Usuario y contraseña del administrador de cuentas (dacctmgr).
e. Seleccionar “User Verified” al error que indica que la variable ORACLE_BASE no está correctamente configurada.
Nota que para este post, estoy tomando como usuario "dvowner" y "dvacctmgr" como dueños de Database Vault y Administrador de cuentas respectivamente.

16. dar el password de sys y verificar que el ORACLE_HOME y la base de datos que selecciona el Universal Installer sean correctos








17. mandara un mensaje de que dará de baja los servicios










18. Ya verificado los procesos de instalación se debe de dar ok









19. Se verifica que debe de estar en la home correcto









20. Por un defecto en el software, dvca falla durante el proceso de instalación, por lo mismo es necesario ejecutarlo manualmente.



























21. Verificar que la base de datos este levantada con spfile

show parameter spfile

22. Ejecutar dvca con los siguientes parámetros:

dvca -action option -oh $ORACLE_HOME -s_path /tmp -logfile $ORACLE_HOME/cfgtoollogs/dvca_install.log -owner_account dvowner -owner_passwd pass1234# -acctmgr_account dvacctmgr -acctmgr_passwd pass1234# -jdbc_str jdbc:oracle:oci:@$ORACLE_SID -sys_passwd xxx -languages {en} –nodecrypt

Donde:
Pass1234# es la contraseña que hayamos asignado a los usuarios dvowner y dvacctmgr
Xxx es la contraseña de nuestro usuario sys
$ORACLE_SID es el nombre de nuestra base de datos, la cual debe de estar previamente configurada en la variable de ambiente ORACLE_SID
$ORACLE_HOME también debe de estar previamente configurado al path del software de oracle

23. Realizar verificación de la instalación de Database Vault:

a. Primero, al ejecutar SQL*Plus, vemos que marca como opción Database Vault y antes no lo marcaba:

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Aug 18 13:20:16 2010

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

b. Verificar que todos los objetos de DVSYS y DVF estén válidos

select owner,status,count(1)
from dba_objects
group by owner,status
order by 1;

c. Verificar que es posible ejecutar lo siguiente:
Select dvf.f$session_user from dual;

F$SESSION_USER
--------------------------------------------------
SYS


d. Verificar que el usuario sys no puede ver la siguiente table:
Select * from dvsys.audit_trail$;

Select * from dvsys.audit_trail$
*
ERROR at line 1:
ORA-01031: insufficient privileges


e. Eliminar los datos de OLAP que pueden ocasionar problemas al momento de realizar exports con Data Pump:
Delete from SYS.EXPPKGACT$ where package=’DBMS_AW_EXP’;

e. Bajar la Base de datos.

24. Cambiar contraseñas de DVSYS y DVF, y desbloquear cuentas. Para esto, es necesario primero deshabilitar DBVault y realizar los cambios.

25. Para deshabilitar Database Vault:

a. cd $ORACLE_HOME/rdbms/lib
b. make –f ins_rdbms.mk dv_off
c. cd $ORACLE_HOME/bin
d. relink all


26. Aplicar los parches de database vault:

a. 6401347 solo aplica para versión 10.2.0.4

27. Levantar la base de datos


28. Ejecutar una compilación de objetos inválidos:

@?/rdbms/admin/utlrp.sql

29. Revisar nuevamente que todos los objetos de DVSYS y DVF estén válidos.

select owner,status,count(1)
from dba_objects
group by owner,status
order by 1;

30. Cambiar passwords y desbloqueo de los usuarios dvsys y dvf (Esto aunque no está en el manual de oracle, yo lo recomiendo para no tener que deshabilitar database vault en el momento en que se quieran desbloquear las cuentas, hay que considerar que para deshabilitar database vault hay que bajar la base de datos)

alter user dvsys identified by cambiame;
alter user dvf identified by cambiame;
alter user dvsys account unlock;
alter user dvf account unlock;

31. Bajar la base de datos y habilitar nuevamente Database Vault.

32. Para habilitar Database Vault:

a. cd $ORACLE_HOME/rdbms/lib
b. make –f ins_rdbms.mk dv_on
c. cd $ORACLE_HOME/bin
d. relink all