Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Manual de MySQL
SEÇÕES
Manuais relacionados
+Manual de MySQL
Categorias
+MySQL

Índice do Manual Manual de MySQL
+ Instalação de MySQL em Windows
+ Tipos de dados de MySQL
+ Mysql Control Center
+ phpMyAdmin
+ Instalar o driver ODBC para conectar com uma base de dados MySQL
+ Exportar dados de MySQL a Microsoft Access
+ Exportar dados de Access a MySQL
+ Administrar e actualizar uma base de dados MySQL desde Access
+ Connector/J
+ Cópias de segurança em MySQL
+ Backup MySQL mediante sentenças SQL
+ Backup MySQL com mysqldump
+ Subir uma base de dados ao servidor de Internet
+ Subir uma base de dados MySQL vazia ao servidor
+ Subir uma base de dados MySQL com a estrutura e os dados
+ Migrar uma base de dados a MySQL
+ Como alterar tabelas MySQL
+ Verificação e correção de tabelas corrompidas no MySQL
+ Ferramentas Gráficas para Modelagem de Dados e Administração do MySQL
+ Criação de Database Links
+ Gerenciamento de Usuários e Controle de Acessos do MySQL
+ Trabalhando com os Vários Tipos de Tabelas do MySQL

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Criação de Database Links

Vemos 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.

Database Link

Para a criação de um database link alguns pré-requisitos devem ser observados:

  • O usuário que irá criar o database link precisa ter o privilégio de sistema CREATE DATABASE LINK (para database links privados) ou CREATE PUBLIC DATABASE LINK (para database links públicos), além do privilégio de sistema CREATE SESSION no banco de dados Oracle remoto.


  • A ferramenta Oracle Net precisa estar instalada tanto para o banco de dados local quanto para o remoto.


  • O valor da variável GLOBAL_NAMES na instância onde o database link será criado, se configurada no arquivo de inicialização ou na sessão corrente (ALTER SESSION SET) do banco de dados como TRUE o nome global do banco de dados remoto deve ser utilizado (composto pelo nome_do_banco.domínio, ou seja, os parâmetros db_name.db_domain do arquivo de inicialização: initSID.ora). O nome global do banco de dados também pode ser descoberto através da execução do seguinte comando SELECT no banco remoto:


  • 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:

  • As seguintes operações não podem ser desenvolvidas utilizando-se database links:


  • Conceder privilégios em objetos remotos;


  • Executar operações de DESCRIBE em alguns objetos remotos, com exceção de tabelas, views, procedures e functions;


  • Realizar operações de ANALYZE objetos remotos;


  • Definir integridade referencial;


  • Conceder roles à usuários em a banco de dados remoto;


  • Obter roles além dos padrões do usuário de conexão no banco de dados remoto e Executar consultas com hash joins.
  • Autoria e outras referências sobre este artigo

    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 MySQL


    Comentário sem rever
    Entre os comentários não revistos podem ter alguns interessantes que tenham sido enviado recentemente.
     Foi encontrado um comentário sem rever

    VerVer os comentários não revistos



    Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

    Hospedado por Hostnet Hospedagem de Sites