Mostrando las entradas con la etiqueta RAC. Mostrar todas las entradas
Mostrando las entradas con la etiqueta RAC. Mostrar todas las entradas

lunes, 17 de abril de 2017

Error ORA-01033 después de realizar un switchover en un ambiente 12.1 RAC

Principalmente escribo este post para no olvidarme de este error, así que será un pequeño post. El otro día hice una switchover en un ambiente de RAC, que fue bastante fácil, pero después de hacer el switchover, en la Base de datos primaria continua recibiendo el siguiente error:

select dest_name,status,error from gv$archive_dest_status where dest_id=2;

DEST_NAME
--------------------------------------------------------------------------------
STATUS   ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
ERROR   ORA-01033: ORACLE initialization or shutdown in progress

LOG_ARCHIVE_DEST_2
ERROR   ORA-01033: ORACLE initialization or shutdown in progress

Así que fui y verifique la base de datos standby, y vi que estaba en modo de recuperación y esperando el redo log

PROCESS STATUS      CLIENT_P CLIENT_PID   THREAD#  SEQUENCE#      BLOCK#    ACTIVE_AGENTS  KNOWN_AGENTS
------- ------------ -------- ---------- ---------------- ---------------- ---------------- ---------------- ----------------
ARCH CONNECTED    ARCH     44474   0   0    0     0      0
RFS IDLE      ARCH     133318   0   0    0     0      0
RFS IDLE      ARCH     50602   0   0    0     0      0
ARCH CLOSING      ARCH     44470   1      21623       14336     0      0
ARCH CLOSING      ARCH     44476   1      21624    1     0      0
ARCH CLOSING      ARCH     44472   2      19221       96256     0      0
RFS IDLE      LGWR     133322   1      21625       17157     0      0
RFS IDLE      LGWR     50620   2      19222       36611     0      0
MRP0 WAIT_FOR_LOG N/A      N/A   2      19222       36617    0     0

Así que lo primero que pensé fue que el archivo de contraseña estaba incorrecto, así que los recreé y los copié desde el nodo primario a los nodos en de la base de datos en standby, pero seguí recibiendo el mismo error. Revisé el entorno con los scripts en el DOC ID 1581388.1 de MOS y todo parecía estar bien.

 Me molestó que los registros no se estaban aplicando a pesar de que los registros estaban siendo enviados a la base de datos standby, por lo que tenía que ver con el archivo de contraseña, pero lo que realmente me molestó, fue que acababa de recrear el archivo de contraseña en $ORACLE_HOME/dbs y todavía seguía recibiendo el mismo error.

Así que después de un tiempo de estar buscando la solución al problema, encontré que en la nueva base de datos primaria, el archivo de contraseña residía en un ASM Diskgroup, y que eso era la principal causa de este error , así que lo que tenía que hacer era copiar el archivo de contraseña del grupo de discos ASM en el ambiente primario al ambiente standby.

Base de datos Primaria

[oracle@localhost trace]$ srvctl config database -d renedb
Database unique name: renedb
Database name: 
Oracle home: /u01/app/oracle/product/12.1.0.2/db_1
Oracle user: oracle
Spfile: +DATA1/renedb/spfilerenedb.ora
Password file: +DATA1/renedb/PASSWORD/pwrenedb
Domain: 
Start options: open
Stop options: immediate
Database role: PHYSICAL_STANDBY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: ARCH1,DATA1,REDO
Mount point paths: 
Services: 
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: oper
Database instances: renedb1,renedb2
Configured nodes: localhost,localhost
Database is administrator managed
[oracle@localhost trace]$ exit
-bash-4.1$ sudo su - grid
[sudo] password for pythian: 
[grid@localhost ~]$ . oraenv
ORACLE_SID = [+ASM1] ? 
The Oracle base remains unchanged with value /u01/app/grid
[grid@localhost ~]$ asmcmd
ASMCMD> pwcopy +DATA1/renedb/PASSWORD/pwrenedb /tmp/pwrenedb
copying +DATA1/renedb/PASSWORD/pwrenedb > /tmp/pwrenedb
ASMCMD> exit

Base de datos Standby


[oracle@localhost dbs]$ scp 10.10.0.1:/tmp/pwrenedb /tmp/pwrenedb_stby
pwrenedb_stby_phdb                                                                                                                                                                                                    100% 7680     7.5KB/s   00:00    
[oracle@localhost dbs]$ exit
logout
[pythian@localhost ~]$ sudo su - grid
[sudo] password for pythian: 
Last login: Fri Mar 31 21:55:53 MST 2017
[grid@localhost ~]$ . oraenv
ORACLE_SID = [grid] ? +ASM1
The Oracle base has been set to /u01/app/grid
[grid@localhost ~]$ asmcmd
ASMCMD> mkdir DATA/RENEDB/PASSWORD
ASMCMD> pwcopy /tmp/pwrenedb_stby_phdb +DATA/RENEDB/PASSWORD/pwrenedb_stby
copying /tmp/pwrenedb_stby_phdb -> +DATA/RENEDB/PASSWORD/pwrenedb_stby
ASMCMD> exit
[grid@localhost ~]$ exit
logout
[pythian@localhost ~]$ sudo su - oracle
Last login: Sat Apr  1 01:35:46 MST 2017 on pts/4
The Oracle base has been set to /u01/app/oracle
[oracle@localhost dbs]$ srvctl modify database -d renedb_stby -pwfile +DATA/RENEDB/PASSWORD/pwrenedb_stby
[oracle@localhost dbs]$ srvctl config  database -d renedb_stby
Database unique name: renedb_stby
Database name: 
Oracle home: /u01/app/oracle/product/12.1.0/dbhome_1
Oracle user: oracle
Spfile: /u01/app/oracle/product/12.1.0/dbhome_1/dbs/spfilerenedb_stby.ora
Password file: +DATA/RENEDB/PASSWORD/pwrenedb_stby
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: ARCH,DATA,REDO
Mount point paths: 
Services: 
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: oper
Database instances: renedb_stby1,renedb_stby2
Configured nodes: *******,***********
Database is administrator managed

Una vez que lo hice, la base de datos standby comenzó a aplicar los redologs, y después de que se cerrara la brecha, el estado de switchover de la base de datos Principal era "TO STANDBY" 

Base de Datos Primaria

Primary Site last generated SCN

*******************************

DB_UNIQUE_NAME SWITCHOVER_STATUS   CURRENT_SCN
--------------- -------------------- ----------------
renedb TO STANDBY   134480468945

Base de Datos Standby


Data Guard Apply Lag

********************

NAME      LAG_TIME    DATUM_TIME        TIME_COMPUTED
------------ -------------------- -------------------- --------------------
apply lag    +00 00:00:00   04/01/2017 04:05:51  04/01/2017 04:05:52

1 row selected.


Data Guard Gap Problems

***********************

no rows selected

PROCESS STATUS      CLIENT_P CLIENT_PID   THREAD#  SEQUENCE#      BLOCK#    ACTIVE_AGENTS  KNOWN_AGENTS
------- ------------ -------- ---------- ---------------- ---------------- ---------------- ---------------- ----------------
ARCH CONNECTED    ARCH     44474   0   0    0     0      0
RFS IDLE      ARCH     133318   0   0    0     0      0
RFS IDLE      ARCH     50602   0   0    0     0      0
ARCH CLOSING      ARCH     44470   1      21623       14336     0      0
ARCH CLOSING      ARCH     44476   1      21624    1     0      0
ARCH CLOSING      ARCH     44472   2      19221       96256     0      0
RFS IDLE      LGWR     133322   1      21625       17157     0      0
RFS IDLE      LGWR     50620   2      19222       36611     0      0
MRP0 APPLYING_LOG N/A      N/A   2      19222       36617    33     33

9 rows selected.

Conclusión

En 12.1 se recomienda en el DOC ID 1984091.1 de MOS, tener el archivo de contraseña en los diskgroups de ASM. Así que una vez que hice esto, fui capaz de soluciónar el error ORA-01033 y poder dormir bien :).

viernes, 5 de diciembre de 2014

Oracle 12cR1 : RAC Attack a la Mexicana – Instalación de los binarios de Oracle RDBMS

RAC Attack es un libro que ha sido escrito por varias personas en el ámbito de Oracle y que tu eres libre de editar y contribuir, pero una de las quejas que existía es que no había una versión en español, y es por eso que estoy escribiendo esta serie de posts, en donde también los voy a hacer disponibles en el libro de RAC Attack.

En la 1a parte, vimos las necesidades de HW y SW, así como la instalación del OS RHEL 6.5

En la 2a parte vimos  la configuración del OS en el primer nodo y segundo nodo, así como la configuración del DNS.

En la 3a parte vimos a ver la instalación de los binarios del Grid Infrastructure y su configuración

En esta 4a parte vamos a instalar los binarios del RDBMS.

Nota.- Cuando veas lo siguiente en la salida de una terminal "...", es para acortar las lineas de salida

Instalación de los binarios del RDBMS

Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte

Ejecuta el instalador como el usuario oracle.

[oracle@collabn1 sf_rac_media]$ /media/sf_rac_media/database/runInstaller 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 16829 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3023 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-23-10_10-40-31PM. Please wait ...

Desmarca I wish to receive security updates via My Oracle Support y haz clic en Next.

Haga clic en Yes para confirmar que no deseas estar informado acerca de las actualizaciones de seguridad.

Selecciona Skip software updates y haz clic en Next.

Selecciona Install database software only y haz clic en Next.

Selecciona Oracle Real Application Clusters database installation y haz clic en Next.

Verifica que estén seleccionados todos los nodos y haga clic en Next.

Haz clic en Next para aceptar la selección de idioma predeterminado.

Selecciona Enterprise Edition y haga clic en Next.

Si creaste previamente el sistema de archivos ACFS 1Gb, tendrás que especificar otra ubicación
  • Oracle Base: /u01/app/oracle
  • Software location: /u01/app/oracle/product/12.1.0/dbhome_1
Haz clic en Next.

Deja dba para todos los grupos, excepto para el grupo OSOPER (dejalo en blanco) y haz clic en Next.

El instalador comprueba todos los pre-requisitos.

Revisa el resumen de la instalación, opcionalmente guarda un archivo de respuesta y haz clic en Install.


La instalación puede tardar media hora en PCs comunes.

Justo antes de terminar, el instalador te marca que debes de ejecutar un script en ambos nodos como el usuario root. No hagas clic en Aceptar hasta que hayas corrido el script

Inicia una sesión como el usuario root en el nodo collabn1 y collabn2 abre una terminal de bash como se mostro al final de la 1a parte
Ejecutar el script en ambos nodos como root.


[root@collabn1 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation for Oracle 12c

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.1.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@collabn1 ~]# ssh collabn2
root@collabn2's password:
[root@collabn2 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation for Oracle 12c

The following environment variables are set as:
   ORACLE_OWNER= oracle
   ORACLE_HOME=  /u01/app/oracle/product/12.1.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

Ahora si haz clic en Ok de la ventana anterior, y a continuación, haz clic en Close para salir del instalador.

Crear la Base de Datos

Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte.

Corre el asistente de configuración de Base de datos (dbca)


[oracle@collabn1 ~]$ /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca 

Selecciona Create Database y dale clic a Next.

Selecciona Create a database with default configuration.

  • Global Database Name: RAC.racattack
  • Storage Type: Automatic Storage Management (ASM)
  • Database Files Location: +DATA
  • Fast Recovery Area: +FRA
  • Database Character Set: AL32UTF8 - Unicode UTF-8 Universal character set
  • Administrative password: racattack
  • Selecciona Create As Container Database
  • Pluggable Database Name: PDB 


Se muestra un aviso de que la contraseña es débil. Haz clic en Yes para continuar.

Las comprobaciones de pre-requisitos pueden fallar debido a las necesidades de espacio. Es seguro ignorar estás.
Haga clic en Next.

Revisa la página de resumen y haz clic en Finish.

La creación de bases de datos ha finalizado. Haz clic en Exit y luego Close.

Conclusión
En la 1a entrada, terminas la instalación de Virtualbox y del Sistema Operativo, en la siguiente entrada vamos a configurar el Sistema Operativo y configurar los DNS para poder instalar RAC en dos nodos.
En la 2a entrada, terminas la configuración del DNS , así como la clonación de la segunda maquina virtual collabn1.
En la 3a parte instalamos los binarios de Grid Infrastructure y en la 4a parte instalamos los binarios del RDBMS.

Espero que te sirva para empezar a probar RAC en tu ambiente de pruebas !!!

Oracle 12cR1 : RAC Attack a la Mexicana - Instalación de Oracle Grid Infrastructure

RAC Attack es un libro que ha sido escrito por varias personas en el ámbito de Oracle y que tu eres libre de editar y contribuir, pero una de las quejas que existía es que no había una versión en español, y es por eso que estoy escribiendo esta serie de posts, en donde también los voy a hacer disponibles en el libro de RAC Attack.

En la 1a parte, vimos las necesidades de HW y SW, así como la instalación del OS RHEL 6.5

En la 2a parte vimos  la configuración del OS en el primer nodo y segundo nodo, así como la configuración del DNS.

En esta 3a parte vamos a ver la instalación de los binarios del GI y su configuración

Nota.- Cuando veas lo siguiente en la salida de una terminal "...", es para acortar las lineas de salida

Instalación de el Grid Infrastructure (ASM)

Ejecuta la instalación de el Grid Infrastructure como el usuario oracle:

[oracle@collabn1 sf_rac_media]$ /media/sf_rac_media/grid/runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 22670 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3023 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-10-23_08-12-00PM. Please wait ...[oracle@collabn1 sf_rac_media]$ 
[oracle@collabn1 sf_rac_media]$ 

Deja en blanco Skip software updates y haz clic en Next:

Selecciona Install and Configure Oracle Grid Infrastructure for a Cluster  y haz clic en Next:

Selecciona Configure a Standard Cluster y haz clic en Next:

Selecciona Typical Installation y haz clic en Next:

En el recuadro de SCAN Name, introduce collabn-cluster-scan.racattack
  • En el recuadro central, sólo se muestra el primer nodo.
  • Haz clic en Add ... e introduce el nombre de red del segundo nodo:
    • Public Hostname: collabn2.racattack
    • Virtual Hostname: collabn2-vip.racattack

Dale clic a SSH connectivity... e teclea racattack como la contraseña del usuario oracle y haz clic en Setup.

Lo que va a suceder es que se inicia la conectividad SSH sin contraseñas de a través de los nodos

Dale clic en OK cuando termine 

Ahora dale clic en Identify Network Interfaces...
  • Comprueba que las direcciones correctas fueron establecidas:
    • eth0 esta marcada como Public
    • eth1 esta marcada como Private
    • eth2 esta marcada como Do Not Use
  • Haz clic en Ok para cerrar la ventana de Identify Network Interfaces.

Finalmente dale clic a Next 


Algunas validaciónes de pre-requisito se realizan en este paso. Se puede tardar algunos minutos en completarse este paso.

Dado que el nombre elegido para el SCAN es demasiado largo (más de 15 caracteres.) Oracle propone un nombre diferente como el nombre de clúster. Haga clic en Yes.

Deja el valor predeterminado de Oracle Base y Software Location.
  • En el recuadro desplegable Cluster Registry Storage Type, selecciona Oracle Automatic Storage Management
  • Introduce racattack como la contraseña de SYSASM.
  • Seleccione dba como grupo el grupo de OSASM.

racattack es una contraseña débil y Oracle te alerta sobre esto. Haga clic en Ok para continuar:

Deja DATA como el Disk Group Name.
  • Selecciona redundancia externa (External redundancy) [Nota .- Esto es seguro hacerlo nada mas en un ambiente de pruebas, para producción se requiere analizar si esta es el mejor tipo de redundancia ].
  • La lista de discos candidatos (Candidate Disks) está vacía. Haz clic en Change Discovery Path...
  • Cambia la ruta a  /dev/asm* en el campo de texto Disk Discovery Path.
  • Haz clic en Ok.

Selecciona los primeros dos discos que serán inmediatamente añadidos al nuevo grupo de discos y haz clic en Next

Deje el Directorio de inventario predeterminado (Inventory Directory). Haz clic en Next.

Selecciona Automatically run configuration script y luego utiliza las credenciales del usuario "root".
Introduce racattack como la contraseña de root y haga clic en Next.

Algunas validaciónes de pre-requisito se realizan en este paso. Se puede tardar algunos minutos en completarse este paso.

Si todo es correcto, te darás cuenta de dos pasos han fallado :
  • Physical Memory
  • Device Checks for ASM
Marca "Ignore All" y haga clic en Next.

Haz clic en Yes para confirmar que desea omitir algunos requisitos previos.

Te va a aparecer la página de resumen. Opcionalmente, haz clic en Guardar archivo de respuesta (Save Response File) y elige una ubicación para que el archivo de respuestas sea guardado.

Revisa el resumen y haga clic en Install para iniciar la instalación.

Ahora comienza la instalación. Se puede tomar más de una hora, dependiendo del hardware de tu PC.

Después de un tiempo, la instalación te pide una confirmación antes de ejecutar algunos scripts como root. Haga clic en Ok para continuar.

La instalación continúa, esto puede tardar mucho tiempo en completarse. Una vez que esté terminado, haz clic en Close para salir.

Configuración de ASM
Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte

Ejecuta el Asistente de configuración de ASM:

[oracle@collabn1 ~] . oraenv
ORACLE_SID = [oracle] ? +ASM1
The Oracle base has been set to /u01/app/oracle
[oracle@collabn1 ~]$ asmca

El asmca abre en la pestaña de Grupos de discos (Disk Groups) , que muestra el diskgroup DATA creado por el instalador. Haz clic en Create.

Introduce FRA como el nombre del grupo de discos.

  • Elige la redundancia redundancia External (none).
  • Selecciona uno de los discos para crear un diskgroup de 5Gb.
  • Haz clic en Ok.

Se está creando el diskgroup y cuando finaliza te muestra la pantalla de que fue creado

Haz clic en la pestaña Volumes,y a después en Create.

  • Teclea SHARED como el nombre del volumen.
  • Elige el diskgroup DATA.
  • El tamaño será irrelevante en nuestro laboratorio, por lo que teclea 1.
  • Haga clic en Ok.

Se crea el volumen

Selecciona la pestaña ASM Cluster File Systems y dale clic a Create

Selecciona Cluster File System.
  • Mountpoint: /shared
  • Selecciona Automount.
  • User Name: oracle
  • Group Name: dba
  • Volume: SHARED
  • Dale clic a OK.

Para completar la creación del sistema de archivos, ejecuta este script como root.


[root@collabn1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/acfs_script.sh
ACFS file system /shared is mounted on nodes collabn1
ACFS file system /shared is mounted on nodes collabn2

Por último, el sistema de archivos está montado en ambos nodos.


[oracle@collabn1 ~]$ df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_collabn1-lv_root   31G   19G   11G  64% /
tmpfs                            1.5G  632M  875M  42% /dev/shm
/dev/sda1                        477M   55M  397M  13% /boot
rac_media                        931G  606G  326G  66% /media/sf_rac_media
/dev/sr0                          56M   56M     0 100% /media/VBOXADDITIONS_4.3.20_96996
/dev/asm/shared-449              1.0G   79M  946M   8% /shared

[oracle@collabn2 ~]$ df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_collabn1-lv_root   31G   19G   11G  64% /
tmpfs                            1.5G  632M  875M  42% /dev/shm
/dev/sda1                        477M   55M  397M  13% /boot
rac_media                        931G  606G  326G  66% /media/sf_rac_media
/dev/sr0                          56M   56M     0 100% /media/VBOXADDITIONS_4.3.20_96996
/dev/asm/shared-449              1.0G   79M  946M   8% /shared

Conclusión
En la 1a entrada, terminas la instalación de Virtualbox y del Sistema Operativo, en la siguiente entrada vamos a configurar el Sistema Operativo y configurar los DNS para poder instalar RAC en dos nodos.

En la 2a entrada, terminas la configuración del DNS , así como la clonación de la segunda maquina virtual collabn1.

En esta 3a parte instalamos los binarios de Grid Infrastructure y en la 4a parte vamos a instalar los binarios del RDBMS.