Conectar a Banco de Dados Oracle  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Olá a todos...

Estou com um problema e nem com muita pesquisa consegui resolver. Para eu me conectar a um banco de dados Oracle, eu utilizo a seguinte string de conexão:


Porém, no SGBD eu tenho criado vários bancos, como o BDLOCAL, BDBACKUP, etc. Como que eu faço para me conectar a um destes bancos? Porque na string de conexão eu não o determino, eu defino apenas o SID, no meu caso ORCL. E eu estava dando uma olhada no arquivo tnsnames.ora, e o SID de todos os bancos de dados é o mesmo.

Como faço para me conectar a um banco específico?
nandobgi
Java Ninja
[Avatar]

Membro desde: 27/03/2006 07:27:06
Mensagens: 282
Localização: Sampa
Offline

Tente fazer dessa forma



Abraços


[MSN]
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

nandobgi wrote:Tente fazer dessa forma



Abraços


Olá... Obrigado pela resposta...

Mas assim, o segundo parâmetro que você cita não seria o nome de usuário?
nandobgi
Java Ninja
[Avatar]

Membro desde: 27/03/2006 07:27:06
Mensagens: 282
Localização: Sampa
Offline


Olá... Obrigado pela resposta...

Mas assim, o segundo parâmetro que você cita não seria o nome de usuário?


Desculpe ricardo eu confundi pois o nome do banco e do user são iguais, aqui só utilizo um banco fico te devendo essa.

Abraços


[MSN]
nandobgi
Java Ninja
[Avatar]

Membro desde: 27/03/2006 07:27:06
Mensagens: 282
Localização: Sampa
Offline

Ricardo dá uma olhada nessa post, talvez possa te ajudar

http://www.guj.com.br/posts/list/39085.java

Abraços


[MSN]
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

RicardoLuis wrote:
Porém, no SGBD eu tenho criado vários bancos, como o BDLOCAL, BDBACKUP, etc. Como que eu faço para me conectar a um destes bancos? Porque na string de conexão eu não o determino, eu defino apenas o SID, no meu caso ORCL. E eu estava dando uma olhada no arquivo tnsnames.ora, e o SID de todos os bancos de dados é o mesmo.

Como faço para me conectar a um banco específico?


Vamos a um pouco de teoria: ao instalar um servidor Oracle de base de dados (SGBD), você pode instalar uma ou mais instancias. Cada instancia é identificada por um SID. No TNSNAMES.ORA você cria "alias" para acessar uma instancia, identificando também o servidor (IP ou nome) e porta. Se no seu SGDB tem várias instancias, então deve existir um único SID para cada instancia. Agora se você só tem uma instancia, mas vários "alias" no TNSNAMES.ORA para acessar a mesma instancia, então com JDBC você vai ter uma única URL, pois o modo thin não usa TNSNAMES.ORA para acessar o SGDB.
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Hmmm oyama, agora as coisas estão ficando mais claras. Mas assim, quando eu utilizo o SID orcl, em qual dos alias eu estou me conectando? É possível eu selecionar em qual deles eu desejo me conectar?
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

RicardoLuis wrote:Mas assim, quando eu utilizo o SID orcl, em qual dos alias eu estou me conectando? É possível eu selecionar em qual deles eu desejo me conectar?

Dica: esqueça o TNSNAMES.ORA. Não tem diferença nenhuma usar um "alias" ou outro se todos apontam para a mesma instancia. No modo thin o JDBC não usa TNSNAMES.ORA. Se quer usar as entradas do TNSNAMES.ORA, tem que usar o modo OCI (precisa de um Oracle Client instalado na máquina onde vai rodar o seu programa). Não recomendo usar o modo OCI.
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Só para ver se eu entendi de verdade...
Então na verdade todos apontam para a mesma instância, dessa forma se eu der um select em uma tabela, em todos os casos ele retornará os mesmos valores? Não existem diferenças entre eles por eles terem a mesma instância?
marciosantri
Virtual Machine Man
[Avatar]

Membro desde: 02/03/2007 12:32:35
Mensagens: 567
Localização: Goiânia, Goiás
Offline

Não. A instância é vc quem define na string de conexão.

Para conectar ao Oracle vc precisa saber:
O IP ou o nome da máquina;
A porta;
O serviço (SID).

Esses 3 são passados no primeiro parâmetro. O resto é o usuário e a senha.

"jdbc:oracle:thin:@192.168.0.2:1521:CORP", "banco", "senha"

No exemplo do nandobgi, o servidor é o 192.168.0.2, a porta 1521 e o serviço do Oracle é CORP (o default do Oracle costuma ser ORCL ou XE).

leroicotidiano.blogspot.com

RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

marciosantri wrote:Não. A instância é vc quem define na string de conexão.

Para conectar ao Oracle vc precisa saber:
O IP ou o nome da máquina;
A porta;
O serviço (SID).

Esses 3 são passados no primeiro parâmetro. O resto é o usuário e a senha.

"jdbc:oracle:thin:@192.168.0.2:1521:CORP", "banco", "senha"

No exemplo do nandobgi, o servidor é o 192.168.0.2, a porta 1521 e o serviço do Oracle é CORP (o default do Oracle costuma ser ORCL ou XE).


Sim sim, me conectar ao banco eu consigo (como dito na primeira mensagem), o problema é como selecionar um outra alias, sendo que todos eles possuem o mesmo SID.

É possível fazer isso?
marciosantri
Virtual Machine Man
[Avatar]

Membro desde: 02/03/2007 12:32:35
Mensagens: 567
Localização: Goiânia, Goiás
Offline

Nesta metodologia de conexão não existe "alias".
Tudo o que vc precisa está na string de conexão. Mais nada.
Servidor + Porta + Serviço (SID ou Instância)

Digamos que todos eles têm o mesmo SID (se forem do mesmo servidor)
a conexão será a mesma (pelo menos pelo o que entendi).

Se vc tem vários alias apontando para o mesmo no SID para o mesmo servidor então é a mesma conexão. Ou não é isso q vc quer dizer?

leroicotidiano.blogspot.com

RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Sim, é a mesma conexão, mas como diferenciar em qual eu estou conectado. Porque existe um banco BDLOCAL, um BDBACKUP, etc. Todos eles possuem o mesmo SID. Como diferenciar em qual banco eu estou conectado?
marciosantri
Virtual Machine Man
[Avatar]

Membro desde: 02/03/2007 12:32:35
Mensagens: 567
Localização: Goiânia, Goiás
Offline

Estes 2 bancos estão no mesmo servidor com o mesmo SID?

leroicotidiano.blogspot.com

RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Sim.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team