Daily Archives: 19 de abril de 2009

You are browsing the site archives by date.

ORACLE – CRIAR BANCO MANUALMENTE NO WINDOWS COM ORADIM

Ambiente : Windows 2003 Server / Oracle 10g (funciona também com 9i)
 
Há certos momentos em que precisamos criar uma nova instância ORACLE em ambiente Windows devido ao fato de, por exemplo, das ferramentas de criação não funcionarem corretamente, etc.
Podemos atingir este objetivo da seguinte forma.

Criando uma instância com nome RMATOS

Primeiro passo definir a variável ORACLE_SID e BASE
SET ORACLE_SID=RMATOS
SET ORACLE_BASE=c:\oracle
SET ORACLE_HOME=C:\oracle\product\10.2.0\db_1

No file system devemos criar uma estrutura física para o banco a ser criado, e podemos nos basear no padrão ORACLE.
No caso do banco RMATOS a ser criado, seria:

ORACLE_BASE\oradata\RMATOS

Os arquivos de inicialização do banco ficarão em C:\oracle\product\10.2.0\admin\RMATOS

Criar arquivo de inicialização init
Podemos criar ou, como neste caso, editar um arquivo de inicialização já existente para que atenda as necessidades do novo banco a ser criado.

initRMATOS.ora
Além das questões de inicialização como SGA, o importante é definirmos os diretórios referenciados pelo nome do banco para que na hora do start não tenhamos erros que deverão ser analizados pelo arquivo alert em bdump.

Para ver os arquivos de inicialização Clique AQUI

Criando a istância com ORADIM

Agora que temos o arquivo de inicialização, configuramos as variáveis necessárias e temos um nome para o SID, vamos criar a instância que, como pode ser visto, ainda não existe.

Para criar uma instância como o nome RMATOS utiliza-se o comando:

 
ORADIM -NEW -SID RMATOS -SYSPWD rogeriomatos -STARTMODE AUTO -PFILE C:\oracle\product\10.2.0\db_1\database\initRMATOS.ora


O comando INTPWD é utilizado pelo ORACLE para criar o arquivo de senhas utilizado pelo banco. Neste caso não a utilizamos e sim a opção -SYSPWD definine a senha do SYS

Agora que executamos o comando com ORADIM podemos verificar no “services” do Windows a instância OracleServiceRMATOS criada.

Conectando ao ORACLE

Agora podemos conectar a instância com usuário através do SQLPLUS Caso tenhamos um usuário do sistema operacional logado poderemos utilizar o comando abaixo para nos conectarmos.
sqlplus/nolog

conn / as sysdba
startup nomount.

Uma vez iniciada neste modo poderemos utilizar os comandos básicos para a criação de um banco de dados, no caso, já existe um arquivo CBANCO.SQL com os comandos para a criação referenciando os arquivos de controle e dados no ORACLE_BASE\ORADATA. Apenas então direcionamos o comando da seguinte forma: SQL> @C:\Scripts\CBANCO.SQL onde “Scripts” é o diretório onde o arquivo fora armazenado

Podemos ver agora que o banco foi criado com sucesso e então poderemos criar as tablespaces, datafiles, etc. relacionadas a este banco.

 

Podemos por exemplo executar o comando

Create tablespace “TBSROGERIO01” datafile “C:\oracle\oradata\dtf1.dbf” size 100M.

Será criado então a tablespace TBSRMATOS01 com o arquivo dtf1.dbf neste diretório e poderemos conferir isso em comandos de verificação como SELECT NAME FROM V$TABLESPACES.

 

Como pode ser verificar no diretório ORACLE_BASE\ORADATADA\RMATOS os arquivos referentes ao banco de dados foram criados e o banco está no ar onde já conseguimos criar uma tablespace e selecioná-la em um select simples.

Agora que temos o banco de dados no ar vem algo importante: a criação do dicionário de dados e visões utilizadas por todo o DBA para manutenção e administração da base de dados criada. Isso pode ser conseguindo com a execução das seguintes procedures.

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

Agora já é possível verificar que as tablespaces do dicionário de dados foram criadas e conseguimos comprovar através dos views administrativas também criadas por este processo.
SQL> select name from v$tablespace ;

NAME
——————————
SYSTEM
UNDOTBS1
SYSAUX
TEMP

Até a próxima!!!