jueves, 15 de noviembre de 2012

Cambiar Caducidad Passwords en Oracle 11

En Oracle 11G por defecto el perfil DEFAULT tiene marcado en 180 dias la caducidad de las contraseñas. Para evitar que las contraseñas caduquen debemos modificar el perfil. Primero comprobamos el valor que tiene puesto por defecto:
select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME'; 

Ahora realizamos el alter de la BD para que no vuelva a pasar si creamos un esquema nuevo
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

Finalmente con esta query generamos los diferentes alter´s para los esquemas de nuestra BD
select 'ALTER USER ' || username || ' IDENTIFIED BY VALUES ''' || password || ''';' from SYS.USER$; 

Un vez copiados los alters los lanzamos en un sql para que no vuelva a caducar la contraseña.

Arranque automatico de Oracle en Linux

1. Como root, creas un script /etc/init.d/dbora (o con el nombre que
quieras). El contenido del script es:

#!/bin/sh
# chkconfig: 345 11 12
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

 ORA_HOME=/aqui/poner/el/path/a/ORACLE/HOME
 ORA_OWNER=oracle

Consultas utiles de Oracle


Aqui tenemos una lista de las consultas sql mas utilizadas por un DBA de Oracle

-- sobre la vista que muestra el estado de la base de datos:

select * from v$instance

-- Muestra si la base de datos está abierta
select status from v$instance

-- Muestra los parámetros generales de Oracle
select * from v$system_parameter

-- SQL para conocer la Versión de Oracle
select value
from v$system_parameter
where name = 'compatible'

-- Ubicación y nombre del fichero spfile
select value from v$system_parameter where name = 'spfile'

-- Ubicación y número de ficheros de control
select value from v$system_parameter where name = 'control_files'

-- Nombre de la base de datos
select value from v$system_parameter where name = 'db_name'

-- Conexiones actuales a Oracle Para visualizarla es necesario entrar con privilegios de administrador
select osuser, username, machine, program
from v$session
order by osuser

Como borrar archivelogs cuando se llena el area de recovery

Cuando existe algun problema y por alguna razon se llena el area de recovery en oracle la base de datos queda congelada para evitar posibles perdidas de datos. Lo que se debe de hacer es un backups de los arvhivelogs actuales sin borrarlos de la ubicacion normal.
En algunos casos no queda mas que borrar estos archive log por lo que hay que tener mucho cuidado con el manejo que se le de a las siguientes instrucciones:
  1. Se debe conectar al rman –> rman target /
  2. Se ejecuta la siguiente instruccion
    •  delete force noprompt archivelog all completed before ‘sysdate -1'; 
      • Esto borraria todos los archives con fecha menor a hoy