segunda-feira, 7 de fevereiro de 2011

Criação Manual de Banco de Dados

Por que criar um banco de dados manualmente?
Apesar do assistente de criação de banco de dados do Oracle (DBCA) ser eficiente e de simples uso, existem situações onde a criação manual pode oferecer vantagens, por exemplo é possível utilizar os mesmo comandos em diversos servidores o que nos poupa o tempo da utilização do assistente.
.

Os itens a seguir exemplificam a criação um banco de dados manualmente em um ambiente Windows utilizando o prompt de comando, baseado na versão 10g do Oracle, com criação do esquema de exemplo “Scott”. 

Os diretórios utilizados neste Manual estão apenas como exemplo, verifique sempre onde esta instalado o diretório de seu ORACLE_HOME e ORACLE_BASE.


1. Preparando arquivos necessários.

Essencialmente o software do Oracle 10g deve estar previamente instalado no ambiente Windows.
Com o software instalado você precisará criar em um diretório qualquer alguns  arquivos que serão utilizados (um dos quais é opcional).

- o primeiro deve ser criado e nomeado como initnomedobanco.ora e neste devem conter os parâmetros de criação de seu banco de dados.

Exemplo de parâmetros necessários que devem constar no arquivo de inicialização:
db_name=nomedobanco
instance_name=nomedobanco

db_block_size=8192
db_cache_size=25165824

background_dump_dest=C:\oracle\product\10.2.0\admin\nomedobanco\bdump
core_dump_dest=C:\oracle\product\10.2.0\admin\nomedobanco\cdump
user_dump_dest=C:\oracle\product\10.2.0\admin\nomedobanco\udump

control_files=("C:\oracle\product\10.2.0\oradata\nomedobanco\control01.ctl", "C:\oracle\product\10.2.0\oradata\nomedobanco\CONTROL02.ctl",
"C:\oracle\product\10.2.0\oradata\nomedobanco\CONTROL03.ctl")

shared_pool_size=50331648

undo_management=AUTO

- o segundo arquivo que é opcional é o tnsnames.ora, em sua instalação padrão o Oracle já contém um diretório onde existe este arquivo, porém utilizaremos um novo arquivo tnsnames.ora neste manual. Nele deve conter os parêmetros de conexão com o banco de dados.

Exemplo de parâmetros necessários que devem constar no arquivo de conexão:
nomedobanco =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = nomedobanco)
    )
  )


- o terceiro arquivo será um script principal que iniciará seu banco de dados e fará as chamadas para os outros scripts, pode ter qualquer nome contanto que não contenha espaços e deve ter a extensão .sql.

Exemplo de script principal:
startup nomount
@@02_create_database.sql;
@@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql;
@@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql;
CONN SYSTEM/ORACLE
@@C:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql
@@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql;

Neste exemplo o script instância o banco de dados com o comando startup nomount, chama um script que fará a criação do banco de dados (será detalhado mais adiante), executa os scripts catalog.sql e catproc.sql que são essenciais para um banco de dados pois estes dois criarão o dicionário do banco. O próximo script que também é padrão do Oracle, pupbld.sql fará a criação da tabela de sistema PRODUCT_USER_PROFILE que deve ser executada com o usuário SYSTEM do banco de dados, por este motivo a conexão deste está sendo executada antes da execução do script.
Com o dicionário de dados e a tabela PRODUCT_USER_PROFILE criada é a vez de executar o script de criação do esquema exemplo scott.sql.
* Este script principal não é obrigatório na criação de um banco de dados, pode ser feito manualmente, mas facilita seu processo.



- por ultimo, mas também NÃO obrigatório criaremos um script com o comando de criação do banco de dados que será chamado pelo script principal descrito acima.

Exemplo de script principal:
CREATE DATABASE nomedobanco
USER SYS IDENTIFIED BY ORACLE
USER SYSTEM IDENTIFIED BY ORACLE
LOGFILE
GROUP 1('C:\oracle\product\10.2.0\oradata\nomedobanco\redo01.log') SIZE 50M,
GROUP 2('C:\oracle\product\10.2.0\oradata\nomedobanco\redo02.log') SIZE 50M,
GROUP 3('C:\oracle\product\10.2.0\oradata\nomedobanco\redo03.log') SIZE 50M
DATAFILE 'C:\oracle\product\10.2.0\oradata\nomedobanco\system01.dbf' SIZE 200M autoextend on
SYSAUX DATAFILE 'C:\oracle\product\10.2.0\oradata\nomedobanco\sysaux01.dbf' SIZE 200M
UNDO TABLESPACE UNDOTBS01
DATAFILE 'C:\oracle\product\10.2.0\oradata\nomedobanco\UNDOTBS01.dbf' SIZE 100M
default temporary tablespace TEMP
tempfile 'C:\oracle\product\10.2.0\oradata\nomedobanco\temp01.dbf' SIZE 50M
extent management local uniform size 128k;

* Este script principal não é obrigatório na criação de um banco de dados, pode ser feito manualmente, mas facilita seu processo.


2. Setando as variáveis de ambiente.

Abra um prompt de comando no Windows.
Com o prompt aberto vá até onde estão salvos seus scripts, após isto set as variáveis de sessão que serão utilizadas para criação do banco de dados.

SET ORACLE_SID=nomedobanco
SET TNS_ADMIN=C:/      (Exemplo do diretório onde estará o arquivo tnsname.ora)






3. Criando serviço no Windows utilizando o Oradim.

Para iniciar a criação devemos antes criar um serviço no Windows através do comando abaixo que criara um serviço Oracle:

C:\oracle\product\10.2.0\db_1\bin\oradim -new -sid nomedobanco -intpwd nomedobanco

*No caso de ambiente Linux este passo não é necessário, pois não existem serviços no Linux apenas processos executando.


4. Criando diretórios e copiando arquivos.

Ainda com o prompt aberto devemos criar as pastas necessárias para instalação, as quais devem coincidir com as definidas no arquivo initnomedobanco.ora, e setado acima na variável TNS_ADMIN

mkdir C:\oracle\product\10.2.0\oradata\nomedobanco
mkdir C:\oracle\product\10.2.0\admin\nomedobanco\bdump
mkdir C:\oracle\product\10.2.0\admin\nomedobanco\cdump
mkdir C:\oracle\product\10.2.0\admin\nomedobanco\udump
mkdir C:\oracle\product\10.2.0\admin\nomedobanco\pfile
copy initnomedobanco.ora C:\oracle\product\10.2.0\admin\nomedobanco\pfile
copy initnomedobanco.ora C:\oracle\product\10.2.0\db_1\database
copy tnsnames.ora C:\


5. Utilizando scripts criados para criação do banco de dados.

Com as variáveis setadas, o serviço do sistema operacional e os diretórios criados, chame o script principal, logando como SYSDBA através do comando:

SQLPLUS / AS SYSDBA @01_create1.sql

Seguindo a ordem do script principal o SQLPlus irá criar o banco de dados com os parâmetros setados, criará o dicionário de dados, a tabela essencial para profile de usuários e o esquema exemplo “SCOTT”

Após estes passos seu banco de dados já esta pronto para ser utilizado.

Lembrando que para se conectar á seu banco a variável TNS_ADMIN deve ser setada como variável de ambiente ou os parâmetros devem ser adicionados ao arquivo padrão de conexão do Oracle no diretório:
C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN.

Nenhum comentário:

Postar um comentário