Este script desde SO Linux dispara un export full de la BD, ideal para un plan de backups programado (aunque export data pump no es la herramienta primaria de backups en Oracle), se debe tener en cuenta que las ubicaciones "HOME" y el mismo script tengan los debidos permisos para el usuario de S.O. asi como el archivo log... Personalmente lo uso como segundo backup programado despues de mi politica de RMAN
export ORACLE_SID=XXXX
export ORACLE_HOME=/XXXXXXXXXXXXXXXXXX
export PATH=$ORACLE_HOME/bin:$PATH
export FECHA_EXP=`date +%d%m%Y`
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export EXPORT_HOME=/XXXXXXXXXXXXXXXXXXXXXXXXXXX
expdp user/mypassword dumpfile=xxxxx.dmp logfile=xxxxx.log full=yes
miércoles, 9 de junio de 2010
Oracle, listar objetos con mas llamadas a disco
select segment_name Nombre,
segment_type tipo,
extents extensiones,
max_extents max_extenciones
from user_segments seg
where extents > 10
order by extents;
segment_type tipo,
extents extensiones,
max_extents max_extenciones
from user_segments seg
where extents > 10
order by extents;
Oracle, visualize los objetos invalidos
select substr(object_name,1,50) object_name, object_type, status from dba_objects where status != 'VALID';
ORACLE, Script (Linux) para reconstruir indices
ORACLE_SID=XXX
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID
export PATH
sqlplus -s /nolog << EOF
conn / as sysdba
alter index propietario.indice rebuild;
exit
EOF
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID
export PATH
sqlplus -s /nolog << EOF
conn / as sysdba
alter index propietario.indice rebuild;
exit
EOF
ORACLE, Compila objetos invalidos
select 'alter ' || decode(object_type, 'PACKAGE BODY', 'PACKAGE', object_type)
|| ' ' || owner || '.' || object_name || ' compile'
|| decode(object_type, 'PACKAGE BODY', ' body;', ';')
from dba_objects
where status='INVALID'
order by owner,
decode(object_type, 'PACKAGE BODY', 'AAA', 'PACKAGE', 'AAB',
substr(object_type, 1, 3)) desc,
object_name;
|| ' ' || owner || '.' || object_name || ' compile'
|| decode(object_type, 'PACKAGE BODY', ' body;', ';')
from dba_objects
where status='INVALID'
order by owner,
decode(object_type, 'PACKAGE BODY', 'AAA', 'PACKAGE', 'AAB',
substr(object_type, 1, 3)) desc,
object_name;
ORACLE, ver tablas bloqueadas
Este query lista las tablas con bloqueos
SELECT
decode(L.TYPE,'TM','TABLE','TX','Record(s)') TYPE_LOCK,
decode(L.REQUEST,0,'NO','YES') WAIT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(' ',s.PROGRAM) PROGRAM,
O.OWNER OWNER
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in ('TM','TX');
SELECT
decode(L.TYPE,'TM','TABLE','TX','Record(s)') TYPE_LOCK,
decode(L.REQUEST,0,'NO','YES') WAIT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(' ',s.PROGRAM) PROGRAM,
O.OWNER OWNER
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in ('TM','TX');
lunes, 7 de junio de 2010
LINUX, Programación de tareas vía crontab
El servicio cron per mite programar o agendar en el tiempo la ejecución de tareas, donde podemos especificar minuto, hora, dia del mes, mes del a#o, dia de la semana y a continuación la línea de comandos que queremos que se ejecute en dicho o dichos momentos.
#crontab -e -- edita el archivo del crontab
#crontab -l -- lista el contenido del archivo del crontab
Las líneas del crontab tienen el siguiente contenido
* * * * * línea de comandos de sistema operacional a utilizar
El primer campo corresponde a los minutos
El segundo campo corresponde a las horas
El tercer campo corresponde al dia del mes
El cuarto campo corresponde al mes (1-enero, 2 –febrero, etc)
El quinto campo corresponde al día de la semana (0-domingo, 1-lunes, 2-martes, 3-miercoles, 4-jueves, 5-viernes y 6-sabado)
El sexto campo corresponde a la línea de comandos que se quiera ejecutar, veamos algunos ejemplos
00 * * * * /home/oracle/script.sh -- ejecuta cada hora a los 00 minutos el contenido del archivo script.sh
30 08 * * 0 reboot -- ejecuta comando “reboot” todos los domingos a las 08:30 horas
*/30 * * * * /home/oracle/script.sh >> --ejecuta el contenido del archivos script.sh al minuto 30 de cada hora
Hay que tener en cuenta que dicha programación es única por usuario y que el usuario en cuestión debe tener el debido permiso de ejecución sobre los scripts y/o comandos a ejecutar.
#crontab -e -- edita el archivo del crontab
#crontab -l -- lista el contenido del archivo del crontab
Las líneas del crontab tienen el siguiente contenido
* * * * * línea de comandos de sistema operacional a utilizar
El primer campo corresponde a los minutos
El segundo campo corresponde a las horas
El tercer campo corresponde al dia del mes
El cuarto campo corresponde al mes (1-enero, 2 –febrero, etc)
El quinto campo corresponde al día de la semana (0-domingo, 1-lunes, 2-martes, 3-miercoles, 4-jueves, 5-viernes y 6-sabado)
El sexto campo corresponde a la línea de comandos que se quiera ejecutar, veamos algunos ejemplos
00 * * * * /home/oracle/script.sh -- ejecuta cada hora a los 00 minutos el contenido del archivo script.sh
30 08 * * 0 reboot -- ejecuta comando “reboot” todos los domingos a las 08:30 horas
*/30 * * * * /home/oracle/script.sh >> --ejecuta el contenido del archivos script.sh al minuto 30 de cada hora
Hay que tener en cuenta que dicha programación es única por usuario y que el usuario en cuestión debe tener el debido permiso de ejecución sobre los scripts y/o comandos a ejecutar.
Suscribirse a:
Entradas (Atom)