Poner una base de datos Oracle a dormir significa exactamente lo que dice . Las declaraciones se escriben hacen que la base de datos de suspender las operaciones normales o deje de funcionar , a veces por tan sólo unas centésimas de segundo. Por ejemplo , los usuarios pueden agregar un procedimiento sueño para detener la base de datos antes de que inserta nuevos datos en una tabla . Los administradores de bases de datos pueden utilizar una función de apagado automático para contar la base de datos que esperar un período de tiempo específico antes de intentar volver a ejecutar una acción fallida , o para detener la base de datos mientras se realiza una copia de seguridad de rutina.
Proceso
Oracle le ofrece tres opciones si usted es un administrador y una opción si usted es un usuario final para la codificación y el uso del procedimiento de sueño en PL /SQL . Los tres comandos administrativos son dbms_backup_restore , dbms_drs y DBMS_LOCK y el comando de usuario final es user_lock . La opción dbms_backup_restore detiene la base de datos durante la copia de seguridad y restaurar los procedimientos, dbms_drs - o planificación de recursos distribuida - puede suspender la sesión durante la optimización de los recursos y ambos dbms y user_lock son útiles para proporcionar el uso exclusivo de una máquina o terminal por un tiempo específico y limitado , la aplicación de una plazo por un read_lock y para aplicaciones de sincronización .
sintaxis
Mientras el comando real de cada difiere de acuerdo a la opción que elija, el formato general de sintaxis para escribir un procedimiento sueño comienza con la creación del procedimiento mediante la sentencia " CREATE PROCEDURE_sleep [( sleepTime eN INTEGER ) ] ES . " la parte inicial de la instrucción crea el procedimiento y la información dentro de los corchetes identifica sus parámetros, que en este caso es el nombre del procedimiento , la eN identificador que le dice a Oracle el procedimiento también se puede utilizar dentro de una función y número entero que define el tipo de datos . Iniciar el procedimiento con una simple declaración "BEGIN " y en la siguiente línea de identificar la opción y sus parámetros , tales como SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5,01 ) antes de terminar el procedimiento con la instrucción END :
CREATE PROCEDURE_sleep [( sleepTime_in_minutes EN INTEGER ) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15,01 ) ; END ;/
Consideraciones
Cuando se trata de la concesión de los privilegios EXECUTE para poner fin a usuarios para el comando user_lock.sleep , entienden que no sólo los usuarios finales tienen la posibilidad de escribir un procedimiento de sueño, sino también todos los procedimientos de cierre asociados con este comando. Además , el tamaño y la configuración de su base de datos de Oracle pueden impedir que la concesión de los privilegios EXECUTE a todos los usuarios finales. Debido a esto, Oracle recomienda conceder derechos de bloqueo según la necesidad o función dentro de la empresa .