martes, 29 de enero de 2008

Las opciones de Shutdown de la DB (Shutdown Options)

Oracle Database Shutdown Stages
Oracle Metalinks, Note:110704.1.


Las opciones de Shutdown de la base de datos son:
  • NORMAL - No se aceptan nuevas conexiones, y se espera la desconexión de todos los usuarios. Se cierra y desmonta la base de datos previo al shutdown, y no requiere realizar "instance recovery" en el próximo startup de la base de datos.
  • IMMEDIATE - Realiza el Rollback de todas las transacciones sin confirmar (uncommitted txns) y desconecta todos los usuarios. Cierra y desmonta la Base de Datos antes del shutdown, y no requiere de recovery posterior en el próximo startup de la base de datos.
  • TRANSACTIONAL - No acepta nuevas conexiones, y los usuarios son desconectados cuando las transacciones actuales se completan. Una vez hecho esto se ejecuta un shutdown IMMEDIATE.
  • ABORT - Todas las transacciones son finalizadas, ninguna transacción es "deshecha" (rolled back), la instancia se cierra sin realizar el cierre de los data files y el próximo startup de la base de datos requerirá un "instance recovery".

Introducción a SQLPlus

Desde linea de comando de sistema, estos son algunos de los parámetros que recibe el SQLPLUS:

sqlplus /nolog
sqlplus userid/passwd@db
sqlplus @miscript

Un ejemplo es:

sqlplus /nolog
SQL> connect sys/passwd as SYSDBA
SQL> select * from v$instance;
SQL> disconnect
SQL> exit


Estos son algunos de los comandos que recibe el SQLPLUS con los cuales pueden setearse opciones, ejecutar archivos de Scripts o correr instrucciones en el HOST:

  • SHOW USER -- Para saber con qué usuario estás conectado.
  • EDIT -- Abre el editor.
  • EXIT -- Termina la conexión.
  • GET -- Extrae el contenido de un archivo con comandos sql.
  • HOST -- ejecuta comandos de sistema operativo.
  • LIST -- muestra el ultimo comando.
  • RUN -- Ejecuta el contenido del buffer.
  • SAVE -- Guarda los comandos sql en archivo.
  • SET -- cambia el ambiente de SQLPLUS
  • SHOW -- muestra la configuración vigente.
  • SPOOL -- Envia salida a un archivo.
  • START -- Ejecuta el contenido SQL de un archivo.
  • SET SQLPROMPT -- Cambia el prompt.

¿Cómo activar TRACE sobre comandos sql? (Para ampliar el número de columnas que se despliegan, se recomienda eluso del comando "SET LONG ")

SQL> SET AUTOTRACE ON

El comando AUTOTRACE permite ver las estadisticas y/o plan de ejecucion para las sentencias DML. Y las opciones del AUTOTRACE son las siguiente:

  • AUTOTRACE ON
  • AUTOTRACE TRACEONLY
  • AUTOTRACE OFF
  • AUTOTRACE ON EXPLAIN
  • AUTOTRACE ON STATISTICS
  • AUTOTRACE ON EXPLAIN STATISTICS
  • AUTOTRACE TRACEONLY EXPLAIN
  • AUTOTRACE TRACEONLY STATISTICS
  • AUTOTRACE TRACEONLY EXPLAIN STATISTICS
  • AUTOTRACE OFF EXPLAIN
  • AUTOTRACE OFF STATISTICS
  • AUTOTRACE OFF EXPLAIN STATISTICS

La opcion ON muestra ambas, estadisticas y plan de ejecución. ON EXPLAIN solo mostrará el plan de ejecucion y ON STATISTICS solo mostrara las estadisticas. La opcion TRACEONLY que reemplaza al ON, ocasiona que NO se muestren los datos que devolveria la consulta. La opcion OFF deshabilita todas las opciones previamente ingresadas.

Fuentes

¿Cómo habilitar AUTOTRACE en SQLPLUS?

El parámetro de AUTOTRACE puede habilitarse con la siguiente instrucción dentro del SQLPLUS.

SQL> SET AUTOTRACE ON

Recibiremos el siguiente error en caso de no estar habilitado, no existir la tabla o no tener el rol correspondiente asignado:

ora816 SamSQL :> set autotrace on;
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report

La forma de corregir esto es ejecutar los siguientes scripts


1. Ejecutar plustrce.sql en el esquema SYS

NT :- @$ORACLE_HOME\sqlplus\admin\plustrce.sql
UNIX :- @$ORACLE_HOME/sqlplus/admin/plustrce.sql

2. Grant PLUSTRACE al usuario que desea hacer el AUTOTRACE:

La tabla PLAN_TABLE debe existir en el esquema del usuario, para la creación de la tabla necesitamos ejecutar el script UTLXPLAN.sql en el esquema del usuario, este script puede encontrarse en :

NT :- $ORACLE_HOME\rdbms\admin\utlxplan.sql
UNIX :-$ORACLE_HOME/rdbms/admin/utlxplan.sql

Ver post de "Introducción a SQLPLUS" para ver las opciones del comando SET AUTOTRACE.