|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Criação de Database LinksVemos o que é um database link e como criá-los. Um database link é um objeto criado em um esquema de um banco de dados que possibilita o acesso a objetos de outro banco de dados, seja ele Oracle ou não. Esse tipo de sistema é conhecido como Sistema de Banco de Bados Distribuídos e pode ser Homogêneo – quando acessa outros bancos de dados Oracle - e Heterogêneo – quando acessam outros tipos de bancos de dados.
Para acessar bancos de dados que não sejam Oracle é necessário utilizar o Oracle Heterogeneous Services em conjunto com um agente. O Heterogeneous Services é um componente integrante do Oracle server a partir de sua versão 8i que habilita a tecnologia dos produtos Oracle Transparent Gateway, sendo que Heterogeneous Services provê uma arquitetura comum e mecanismos de administração para os produtos Oracle gateway, além de outras facilidades de acesso a bancos heterogêneos. Para acessar um banco de dados não Oracle utilizando um Oracle Transparent Gateway (agente) deve-se selecionar uma aplicação específica do sistema, ou seja, cada banco de dados específico requer um agente diferente. Por exemplo, para criar um database link com um banco de dados Sybase é necessário obter um gateway transparente específico para Sybase para que então o banco de dados Oracle possa comunicar-se com ele. O agente executa comandos SQL e requisições de transações a bancos de dados não Oracle em nome do usuário da base de dados Oracle. Pode-se, também, utilizar uma conectividade genérica para acessar bancos de dados não Oracle, como os protocolos ODBC ou OLE DB, através do uso dos Heterogeneous Services ODBC e OLE-DB, sem a necessidade de adquirir e configurar um agente específico para o banco de dados que se deseja acessar. Neste artigo irei ensinar, em detalhes, a criar um database link homogêneo entre bancos de dados (inclusive de diferentes versões) Oracle. Ao criar um database link é possível utilizar e referenciar tabelas e visões do outro banco de dados, acrescentando ao final do nome destes objetos @nome_do_dblink. Com o dblink e os privilégios necessários é possível utilizar comandos SELECT, INSERT, UPDATE, DELETE ou LOCK TABLE sobre os objetos desejados do banco de dados remoto, sabendo que uma transação do banco de dados irá incluir os comandos DML (linguagem de manipulação de dados) direcionados a dblinks, tornando as operações de COMMIT e ROLLBACK sobre tais bases, transparente.
Para a criação de um database link alguns pré-requisitos devem ser observados: select GLOBAL_NAME from GLOBAL_NAME; A criação, propriamente dita de um database link é realizada conectando-se no banco de dados local com um usuário que possua os privilégios necessários e executando o seguinte comando: CREATE DATABASE LINK nome_do_dblink CONNECT TO usuário_banco_remoto IDENTIFIED BY senha USING 'connect_string'; Exemplo: CREATE DATABASE LINK PRODUC CONNECT TO scott IDENTIFIED BY tiger USING 'PRODUC'; Com o comando especificado acima, o usuário atualmente conectado pode conectar-se ao banco de dados remoto PRODUC com se fosse o usuário Scott/tiger deste banco de dados remoto. Vale lembrar que o usuário especificado na criação do dblink deve existir no banco de dados remoto e caso a senha do usuário de conexão neste banco seja alterada é necessário destruir (DROP DATABASE LINK) e recriar o dblink com a identificação da nova senha do usuário de conexão, caso contrário o dblink deixará de funcionar. Quando o usuário é especificado, juntamente com sua senha, na cláusula CONNECT TO, tem-se um database link especificado, caso contrário, tem-se um database link anônimo (ou conectado). No caso de database links anônimos o usuário da sessão corrente será utilizado como padrão. Por exemplo: CREATE DATABASE LINK PRODUC USING 'PRODUC'; O valor especificado na cláusula USING é conhecido como connect_string (ou net_connect_string a partir do Oracle8i). A connect string precisa estar definida no Net8, no arquivo de configurações de nome TNSNAMES.ORA. Por exemplo: PRODUC = (DESCRIPTION = (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = meteoro) (Port = 1521)) (CONNECT_DATA = (SID = PRODUC) (GLOBAL_NAME = PRODUC.com.br) (SERVER = DEDICATED))) Para testar se o dblink foi criado com sucesso pode-se utilizar o seguinte comendo SELECT: SELECT * FROM emp@PRODUC; Para manter-se a transparência no acesso a objetos de outros bancos de dados pode-se criar sinônimos públicos para os objetos acessados através do dblink. Por exemplo: CREATE PUBLIC SYNONYM emp FOR scott.emp@PRODUC Pode-se também criar um dbkink como PUBLIC, que permite a todos os usuários do banco de dados local acessar os objetos do banco de dados remoto. Em geral, a opção de databases links públicos são criados apenas quando se utiliza a cláusula de autenticação, garantindo o aspecto de segurança no acesso a dados. Esta opção de database link está disponível apenas em configuração de servidores multi-thread. Exemplo: CREATE SHARED PUBLIC DATABASE LINK PUBLIC CONNECT TO scott IDENTIFIED BY tiger AUTHENTICATED BY admin IDENTIFIED BY adm123 USING 'PRODUC'; A cláusula AUTHENTICATED especifica o usuário e senha, neste exemplo ADMIN/ADM123 na instância remota, permitindo autenticar o usuário para o servidor remoto, potencializando o aspecto de segurança. Para identificar quais os database links disponíveis ao usuário atual e para onde os mesmos apontam o seguinte comando SELECT pode ser utilizado para acessar a view de DBA, dba_db_links: select OWNER, DB_LINK, USERNAME, HOST, to_char(CREATED,'MM/DD/YYYY HH24:MI:SS') Criação from dba_db_links order by OWNER, DB_LINK; Onde: Owner – Nome do usuário criou o dblink; DBLink – Nome do dblink; Username – Nome do usuário para log no banco remoto; Host – SQL*Net de conexão (encontrada no arquivo TNSNAMES.ORA); Created – Data e hora de criação do dblink. Restrições:
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada + 1 Comentário sem rever
Manuais relacionados com este artigo Dentro de Manual de MySQL Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em MySQLComentário sem rever
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |