viernes, 14 de noviembre de 2014

Crear una Base de Datos Oracle 11g de forma manual usando sqlplus

Create an Oracle Database 11g manually using SQL*Plus

Este es un ejemplo de como crear una base de datos Oracle 11g, usando la herramienta sqlplus. Para aquellos que nos nos gustan las interfaces graficas. :P

###Crear esquema de directorios

$mkdir -p /oradata01/ORCL/DATAFILE
$mkdir -p /oradata01/ORCL/TEMPFILE
$mkdir -p /oradata01/ORCL/CONTROLFILE
$mkdir -p /oradata01/ORCL/ONLINELOG

###Configurar variables de ambiente
$export ORACLE_SID=ORCL
$export ORACLE_BASE=/u01/app/oracle
$export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbhome_1

###Crear archivo de parametros
$echo "
*.db_name='ORCL'
*.memory_target=10G
*.processes = 150
*.audit_file_dest='${ORACLE_BASE}/admin/orcl/adump'
*.audit_trail ='none'
*.db_block_size=8192
*.db_domain=''
*.db_recovery_file_dest='${ORACLE_BASE}/flash_recovery_area'
*.db_recovery_file_dest_size=2G
*.diagnostic_dest='${ORACLE_BASE}'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.open_cursors=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.control_files='/oradata01/ORCL/CONTROLFILE/control01.ctl'
*.control_files='/oradata01/ORCL/CONTROLFILE/control02.ctl'
*.compatible ='11.2.0'
" > /tmp/initORCL.ora


###Conectarnos a sqlplus como sysdba
$sqlplus /nolog
SQL>conn /as sysdba

/*
Iniciar instancia ORCL
*/
SQL>startup nomount pfile=/tmp/initORCL.ora;

/*
Crear la base de datos ORCL
*/
SQL>CREATE DATABASE ORCL
USER SYS IDENTIFIED BY ORACLE
USER SYSTEM IDENTIFIED BY ORACLE
DATAFILE '/oradata01/ORCL/DATAFILE/system_d1.dbf' SIZE 325M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
SYSAUX DATAFILE '/oradata01/ORCL/DATAFILE/sysaux_d1.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE 8192M
DEFAULT TABLESPACE USERS DATAFILE '/oradata01/ORCL/DATAFILE/users01.dbf' SIZE 50M REUSE AUTOEXTEND ON MAXSIZE 16g
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/oradata01/ORCL/TEMPFILE/temp_01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 1m MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS1" DATAFILE
'/oradata01/ORCL/DATAFILE/undotbs_d1.dbf' SIZE 200M AUTOEXTEND ON NEXT 4M MAXSIZE 8G,
'/oradata01/ORCL/DATAFILE/undotbs_d2.dbf' SIZE 200M AUTOEXTEND ON NEXT 4M MAXSIZE 8G
CHARACTER SET WE8MSWIN1252
NATIONAL CHARACTER SET AL16UTF16
LOGFILE
('/oradata01/ORCL/ONLINELOG/redo_g01_m01.rdo') size 50m,
('/oradata01/ORCL/ONLINELOG/redo_g02_m01.rdo') size 50m,
('/oradata01/ORCL/ONLINELOG/redo_g03_m01.rdo') size 50m
EXTENT MANAGEMENT LOCAL
MAXLOGFILES 32
MAXLOGMEMBERS 4
MAXLOGHISTORY 9999
MAXDATAFILES 2500
MAXINSTANCES 1;

/*
Ejecutar para crear las vistas de Diccionario de Datos
*/
--Crea las vistas del diccionario de datos
SQL>@?/rdbms/admin/catalog.sql
--Ejecuta scripts para utilizar PL/SQL
SQL>@?/rdbms/admin/catproc.sql
--Crea vistas para monitorear bloqueos en base de datos
SQL>@?/rdbms/admin/catblock.sql

SQL>conn system/ORACLE
--Permite deshabilitar comandos de usuario
SQL>@?/sqlplus/admin/pupbld.sql

/*
Para instalar JVM
*/
SQL>conn / as sysdba
SQL>@?/javavm/install/initjvm.sql
SQL>@?/xdk/admin/initxml.sql
SQL>@?/xdk/admin/xmlja.sql
SQL>@?/rdbms/admin/catjava.sql
SQL>@?/rdbms/admin/catexf.sql

/*
Para instalar XDB, muy importante para poder habilitar el envio de correos desde la base de datos
*/
SQL>create tablespace XDB datafile '/oradata01/ORCL/DATAFILE/xdb_d1.dbf' size 50m autoextend on next 1m maxsize 8G
extent management local uniform size 1m segment space management auto;

SQL>create user XDB identified by XDB
default tablespace XDB quota unlimited on XDB
temporary tablespace TEMP;

SQL>@?/rdbms/admin/catqm.sql XDB XDB TEMP NO

/*
Compilacion de objetos de base de datos
*/
SQL>@?/rdbms/admin/utlrp.sql
SQL>@?/rdbms/admin/utlrp.sql
SQL>@?/rdbms/admin/utlrp.sql

/*
Creacion de SPFile, bajamos y subimos la instancia ORCL
*/
SQL>create spfile from memory;
SQL>shutdown immediate;
SQL>startup;

1 comentario:

  1. Muchas gracias Tips de Oracle Mx. Por tu tutorial que es muy importante para la administración de Base de Datos Oracle, no siempre existen ayudas visuales al instante.

    ResponderEliminar