Banco de dados vs Instância
Oracle é um RDBMS (sistema de gerenciamento de banco de dados objeto-relacional) amplamente utilizado em empresas. É desenvolvido pela Oracle Corporation. Um sistema Oracle é composto de pelo menos uma Instância e um banco de dados. A instância é uma coleção de processos que se comunicam com o armazenamento de dados. Banco de dados é o armazenamento real, que contém a coleção de arquivos. No entanto, o termo banco de dados Oracle é usado para se referir a todo o sistema de banco de dados Oracle (instâncias e bancos de dados). Por causa disso, sempre há alguma confusão para os iniciantes entre os termos banco de dados e instância.
O que é Instância?
Instance é uma coleção de processos executados no sistema operacional e na memória relacionada que interage com o armazenamento de dados. A instância é a interface entre o usuário e o banco de dados. Processos capazes de se comunicar com o cliente e acessar o banco de dados são fornecidos pela instância. Esses processos são processos em segundo plano e não são suficientes para manter o princípio ACID (Atomicidade, Consistência, Isolamento e Durabilidade) no banco de dados. Portanto, uma instância também usa alguns outros componentes, como cache de memória e buffers. Mais especificamente, uma Instância é composta de três partes. Eles são SGA (System Global Area), PGA (Program Global Area) e processos em segundo plano. SGA é uma estrutura de memória compartilhada temporária, que tem uma vida útil da inicialização da instância até seu desligamento.
Banco de dados
O banco de dados Oracle refere-se ao armazenamento real do Oracle RDBMS. É composto por três componentes principais. São arquivos de controle, arquivos de redo e arquivos de dados. Opcionalmente, pode haver arquivos de senha no banco de dados. Os arquivos de controle acompanham todos os arquivos de dados e arquivos de redo. Ele também ajuda a manter a integridade do banco de dados intacta, acompanhando o número de alteração do sistema (SCN), carimbos de data/hora e outras informações críticas, como informações de backup/recuperação. Os arquivos de dados mantêm os dados reais. No momento da criação do banco de dados, são criados pelo menos dois arquivos de dados. Esses arquivos são vistos fisicamente pelo DBA (Database Administrator). Operações de arquivo como renomear, redimensionar, adicionar, mover ou soltar podem ser realizadas em arquivos de dados. Os arquivos de redo log (também conhecidos como redo logs online), guardam as informações referentes às alterações no banco de dados com as informações cronológicas. Essas informações são necessárias caso o usuário precise refazer todas ou algumas das modificações no banco de dados. Para que uma instância manipule os dados do banco de dados, ela deve abri-lo primeiro. Uma instância pode abrir apenas um banco de dados. No entanto, um banco de dados pode ser aberto por várias instâncias.
Qual é a diferença entre Banco de Dados e Instância?
Os termos instância e banco de dados no Oracle RDBMS são altamente relacionados, mas se referem a dois componentes diferentes dentro do sistema. O banco de dados refere-se ao armazenamento real do RDBMS, enquanto a Instância é uma coleção de processos executados no sistema operacional e na memória relacionada que interage com o armazenamento de dados. A instância precisa abrir o banco de dados antes de manipular os dados. Várias instâncias podem abrir um único banco de dados, mas uma instância não pode abrir vários bancos de dados.