| |
About
Consultor orientado al sector TELCO (eTOM, SID), dirección de proyectos (scrum) y sistemas (Oracle, Weblogic, Jboss, Solaris, etc.). Un poco de todo, vamos.
Sindicación

Licencia

Validación


Sistemas





Varios

|
|
| Ejecutar desde Bash para el export:
CODE:
-
ORACLE_SID=SID_BASE_DATOS exp userid=USUARIO/PASSWORD direct=y file=host-SID_BASE_DATOS-USUARIO-FECHA.dmp
Para el import primero nos deshacemos de todo las tablas del usaurio, algo así (ejecutado como el usuario en cuestión):
CODE:
-
select 'drop table ' || table_name || ' cascade constraints;' from user_tables order by table_name;
Y pegamos el resultado directamente en el sqlplus. Luego:
CODE:
-
-
ORACLE_SID=SID_BASE_DATOS imp userid=USUARIO/PASSWORD file=host-SID_BASE_DATOS-USUARIO-FECHA.dmp log=host-SID_BASE_DATOS-USUARIO-FECHA..log full=y
-
|
| Uf, cuanto me va a llevar aprender a dominar el programilla este. Algunos trucos muy buenos:
1) Ajustar debidamente las preferencias para que te ejecute sólo la sentencia SQL en la que se encuentra el cursor. (Tools -> Preferences -> SQL Window -> Autoselect statement). Además, hacer que recuerde las contraseñas. (Tools -> Preferences -> Logon history -> Story history y Store with password). También hay un pequeño recuadro que se puede situar en cualquier parte y que te deja navegar entre las distintas ventanas abiertas. Muy útil cuando tienes varias (Tool -> window list).
2) Cuando quieres ejecutar un script algo gordo para evitar que te abra mil pestañas (lo que además, hace que casque) abrés una command window y lo pegas ahí. Así se ejecuta sin generar nada.
3) En Tools -> Sessions puedes ver que sesiones hay a la BD y cargarte aquellas que generen demasiada carga.
La gran pega: no tiene versión para Linux. Gracias, Richy!.
|
| ¿Qué decir a estas alturas del TOP?
Pués que para ordenar los procesos por consumo de CPU hay que pulsar la "P" y para memoria la "M".
En Solaris, no existe. Utilizar prstat.
|
| Vamos a crear un procedimiento en Oracle que borre los registros con más de seis meses:
CODE:
-
-
create or replace procedure PROCEDIMIENTO_PRUEBA (meses in NUMBER) is
-
begin
-
delete from TABLA_DE_PRUEBA where add_months(SYSDATE, -1*meses)> LAST_MODIFIED_DATE;
-
end PROCEDIMIENTO_PRUEBA;
-
Ahora vamos a hacer que se ejecute cada tres meses:
CODE:
-
-
declare
-
aJob binary_integer;
-
begin
-
dbms_job.submit(job => aJob,
-
what => 'PROCEDIMIENTO_PRUEBA(50);',
-
next_date => trunc(sysdate)+1,
-
interval => 'add_months(sysdate,3)');
-
commit;
-
end;
-
/
-
Y, para comprobar que se ejecuta podemos ejecutarlo. Además, comprobar el parámetro job_queue_processes. Tiene que estar a un número mayor o igual que el número de jobs que se van a ejecutar:
CODE:
-
select * from v$parameter t where t.NAME='job_queue_processes';
Para cambiarlo:
CODE:
-
alter system set job_queue_processes=3 scope=memory;
Lo de scope es para que el cambio sólo sea en memoria, de forma que se pierde en el siguiente reinicio.
Como siempre, gracias a Maese Richard.
NOTA: otro ejemplo de JOB
CODE:
-
-
begin
-
sys.dbms_job.submit(job => :job,
-
what => 'update TABLAPRUEBA set state=''PRUEBA1'' where state=''PRUEBA2'' ;',
-
next_date => to_date('16-09-2007 19:00:45', 'dd-mm-yyyy hh24:mi:ss'),
-
interval => 'sysdate+6/24');
-
commit;
-
end;
-
/
-
|
| Ahí van algunos ejemplos:
1) Seleccionar los registros con más de seis meses:
CODE:
-
select count(*) from TABLA_EJEMPLO t where add_months(SYSDATE, -6)> t.LAST_MODIFIED_DATE;
2) Ver cuanto tamaño ocupa una tabla:
CODE:
-
select bytes/1024/1024,t.* from user_segments t where t.segment_name='TABLA_EJEMPLO';
Además he aprendido varias cosas para configurar el PL/SQL Developer pero eso ya es otra historia. Gracias nuevamente a Richi por los consejos.
|
|
|