LoginSignup
5
1

More than 3 years have passed since last update.

Object Storage にアップロードしたファイルを Autonomous Database の DATA_PUMP_DIR にコピーする。(Oracle Cloud Infrastructure)

Last updated at Posted at 2020-12-05

本エントリは Oracle Cloud Infrastructure #2 Advent Calendar 2020 の Day 1 です。
Day 1 と言っても、もう 12月5日 ですけどね……#2 は余り埋まってないので、気ままに書いていこうかと。
彡(゚)(゚)

Oracle Cloud Infrastructure #2 Advent Calendar 2020
https://qiita.com/advent-calendar/2020/oci2

Object Storage にアップロードしたファイルを Autonomous Database の DATA_PUMP_DIR に コピーしてみます。

1. Object Storage の作成とファイルアップロード

特に難しいことも無いので、粛々とやる。
WS000000.JPG

2. IAMユーザーの作成と権限(Policy)の付与

Object Storage に対する権限を持った IAMユーザー を作成します。付与した権限(Policy Statement)は下記となります。

ALLOW GROUP AYU_IAM_Group1 TO manage object-family IN compartment ayu-compartment01

WS000001.JPG
WS000002.JPG
WS000003.JPG

3. IAMユーザーの Auth Token発行

IAMユーザーの Auth Token を発行します。後から確認は出来ないので注意
WS000004.JPG

4. DBMS_CLOUD.CREATE_CREDENTIAL で Autonomous Database に Auth Token を登録

DBMS_CLOUDパッケージ の CREATE_CREDENTIALプロシージャ で 3. の Auth Token を Autonomous Database に登録します。

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'CRED_AYU_TOKEN', -- 任意の文字列
    username => 'AYU_IAM_USER1',         -- Auto Token を発行したIAMユーザー名
    password => 'xxxxxxxxxxxxxxxxxxxx'   -- 3. で生成した Auth Token
  );
END;
/

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

5. DBMS_CLOUD.GET_OBJECT で Object Storage から Autonomous Database の DATA_PUMP_DIR にファイルをコピー

DBMS_CLOUDパッケージ の CREATE_CREDENTIALプロシージャ で Auth Token を Autonomous Database に登録します。

BEGIN 
   DBMS_CLOUD.GET_OBJECT(
     credential_name => 'CRED_AYU_TOKEN',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/xxxxxxxxxxxx/b/ayu-bucket1/o/test.txt',
     directory_name => 'DATA_PUMP_DIR'
   ); 
END;
/

BEGIN 
   DBMS_CLOUD.GET_OBJECT(
     credential_name => 'CRED_AYU_TOKEN',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/xxxxxxxxxxxx/b/ayu-bucket1/o/test2.txt',
     directory_name => 'DATA_PUMP_DIR'
   ); 
END;
/

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

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

6. DBMS_CLOUD.LIST_FILES でコピー結果を確認

DBMS_CLOUD.LIST_FILESファンクション で DATA_PUMP_DIR の中身を確認します。TABLEファンクションなので SELECT文 で確認

COLUMN OBJECT_NAME FORMAT A30;
COLUMN CHECKSUM FORMAT A30;
SELECT * FROM TABLE(DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR'));

OBJECT_NAME                         BYTES CHECKSUM                       CREATED                            LAST_MODIFIED                     
------------------------------ ---------- ------------------------------ ---------------------------------- ----------------------------------
test.txt                                6                                2020/12/05 05:20:09.000000000 GMT: 2020/12/05 05:20:09.000000000 GMT:
test2.txt                               7                                2020/12/05 05:20:57.000000000 GMT: 2020/12/05 05:20:57.000000000 GMT:

7. まとめ

本当は別記事を書くつもりやったんやけど、思いのほか長くなったんで切り出してみた。
次の Advent Calendar はいつ書こうかしら……皆さんも Oracle Cloud と Advent Calendar をよろしくね彡(^)(^)

Oracle Cloud Infrastructure Advent Calendar 2020
https://qiita.com/advent-calendar/2020/oci

Oracle Cloud Infrastructure #2 Advent Calendar 2020
https://qiita.com/advent-calendar/2020/oci2

8. 参考ドキュメント

A Autonomous Database提供パッケージ・リファレンス
DBMS_CLOUDパッケージ
https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/dbms-cloud-package.html#GUID-CE359BEA-51EA-4DE2-88DB-F21A9FC10721

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