Criação de Base de dados

Premissas
ORACLE_HOME é o caminho de instalação do Oracle, normalmente no Windows é C:\oracle\ora92\.
ORA_SID ou ORACLE_SID é a mesma coisa, faz referência a instância que será utilizada.
Leia-se DB1WORK no lugar de <sid>.

1º Passo – Criando o pfile
A partir de uma instância ativa crie um novo pfile copie e renomeie o arquivo para %ORACLE_HOME%\database\init<sid>.ora
No novo arquivo substitua todas as referências da outra instância para o seu novo SID, ou seja, db_name, instance_name, control_files, etc. Veja aqui um exemplo como o arquivo ficará.

2º Passo – criando Estruturas de Diretórios
É necessário criar os diretórios básicos para os processos de background. Crie-os com o nome do SID nos seguintes caminhos:

%ORACLE_HOME%\oradata\<sid>
%ORACLE_HOME%\admin\<sid>
%ORACLE_HOME%\admin\<sid>\bdump
%ORACLE_HOME%\admin\<sid>\cdump
%ORACLE_HOME%\admin\<sid>\udump

Certifique-se que o usuário do Sistema Operacional que irá criar o banco de dados tenha permissão de escrita nesses diretórios.

3º Passo – Criando Serviço
Crie um serviço para o novo banco de dados, no Windows este passo é fundamental. Vá até o prompt de comando do windows e, faça-o da seguinte maneira:
set oracle_sid=<sid>
oradim -new -sid <sid> -intpwd nive

Muitos tutoriais omitem este procedimento mas, no Windows sem o Serviço Oracle relacionado a nova instância não é possível conectar a instância inativa, ou seja, impossibilitando a criação do banco.

4º Passo – Conectando Instância Inativa

set oracle_sid=<sid>
sqlplus “/ as sysdba”

Já no SQLPlus, após conectar na instância faça o STARTUP no modo NOMOUNT.

startup nomount pfile=”%ORACLE_HOME%\database\init<sid>.ora”

É possível iniciar uma instância nos modos NOMOUNT, MOUNT, OPEN, RESTRICT, RECOVER e FORCE.
NOMOUNT - Inicia a instância mas não monta o banco de dados.
MOUNT – Inicia a instância e monta o banco de dados mas não abre.
OPEN – Inicia a instãncia, monta e abre o banco de dados.
RESTRICT – Inicia a instância, monta e abre o banco de dados, permitindo conexão de usuários apenas que tenham o previlégio de session restrict.
RECOVER – Inicia a instância, deixa o banco de dados fechado para inicio de recuperação de falhas.
FORCE – Em caso de problemas para iniciar e parar o banco de dados, esse modo força o SHUTDOWN ABORT e em seguida STARTUP OPEN.

5º Passo – Criando o Banco de Dados

CREATE DATABASE DB1WORK CONTROLFILE REUSE
Logfile
Group 1 (‘c:/oracle/admin/DB1WORK/bdump/log01a.log’,
‘c:/oracle/admin/DB1WORK/bdump/log01b.log’) size 50M,
Group 2 (‘c:/oracle/admin/DB1WORK/bdump/log02a.log’,
‘c:/oracle/admin/DB1WORK/bdump/log02b.log’) size 50M
DATAFILE ‘c:/oracle/oradata/DB1WORK/system1.dbf’ size 250M
AUTOEXTEND ON MAXSIZE 50M
UNDO TABLESPACE UNDOTBS2
DATAFILE ‘c:/oracle/oradata/DB1WORK/undo1.dbf’ size 50M
DEFAULT TEMPORARY TABLESPACE DB1WORK1TEMP TEMPFILE ‘c:/oracle/oradata/DB1WORK/mydb1temp1.dbf’ size 75M
MAXLOGFILES 32
MAXLOGHISTORY 1
MAXDATAFILES 500;
6º Passo – Finalizando
Após criar o banco de dados basta executar os scripts abaixo:
Criação do dicionário de dados, views e sinonimos de sistema.
@%ORACLE_HOME%/rdbms/admin/catalog.sql
Executa todos os scripts usados em Pl/Sql
@%ORACLE_HOME%/rdbms/admin/catproc.sql

@%ORACLE_HOME%/sqlplus/admin/pupbld.sql