Criar Links de Banco de Dados com Conectividade Heterogênea Gerenciada pelo Cliente para Bancos de Dados não Oracle em um Ponto Final Privado
Você pode criar links de banco de dados de um Autonomous AI Database na Infraestrutura Dedicada do Exadata para um Oracle Database Gateway para acessar bancos de dados não Oracle que estejam em um ponto final privado.
Um Oracle Database Gateway é um gateway projetado para acessar um sistema não Oracle específico. Usando um Oracle Database Gateway, você pode acessar dados em qualquer lugar em um sistema de banco de dados distribuído sem saber a localização dos dados ou como eles são armazenados. O uso de links de banco de dados no Autonomous AI Database com o Oracle Database Gateway suporta ambientes heterogêneos e elimina a necessidade de personalizar seus aplicativos para acessar dados de sistemas não Oracle.
Observação: só há suporte para a criação de links de banco de dados com conectividade heterogênea gerenciada pelo cliente com bancos de dados não Oracle em um ponto final privado com as versões 19.25 e superior para 19c e 23.6 e superior para 23ai.
Pré-requisitos
Para usar links de banco de dados de uma instância do Autonomous AI Database em um ponto final público, faça o seguinte:
-
Configure o Oracle Database Gateway para acessar um banco de dados não Oracle. Consulte Oracle Database Gateways no Oracle Database 19c Database Heterogeneous Connectivity User's Guide ou no Oracle Database 26ai Database Heterogeneous Connectivity User's Guide para obter mais detalhes.
Dependendo do banco de dados ao qual você deseja se conectar, você pode consultar o Installation and Configuration Guide correspondente e o Gateway User's Guide.
Por exemplo, para o Oracle Database Gateway for SQL Server, consulte:
-
Instalando e configurando o Oracle Database Gateway for SQL Server no Oracle Database 19c Installation and Configuration Guide for Microsoft Windows ou no Oracle Database 26ai Installation and Configuration Guide for Microsoft Windows
-
Introdução ao Oracle Database Gateway for SQL Server no Oracle Database 19c Gateway for SQL Server User's Guide. ou no Oracle Database 26ai Gateway for SQL Server User's Guide.
-
Configure Oracle Net for the Gateway no Oracle Database 19c Installation and Configuration Guide for Microsoft Windows ou no Oracle Database 26ai Installation and Configuration Guide for Microsoft Windows.
-
-
Configure o Oracle Net Listener para tratar solicitações de entrada no Oracle Database Gateway.
-
Crie uma wallet autoassinada no Oracle Database Gateway.
Além disso:
-
O banco de dados de destino deve estar acessível pela VCN do Oracle Cloud Infrastructure do banco de dados de origem. Por exemplo, você pode estabelecer conexão com o banco de dados de destino quando:
-
O banco de dados de destino está em um ponto final privado.
-
Tanto o banco de dados de origem quanto o de destino estão na mesma VCN do Oracle Cloud Infrastructure.
-
O banco de dados de origem e o banco de dados de destino estão em diferentes VCNs do Oracle Cloud Infrastructure pareadas.
-
Para um destino em um ponto final privado, o
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKsuporta a especificação de um único nome de host com o parâmetrohostname. Em um ponto final privado, não há suporte para o uso de um endereço IP, IP SCAN ou nome de host SCAN (quando o destino está em um ponto final público, oCREATE_DATABASE_LINKsuporta o uso de um endereço IP, um IP SCAN ou um nome de host SCAN).
-
-
As seguintes regras de entrada e saída devem ser definidas para o ponto final privado:
-
Defina uma regra de saída na lista de segurança de sub-rede ou no grupo de segurança de rede do banco de dados de origem para que o tráfego em TCP seja permitido para o endereço IP e o número da porta do banco de dados de destino.
-
Defina uma regra de entrada na lista de segurança de sub-rede ou no grupo de segurança de rede do banco de dados de destino de forma que o tráfego por TCP seja permitido do endereço IP do banco de dados de origem para a porta de destino.
-
Conectividade Heterogênea Gerenciada pelo Cliente para Bancos de Dados Não Oracle em um Ponto Final Privado (sem wallet)
Você pode criar links de banco de dados de um Autonomous AI Database para um Oracle Database Gateway a fim de acessar bancos de dados não Oracle que estejam em um ponto final privado com uma wallet (TCPS) ou sem uma wallet (TLS). Esta seção descreve como criar um link de banco de dados sem uma wallet.
Para criar links de banco de dados de uma instância do Autonomous AI Database em um ponto final privado para um gateway de destino, usando links de banco de dados e uma conexão TLS, faça o seguinte:
-
No Autonomous AI Database, crie credenciais para acessar o banco de dados de destino. O nome de usuário e a senha especificados com
DBMS_CLOUD.CREATE_CREDENTIALsão as credenciais do banco de dados de destino usado no link do banco de dados (em que o banco de dados de destino é acessado por meio do Oracle Database Gateway).Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => 'password' ); END;/O fornecimento do parâmetro
credential_nameé obrigatório.Os caracteres no parâmetro
usernamedevem ter todas as letras maiúsculas.Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial.
-
Crie o link do banco de dados para o gateway de destino usando
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Por exemplo:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'SALESLINK', hostname => 'example.com', port => '1522', service_name => 'example_service_name', ssl_server_cert_dn => 'ssl_server_cert_dn', credential_name => 'DB_LINK_CRED', directory_name => NULL, gateway_link => TRUE, private_target => TRUE, gateway_params => NULL ); END;/O parâmetro
ssl_server_cert_dnserá opcional se a conexão for criada como um link de banco de dados baseado em TCP (sem uma wallet).Quando o
directory_nameéNULL, a conexão é criada como um link de banco de dados baseado em TCP (sem uma wallet).O parâmetro
private_targetdeve ser definido comoTRUEquando o destino que não é o Oracle Database estiver em um ponto final privado (ou seja, o link do banco de dados acessa um nome de host que precisa ser resolvido em um servidor DNS da VCN). Quandoprivate_targetéTRUE, o parâmetrohostnamedeve ser um único nome de host (em um ponto final privado, o uso de um endereço IP, um IP SCAN ou um nome de host SCAN não é suportado).Quando
gateway_linkéTRUEegateway_paramséNULL, isso especifica que o link de banco de dados é para um gateway Oracle gerenciado pelo cliente.Usuários diferentes de ADMIN precisam de privilégios para executar
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Consulte Procedimento CREATE_DATABASE_LINK para obter mais detalhes.
-
Use o link de banco de dados criado para acessar dados no gateway de destino.
Por exemplo:
SELECT * FROM employees@SALESLINK;
Para as credenciais criadas na Etapa 1, as credenciais do Oracle Database Gateway, se a senha do usuário de destino for alterada, você poderá atualizar a credencial que contém as credenciais do usuário de destino da seguinte forma:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
Onde a senha é nova senha.
Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem precisar eliminar e recriar os links de banco de dados.
Consulte Procedimento UPDATE_CREDENTIAL para obter mais detalhes.
Conectividade Heterogênea Gerenciada pelo Cliente para Bancos de dados Não Oracle em um Ponto Final Privado (com uma wallet)
Você pode criar links de banco de dados de um Autonomous AI Database para um Oracle Database Gateway a fim de acessar bancos de dados não Oracle que estejam em um ponto final privado com uma wallet (TCPS) ou sem uma wallet (TLS). Esta seção descreve como criar um link de banco de dados com uma wallet.
Para criar links de banco de dados de uma instância do Autonomous AI Database em um ponto final privado para um gateway de destino, estabelecendo conexão com uma wallet, faça o seguinte:
-
Copie a wallet autoassinada do gateway de destino, por exemplo,
cwallet.sso, que contém os certificados do Oracle Database Gateway para o Object Store.O arquivo da wallet, juntamente com o ID de usuário e a senha do banco de dados, fornecem acesso aos dados disponíveis por meio do gateway de destino. Armazene os arquivos da wallet em um local seguro. Só compartilhe os arquivos da wallet com usuários autorizados.
-
No Autonomous AI Database, crie credenciais para acessar o Object Store em que você armazena o
cwallet.sso.Consulte Procedimento CREATE_CREDENTIAL para obter informações sobre os parâmetros de nome de usuário e senha para diferentes serviços de armazenamento de objetos.
-
Crie um diretório no Autonomous AI Database para o arquivo de wallet
cwallet.sso.Por exemplo:
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';Consulte Criar diretório no Autonomous AI Database para obter informações sobre como criar diretórios.
-
Use
DBMS_CLOUD.GET_OBJECTpara fazer upload da wallet autoassinada do gateway de destino para o diretório criado na etapa anterior,DBLINK_WALLET_DIR.Por exemplo:
BEGIN DBMS_CLOUD.GET_OBJECT( credential_name =>'DEF_CRED_NAME', object_uri =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso', directory_name =>'DBLINK_WALLET_DIR' ); END; /Neste exemplo,
namespace-stringé o namespace do Oracle Cloud Infrastructure Object Storage ebucketnameé o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.Observação: O
credential_nameusado nesta etapa são as credenciais do Object Store. Na próxima etapa, você cria as credenciais para acessar o gateway de destino. -
No Autonomous AI Database, crie credenciais para acessar o banco de dados de destino. O nome de usuário e a senha especificados com
DBMS_CLOUD.CREATE_CREDENTIALsão as credenciais do banco de dados de destino usado no link do banco de dados (em que o banco de dados de destino é acessado por meio do Oracle Database Gateway).Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name =>'DB_LINK_CRED', username =>'NICK', password =>'password' ); END; /O fornecimento do parâmetro
credential_nameé obrigatório.Os caracteres no parâmetro
usernamedevem ter todas as letras maiúsculas.Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial.
-
Crie o link do banco de dados para o gateway de destino usando
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Por exemplo:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name =>'SALESLINK', hostname =>'example.com', port =>'1522', service_name =>'example_service_name', ssl_server_cert_dn =>'ssl_server_cert_dn', credential_name =>'DB_LINK_CRED', directory_name =>'DBLINK_WALLET_DIR', gateway_link =>TRUE, private_target =>TRUE, gateway_params =>NULL ); END; /Se
directory_namenão forNULL, um link de banco de dados baseado em TCPS será criado.O parâmetro
private_targetdeve ser definido comoTRUEquando o destino que não é o Oracle Database estiver em um ponto final privado (ou seja, o link do banco de dados acessa um nome de host que precisa ser resolvido em um servidor DNS da VCN). Quandoprivate_targetéTRUE, o parâmetrohostnamedeve ser um único nome de host (em um ponto final privado, o uso de um endereço IP, um IP SCAN ou um nome de host SCAN não é suportado).Quando
gateway_linkéTRUEegateway_paramséNULL, isso especifica que o link de banco de dados é para um gateway Oracle gerenciado pelo cliente.Usuários diferentes de ADMIN precisam de privilégios para executar
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Consulte Procedimento CREATE_DATABASE_LINK para obter mais detalhes.
-
Use o link de banco de dados criado para acessar dados no gateway de destino.
Por exemplo:
SELECT * FROM employees@SALESLINK;
Para as credenciais criadas na Etapa 5, as credenciais do Oracle Database Gateway, se a senha do usuário de destino for alterada, você poderá atualizar a credencial que contém as credenciais do usuário de destino da seguinte forma:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
Onde a senha é nova senha.
Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem precisar eliminar e recriar os links de banco de dados.
Consulte Procedimento UPDATE_CREDENTIAL para obter mais detalhes.