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

No hay comentarios: