Mostrando entradas con la etiqueta Scripts. Mostrar todas las entradas
Mostrando entradas con la etiqueta Scripts. Mostrar todas las entradas

domingo, 3 de marzo de 2013

Valores del comando SET


Aquí dejo el listado de algunas de las variables SET y sus posibles usos:

(Nota:- Está traducido de un texto en inglés, con lo que es posible que existan errores en la traducción o alguna mala descripción, agradeceré todo tipo de comentarios para mejorar las descripciones)

VARIABLE SETUSO
SET ARRAY[SIZE] {15|n}Configura el número de Filas que el SQL*Plus puede recoger de la Base de Datos a la vez.
SET AUTO[COMMIT] {OFF | ON | 
IMM[EDIATE] | n }
Controla cuando Oracle ejecute un COMMIT dependiendo de los cambios pendientes en la Base de Datos.
SET AUTOT[RACE] { OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]Utilizado – sobretodo – en la obtención del plan de ejecución de sentencias. (Explain Plan).
SET COLSEP {_ | text }Configura el texto que será mostrado entre la separación de las columnas.
SET DEF[INE] {'&' | c | OFF | ON}Establece el carácter que se utiliza como sustitución de prefijo de variablas a C
SET ECHO {OFF|ON}Controla si muestra o no los comandos ejecutados en un fichero de Script
SET EDITF[ILE] filename[.ext]Define el valor por defecto del fichero generado a través del comando EDIT.
SET EMB[EDDED] {OFF | ON}Controla cuando cada informe empieza en la página.
SET ESC[APE] {\ | c | 
OFF | ON }
Define el carácter que se introduce como carácter de ‘Escape’.
SET FEED[BACK] {6 | n | 
OFF | ON}
Muestra el número de registros que es devuelto por una sentencia cuando la sentencia recoge – al menos – n registros.
SET FLAGGER {OFF | ENTRY | 
INTERMED[IATE] | FULL}
Realiza un chequeo para asegurarse que la sentencia SQL ejecutada está de acuerdo con el Standard ANSI/ISO SQL92
SET FLU[SH] {OFF | ON}Controla cuando la salida es enviada a la consola del usuario.
SET HEA[DING] {OFF | ON}Controla si muestra la cabecera de los informes.
SET HEADS[EP] {| | c | 
OFF | ON}
Define el carácter que se utilice como separador de cabeceras.
SET LIN[ESIZE] {80 | n }Establece el número de caracteres que el SQL*Plus mostrará en la siguiente línea.
SET LONG {80 | n}Establece el número máximo de bytes que será mostrado en valores LONG, CLOB y NCLOB; y para copia de varoles LONG
SET LONGC[HUKSIZE] {80 | n}Establece el tamaño (en Bytes) del incremento el cual el SQL*PLUS devuelve un valor LONG, CLOB o NCLOB
SET NEWP[AGE[ {1 | n | NONE}Establece el número de líneas en blanco que serán incluidas en lo alto del título
SET NULL textEstablece el texto que representará un valor nulo como resultado de una sentencia SELECT de SQL
SET NUMF[ORMAT] formatEstablece el formato que serán mostrado los números.
SET NUM[WIDTH] {10 | n}El tamaño – por defecto – en el que se mostrarán los valores numéricos
SET PAGES[IZE] {24 | n }Establece el número de líneas por página
SET SERVEROUT[PUT] {OFF | ON} [SIZE n] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] |TRU[NCATED]}]Controla la forma en la que se mostrará la salida (A través del paquete DBMS_OUTPUT.PUT_LINE) en un procedimiento almacenado de SQL*Plus
SET SHOW[MODE] {OFF|ON}Controla que el SQL*Plus liste los nuevos y antiguos valores de configuración para las variables del sistema que se establecen mediante el comando SET.
SET SQLBL[ANKLINES] {ON | OFF}Controla que el SQL*Plus permita las líneas en Blanco en comandos SQL
SET SQLC[ASE] {MIX[ED] | LO[WER] | UP[PER]}Convierte el tipo de letra (mayúscula/minúscula/mixta) de los comandos SQL previo a la ejecución.
SET SQLCO[NTINUE] 
{> | text}
Establece una secuencia de caracteres que muestra el SQL*Plus en el PROMPT al continuar un comando en la línea siguiente
SET SQLN[UMBER]{OFF | ON}Establece en el Prompt el número de línea consecuente en una sentencia SQL
SET SQLPRE[FIX] {# | c}Establece un carácter prefijo del SQL*Plus, el cual se usa en una línea separada para ejecutar un comando inmediatamente sin afectar a la sentencia SQL que se esté escribiendo.
SET SQLP[ROMPT] 
{SQL > | text}
Configura el texto que aparece en el PROMPT del SQL*Plus.
SET SQLT[ERMINATOR] 
{; | c | OFF | ON}
Establece el carácter que se va a usar para ejecutar una sentencia SQL.
SET SUF[FIX] {SQL | text}Define la extensión, por defecto, del fichero de comandos de SQL*Plus que será utilizada.
SET TERM[OUT] {OFF | ON}Configura si se muestra o no por consola (o en el fichero de salida), los comandos ejecutados en un fichero de Comandos
SET TI[ME] {OFF | ON}Configura que aparezca la fecha actual en el PROMPT.
SET TIMI[NG] {OFF | ON}Cronometra el tiempo que se tarda en ejecutar una sentencia SQL
SET TRIM[OUT] {OFF |ON}Controla si los caracteres blancos son eliminados del final de cada línea mostrada.
SET TRIMS[POOL] {ON | OFF }Controla si los caracteres blancos son eliminados del final de cada línea de un fichero de Spool
SET UND[ERLINE] 
{ - | c | ON | OFF}
Configura el carácter que será utilizado como línea baja (subrayado) en las columnas de las Cabeceras en un informe de SQL*Plus
SET VER[IFY] {OFF | ON}Controla cuando en una sentencia SQL, en el que se produce una sustitución de variables, se muestre la sentencia ANTES y DESPUÉS de reemplazar las variables por valores.
SET WRA[P] {OFF | ON}Configura la posibilidad del SQL*Plus de truncar el resultado devuelto de unas filas seleccionadas, si dichas filas son demasiado largas para la longitud actual configurada para la línea.

sábado, 2 de marzo de 2013

Create Database (By Script)

Es un comando 'sencillo'. Te mandan Crear una BBDD y cualquier DBA tiene que saberlo hacer... Pero... ¿Por qué cuando llega el momento no te acuerdas del comando básico? Y o tienes configuradas las X's  y lo realizas cómodamente mediante una bonita interfaz Gráfica mediante el Asistente de Configuración de Bases de Datos (DBCA) o te pones a Googlear a ver si encuentras el comando adecuado para crear la BBDD. 

Yo debo reconocer, que soy un poco masoca, y aunque lo más sencillo es ejecutarlo mediante la DBCA, prefiero hacerlo en un modo más rudimentario, que es mediante la consola de SQL*Plus. No sé por qué, no me gustan mucho las herramientas gráficas, ni me llevo bien con ellas. Soy de la opinión que todo lo que se puede hacer mediante herramienta gráfica, también se puede hacer mediante Consola, al menos en Oracle, y trato de minimizar el uso de herramientas gráficas a casi anularlo. Para aprender a manejar una herramienta gráfica para la Administración de una Base de Datos, siempre hay tiempo, pero como se deje de picar código por consola... Lo olvidas. 

Así, pues, la sentencia básica (Muy, muy básica), que se puede utilizar para crear una Base de Datos tipo sería algo parecido a esto: 

CREATE DATABASE MIBBDD
MAXINSTANCES 8
MAXLOGHISTORY 910
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 5000
DATAFILE
    '/ruta/datafile/sys.dbs' size 2001M 
     EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/ruta/datafile/sysaux.dbs' size 1001M 
UNDO TABLESPACE UNDOTBS
   DATAFILE '/ruta/datafile/undo_1.dbs'  size 1001M ,
            '/ruta/datafile/undo_2.dbs'  size 1001M 
DEFAULT TEMPORARY TABLESPACE TEMP
   TEMPFILE '/ruta/datafile/tmp.dbs' size 1001M 
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1048576
CHARACTER SET "UTF8"
NATIONAL CHARACTER SET AL16UTF16
LOGFILE
  GROUP 1 ('/ruta/logfile/grupo1/rdo1.rdo' ,
           '/ruta/logfile/grupo1/rdo2.rdo')  size 500M ,
  GROUP 2 ('/ruta/logfile/grupo2/rdo1.rdo' ,
           '/ruta/logfile/grupo2/rdo2.rdo')  size 500M ,
  GROUP 3 ('/ruta/logfile/grupo3/rdo1.rdo' ,
           '/ruta/logfile/grupo3/rdo2.rdo')  size 500M ;

*Nota:- Si se tratara de una recreación, Podemos sacar el comando 'base' mediante un simple ALTER DATABASE BACKUP CONTROLFILE TO TRACE as '/ruta/fichero/control_backup.trc';  Esto nos genera un fichero en el UserDump con el comando exacto que se necesita ejecutar para recrear la BBDD. 

Si se tratara de una recreación, podríamos ver que todas las todas las referencias a los datafiles tienen la cláusula REUSE, dado que se entiende que los Datafiles todavía existen en la máquina. Aun sí, se puede utilizar para la Creación de una Base de Datos desde Cero en otro entorno, si es que existierann las rutas de los scripts (Si estuviéramos migrando la Base de datos, por Ejemplo), por que lo que indica la cláusula REUSE, es que si existe el fichero, lo reutilice, y si no existiera, que lo cree. 

CATÁLOGOS 

Una vez creada la BBDD, toca la ejecución de los Catálogos del Diccionario. Los catálogos ESENCIALES en la creación de una Base de datos Son (en 11g): 

· El Catalog
spool $ORACLE_HOME/rdbms/admin/catalog.log
@$ORACLE_HOME/rdbms/admin/catalog.sql;
spool off


· El Catproc
spool $ORACLE_HOME/rdbms/admin/catproc.log
@$ORACLE_HOME/rdbms/admin/catproc.sql;
spool off


· Y el pupbld. 
    *Este último es importante, por que sino, no se permite la conexión de los usuarios a la Base de Datos 
connect "SYSTEM"/"&systemPassword"
spool $ORACLE_HOME/sqlplus/admin/pupbld.log
@$ORACLE_HOME/sqlplus/admin/pupbld.sql;
spool off


Adicionalmente, también se pueden incluir los siguientes: 

· El Catblock (Crea las vistas para los bloqueos de Oracle. )
spool $ORACLE_HOME/rdbms/admin/catblock.log
@$ORACLE_HOME/rdbms/admin/catblock.sql;
spool off


· El Catclust (Crea las vistas específicas para bases de datos en Cluster - RACs ): 
spool $ORACLE_HOME/rdbms/admin/catclust.log 
@$ORACLE_HOME/rdbms/admin/catclust.sql; 
spool off 


Las sentencias que podemos utilizar para comprobar los catálogos instalados en la BBDD, su versión y su estado son : 

· 9i (y posteriores) 

select COMP_ID, COMP_NAME, VERSION, STATUS from dba_registry;

COMP_ID    COMP_NAME                      VERSION    STATUS
---------- ------------------------------ ---------- ------
CATALOG    Oracle9i Catalog Views         9.2.0.7.0  VALID
CATPROC    Oracle9i Packages and Types    9.2.0.7.0  VALID

· 8i (y anteriores): 

select * from v$option;

PARAMETER                           VALUE
----------------------------------- ----------
Partitioning                        TRUE
Objects                             TRUE
Real Application Clusters           FALSE
Advanced replication                TRUE
Bit-mapped indexes                  TRUE
Connection multiplexing             TRUE
Connection pooling                  TRUE
Database queuing                    TRUE
Incremental backup and recovery     TRUE
Instead-of triggers                 TRUE
Parallel backup and recovery        TRUE
Parallel execution                  TRUE
Parallel load                       TRUE
Point-in-time tablespace recovery   TRUE
Fine-grained access control         TRUE
Proxy authentication/authorization  TRUE
Change Data Capture                 TRUE
Plan Stability                      TRUE
Online Index Build                  TRUE
Coalesce Index                      TRUE
Managed Standby                     TRUE
Materialized view rewrite           TRUE
Materialized view warehouse refresh TRUE
Database resource manager           TRUE
Spatial                             TRUE
Visual Information Retrieval        TRUE
Export transportable tablespaces    TRUE
Transparent Application Failover    TRUE
Fast-Start Fault Recovery           TRUE
Sample Scan                         TRUE
Duplexed backups                    TRUE
Java                                TRUE
OLAP Window Functions               TRUE
Block Media Recovery                TRUE
Fine-grained Auditing               TRUE
Application Role                    TRUE
Enterprise User Security            TRUE
Oracle Data Guard                   TRUE
Oracle Label Security               FALSE
OLAP                                TRUE
Heap segment compression            TRUE
Join index                          TRUE
Trial Recovery                      TRUE
Oracle Data Mining                  TRUE
Online Redefinition                 TRUE
Streams                             TRUE
File Mapping                        TRUE