1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Oracle Cloud] OCIFS ユーティリティをつかってObject StorageからBase Database 23cに データインポート(impdp)してみた。(2024/04/29)

Posted at

はじめに

OCI Object Storageバケットをファイルシステムとしてマウントが可能なOCIFSユーティリティは、Oracle Linux 8以降の対応です。Base Databaseで Oracle Linux 8 が利用可能になったため、Base Database からOCIFSを使用してObject Storageバケットをマウントした後、そのバケット内にある dmp ファイルをインポートしてみました。

作業の前提

  • Object Storageのバケットは事前に作成
  • OCIFS ユーティリティ ( ocifs ) パッケージは、Oracle Linux 8 以降で使用可能
    • Oracle Linux8 で稼働するBase Databaseとして以下の環境を準備
      • DBシステム・バージョン: 23.3.0.23.09
      • データベースのバージョン:23.3.0.23.09

OCIFSユーティリティをインストール

  • ocifsパッケージをインストール (opcユーザ)
$ sudo dnf install ocifs
Repository ol8_baseos_latest is listed more than once in the configuration
Repository ol8_appstream is listed more than once in the configuration
Repository ol8_codeready_builder is listed more than once in the configuration
Repository ol8_addons is listed more than once in the configuration
Repository ol8_UEKR6 is listed more than once in the configuration
Repository ol8_UEKR6_RDMA is listed more than once in the configuration
Last metadata expiration check: 1:09:14 ago on Mon 29 Apr 2024 12:03:02 AM UTC.
Dependencies resolved.
================================================================================
 Package         Arch       Version                 Repository             Size
================================================================================
Installing:
 ocifs           x86_64     1.1.0-2.el8             ol8_oci_included       73 k
Installing dependencies:
 fuse            x86_64     2.9.7-17.0.1.el8        ol8_baseos_latest      82 k
 fuse-common     x86_64     3.3.0-17.0.1.el8        ol8_baseos_latest      21 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 177 k
Installed size: 365 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): ocifs-1.1.0-2.el8.x86_64.rpm             678 kB/s |  73 kB     00:00
(2/3): fuse-2.9.7-17.0.1.el8.x86_64.rpm         709 kB/s |  82 kB     00:00
(3/3): fuse-common-3.3.0-17.0.1.el8.x86_64.rpm  172 kB/s |  21 kB     00:00
--------------------------------------------------------------------------------
Total                                           1.3 MB/s | 177 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : fuse-common-3.3.0-17.0.1.el8.x86_64                    1/3
  Installing       : fuse-2.9.7-17.0.1.el8.x86_64                           2/3
  Installing       : ocifs-1.1.0-2.el8.x86_64                               3/3
  Running scriptlet: ocifs-1.1.0-2.el8.x86_64                               3/3
  Verifying        : fuse-2.9.7-17.0.1.el8.x86_64                           1/3
  Verifying        : fuse-common-3.3.0-17.0.1.el8.x86_64                    2/3
  Verifying        : ocifs-1.1.0-2.el8.x86_64                               3/3

Installed:
  fuse-2.9.7-17.0.1.el8.x86_64        fuse-common-3.3.0-17.0.1.el8.x86_64
  ocifs-1.1.0-2.el8.x86_64

Complete!

OCI認証の設定

APIキーベースの認証

Base Database でoracleユーザにスイッチし、CLI 構成ファイル ( ~/.oci/config) を準備します。
[DEFAULT]プロファイルに以下のエントリが必要です。

  • user
  • tenancy
  • region
  • key_file
  • finderprint

構成ファイルの例

~/.oci/config
[DEFAULT]user=ocid1.user.oc1..aaaaaaaaXXXXX
fingerprint=fa:56:8a:e9:42:c8:8a:07:49:73:XX:XX:XX:XX
tenancy=ocid1.tenancy.oc1..aaaaaaaaXXXXX
region=ap-tokyo-1
key_file=/home/opc/.ssh/private.pem

OCIFSでのマウント

  • マウントディレクトリの準備 (opcユーザ)
$ sudo mkdir /u01/mydir/
$ sudo chown oracle:oinstall /u01/mydir/
  • マウント (oracleユーザ)
    $ ocifs <バケット名> <ディレクトリ名>
    ocifs_bucket バケットを /u01/mydir にマウントする例
$ ocifs ocifs_bucket /u01/mydir

OCI Webコンソールなどで Object Storage に dmpファイルをアップロードし、マウント後のファイルを確認

$ ls /u01/mydir/
/u01/mydir/products.dmp /u01/mydir/scott.log

$ oci os object list -ns <namespace> -bn ocifs_bucket

{
  "data": [
    {
      "archival-state": null,
      "etag": "461e60ef-ef80-4c8c-8b13-946a8590ad32",
      "md5": "Lcp+IILR2gHJc/gsdlkYBg==",
      "name": "products.dmp",
      "size": 192512,
      "storage-tier": "Standard",
      "time-created": "2024-04-28T00:00:00.298000+00:00",
      "time-modified": "2024-04-28T00:00:00.516000+00:00"
    },
    {
      "archival-state": null,
      "etag": "88634c45-2293-44a0-9a87-9e278a860542",
      "md5": "G6+vzswrSfei9OGp3chE0Q==",
      "name": "scott.log",
      "size": 1294,
      "storage-tier": "Standard",
      "time-created": "2024-04-28T00:00:00.169000+00:00",
      "time-modified": "2024-04-28T00:00:00.169000+00:00"
    }
  ],
  "prefixes": []
}

インポートの実施

  • データ・ポンプを使用するデータベース・ユーザの準備
  • マウントした領域へディレクトリオブジェクトの作成とREAD/WRITE権限付与
SQL> create directory dpump_dir as '/u01/mydir';
SQL> grant read, write on directory dpump_dir to test;
  • impdpの実行
$ impdp test/<Password>#Welcome1#@pdb1 directory=dpump_dir full=y ignore=y dumpfile=products.dmp logfile=import.log

Import: Release 23.0.0.0.0 - Production on Sun Apr 28 00:00:00 2024
Version 23.3.0.23.09

Copyright (c) 1982, 2023, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 23c EE High Perf Release 23.0.0.0.0 - Production
Legacy Mode Active due to the following parameters:
Legacy Mode Parameter: "ignore=TRUE" Location: Command Line, Replaced with: "table_exists_action=append"
Master table "SCOTT"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SCOTT"."SYS_IMPORT_FULL_01":  test/********@pdb1 directory=dpump_dir full=y table_exists_action=append dumpfile=products.dmp logfile=import.log
Processing object type TABLE_EXPORT/TABLE/TABLE
Table "SCOTT"."PRODUCTS" exists. Data will be appended to existing table but all dependent metadata will be skipped due to table_exists_action of append
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."PRODUCTS"                          6.093 KB       3 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SCOTT"."SYS_IMPORT_FULL_01" successfully completed at Sun Apr 28 00:00:00 2024 elapsed 0 00:00:09

OCIFS のアンマウント

fusermount コマンドで アンマウントします。

fusermount -u /u01/mydir

留意点

  • OCIFS は共有ファイル システムではありません。
  • オブジェクト・データの破損を避けるため、OCIFSを使用して同じオブジェクト・ストレージ・バケット(または重複するバケットのサブフォルダ)を同時にマウントしないでください。
  • Oracle Database 19c の Base Databaseでは、記事投稿時点では、同様の操作でエラーが発生し、完了しませんでした。

補足

  • ocifsパッケージを含むoci_includedリポジトリを有効化

    • 有効になっていなかった場合以下の作業を実施
      • Base Database にopcユーザでログイン
        • /etc/yum.repos.d/ol8.repo に以下を追記
    $ sudo vi /etc/yum.repos.d/ol8.repo
    
    [ol8_oci_included]
    name=Oracle Software for OCI users on Oracle Linux $releasever ($basearch)
    baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/oci/included/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1
    enabled=1
    
  • ocifsパッケージを含むoci_includedリポジトリを有効化 (opcユーザ)

      $ sudo dnf install oci-included-release-el8
      
      $ sudo dnf install oci-included-release-el8
      Oracle Linux 8 Addons (x86_64)                  145 kB/s | 3.0 kB     00:00
      Latest Unbreakable Enterprise Kernel Release 6  112 kB/s | 3.0 kB     00:00
      Oracle Linux 8 BaseOS Latest (x86_64)           153 kB/s | 3.6 kB     00:00
      Oracle Linux 8 Application Stream (x86_64)      129 kB/s | 3.9 kB     00:00
      Oracle Linux 8 CodeReady Builder (x86_64) - Uns 169 kB/s | 3.3 kB     00:00
      Oracle Software for OCI users on Oracle Linux 8  92 MB/s | 127 MB     00:01
      Package oci-included-release-el8-1.0-4.el8.x86_64 is already installed.
      Dependencies resolved.
      Nothing to do.
      Complete!
      
      $ sudo dnf config-manager --enable ol8_oci_included
    

おわりに

OCIFS経由で Object Storage 上のファイルをimportすることができました。

参考情報

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?