11
8

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:Autonomous DatabaseにSQLcl接続してみてみた

Last updated at Posted at 2019-02-18

Oracle SQL Developer Command Line (SQLcl) は、SQLコマンドを入力するためのコマンドライン・インタフェースです。
SQL Developerの機能がコマンドライン・インタフェースに導入されており、従来のSQL*Plusには無かった以前に実行したコマンド履歴などが使えます。
ここでは、Autonomous Databaseを作成して、SQLcl接続できるまでの手順を説明します。

■ 構成

今回は、Private Subnetに配置したインスタンスにSQLclをインストールし、Service Gateway経由でAutonomous Databaseにアクセスします。
NW構成.png

■ Autonomous Database側設定

Autonomous Data Warehouses(ADW)とAutonomous Transaction Processing Databases(ATP)ともに同じ手順となり、ここでは、ADWを作成して接続を行います。

● Autonomous Data Warehouse(ADW)を作成

Autonomous Data Warehouses画面で[Create Autonomous Data Warehouses]ボタンをクリックし、以下のような情報を入力して作成します。
00.png

● クライアント資格証明(Oracle Wallet)のダウンロード

データベース接続は暗号化されており、WALLETの資格証明を使用して接続します。
ADWでは、zip化された接続情報含めたファイルをダウンロードし、このzipを使用して接続します。

1) 作成したADWのページに移動し、「DB Connection」をクリック
01.png

2) 「Database Connection」画面で、「Download」をクリック
02.png

また、この画面の「Connection Strings」項目について、
「Connection String」から、"ar8grq08m8d79by_adw01"が作成したPDB Nameであることが確認できます。
「TNS Name」には、high, mediumおよびlowの3つの定義済みのサービス名があり、用途に合わせて選択し接続しますので、メモしておきます。
定義済みDatabaseサービス名の詳しい内容は次のドキュメントを参考してください。

 ・ドキュメント: 事前定義されたAutonomous Databaseのデータベース・サービス名

3) 「Download Wallet」画面で以下を設定し、[Download]をクリック
「PASSWORD」:Oracle Walletのパスワードを設定
「Confirm Password」:確認するため再度パスワードを入力
03.png

4) クライアントのセキュリティ資格証明のzipファイルを適切な場所に保存します。
04.png

ここでは、ダウンロードしたWallet_ATP01.zipを $HOME/oracle へ配置します。

[opc@client-inst ~]$ mkdir ~/oracle
[opc@client-inst ~]$ mv Wallet_ATP01.zip ~/oracle/

■ Client側設定

● JAVA8 ダウンロードとインストール

SQLclはJavaアプリケーションであり、Java Runtime Engine(JRE)version 8以上を必要としますのでまずダウンロードしてインストールします。

1) JAVA8 ダウンロード
以下Java SE Development Kit 8u201 のページから、ダウンロードします。

2) インストール
ここではLinux版の jdk-8u201-linux-x64.rpmダウンロードしてインストールします。

[root@client-inst opc]# rpm -ivh jdk-8u201-linux-x64.rpm
	準備しています...              ################################# [100%]
	更新中 / インストール中...
	   1:jdk1.8-2000:1.8.0_201-fcs        ################################# [100%]
	Unpacking JAR files...
		tools.jar...
		plugin.jar...
		javaws.jar...
		deploy.jar...
		rt.jar...
		jsse.jar...
		charsets.jar...
		localedata.jar...

● SQLcl ダウンロードとインストール

1) SQLcl ダウンロード
以下ページからダウンロード

2) SQLclインストール
ここでは、~/oracleへインストール

 [opc@client-inst ~]$ mv sqlcl-18.4.0.007.1818.zip ~/oracle/
 [opc@client-inst ~]$ cd ~/oracle
 [opc@client-inst ~]$ unzip sqlcl-18.4.0.007.1818.zip
	Archive:  sqlcl-18.4.0.007.1818.zip
	   creating: sqlcl/
	   creating: sqlcl/bin/
	   creating: sqlcl/lib/
	  inflating: sqlcl/bin/sql
       ・・・

● SQLcl接続確認

1) /nologオプションを使用してSQLclを起動

[opc@client-inst ~]$ ~/oracle/sqlcl/bin/sql /nolog

	SQLcl: 月 2月 18 16:56:36 2019のリリース18.4 Production

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

2) Oracle Walletを使用するようにSQLclセッションを構成

SQL> set cloudconfig /home/opc/oracle/Wallet_ADW01.zip

	操作は正常に完了しました。
	操作は正常に完了しました。
	Using temp directory:/var/folders/td/ltsnlh6d01gdrm0rjh5hmn_00000gn/T/oracle_cloud_config1774995246833750575

3) ADWに接続
設定したパスワードを入力して接続し、SQLを実行してテスト

SQL> connect ADMIN@adw01_HIGH

	パスワード (**********?) ********************
	接続しました.


SQL> select BANNER_FULL from v$version;

BANNER_FULL
-----------------------------------------------------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> select NAME from v$pdbs;

NAME
-------------------------------------------
AR8GRQ08M8D79BY_ADW01

■ おまけ:SQL Developer インストール

Mac OSにSQL Developerをインストールします。

● JAVA8 ダウンロードとインストール

次のURLから、jdk-8u201-macosx-x64.dmg(Mac版) をダウンロードし、ダブルクリックしてインストール

● SQL Developerダウンロード

次のURLからsqldeveloper-18.4.0-376.1900-macosx.app.zip(Mac版)をダウンロード

● SQL Developerインストール

sqldeveloper-18.4.0-376.1900-macosx.app.zipを解凍
インストールは解凍するだけです。

● SQL Developer設定

1) 解凍されたSQLDeveloperアイコンをクリックして起動

2) Oracle SQL Developerを起動し、接続パネルで「接続」を右クリックし、「新規接続」を選択
01.png

3) 次の情報を入力して[保存]をクリックして設定

・接続名: この接続の名前を入力します。
・ユーザー名: データベース・ユーザー名を入力
・パスワード: データベース・ユーザーのパスワードを入力
・接続タイプ: クラウド・ウォレットを選択
・構成ファイル: ブラウズをクリックし、クライアントの資格証明のzipファイルを選択
・サービス: サービス名を選択

02.png

4) 接続
作成した接続名を右クリックして[接続]を行い
SQLを実行して接続を確認します。
03.png

■ おまけ: SYSDATEとCURRENT_DATE

Autonomous Databaseは、Global Public Cloudということもあり、OS時刻がUTC(協定世界時)となっています。
ということで、注意点は SYSDATE です。
SYSDATE、SYSTIMESTAMPは OS時刻を出力するので、UTCになります。
JST(日本標準時)時刻を出力するには、CURRENT_DATE, CURRENT_TIMESTAMP を使います。
そのためには事前に、'ALTER DATABASE SET ~' または、 'ALTER SESSION SET ~' で、Database時刻を TIME_ZONE=‘Asia/Tokyo’ をセットしておきます

● CURRENT_DATEでJST出力する手順

・UTC確認

1) NLS_DATE_FORMAT設定

SQL> Alter session set NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';

   セッションが変更されました。

2) DBタイムゾーンUTC確認

SQL> select DBTIMEZONE from dual;

    DBTIME
   ------
   +00:00

3) SYSDATE確認

SQL> select SYSDATE from dual;

   SYSDATE
   -------------------
   2020/05/21 08:26:48

4) CURRENT_DATE確認

  SQL> select CURRENT_DATE from dual;

   CURRENT_DATE
   -------------------
   2020/05/21 08:38:15

・ DBタイムゾーンAsia/Tokyoへ変更

5) JSTへ変更

SQL>  alter database set time_zone = 'Asia/Tokyo';

   Databaseが変更されました。

6) Database再起動
  WebコンソールでAutonomous DB再起動

・ JST出力確認

7) DBタイムゾーン確認

SQL> select DBTIMEZONE from dual;

   DBTIMEZONE
   --------------------
   Asia/Tokyo

8) CURRENT_DATE確認

SQL> select CURRENT_DATE from dual;

   CURRENT_DATE
   -------------------
   2020/05/21 17:39:44

■ 参考

・ Oracle Cloud Infrastructure Documents
 - Oracle Autonomous Database Serverless
 - Oracle SQLclを使用した接続
 - WalletなしでOracle SQLcl Cloudを接続
 - Connect with Oracle SQLcl
 - ウォレット(mTLS)を使用したOracle SQLcl Cloudの接続
 - Connect to Autonomous Database Using Oracle Database Tools
 - 事前定義されたAutonomous Databaseのデータベース・サービス名

・ 各ツール
 - Oracle SQLcl
 - SQL Developer
 - Java SE Development Kit 8 Downloads

11
8
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
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?