Deje que ORACLE ejecute periódicamente el archivo * .sql en UNIX

  
 

La función DBMS_JOB de la base de datos ORACLE puede implementar el procedimiento almacenado PL /SQL periódicamente, pero si la instrucción SQL es muy complicada, hay muchas declaraciones SQL, y con frecuencia se cambia el método de escritura de la declaración SQL, y se usa el método de escritura del procedimiento almacenado PL /SQL. La ejecución reprogramada será complicada. Además, algunos administradores de sistemas UNIX no escriben procedimientos almacenados PL /SQL, así que introduje un programa shell simple para implementar un archivo * .sql en una máquina UNIX con ORACLE SERVER o CLIENT.

Primero nos conectamos a la base de datos de destino en una máquina UNIX con ORACLE SERVER o CLIENT instalado:

$ sqlplus nombre de usuario /contraseña @ nombre_servicio

Si puede ingresar exitosamente el estado SQL > Y ejecute una instrucción SQL simple

SQL> SELECT SYSDATE FROM DUAL;

indica que la conexión es exitosa, de lo contrario, verifique si servie_name está correctamente definido en /$ORACLE_HOME/network/admin/tnsnames.ora.

Si /etc /hostname contiene el nombre de host de la base de datos de destino, etc.
(otras comprobaciones de red no se detallan aquí en detalle).

A continuación, ejecute la instrucción SQL de prueba con el usuario scott: scott_select.sql

SQL > SELECT D.DNAME, E.ENAME, E.JOB, E.HIREDATE DE EMP E, DEPT D DÓNDE TO_CHAR (E.HIREDATE, 'YYYY') = '1981' Y E.DEPTNO = D.DEPTNO;

Luego escriba un archivo de shell como scott_select.sh en el directorio /oracle_backup /bin /Br>

--------------------------------------------- --------------------------- su - oracle -c " sqlplus scott /tiger @ servie_name " < < EOF spool /oracle_backup /Log /scott_select.txt; @ /oracle_backup /bin /scott_select.sql; spool off; exit; ----------------------------- --------------------------------------------

Descripción:

La declaración de spool muestra el resultado de la ejecución de scott_select.sql en /oracle_backup/log/scott_select.txt file

@symbol is execute /oracle_backup/bin/scott_select.sql file

Puede almacenar varias sentencias de SQL como DML y DDL en el archivo * .sql que se ejecutará.

Cambie el atributo de scott_select.sh a 755, puede ejecutar

$ chmod 755 /oracle_backup/bin/scott_select.sh

De esta manera, el administrador del sistema UNIX (privilegios de root) Puede usar el comando crontab para agregar scott_select.sh a la cola de operación del temporizador.

O edite directamente el archivo de configuración en el SO:

Archivo de Sun Solaris /var /spool /cron /crontabs /root Archivo de Linux /var /spool /cron /root

Agregue una línea después del archivo raíz (es decir, ejecute scott_select.sh a las 4:40 del día 18 de cada mes)

40 4 18 * * /oracle_backup/bin/scott_select.sh

Horario En orden: minutos (0 y mdash; 59) horas (0 y mdash; 23) fechas (1 y mdash; 31) meses (1 y mdash; 12) días de la semana (0 y mdash; 6)

Puede combinarlos según las diferentes necesidades .

Reinicie el servicio de temporización del sistema operativo para que la tarea recién agregada tenga efecto.

Sun Solaris # /etc /rc2.d /S75cron stop # /etc /rc2.d /S75cron iniciar Linux # /etc /rc.d /init.d /crond restart

De esta manera La base de datos ORACLE ejecutará periódicamente el archivo scott_select.sql y enviará el resultado al archivo scott_select.txt del sistema operativo.

Si queremos escribir o modificar el archivo scott_select.sql, simplemente edítelo.

Copyright © Conocimiento de Windows All Rights Reserved