Autonomous Database(ADB,ADW,ATP)の作成とSQL Developerからの接続

####概要
本記事の内容は、Oracle CloudのAutonomous Database(ADB,ADW,ATP)を使い始めるにあたり、最初に実施するであろう手順です。ADBはAutonomous Data Warehouse(ADW)とAutonomous Transaction Processing(ATP)があります。本記事はADWを使って作成しています。ATPでも同様に動作します。

(参考)Autonomous Database(ADB, ADW, ATP)の使い方に関しては、下記の記事で、さまざまな場面での詳細な手順が紹介されています。使いはじめのユーザーを意識した内容です。実際に実施したいことが下記の記事にないか確認いただくとよいです。(2020/1 追記)
[Autonomous Database ハンズオンラボ（HOL）]( https://community.oracle.com/docs/DOC-1034727 )

多くはすでにネットで参照できる情報なので、リンク先を紹介しながら補足するようにします。ここで紹介するのは次のような内容です。

- Oracle CloudのAutonomous Data Warehouse Cloud(ADW)の作成
- 作成されたADWへのSQL Developerからの接続

本記事は2019年3月頃の環境、情報を元に作成しています。

2019/12追記
ADWへSQL,PL/SQLを実行する方法としては、ここで紹介しているWindows版のSQL Developerだけでなく、ADWに組み込まれたSQL Developer Web(SDW)も使えるようになりました。(本記事を書いた時点では、SDWはADWに組み込まれてなかった。)
SDWはWindows版のSQL Developerより手軽に使い始めることができるADWに対するSQL,PL/SQL実行環境です。下記に紹介記事を書きました。
[Oracle CloudのAutonomous Database(ADB)へSQL Developer Web(SDW)から操作する](https://qiita.com/ts_carp/items/be9c82c516c6062b8b04)

**Autonomous Data Warehouse Cloud(ADW)、またはAutonomous Database(ADB)の作成画面は、開発の経過とともに変化があります。Oracle社が動画で公開している情報に、新しい手順を紹介しているものがあるかもしれません。youtubeの下記の中にある（Provision Autonomous Database）の最新ものを確認すると参考になります。
[Oracle Autonomous Data Warehouse Cloud - Oracle Learning Library](https://www.youtube.com/playlist?list=PLKCk3OyNwIzs6uBl7Q84GzP6d8wvkEMBQ)**

####前提
- Oracle Cloudのアカウント取得
- 利用するPCへSQL Developerのインストール

Oracle Cloudのアカウントは無料のトライアルを利用することもできます。無料トライアルに関しては、下記リンク先の「準備 - Oracle Cloud の無料トライアルを申し込む」が参考になります。
[チュートリアル : Oracle Cloud Infrastructure を使ってみよう](https://community.oracle.com/docs/DOC-1019313)
SQL Developerに関してはOracle Technology Networkからダウンロードできます。「SQL Developerダウンロード」で検索すれば、該当するページにたどり着けます。すでにSQL Developerを利用されている人も、適宜最新リリースにするとよいかもしれません。本記事を作成時点で、SQL Developerは新しいリリースになるごとに、Oracle Cloud(ADW)への対応が進められ、機能追加がされています。

####ADWの作成
さっそくADWの作成に入りたいところですが、事前に「コンパートメント」を準備することが多いと思います。コンパートメントは、同じOracle Cloudの環境内（同じテナント内）を仕切る区画のようなものです。下記リンク先の「コンパートメントとポリシーの確認」が参考になります。
[OCIコンソールにアクセスして基本を理解する](https://community.oracle.com/docs/DOC-1019533)
とりあえず試しにADWを作成するので、あまりコンパートメントなどを作らないで進めたい、ということであれば、root（ルート）という必ず1つ作成されているコンパートメントでも、下記の手順を進めることはできます。

ここからADWの作成です。英語ですが「ORACLE BY EXAMPLE」のProvisioning Autonomous Data Warehouseのページの情報が参考になります。こちらのページの情報をベースに、いくつか説明を補足します。
[ORACLE BY EXAMPLE : Provisioning Autonomous Data Warehouse]
(https://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/adwc/obe_provisioningautonomousdatawarehouse/provisioning_autonomous_data_warehouse.html)
「Create an Instance」にしたがってサインインします。ドキュメントで紹介されている画面から変更されているところもあると思いますが、サインイン後の画面の左上にある三本線のハンバーガーメニューから、「Autonomous Data Warehouse」が見つかりクリックできればＯＫです。
すると「Autonomous Data Warehouse」の最初のページが表示されます。最初に画面右上のデータセンターの表記を確認します。「us-asburn-1」のように表記されています。ここから利用可能なデータセンターを選択できるようになっているので、必要に応じて選択します。この画面では適宜、参照してるデータセンターがどこなのか確認するようにします。また利用するコンパートメントも画面の左の「Compartment」から選択します。
![adw1_1.PNG](https://qiita-image-store.s3.amazonaws.com/0/368742/3778a182-c204-2580-eb15-6869a53bdd8a.png)
ところで、上記の「ORACLE BY EXAMPLE」の中で「console for Autonomous Data Warehouse displays」として紹介されている最初のADWの画面は2019年3月に変更されています。「Autonomous Data Warehouse」となっていたものが「Autonomous Database」となっています。下記リンクにその説明があります。
[Autonomous Databaseのコンソール統合/APIの変更](https://blogs.oracle.com/oracle4engineer/autonomous-database_changeconsole20190311)
少し画面が変わってますが「ORACLE BY EXAMPLE」の手順を参考に進めることができます。
最初の「Autonomous Database」の画面で「Create Autonomous Database」をクリックします（「ORACLE BY EXAMPLE」では「Click Create Autonomous Data Warehouse」となっています）。
次にADWを作成する際の設定項目の画面が表示されます。これも画面上部が少し変更されており、「Workload Type」という選択が追加されています。こんな感じです。ADWを作成する場合は「AUTONOMOUS DATA WAREHOUSE」を選択してください。
![adw1_2.PNG](https://qiita-image-store.s3.amazonaws.com/0/368742/9d991a69-d40d-3636-9cbf-42e30b4cdcde.png)
残りの選択項目は「ORACLE BY EXAMPLE」を参考に設定します。いくつか補足します。
「Database Name」は、接続の設定などさまざまな場面で利用されるので、あとから区別しやすいものがよいです。同じテナントを複数の人で利用されている場合は、ほかの人が作成したものと間違えてしまわないようにするとよいと思います。
「Administrator Credentials」に入力するパスワードは、作成するADWへ管理ユーザー（adminという名前になります）で接続する際のパスワードになります。
「CPU CORE COUNT」「STORATE(TB)」は、どちらもあとから変更できます。最小の1CPU CORE COUNT、1TBではじめても、あとから追加可能です。
「License Type」は、すでに保有しているオンプレミス環境のOracle Databaseのライセンスの権利を持ち込むか（いわゆるBYOLをするか）という選択です。ライセンスのBYOLではない場合、「Subscribe to new database software licenses and the database cloud service」を選択します。

ADWの設定項目を入力したら「Create Autonomous Database」をクリックします。最初の画面に戻り、いまCreateをクリックしたADWが「Provisioning」として表示されます。「Provisioning」から「Available」になればADWの作成が完了し利用できるようになっています。この間は、たいてい10分かからない程度ですが、混雑状況により長くなることもあります。

####作成されたADWへのSQL Developerからの接続
作成したADWへSQL Developerから接続します。SQL Developerでの作業の前に、接続に必要なクレデンシャルファイルをADWコンソールからダウンロードします。
####クレデンシャルファイルのダウンロード
ADWの作成と同じく「ORACLE BY EXAMPLE」のProvisioning Autonomous Data Warehouseのページの情報が参考になります。こちらのページの情報をベースに、適宜説明を追加していきます。
[ORACLE BY EXAMPLE : Download the Credentials Zip File](https://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/adwc/obe_provisioningautonomousdatawarehouse/provisioning_autonomous_data_warehouse.html#DownloadtheCredentialsZipFile)
「Download the Credentials Zip File」にしたがって進めます。まずはADWのコンソール画面から、さきほど作成して「Provisioning」から「Available」に「State」が変わったADWをクリックして、詳細画面を表示します。

「DB Connection」をクリックして表示される画面から「Download」をクリックします。ダウンロードにあたってはウォレットためのパスワード指定を求められるので入力してダウンロードします。
※データベースに接続するクライアントによっては、接続するためにデータベースのパスワードとウォレットのパスワードの両方が必要になります（ウォレットを利用してウォレットパスワードなしにオートログインするクライアントもあります）。ADWを作成のときに指定した「adminのパスワード」とは異なるものを指定します。

ダウンロードするファイル名は「Wallet_（ADWの名前）.zip」という感じでzip形式で圧縮されたファイルです。このファイルをSQL Developerを実行するPCにダウンロードします。

####ADWからSQL Developerへ接続
ここまでの手順とおなじく「ORACLE BY EXAMPLE」のProvisioning Autonomous Data Warehouseのページの情報が参考になります。こちらのページの情報をベースに、適宜説明を追加していきます。
[ORACLE BY EXAMPLE : Define a SQL Developer Connection](https://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/adwc/obe_provisioningautonomousdatawarehouse/provisioning_autonomous_data_warehouse.html#DefineaSQLDeveloperConnection)
「Define a SQL Developer Connection」にしたがって進めます。
ADWへの接続情報を設定する画面は、日本語環境ではこのようになります（SQL Developer 18.4）。
![adw1_3.PNG](https://qiita-image-store.s3.amazonaws.com/0/368742/3dce1ba9-72c6-756a-9ef0-b8a2fa72d75d.png)

「ORACLE BY EXAMPLE」を参考に入力します。

「ユーザー名（Username）」は、ここではADWの作成で自動的に作成される管理ユーザーである「admin」を入力します。
「パスワード（Password）」はADW作成の際に指定したパスワードです。クレデンシャルファイルをダウンロードした際に指定したパスワードではありません。
「構成ファイル（Configration File）」のところで、先にダウンロードしたクレデンシャルファイル（ZIPファイル）を指定します。
「サービス（Service）」には、構成ファイルを読み込むことで選択のためのリストが表示されるようになります。
- （作成したADWの名前）low
- （作成したADWの名前）medium
- （作成したADWの名前）high
の3つが含まれるはずです。3つのうちどれか一つを選択します。とりあえず接続する場合は、（作成したADWの名前）lowでよいです。
「HTTPプロキシの使用」は、利用しているSQL DeveloperからOracle CloudのADWへプロキシを経由して接続する場合に指定します。

補足
「サービス（Service）」を選択するリストには、同じテナントで作成されているすべてのADWへの接続のサービスが含まれます。自分で作成したわけではないが、同じテナントを利用するほかの人が作成したADWへの接続のサービスも含まれます。**選択する際に、接続したいADWの名前が含まれるサービス名であることを確認ください。**low,medium,highの3つの接続に関しては、マニュアルに説明があります。
[Using Oracle Autonomous Data Warehouse : Predefined Database Service Names for Autonomous Data Warehouse](https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/connect-predefined.html#GUID-9747539B-FD46-44F1-8FF8-F5AC650F15BE)

「HTTPプロキシの使用」に関しても補足します。ADWへの接続はポート1522を利用します。SQL Developerが動作している環境から、ポート1522で直接インターネットへ接続できないが、プロキシサーバーを経由してなら接続できる場合に「HTTPプロキシの使用」を利用します。プロキシサーバーとプロキシサーバーへ接続するポート番号を入力します。この場合もプロキシサーバーからADWへの接続はポート1522を利用します。プロキシサーバーからインターネットへのポート1522での接続ができない場合は、この指定をしてもADWへ接続できません。（利用している環境によってしまうのですが、そもそも利用している社内ネットワーク環境でどうなってるかわからないこともあると思います。切り分けのために、一時的にPCを何らかの方法で直接インターネットに接続して試したりします。）
ネットワーク環境の制限でSQL DeveloperからADWに接続できない場合、ADWに付属しているサービスOracle Machine Learning Notebooksを利用して、SQLをブラウザから実行することができます。
[Using Oracle Autonomous Data Warehouse : Creating Dashboards, Reports, and Notebooks with Autonomous Data Warehouse](https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/create-dashboards.html#GUID-56831078-BBF0-4418-81BB-D03D221B17E9)

####参考
[はじめてのOracle Autonomous Data Warehouse Cloud](https://www.system-exe.co.jp/adwc01/)
[Oracle Autonomous Data Warehouse Cloud を使ってみました！](https://ひとりでできるもん.com/2019/02/20/oracle-autonomous-data-warehouse-cloud-%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%be%e3%81%97%e3%81%9f%ef%bc%811-3/)