Por definição, um “Oracle Server” abriga uma instância e um banco de dados, que são estruturas separadas, porém conectadas. A instância Oracle é composta por estruturas de memória e processos de backgroud, e sua existência é transiente, ou seja, pode ser iniciada ou desligada.

A instância é definida pelo que chamamos de instance parameter file, que contém informações de como a instância deverá ser construída em memória, incluindo o tamanho de suas estruturas de memória e o comportamento de seus processos de background. Uma vez inicializada, dizemos que está em modo “no mount” , que significa que a instância já existe, mas não está conectada em nenhum banco de dados.
Todos os parâmetros deste arquivo possuem um valor padrão, exceto o DB_NAME, que define o nome do banco de dados que a instância se conectará no futuro (e que deve ser o mesmo do arquivo control file, que abordaremos em seguida). Já o parâmetro CONTROL_FILES reporta para a instância onde está (ou estão) os control files. A partir do momento que a instância conseguiu ler o control file, e o nome do banco dele é o mesmo que o definido na instância, dizemos que instância e banco estão conectados, ou seja, em modo MOUNT.
Já dentro dos control files, existem referências de outros arquivos que compõem o banco de dados, como os redo log files e os data files. No momento que a instância consegue abrir todos esses arquivos referenciados, dizemos que estamos em modo OPEN.

Já o banco de dados, é composto por arquivos armazenados em disco, que uma vez criados, persistem até serem deletados. A criação do banco é feita uma vez, e depois o mesmo pode ser aberto e fechado várias vezes, sendo apenas acessível através da instância.

Dentro do banco de dados há um conjunto de tabelas e outros objetos chamados Dicionário de Dados, que possuem a missão de descrever todas as estruturas físicas e lógicas de um banco. Na criação do Oracle database, podemos notar estruturas físicas mínimas necessárias para abrigar o dicionário de dados (hospedados por exemplo na tablespace SYSTEM). O dicionário de dados é criado após a execução de um conjunto de scripts localizados em “ORACLE_HOME/rdbms/admin” (são disparados através do comando CREATE DATABASE, que executa o arquivo “sql.bsq” que por usa vez executa outros arquivos em sequência).
