OCI Oracle LinuxインスタンスとOracle Base DBインスタンスの違い

本ブログは、[オラクル・クラウドの個人ブログ](https://qiita.com/liu-wei/items/10152a4fec813c1b7d98)の1つです。

__初めに__
OCI上の Oracle LinuxインスタンスとOracle Base DB (旧称`DBCS`)インスタンスは、どちらもOracle Linux OSを採用しています。利用者がSSH経由でログインでき、両方に対して完全なOSレベルの管理者権限を持ちます。
 
インフラの観点を見ますと、両者の類似点がありますが、<strong>基本的に別物</strong>であり、それぞれ異なる目的のために設計されています。この点をを忘れないでください。

インフラとOSの観点から、両者の類似点と相違点を少し整理しました。少しお役に立てば幸いです。比較対象のタイプは、VM（仮想マシン）のみです。

__全体的な比較__
|分類|項目|Oracle Linux (VM)|Oracle Base DB (VM)|
|--|--|--|--|
|OS|バージョン|選択可能<br>✔ Oracle Linux 9<br>✔ Oracle Linux 8<br>✔  Oracle Linux 7.9<br>✔  Oracle Linux 6.1|選択<strong>不可</strong><br>✔ Oracle Linux 7.9|
|SSHログイン|初期ログイン・ユーザ|opc|opc|
||rootユーザに切り替え|Yes|Yes|
||OCIコンソールからSSHキーを追加|<strong>No</strong> (OSにログインする必要がある)|Yes|
||コンソール接続<br>(トラブルシューティング)|Yes|Yes|
|Network|パブリックIPの割り当て（パブリック・サブネット）|Yes|Yes|
||プライベートIPを指定できる|Yes|Yes|
||NSGの紐付け|Yes|Yes|
|Shape|シェイプ・シリーズ|選択可能<br>✔ AMD<br>✔ Intel<br>✔ Ampere|選択可能<br>✔ AMD<br>✔ Intel<br>✔ Ampere|
||シェイプ変更 (※1)|Yes|Yes (同シリーズ)|
|Boot Volume|パフォーマンス・レベル|選択可能<br>✔ Balanced<br>✔ Higher Performance<br>✔ <font color=blue>UHP</font> (2022/6/28から)|選択可能<br>✔ Balanced<br>✔ Higher Performance|
||パフォーマンス変更|Yes|<strong>No</strong>|
||ブート・ボリュームの管理|Yes (アタッチ、デタッチ、バックアップ、クーロン)|DBシステムのクローンは可能だが、Computeインスタンスのようにブート・ボリュームを管理することはできない。|
||ストレージのスケールアップ (※1)|Yes (サイズアップのみ)|Yes (サイズアップのみ)|
||ストレージサイズの範囲|50 GB ~ 32 TB|256 GB ~ 40 TB|
|Block Volume|ブロック・ボリュームをアタッチ|Yes|<strong>No</strong>|
|FSS|マウント|Yes|Yes|
|Image|イメージの作成|カスタム・イメージ|ソフトウェア・イメージ<br>(DB/GI)|
|OCI CLI|OCI CLIのインストール|Oracle Linux Cloud Developer 8の場合はインストール済|インストール済 (※2)|
|アプリ|他のアプリをインストール|Yes (もちろん)|可能だが、<font color=blue>お勧めしない</font>。 (※3)|
|OCIサービスとの連携|LBのバックエンド・サーバとして動作する|Yes (もちろん)|Yes (例えば、一時作業のため、管理者からLBを介してプライベート・サブネット内のDBに接続)|
||OCI Bastionを経由し接続する|Yes|Yes (※4)|
||NFSをマウント|Yes|Yes|
||オブジェクト・ストレージへのアクセス|Yes<br>(OCI-CLI, Storage Gateway)|Yes (※5)|
||Cloud Shellからの接続|Yes|Yes|

※１、シェイプ変更とストレージ変更の差異についてもっと詳しく知りたい方々は、このブログをご参照ください。 [OCI スーケルアップ・ダウン機能のサマリ　Compute/Oracle Base DB/ADB/MySQL](https://qiita.com/liu-wei/items/de1991351334d883fa22)

※２、一部の<strong>古いバージョン</strong>のOracle Base DBにOCI-CLIをインストールする時、リポジトリへの接続問題が発生することがありますが、それを回避できます（最新バージョンのOracle Base DBに、OCI-CLIは既にインストール済で、手動のインストールは不要）。詳細は、このブログをご参照ください。 [OCI DBインスタンスにOCI-CLIのインストール方法](https://qiita.com/liu-wei/items/e686cb81462a507e86aa)

※３、以前、お客様から次のような質問がありました。
「Oracle Base DB (旧DBCS)インスタンスにアプリケーションをインストールし、「DB+APP」のようなオールインワン・サーバとして動作できますか？」
↑ 技術的には可能な場合もありますが、Oracle Base DBインスタンスはデータベース専用に設計されており、汎用サーバーではないことに意識してください。従って、<strong>他のアプリケーションから分離すること</strong>を強くお勧めします。

※４、セキュリティの考慮で、Oracle Base DBインスタンスがプライベート・サブネットに作成されるのは一般的です。外部から接続するのに、いろいろな方法がありますけど、OCI Bastionサービスを介して接続する方法について、次の記事をご参考ください。 [OCI Bastion経由でプライベート・サブネット内のOracle DBに接続する](https://qiita.com/liu-wei/items/36f2108992ce71d7bafc)

※５、OCI Object Storage、AWS S3、またはAzure BlobからOracle Base DBにCSV/DUMPのデータをロードできます。Oracle Base DBからデータポンプをオブジェクト・ストレージにエクスポートすることもできます。以下の関連記事に、いつかのステップ・バイ・ステップ・ガイドを提供しておりますので、ご参照ください。

以上

----
__関連記事__
[オラクル・クラウドの個人ブログ一覧](https://qiita.com/liu-wei/items/10152a4fec813c1b7d98)
[オブジェクト・ストレージからOracle DB 19c/21cにデータを導入する](https://qiita.com/liu-wei/items/398c91fd79a63eec6e7a)
[AWS S3からOracle DBにデータを導入する](https://qiita.com/liu-wei/items/2ed58265519531d09e97)
[Azure BlobからOracle DBにデータを導入する](https://qiita.com/liu-wei/items/17b3b49735b458e3412d)
[Oracle DBからOCIオブジェクト・ストレージにデータ・ポンプ・ファイルをエクスポートする](https://qiita.com/liu-wei/items/61f9df69b1b2a58c87c9)
[マウント・ポイントを経由して、データ・ポンプ・ファイルをOracle DBCSからオブジェクト・ストレージにエクスポートする](https://qiita.com/liu-wei/items/3b28dcae87f704ba134b)