5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[OCI]Autonomous DatabaseからRDS for Oracleへのデータベース・リンクを作成してRDS for Oracle上のデータを参照してみた

Last updated at Posted at 2022-02-21

はじめに

Autonomous DatabaseからRDS for Oracleにデータベース・リンクを作成して、RDS for Oracle内のデータをAutonomous Databaseから直接参照できるかを検証してみました。

※この記事とは逆に、RDS for OracleからAutonomous Databaseに対するデータベース・リンクを作成する手順の検証に関する記事はこちらです。

1.RDS for Oracleの準備

AWSのコンソールからRDS for Oracleインスタンスを作成します。
スクリーンショット 2022-02-21 8.45.02.png

項目 設定値
エンジンタイプ Oracle
Database management type Amazon RDS
アーキテクチャ設定 マルチテナントアーキテクチャを使用のチェックをオン
エディション Oracle Standard Edition Two
バージョン Oracle
DB識別子 rdsfororacle
マスターユーザー名 admin
マスターパスワード Demo#1Demo#1
パブリックアクセス あり
データベース認証 パスワード認証

AWSのコンソールからRDSのオプショングループを作成します。
スクリーンショット 2022-02-21 8.34.04.png
スクリーンショット 2022-02-21 8.34.53.png
スクリーンショット 2022-02-21 8.37.21.png

オプショングループにオプションを追加します。
スクリーンショット 2022-02-21 8.38.33.png

項目 設定値
オプション SSL
ポート 1522
セキュリティグループ default
FIPS.SSLFIPS_140 FALSE
SQLNET.CIPHER_SUITE SSL_RSA_WITH_AES_256_CBC_SHA256
SQLNET.SSL_VERSION 1.2
すぐに適用 Yes

作成したオプショングループをRDS for Oracleインスタンスに適用します。
スクリーンショット 2022-02-21 9.03.39.png

セキュリティグループにTCP 1522番ポートへのアクセスを許可するインバウンドルールを追加します。
今回は検証のため、0.0.0.0/0からのTCP 1522番ポートへのアクセスを許可しました。

2.作業用Computeインスタンスの準備

OCIコンソールからComputeインスタンスを作成します。
今回はOSとしてOracle Linux 7.9を選択し、パブリックIPを持つComputeインスタンスを作成しました。

作成したComputeインスタンスにOracle Instant Clientをインストールします。

[opc@oracleclient21c ~]$ sudo yum install -y oracle-instantclient-release-el7
Loaded plugins: langpacks, osmsplugin, ulninfo
This system is receiving updates from OSMS.
ol7_addons-x86_64                                                                           | 1.3 kB  00:00:00     
ol7_addons-x86_64/updateinfo                                                                |  76 kB  00:00:00     
ol7_addons-x86_64/primary                                                                   |  88 kB  00:00:00     
ol7_addons-x86_64                                                                                          368/368
ol7_developer_epel-x86_64                                                                   | 1.5 kB  00:00:00     
<略>
ol7_software_collections-x86_64/primary                                                     | 2.8 MB  00:00:00     
ol7_software_collections-x86_64                                                                        12207/12207
ol7_uekr6-x86_64                                                                            | 1.3 kB  00:00:00     
ol7_uekr6-x86_64/updateinfo                                                                 |  83 kB  00:00:00     
ol7_uekr6-x86_64/primary                                                                    |  21 MB  00:00:00     
ol7_uekr6-x86_64                                                                                           449/449
Resolving Dependencies
--> Running transaction check
---> Package oracle-instantclient-release-el7.x86_64 0:1.0-3.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                                    Arch             Version             Repository                   Size
===================================================================================================================
Installing:
 oracle-instantclient-release-el7           x86_64           1.0-3.el7           ol7_latest-x86_64            14 k

Transaction Summary
===================================================================================================================
Install  1 Package

Total download size: 14 k
Installed size: 18 k
Downloading packages:
oracle-instantclient-release-el7-1.0-3.el7.x86_64.rpm                                       |  14 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : oracle-instantclient-release-el7-1.0-3.el7.x86_64                                               1/1 
  Verifying  : oracle-instantclient-release-el7-1.0-3.el7.x86_64                                               1/1 

Installed:
  oracle-instantclient-release-el7.x86_64 0:1.0-3.el7                                                              

Complete!
[opc@oracleclient21c ~]$ 
[opc@oracleclient21c ~]$ sudo yum install -y oracle-instantclient-sqlplus
Loaded plugins: langpacks, osmsplugin, ulninfo
This system is receiving updates from OSMS.
Resolving Dependencies
--> Running transaction check
---> Package oracle-instantclient-sqlplus.x86_64 0:21.5.0.0.0-1 will be installed
--> Processing Dependency: oracle-instantclient-basic >= 21.5.0.0.0 for package: oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64
--> Running transaction check
---> Package oracle-instantclient-basic.x86_64 0:21.5.0.0.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                              Arch           Version              Repository                          Size
===================================================================================================================
Installing:
 oracle-instantclient-sqlplus         x86_64         21.5.0.0.0-1         ol7_oracle_instantclient21         706 k
Installing for dependencies:
 oracle-instantclient-basic           x86_64         21.5.0.0.0-1         ol7_oracle_instantclient21          53 M

Transaction Summary
===================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 54 M
Installed size: 241 M
Downloading packages:
(1/2): oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm                                 | 706 kB  00:00:00     
(2/2): oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm                                   |  53 MB  00:00:00     
-------------------------------------------------------------------------------------------------------------------
Total                                                                               54 MB/s |  54 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : oracle-instantclient-basic-21.5.0.0.0-1.x86_64                                                  1/2 
  Installing : oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64                                                2/2 
  Verifying  : oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64                                                1/2 
  Verifying  : oracle-instantclient-basic-21.5.0.0.0-1.x86_64                                                  2/2 

Installed:
  oracle-instantclient-sqlplus.x86_64 0:21.5.0.0.0-1                                                               

Dependency Installed:
  oracle-instantclient-basic.x86_64 0:21.5.0.0.0-1                                                                 

Complete!
[opc@oracleclient21c ~]$

Javaをインストールします。

[opc@oracleclient21c ~]$ sudo yum install -y java
Loaded plugins: langpacks, osmsplugin, ulninfo
This system is receiving updates from OSMS.
Resolving Dependencies
--> Running transaction check
---> Package jre1.8.x86_64 0:1.8.0_321-fcs will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package              Arch                 Version                     Repository                             Size
===================================================================================================================
Installing:
 jre1.8               x86_64               1.8.0_321-fcs               ol7_oci_included-x86_64                59 M

Transaction Summary
===================================================================================================================
Install  1 Package

Total download size: 59 M
Installed size: 181 M
Downloading packages:
jre-8u321-linux-x64.rpm                                                                     |  59 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : jre1.8-1.8.0_321-fcs.x86_64                                                                     1/1 
Unpacking JAR files...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...
  Verifying  : jre1.8-1.8.0_321-fcs.x86_64                                                                     1/1 

Installed:
  jre1.8.x86_64 0:1.8.0_321-fcs                                                                                    

Complete!
[opc@oracleclient21c ~]$

Oracle ClientとJavaのための環境変数を.bashrcに追加します。

[opc@oracleclient21c ~]$ vi /home/opc/.bashrc
/home/opc/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
#####  以下を追加する  #####
export ORACLE_HOME=/usr/lib/oracle/21/client64/lib
export NLS_LANG=Japanese_Japan.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=/usr/lib/oracle/21/client64/bin:$PATH
export JAVA_HOME=/usr/java/latest

環境変数を適用します。

[opc@oracleclient21c ~]$ source .bashrc
[opc@oracleclient21c ~]$ 

SQLclをインストールします。

[opc@oracleclient21c ~]$ curl -O https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 38.1M  100 38.1M    0     0  48.7M      0 --:--:-- --:--:-- --:--:-- 48.8M
[opc@oracleclient21c ~]$ ls
sqlcl-latest.zip
[opc@oracleclient21c ~]$ unzip sqlcl-latest.zip 
Archive:  sqlcl-latest.zip
   creating: sqlcl/
   creating: sqlcl/bin/
   creating: sqlcl/lib/
   creating: sqlcl/lib/ext/
  inflating: sqlcl/README.md         
  inflating: sqlcl/lib/ext/dbtools-modeler-common.jar  
  inflating: sqlcl/bin/version.txt   
  inflating: sqlcl/lib/javax.json.jar  
  inflating: sqlcl/lib/xdb.jar       
  inflating: sqlcl/lib/dbtools-http.jar  
  inflating: sqlcl/lib/httpclient5.jar  
  inflating: sqlcl/lib/slf4j-jdk14.jar  
  inflating: sqlcl/lib/slf4j-api.jar  
  inflating: sqlcl/lib/jackson-annotations.jar  
  inflating: sqlcl/lib/jdbcrest.jar  
  inflating: sqlcl/lib/oraclepki.jar  
  inflating: sqlcl/21.4.1.17.1458    
  inflating: sqlcl/lib/jackson-core.jar  
  inflating: sqlcl/bin/dependencies.txt  
  inflating: sqlcl/lib/jaxb-api.jar  
  inflating: sqlcl/lib/javax.activation-api.jar  
  inflating: sqlcl/lib/jackson-jr-stree.jar  
  inflating: sqlcl/lib/orajsoda.jar  
  inflating: sqlcl/lib/commons-codec.jar  
  inflating: sqlcl/lib/sshd-common.jar  
  inflating: sqlcl/lib/orai18n-utility.jar  
  inflating: sqlcl/bin/sql           
  inflating: sqlcl/lib/dbtools-common.jar  
  inflating: sqlcl/bin/sql.exe       
  inflating: sqlcl/lib/ucp.jar       
  inflating: sqlcl/lib/jansi.jar     
  inflating: sqlcl/lib/osdt_core.jar  
  inflating: sqlcl/lib/sshd-contrib.jar  
  inflating: sqlcl/bin/README.md     
  inflating: sqlcl/lib/jackson-jr-objects.jar  
  inflating: sqlcl/lib/dbtools-data.jar  
  inflating: sqlcl/lib/commons-logging.jar  
  inflating: sqlcl/lib/dbtools-net.jar  
  inflating: sqlcl/lib/sshd-core.jar  
  inflating: sqlcl/lib/orai18n-mapping.jar  
  inflating: sqlcl/lib/dbtools-sqlcl.jar  
  inflating: sqlcl/lib/pom.xml       
  inflating: sqlcl/lib/guava-with-lf.jar  
  inflating: sqlcl/lib/ext/dbtools-liquibase.jar  
  inflating: sqlcl/lib/ST4.jar       
  inflating: sqlcl/lib/antlr-runtime.jar  
  inflating: sqlcl/lib/httpcore5.jar  
  inflating: sqlcl/lib/sshd-scp.jar  
  inflating: sqlcl/lib/dbtools-datapump.jar  
  inflating: sqlcl/lib/jline3.jar    
  inflating: sqlcl/bin/license.txt   
  inflating: sqlcl/lib/xmlparserv2_sans_jaxp_services.jar  
  inflating: sqlcl/lib/low-level-api.jar  
  inflating: sqlcl/lib/sshd-sftp.jar  
  inflating: sqlcl/lib/osdt_cert.jar  
  inflating: sqlcl/lib/orai18n.jar   
  inflating: sqlcl/lib/ext/liquibase-core.jar  
  inflating: sqlcl/lib/ext/dbtools-modeler-cli-ext.jar  
  inflating: sqlcl/lib/ojdbc8.jar    
[opc@oracleclient21c ~]$ 

3.RDS for Oracle接続用証明書の作成

RDS for Oracle接続用証明書バンドルをダウンロードします。証明書バンドルはこちらのページにあります。
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html
RDS for Oracleのインスタンスがあるリージョンに対応した証明書バンドルをダウンロードします。
スクリーンショット 2022-02-20 13.13.48.png
RDS for Oracleに接続するために必要なファイルを格納するディレクトリ/home/opc/RDSを作成します。

[opc@oracleclient21c ~]$ mkdir RDS
[opc@oracleclient21c ~]$ cd RDS
[opc@oracleclient21c RDS]$

curlコマンドでRDS for Oracleがあるリージョンに対応した証明書バンドルをダウンロードします。

[opc@oracleclient21c RDS]$ curl -O https://truststore.pki.rds.amazonaws.com/ap-northeast-1/ap-northeast-1-bundle.pem
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7540  100  7540    0     0   5904      0  0:00:01  0:00:01 --:--:--  5909
[opc@oracleclient21c RDS]$ ls -l
total 8
-rw-rw-r--. 1 opc opc 7540 Feb 20 10:45 ap-northeast-1-bundle.pem
[opc@oracleclient21c RDS]$ 

SQLclを使用してウォレットを作成します。

[opc@oracleclient21c RDS]$ java -classpath '/home/opc/sqlcl/lib/*' oracle.security.pki.textui.OraclePKITextUI wallet create -wallet . -auto_login_only
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.

Operation is successfully completed.
[opc@oracleclient21c RDS]$

SQLclを使用してクライアント証明書を作成します。

[opc@oracleclient21c RDS]$ java -classpath '/home/opc/sqlcl/lib/*' oracle.security.pki.textui.OraclePKITextUI wallet add -wallet . -trusted_cert -cert ap-northeast-1-bundle.pem -auto_login_only
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.

Operation is successfully completed.
[opc@oracleclient21c RDS]$

ウォレットファイルを確認します。

[opc@oracleclient21c RDS]$ ls
ap-northeast-1-bundle.pem  cwallet.sso  cwallet.sso.lck
[opc@oracleclient21c RDS]$ 

ウォレットの内容を確認します。

[opc@oracleclient21c RDS]$ java -classpath /'/home/opc/sqlcl/lib/*' oracle.security.pki.textui.OraclePKITextUI wallet display -wallet .
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.

Requested Certificates: 
User Certificates:
Trusted Certificates: 
Subject:        CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,ST=Washington,L=Seattle,C=US
[opc@oracleclient21c RDS]$

4.作業用ComputeインスタンスからRDS for Oracleへの接続

RDS for Oracleに接続するためのsqlnet.oraファイルを作成します。

[opc@oracleclient21c RDS]$ vi sqlnet.ora
/home/opc/RDS/sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /home/opc/RDS)))
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.2
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA256)
SSL_SERVER_DN_MATCH = ON

RDS for Oracleに接続用するためのtnsnames.oraファイルを作成します。

[opc@oracleclient21c RDS]$ vi tnsnames.ora
/home/opc/RDS/tnsnames.ora
RDS =   (DESCRIPTION =
                (ADDRESS_LIST =
                        (ADDRESS =
                                (PROTOCOL=TCP)
                                (HOST=rdsfororacle.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com)
                                (PORT=1521)
                        )
                )
                (CONNECT_DATA = (SERVICE_NAME = ORCL))
        )

RDS_S = (DESCRIPTION =
                (ADDRESS_LIST =
                        (ADDRESS =
                                (PROTOCOL = TCPS)
                                (HOST = rdsfororacle.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com)
                                (PORT = 1522)
                        )
                )
                (CONNECT_DATA = (SERVICE_NAME = ORCL))
                (SECURITY =
                        (SSL_SERVER_CERT_DN = "C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=rdsfororacle.cp31manwhn9v.ap-northeast-1.rds.amazonaws.com")
                )
        )

環境変数TNS_ADMINに/home/opc/RDSをセットします。

[opc@oracleclient21c RDS]$ export TNS_ADMIN=/home/opc/RDS
[opc@oracleclient21c RDS]$ 

SQL*PlusからadminユーザとしてRDS for Oracleに接続します。

[opc@oracleclient21c RDS]$ sqlplus admin/Demo#1Demo#1@rds_s

SQL*Plus: Release 21.0.0.0.0 - Production on 日 2月 20 11:04:44 2022
Version 21.5.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

最終正常ログイン時間: 日 2月  20 2022 08:41:45 +00:00


Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.13.0.0.0
に接続されました。
SQL> 

作業用ComputeインスタンスからRDS for Oracleに接続できました。

5.データベース・リンク作成の準備

DBリンクの接続先になるユーザを作成し、権限を付与します。

SQL> GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO rdsdbuser IDENTIFIED BY Demo#1Demo#1;;

権限付与が成功しました。

SQL>

作成したユーザrdsdbuserのスキーマ内にテスト用テーブルを作成し、データを追加します。

SQL> connect rdsdbuser/Demo#1Demo#1@rds_s
接続されました。
SQL> CREATE TABLE DEPT (
  2  DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
  3  DNAME VARCHAR2(14),
  4  LOC VARCHAR2(13) );

表が作成されました。

SQL> INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');

1行が作成されました。

SQL> INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');

1行が作成されました。

SQL> INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');

1行が作成されました。

SQL> INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');

1行が作成されました。

SQL> COMMIT;

コミットが完了しました。

SQL> 

6.Autonomous Databaseの作成

OCIコンソールからAutonomous Databaseを作成します。

7.作業用ComputeインスタンスからAutonomous Databaseへの接続

Autonomous DatabaseのWalletをクライアントPCにダウンロードします。

Computeインスタンスに、ADBに接続するために必要なファイルを格納するディレクトリ/home/opc/ADBを作成します。

[opc@oracleclient21c ~]$ mkdir ADB
[opc@oracleclient21c ~]$ cd ADB
[opc@oracleclient21c ADB]$

作成したディレクトリに、ウォレットのZIPファイルをSFTPでアップロードします。

アップロードしたファイルを確認します。

[opc@oracleclient21c ADB]$ ls
Wallet_demoatp1.zip
[opc@oracleclient21c ADB]$

ZIPファイルを解凍します。

[opc@oracleclient21c ADB]$ unzip Wallet_demoatp1.zip 
Archive:  Wallet_demoatp1.zip
  inflating: README                  
  inflating: cwallet.sso             
  inflating: tnsnames.ora            
  inflating: truststore.jks          
  inflating: ojdbc.properties        
  inflating: sqlnet.ora              
  inflating: ewallet.p12             
  inflating: keystore.jks            
[opc@oracleclient21c ADB]$

sqlnet.oraを編集します。

[opc@oracleclient21c ADB]$ vi sqlnet.ora
/home/opc/ADB/sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/opc/ADB")))
SSL_SERVER_DN_MATCH=yes

環境変数TNS_ADMINに/home/opc/ADBをセットします。

[opc@oracleclient21c ADB]$ export TNS_ADMIN=/home/opc/ADB
[opc@oracleclient21c ADB]$

SQL*PlusからAutonomous Databaseにadminユーザとして接続します。

[opc@oracleclient21c ADB]$ sqlplus admin/Demo#1Demo#1@demoatp1_medium

SQL*Plus: Release 21.0.0.0.0 - Production on 日 2月 20 08:33:13 2022
Version 21.5.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

最終正常ログイン時間: 日 2月  20 2022 08:19:58 +00:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.1.0
に接続されました。
SQL>

作業用ComputeインスタンスからAutonomous Databaseに接続できました。

8.データベース・リンクの作成

作成したウォレットファイル"/home/opc/RDS/cwallet.sso"をクライアントPCにSCPでダウンロードします。

バケット「dblink_wallet」を作成し、バケット「dblink_wallet」にファイル"cwallet.sso"をアップロードします。

スクリーンショット 2022-02-20 20.14.43.png
スクリーンショット 2022-02-20 20.09.56.png
スクリーンショット 2022-02-20 20.11.07.png
スクリーンショット 2022-02-20 20.12.23.png

ウォレット格納用のディレクトリオブジェクトDBLINK_WALLET_DIRを作成します。

SQL> CREATE DIRECTORY dblink_wallet_dir AS 'dblink_wallet';

ディレクトリが作成されました。

SQL>

RDS for Oracle接続用のウォレットファイル"cwallet.sso"を、オブジェクト・ストレージ・バケットdblink_walletからディレクトリ・オブジェクトDBLINK_WALLET_DIRにコピーします。

SQL> BEGIN
  2       DBMS_CLOUD.GET_OBJECT(
  3          credential_name => 'OCI$RESOURCE_PRINCIPAL',
  4          object_uri => 'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/_namespace_/b/dblink_wallet/o/cwallet.sso',  
  5          directory_name => 'DBLINK_WALLET_DIR'   
  6  	  );                                            
  7  END;
  8  /

PL/SQLプロシージャが正常に完了しました。

SQL>

RDS for Oracleに接続するDBリンク用のクレデンシャルDB_LINK_CREDを作成します。
usernameにRDS for OracleのDBユーザ名、passwordにそのユーザのパスワードを指定します。

SQL> BEGIN
  2  	DBMS_CLOUD.CREATE_CREDENTIAL(
  3  		credential_name => 'DB_LINK_CRED',
  4  		username => 'RDSDBUSER',
  5  		password => 'Demo#1Demo#1'
  6  	);
  7  END;
  8  /

PL/SQLプロシージャが正常に完了しました。

SQL>

Autonomous DatabaseからRDS for Oracleに接続するDBリンクを作成します。

SQL> BEGIN
  2       DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
  3            db_link_name => 'RDS_DBLINK', 
  4            hostname => 'rdsfororacle.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com', 
  5            port => '1522',
  6            service_name => 'ORCL',
  7            ssl_server_cert_dn => 'C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=rdsfororacle.cp31manwhn9v.ap-northeast-1.rds.amazonaws.com',
  8            credential_name => 'DB_LINK_CRED',
  9            directory_name => 'DBLINK_WALLET_DIR');
 10  END;
 11  /

PL/SQLプロシージャが正常に完了しました。

SQL>

9.動作確認

作成したDBリンクが正しく動作するか確認してみます。

SQL> SELECT * FROM dept@RDS_DBLINK;

    DEPTNO DNAME	      LOC
---------- -------------- -------------
	10     ACCOUNTING	  NEW YORK
	20     RESEARCH	      DALLAS
	30     SALES	      CHICAGO
	40     OPERATIONS	  BOSTON

SQL>

Autonomous DatabaseからRDS for Oracleにデータベース・リンク経由で接続して、直接データを参照できました。

参考情報

OCIチュートリアル:Database Linkによるデータ連携
Oracle Instant Client
Oracle SQLcl
Autonomous Databaseでのディレクトリの作成
DBMS_CLOUD.GET_OBJECTプロシージャ
Autonomous DatabaseからOracle Databaseへのデータベース・リンクの作成
AWS:Oracle Secure Sockets Layer
AWS:Using SSL/TLS to encrypt a connection to a DB instance
How to use mkstore and orapki with Oracle Instant Client

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?