Acerca de admin

Tras más de 20 años trabajando con tecnologías Oracle, me decidí a recopilar en un Blog algunas de las cosillas útiles para el día a día.

Donde está el Oracle Enterprise Manager en la 12c?

Una de las nuevas funcionalidad es de la 12c es que «la consola web» de Oracle pasa de ser un servicio java externo a ser un elemento en debido dentro de la base de datos.El nombre oficial de la consola es «Oracle Enterprise Manager Database Express» (OEM Database Express)
Esta consola es gestionada mediante el paquete DBMS_XDB_CONFIG.

EL EM express está iespecíficamente dseñado para ser un interfaz ligero que no tenga afectación sobre le rendimiento de la base de datos , no tiene ningún proceso de background o tareas asociado a la consola.
Al ser un componente dentro de la base de datos, necesita de que la propia base de datos esté levantada ,y no puede llevar acciones fuera de la base de datos.

Vamos a ver cuales son los comandos básicos para su uso

Lo primero que tenemos que hacer es asegurarnos que hay un displacer asociado


NAME            TYPE	 VALUE
-------------- ----------- ------------------------------
dispatcher       string	 (PROTOCOL=TCP) (SERVICE=testXDB)

Comprobar el puerto

SQL> select dbms_xdb_config.gethttpsport () from dual;
DBMS_XDB_CONFIG.GETHTTPSPORT()
------------------------------
			  5500

Cambiar el puerto

SQL> exec dbms_xdb_config.sethttpsport (5501);

Los procedimientos de DBMS_XDB_CONFIG necesitan permisos SYSDBA para poder ejecutarse

El EM Express usa Shockwave Flash ( SWF) por lo que su funcionamiento necesita de un navegador que tenga el pugin de flash instalado

Mas información óen :

Comments in spfile

Hola de nuevo !!

Hoy vamos a ver una funcionalidad muy simple y sencilla pero que nos ayudará a mantener nuestro sistema documentado , la opcion comment en el spfile
Hasta el momento, cuando queríamos dejar reflejado un comentario en uno de nuestros pfile simplemente teníamos que ponerlo comentado mediante el caracter #, pero
¿como lo hacemos con el spfile?

La respuesta es increíblemente sencilla


alter system set"_b_tree_bitmap_plans"=false comment='23-11-2016 por bug 8318459' SCOPE=SPFILE;

desinstalacion del grid control

Tras un largo periodo de inactividad, vamos a añadir una pequeña entrada con la manera de desinstalar el grid control de Oracle .

Al contrario de cuando se tiene una base ded datos sencilla de Oracle donde con borrar binarios, inventario y oratab el sistema ( en unix) queda lo sufucientemente limpio como para llevar a cabo una reinstalacion, si tenemos que reinstalar un grid infraestructure por que ha habido problemas en la instalacion o por que queremos quitarlo, no se puede hacer «a las bravas».

La manera de lelvarlo a cabo es muy sencilla.
Solamente tenemos que ir al $GRID_HOME/deinstall y ejecutar ./deinstall
Este proceso se ha de ejecutar como propietario del grid, y , al igual que la instalacion, en un momento determinado nos solicitará la ejecucion de una cadena como root.

[grid@serverpruebas ] cd  $GRID_HOME/deinstall
[grid@serverpruebas ] ls 
bootstrap.pl         bootstrap_files.lst  deinstall            deinstall.pl         deinstall.xml        jlib                 readme.txt           response             sshUserSetup.sh      utl
[grid@serverpruebas ]./deinstall 	
Checking for required files and bootstrapping ...
Please wait ...
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DECONFIG TOOL START ############


######################### DECONFIG CHECK OPERATION START #########################
## [START] Install check configuration ##


Checking for existence of the Oracle home location /opt/app/oracle/product/12.1.0/grid
Oracle Home type selected for deinstall is: Oracle Grid Infrastructure for a Standalone Server
Oracle Base selected for deinstall is: /opt/app/oracle
Checking for existence of central inventory location /opt/app/oraInventory
Checking for existence of the Oracle Grid Infrastructure home /opt/app/oracle/product/12.1.0/grid

## [END] Install check configuration ##

Traces log file: /tmp/deinstall2016-11-03_09-31-33PM/logs//crsdc_2016-11-03_09-32-36PM.log

Network Configuration check config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_check2016-11-03_09-32-38-PM.log

Network Configuration check config END

Asm Check Configuration START

ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_check2016-11-03_09-32-39-PM.log

ASM configuration was not detected in this Oracle home. Was ASM configured in this Oracle home (y|n) [n]: y
Automatic Storage Management (ASM) instance is detected in this Oracle home /opt/app/oracle/product/12.1.0/grid.
ASM Diagnostic Destination : /opt/app/oracle
ASM Diskgroups :
ASM diskstring : 
Diskgroups will not be dropped
 If you want to retain the existing diskgroups or if any of the information detected is incorrect, you can modify by entering 'y'. Do you  want to modify above information (y|n) [n]:
Database Check Configuration START

Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_check2016-11-03_09-32-50-PM.log

Database Check Configuration END

######################### DECONFIG CHECK OPERATION END #########################


####################### DECONFIG CHECK OPERATION SUMMARY #######################
Oracle Grid Infrastructure Home is: /opt/app/oracle/product/12.1.0/grid
The following nodes are part of this cluster: null
The cluster node(s) on which the Oracle home deinstallation will be performed are:null
Oracle Home selected for deinstall is: /opt/app/oracle/product/12.1.0/grid
Inventory Location where the Oracle home registered is: /opt/app/oraInventory
ASM instance will be de-configured from this Oracle home
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DECONFIG CLEAN OPERATION START ########################
Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_clean2016-11-03_09-32-53-PM.log
ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_clean2016-11-03_09-32-53-PM.log
ASM Clean Configuration START
ASM Clean Configuration END

Network Configuration clean config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_clean2016-11-03_09-33-02-PM.log

De-configuring Listener configuration file...
Listener configuration file de-configured successfully.

De-configuring Naming Methods configuration file...
Naming Methods configuration file de-configured successfully.

De-configuring backup files...
Backup files de-configured successfully.

The network configuration has been cleaned up successfully.

Network Configuration clean config END


---------------------------------------->

Run the following command as the root user or the administrator on node "serverpruebas-m".

/tmp/deinstall2016-11-03_09-31-33PM/perl/bin/perl -I/tmp/deinstall2016-11-03_09-31-33PM/perl/lib -I/tmp/deinstall2016-11-03_09-31-33PM/crs/install /tmp/deinstall2016-11-03_09-31-33PM/crs/install/roothas.pl -force  -deconfig -paramfile "/mp/deinstall2016-11-03_09-31-33PM/response/deinstall_OraGI12Home1.rsp"

Press Enter after you finish running the above commands

<----------------------------------------



######################### DECONFIG CLEAN OPERATION END #########################


####################### DECONFIG CLEAN OPERATION SUMMARY #######################
ASM instance was de-configured successfully from the Oracle home
The stopping and de-configuring of Oracle Restart failed. Fix the problem and rerun this tool to completely remove the Oracle Restart configuration and the software
Oracle Restart was already stopped and de-configured on node "serverpruebas-m"
Oracle Restart is stopped and de-configured successfully.
#######################################################################


############# ORACLE DECONFIG TOOL END #############

Using properties file /tmp/deinstall2016-11-03_09-31-33PM/response/deinstall_2016-11-03_09-32-35-PM.rsp
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DEINSTALL TOOL START ############





####################### DEINSTALL CHECK OPERATION SUMMARY #######################
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DEINSTALL CLEAN OPERATION START ########################
## [START] Preparing for Deinstall ##
Setting LOCAL_NODE to serverpruebas-m
Setting CRS_HOME to true
Setting oracle.installer.invPtrLoc to /tmp/deinstall2016-11-03_09-31-33PM/oraInst.loc
Setting oracle.installer.local to false

## [END] Preparing for Deinstall ##

Setting the force flag to false
Setting the force flag to cleanup the Oracle Base
Oracle Universal Installer clean START


Detach Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
Delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node : Failed <<<<

Delete directory '/opt/app/oraInventory' on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
The Oracle Base directory '/opt/app/oracle' will not be removed on local node. The directory is not empty.

Oracle Universal Installer cleanup was successful.

Oracle Universal Installer clean END


## [START] Oracle install clean ##

Clean install operation removing temporary directory '/tmp/deinstall2016-11-03_09-31-33PM' on node 'serverpruebas-m'

## [END] Oracle install clean ##


######################### DEINSTALL CLEAN OPERATION END #########################


####################### DEINSTALL CLEAN OPERATION SUMMARY #######################
Successfully detached Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node.
Failed to delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node.
Successfully deleted directory '/opt/app/oraInventory' on the local node.
Oracle Universal Installer cleanup was successful.


Run 'rm -r /etc/oraInst.loc' as root on node(s) 'serverpruebas-m' at the end of the session.

Run 'rm -r /opt/ORCLfmap' as root on node(s) 'serverpruebas-m' at the end of the session.
Run 'rm -r /etc/oratab' as root on node(s) 'serverpruebas-m' at the end of the session.
Oracle deinstall tool successfully cleaned up temporary directories.
#######################################################################


############# ORACLE DEINSTALL TOOL END #############

Como veis, tremendamente sencillo si se hace de manera ordenada

Cambios en el passwd file en la 12c

Hoy vamos a ver algunos cambios sobre el fichero de contraseñas en la nueva versión 12c

Cifrado ( ORA-28017 )

Uno de los cambios que ha llevado a cabo Oracle en la versión 12c es el de haber mejorado los hashes del cifrado de sus contraseñas usando un algoritmo SHA512 basado en PBKDF2 para generar los hases en ved del SHA1 que utilizaba antes.
Este cambio no nos afecta solamente a las estructuras de almacenamiento interno de la base de datos, sino que provoca que el fichero en el que se almacenan las contraseñas en el disco (passwd file) tenga una estructura distinta, pasándose a llamar el fichero antiguo como «LEGACY».
Si intentamos cambiar una contraseña de uno de los usuarios de sistema (sys) y el fichero de passwd es «antiguo» tendremos el error

ORA-28017: El archivo de contrase±as estß en el formato heredado.

Cuyo equivalente en inglés es

ORA-28017:The password file is in the legacy format.

Para comprobar el tipo de fichero de passwd que tenemos Oracle nos ofrece la funcionalidad del orapasswd que es «describe»

orapwd describe file=SPFILEDESA.ora
Password file Description : format=LEGACY ignorecase=N

Para solucionar este problema simplemente tenemos que borrarlo y crearlo de nuevo, o bien regenerarlo con el nuevo orapasswd o bien recrearlo con el comando

orapwd file=< fname > entries=< users>  force=< y/n> password=< SYS password> force=y format=12 input_file=< input-fname>

Depreciación de IGNORECASE

Otro de los puntos importantes de la 12c es que se ha quitado la línea de compatibilidad con las versiones 10g y anteriores en lo que a passwords se refiere.
Si recordamos la entrada Contraseñas case sensitive y Oracle 11g había un parámetro que permitía esa compatibilidad, en esta nueva versión 12c esa opción ha sido eliminada.

Ubicación del fichero en ASM

En la versión 12c ya es posible tener el fichero de password dentro del ASM.

Nuevos usuarios en el fichero de passwd

Con la segregación de funciones introducida por Oracle en la 12c tenemos nuevos usuarios/roles pare segregar algunas funciones como backup,dataguard o TDE (Transparent Data Encryption)

Estos usuarios son:

  • SYS
  • SYSBACKUP Es el usuario que se usará para llevar a cabo las operaciones de backup/recovery bien sea desde rman o sqlplus.
  • SYSDG Creado para separar las actividades relaccionadas con dataGuard
  • SYSKM Creado para las acciones administrativas de Transparent Data Encryptiony Data Vault

Como siempre, tenemos mas información en la web de soporte oracle

  • ORA-28017: The password file is in the legacy format (Doc ID 2112456.1)
  • Depreciación de IGNORECASE and SEC_CASE_SENSITIVE http://docs.oracle.com/cd/E16655_01/server.121/e17642/deprecated.htm#UPGRD60022
  • Depreaciación de IGNORECASE en ORAPWD ://docs.oracle.com/cd/E16655_01/network.121/e17607/release_changes.htm#DBSEG420