Depurar homes de Oracle y Grid con ADRCI


Exportamos las variables de Grid:

. oraenv
ORACLE_SID =  [] ?+ASM ó +ASM1 (depende del tipo de instalación)
ORACLE_HOME = [] ? /oracle/DB/dbhome_1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH


for f in $( adrci exec="show homes" | grep -v "ADR Homes:" );
 do
 echo "Purging ${f}:";
 adrci exec="set home $f; purge -age 0 ;" ;
 done

Lo cual genera una salida como esta:

Purging diag/tnslsnr/bmbdpt01/listener:
Purging diag/asm/+asm/+ASM:
Purging diag/crs/bmbdpt01/crs:


Exportamos las variables de Base de Datos Oracle:

. oraenv
ORACLE_SID =  [] ?+BD1 ó +BD2 (Nombre de la Base de Datos)
ORACLE_HOME = [] ?/grid/GI/12.0.1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH


for f in $( adrci exec="show homes" | grep -v "ADR Homes:" );
 do
 echo "Purging ${f}:";
 adrci exec="set home $f; purge -age 0 ;" ;
 done

Lo cual genera una salida como esta:

Purging diag/rdbms/BD1/BD1:
Purging diag/clients/user_oracle/host_2343385924_82:


Como Respaldar de Forma Temporal un Filesystem de Unix/Linux del Home de /oracle y /grid

Para Respaldar comprimidos los home de Oracle y Grid  "filesystem" utilizamos:

Nos conectarse con usuario root
Ubicarse en el directorio /
Para el ejemplo vamos a respaldar temporalmente todo el Filesystem /oracle y /grid

Oracle:

tar cvf - /oracle |gzip > /backups/oracle.tar.gz

 Grid:

tar cvf - /grid |gzip > /backups/grid.tar.gz 

Para Restaurar "Descomprimir" los archivos en los filesystem utilizamos:

En algunas ocasiones puede ser necesario restaurar el home del /oracle o el /grid, para realizar esta restauración se realiza lo siguiente.

Conectarse con usuario root
Ubicarse en el directorio /
Descomprimir y desempaquetar el backup del home de oracle o grid tomados inicialmente según corresponda.

 Oracle:

gunzip < /backup/oracle.tar.gz | tar xvf -
Grid:

gunzip < /backup/grid.tar.gz | tar xvf - 



Para validar que funciono la restuaracion de Fielsystem se hace necesario subir servicios de Cluster y Base de Datos.

Lanzar Backup de RMAN en Base de Datos Oracle

Nos conectamos

rman target /

connected to target database: BD1 (DBID=76393209)

RMAN> run
 {
 allocate channel t1 type disk ;
 allocate channel t2 type disk ;
allocate channel t3 type disk ;
allocate channel t4 type disk ;

sql 'alter system archive log current' ;
sql 'alter system archive log current' ;

backup as compressed backupset database filesperset=1 format '/export/rman_bd1/db_database_%U.bck' ;

sql 'alter system archive log current' ;
 sql 'alter system archive log current' ;

 backup as compressed backupset archivelog all format '/export/rman_bd1/db_database_%U.bck' ;

 backup current controlfile format '/export/rman_bd1/db_controlfile_%U.bck' ;

 release channel t1 ;
 release channel t2 ;
 release channel t3 ;
 release channel t4 ;
}

Aplicar PSU - Parche en Oracle 12 en Windows Server 2012



Saludos,

Para tener presente a la hora de aplicar un PSU o un parche a la Base de Datos de Oracle en Sistema Operativo Windows.

Seteamos el oracle_home,patch_home, PATH and ORACLE_SID

SET ORACLE_HOME=D:\oracle\DB\12.1.0.2\dbhome_1
SET PATH=D:\oracle\DB\12.1.0.2\dbhome_1\bin;D:\oracle\DB\12.1.0.2\dbhome_1\opatch;%PATH%
SET ORACLE_SID=ORCL
SET PATH=%ORACLE_HOME%\perl\bin;%PATH%

Validamos la version del opatch instalado:
# opatch version 





NOTA: Se recomienda tener la ultima versión instalada.

Validamos el ultimo parche aplicado:
# opatch lsinventory



Realizamos un backup Full de la Base de Datos y de los Binarios de Oracle.
run {
allocate channel ch00 type disk;
allocate channel ch01 type disk;
allocate channel ch02 type disk;
backup format 'F:\rman\full_db_%t_%sp%p' filesperset 10 database plus archivelog;
release channel ch00;
release channel ch01;
release channel ch02;
allocate channel ch00 type disk;
backup format 'F:\rman\cntrl_%s_%p_%t' CURRENT CONTROLFILE;
backup format 'F:\rman\spfile_%s_%p_%t' spfile;
release channel ch00;
}
Creamos un pfile as current Spfile.
# create pfile='E:\oracle\initpfile.ora' from spfile;

Validamos objectos invalidos antes y después de aplicar el parche de seguridad.
select 'alter '||object_type|| ' ' || owner ||'.'||object_name || ' compile;' from dba_objects where status='INVALID';

NOTA: Si es una maquina virtual debemos realizar en Services.msc
Bajar servicios de Oracle , Distributed Transaction Coordinator, Windows Management Instrumentation, COM+ System Application, VMware Tools, VMware-provided.


Para proceder a aplicar el Parche de seguridad vamos al archivo que descargamos de oracle support, lo descomprimimos y vamos a la ruta de la carpeta que descomprimio.

#cd C:\parche_oracle\p27162953_121020_MSWIN-x86-64\27162953

C:\parche_oracle\p27162953_121020_MSWIN-x86-64\27162953> opatch apply 



Cuando termina de aplicar el parche de seguridad genera el mensaje:


Validamos la versión del parche aplicado:
# opatch lsinventory





Ya confirmamos que quedo aplicado el ultimo parche de seguridad.

Subimos los servicios de la Base de Datos y confirmamos que nos podemos conectar por sysdba.

Ahora debemos registrarlo en la Base de Datos Oracle:

# cd D:\oracle\DB\12.1.0.2\opatch
# D:\oracle\DB\12.1.0.2\opatch> datapatch -verbose




NOTA: Tener presente que para versión de 11g se realiza un Post diferente.

Validamos que en la Base de Datos registre el PSU aplicado.

select patch_id,version,flags,action,status,action_time,description,bundle_series from dba_registry_sqlpatch;



Validamos los objectos inválidos después de aplicar el parche de seguridad:

cd %ORACLE_HOME%\rdbms\admin
sqlplus /nolog
CONNECT / AS SYSDBA
@utlrp.sql
select count(*) from dba_objects where status='INVALID';