Alguém pode me explicar qual é a diferença entre SID, nome do banco de dados, domínio do banco de dados, nome do banco de dados global, nome do serviço, alias de serviço e nome da instância no Oracle?
Obrigado Michael
Alguém pode me explicar qual é a diferença entre SID, nome do banco de dados, domínio do banco de dados, nome do banco de dados global, nome do serviço, alias de serviço e nome da instância no Oracle?
Obrigado Michael
Respostas:
SID = identifica a instância do banco de dados (nome do banco de dados + número da instância). Portanto, se o nome do banco de dados for somedb e o número da instância for 3, seu SID será somedb3.
Nome do banco de dados = nome do banco de dados (o banco de dados pode ser compartilhado por várias instâncias)
Domínio do banco de dados = geralmente o mesmo que o domínio da sua empresa (somecompany.com)
Nome do banco de dados global = Nome do banco de dados + domínio do banco de dados (somedb.somecompany.com)
Nome do serviço = Um "conector" para uma ou mais instâncias. Geralmente, é útil criar nomes de serviço adicionais em um ambiente RAC, pois o serviço pode ser modificado para usar SIDs específicos como conexões primárias ou secundárias ou para não usar determinados SIDs.
Alias de serviço = Um alias para o nome do serviço (como um CNAME, etc). Digamos que você faça com que o nome do serviço seja significativo para o dba, mas talvez seja um pouco esotérico. Crie um alias de serviço e nomeie-o como algo que será significativo para o usuário.
Nome da instância = mesmo que SID
default service name
= global db name
?
A maneira como você descreve o SID é apenas o comportamento PADRÃO em uma configuração do RAC. O SID (== instance_name) é exatamente isso: O nome da sua instância.
Eu sempre olho assim: Uma instância, é uma instância do software RDBMS. Uma instância MOUNTS um arquivo de controle, (alterar a montagem do banco de dados) Neste arquivo está escrito o local dos arquivos de dados. a coleção de arquivos de dados (ok, e os arquivos de controle) == o banco de dados.
Um banco de dados tem um nome, o db_name e (opcionalmente) um domínio (db_domain) -> juntos global_db_name. Agora imagine que você está replicando (DataGuard) seu banco de dados. Você gostaria de manter o nome do banco de dados igual, certo? (Quero dizer: em termos de dados, é o mesmo banco de dados) Mas como identificar as duas 'versões' do seu banco de dados? Digite 'DB_UNIQUE_NAME' ... Sim, está ficando confuso ...
Minha prática pessoal é nomear o INSTANCE como o db_unique_name em uma instalação do DataGuard e ficar com os nomes de RAC (db_name + Instance_Number) em uma configuração de RAC. Em seguida, os db_unique_names que eu componho geralmente são como db_name + 1-letter-suffix (MYDBa MYDBb etc.)
Cheers, Paul
SID é instância. Melhor evitar usar o termo 'instância de banco de dados', apenas instância.
"SID = identifica a instância do banco de dados (nome do banco + número da instância)" está incorreto. "Uma instância, é uma instância do software RDBMS" está incorreta. Um DBMS desinstalado ou instalado é apenas DBMS.
"Domínio do banco de dados = normalmente o mesmo domínio da sua empresa" deve ser evitado. Ocorreu um problema ao usar o domínio, e os problemas desaparecem quando não estou usando o domínio.
"Nome do banco de dados global = nome do banco de dados + domínio do banco de dados" também está errado. Nome do Banco de Dados Global é Nome do Serviço. É simples assim.
"SID = identifica a instância do banco de dados (nome do banco de dados + número da instância). Portanto, se o nome do banco de dados for somedb e o número da instância for 3, seu SID será somedb3." está errado. Não existe uma catenação de identidade ou nome.