コーソル DatabaseエンジニアのBlog へようこそ

コーソル DatabaseエンジニアのBlogでは、 コーソル所属のDatabaseエンジニアである 渡部と守田がOracle Databaseを中心としたDatabaseに関わる技術情報を発信しています。

コーソルでは、Oracle Databaseをはじめとするデータベース全般に関わるサービス(コンサルティング、設計、構築など)、オラクル製品のプロダクトサポートサービスを提供しています。 また、不定期で無償の技術セミナーを開催しています。


コーソルでは、Oracle Databaseスペシャリストになりたいエンジニア、 Oracle Database技術を活かして働きたいエンジニアを絶賛募集中です。

hiring.png

コーソルについて知るためには・・・

エンジニアのスキル向上を支援する各種施策については・・・

コーソルのエンジニアの多くが従事する、「Oracle Database サポートエンジニアの仕事」の利点について知るためには・・・。

コーソルで働くことに興味を持たれた方は・・・

2018年8月14日

18c新機能:スケーラブルな順序

守田です。
18cより、「スケーラブルな順序」という機能が追加されています。
今回はこの機能についてご紹介いたします。

あるテーブルの主キー値にシーケンス(順序)が用いられており、単純に連番を付与しているとします。
このテーブルに対して大量のレコードをテーブルにINSERTすると、常に値が最後の索引リーフブロックに集中されるため、buffer busy競合が発生しやすい状況になります。

スケーラブルな順序では、シーケンス値にインスタンスIDとセッションIDを含める仕組みとなっており、結果としてセッションごとに番号を分散させることで、索引リーフブロックのbuffer busy競合を 回避できるようになっています。

スケーラブルな順序のシーケンス値
 = 3桁のインスタンス・オフセット番号 || 3桁のセッション・オフセット番号 || 通常のシーケンス値
    * 3桁のインスタンス・オフセット番号 = [(instance id % 100) + 100]
      (インスタンスIDを100で割った余りに100を足した数)
    * 3桁のセッション・オフセット番号 = [session id % 1000]
      (セッションIDを1000で割った余り)

以下、実際の環境で見ていきます。スケーラブルな順序を作成するには、SCALE句を指定します。シーケンス値をみると、セッションID(35)を含んでいるのが確認できます。
20180811_01.jpg

別のセッションで接続しなおし、シーケンス値をみると、セッションID(58)を含んでいるのが確認できます。
20180811_02.jpg

小ネタ:順序のリセット

18cより前のバージョンでは、シーケンスの開始点を変更するには、シーケンスを削除してから再作成するしか方法がありませんでした。 18cから、シーケンスのリセットができるようになりました。指定した値からシーケンスを再開するRESTART句を使用します。 RESTART句で指定する値は、順序のMINVALUEパラメータとMAXVALUEパラメータの値の間にする必要があります。値を指定しない場合は、MINVALUEの値が設定されます。

20180811_03.jpg
再開する値を指定する方法は、こちら。
マニュアル「SQL言語リファレンス:ALTER SEQUENCE」には記載がないのですが・・・。

20180811_04.jpg

2018年8月13日

18c新機能:インライン外部表

守田です。

今回も、18cにおいて個人的に気になった新機能をピックアップして、お伝えしてみたいと思います。
今回ご紹介するのは、「インライン外部表」です。

外部表は、データベース外部のデータに対して、あたかもテーブルが存在するかのようにアクセスできる機能です。
18cより前のバージョンでは、この機能を使用する場合は、事前に外部表を永続データベース・オブジェクトとして定義する必要があります。
18cから、インライン外部表という機能により、外部表の定義をSQLの一部にできます。
これにより、事前に永続データベース・オブジェクトとして定義する必要がなくなります。

今回サンプルとして、以下のCSV形式のファイルを作成しました。このファイルを、インライン外部表として参照してみます。 20180810_01.jpg

通常の外部表では、
まずデータディクショナリに永続データベース・オブジェクトとして定義した後、参照します。
20180810_03.jpg

インライン外部表では、外部表の作成にCREATE TABLE文で使用したものと同じ構文を、実行時にSELECT文で使用できます。
インライン外部表は、問合せブロックのFROM句で指定します。
20180810_02.jpg

CREATE TABLE~ORGANIZATION EXTERNAL で外部表を作成しなくとも、
SQL内に直接外部表の定義を入れ込むことで、データを表示することができました。

なお、マニュアルにも記載がありますが、インライン外部表はパーティション化がサポートされませんので、ご注意ください。

2018年8月10日

18c新機能:読取り専用ORACLE_HOME

守田です。

先日に引き続き、18cにおいて個人的に気になった新機能をピックアップして、お伝えしてみたいと思います。
今回ご紹介するのは、「読取り専用ORACLE_HOME」です。

18cから、ORACLE_HOMEを読取り専用で構成できるようになりました。読取り専用のORACLE_HOMEでは、
すべての構成データおよびログ・ファイルは、読取り専用のORACLE_HOMEではなく、ORACLE_BASE配下に格納されます。
この機能により、読取り専用のORACLE_HOMEを複数のサーバーに分散できるソフトウェア・イメージとして使用できます。

読取り専用ORACLE_HOMEでは、構成データおよびログ・ファイルが以下のディレクトリに格納されます。

  • ORACLE_BASE_HOME:ユーザー固有のファイル、インスタンス固有のファイルおよびログ・ファイル
  • ORACLE_BASE_CONFIG:インスタンス固有の動的なファイル(構成ファイルなど)


これにより、以下のようなディレクトリ構造となります。

ORACLE_BASE
    ORACLE_BASE_HOME   = $ORACLE_BASE/homes/<HOME_NAME>
        : ユーザー固有のファイル、インスタンス固有のファイルおよびログ・ファイル
          "network"など
    ORACLE_BASE_CONFIG = $ORACLE_BASE
        : 構成ファイル
          "dbs"など
ORACLE_HOME


マニュアルに、読取り/書込みのOracleホームと比較した際の定義済パスにおける変更点も記載されています。
あわせてご確認ください。
読取り専用のOracleホーム内のファイルのパスおよびディレクトリの変更


次に、読取り専用ORACLE_HOMEの有効化について、見ていきます。 次の手順を実行します。

  • 読取り専用のOracleホームの有効化

    1. ソフトウェアのみのOracle Databaseインストールを実行します。
    2. roohctl -enableスクリプトを実行します。
    3. Oracle Database Configuration Assistant (Oracle DBCA)を実行してデータベースを作成します。


では実際に見ていきます。ソフトウェアのみのOracle Databaseインストールを実行します。

20180808_01.jpg roohctl -enableスクリプトを実行します。

20180808_02.jpg このあと、DBCAを実行して、データベースを作成します。データベース作成後、読取り専用ORACLE_HOMEが有効になっているか確認しました。
orabasetabの4番目のフィールドがYとなっているので、有効になってます。

20180808_03.jpg

ちなみに、従来(読取り/書込み)のORACLE_HOMEですと、4番目のフィールドはNとなってます。
20180808_04.jpg

2018年8月 8日

Oracle Autonomous Transaction Processing(ATP)リリース

守田です。
昨年の Oracle OpenWorld で話題となった、「自律型データベース」。
今年3月に「Oracle Autonomous Data Warehouse」がリリースされたのにつづき、
8/8に OLTP対応の自律型データベース「Oracle Autonomous Transaction Processing」が
リリースされました。

atp1.jpg

マニュアルもすでに公開されていました(英語)。

atp2.jpg

DBCS(Database Cloud Service)とは異なり、OSのログイン特権がない、SYSDBA特権がない、さまざまな制限がある、といった違いがありますが、
負荷に対するスケーリング、パフォーマンスチューニング、セキュリティ対応やパッチの適用、フェイルオーバー、バックアップやリカバリといった
運用のほとんどが自動化される、というのは大きな魅力ですね。

18c新機能だけどオンプレミスでは使用できない機能

守田です。

オンプレミス版の Oracle Database 18c がリリースされましたが、
Standard Edition(SE)や、非エンジニアドシステム上で動作する Enterprise Edition(EE)では、
利用できない機能が存在するので、注意が必要です。

参考:ライセンス情報ユーザー・マニュアル
https://docs.oracle.com/cd/E96517_01/dblic/Licensing-Information.html#GUID-B6113390-9586-46D7-9008-DCC9EDA45AB4

上記マニュアルよりを元に確認したところ、18c新機能の中で
SEおよび非エンジニアドシステム上で動作するEEで使用できない機能は以下となります。

  • CDBフリート管理
  • PDBスナップショット・カルーセル
  • リフレッシュ可能PDBスイッチオーバー
  • Oracle Data Guard -- Data Guardスタンバイ・データベースにおけるログに記録されないブロックの自動修正
  • 自動インメモリー列ストア
  • 外部表に対するインメモリー列ストアのサポート
  • MemOptimized行ストア
  • 各プラガブル・データベース用のキーストア

ためしに使用を試みると、エラーとなりました。
例:PDBスナップショットカルーセル
20180802_04.jpg

2018年8月 6日

18c新機能:DBCA PDB Clone

守田です。

いよいよオンプレミス版の Oracle Database 18c がリリースされました!
いくつか個人的に気になった機能をピックアップして、お伝えしてみたいと思います。

今回ご紹介するのは、「DBCA PDB Clone」です。
18cではDBCAを使用して、プラガブル・データベース(PDB)の管理ができるようになりました。
具体的には、以下の4つです。
- PDBの作成
- PDBの削除
- PDBの切断
- PDBの構成

20180806_01.jpg20180806_02.jpg

作成では、さまざまなクローンだけでなく切断されたPDBのファイルセットを使用しての作成も可能です。
※以下、マニュアルより。

DBCAは次のものから新しいPDBを作成できます。
- 既存のPDBから
- CDBシード(PDB$SEED)から
- 切断されたPDBのPDBアーカイブ(.pdb)ファイルの使用
- 切断されたPDBのPDBファイル・セットの使用
PDBファイル・セットにはPDBメタデータ(.xml)ファイルおよびPDBデータファイル・バックアップ(.dfb)ファイルが含まれています。

同じCDB内のPDBからクローンする場合
20180806_04.jpg

切断されたPDBのファイルセットを使用する場合 20180806_05.jpg

また、PDBの構成では、データベース・コンポーネントの追加や削除、サンプル・スキーマの追加、Enterprise Manager Database Expressの設定もできるようになっています。
ただし、設定を有効にする場合は対象のPDBを管理するCDBも有効になってないとエラーになりますので、ご注意ください。
20180806_12.jpg

参考 2日でデータベース管理者ガイド 2.3.6 DBCAを使用したPDBの管理

2018年7月24日

Oracle Database 18c オンプレミス版ついにリリース!!

守田です。

Oracle Database 18c オンプレミス版がついにリリースされたようです! OTNサイトからダウンロードできます。
Oracle Database 18c (18.3) 18c.JPG

今のところ、Linux X86-64 版のみのようです。
今後他のプラットフォーム向けにも公開されることでしょう。

2018年7月19日

資格対策書籍「オラクルマスター教科書 Gold Oracle Database 12c」(黒本)が発売されます!

渡部です。 私とコーソルの同僚 岡野さん、そして、「あの」代田さんと共著で執筆した 資格対策書籍「オラクルマスター教科書 Gold Oracle Database 12c」(いわゆる黒本)が2018年8月8日に発売されます!

oracle-master-gold-oracle-database-12c-cover.jpg

この書籍は、アップグレードではない、いわゆる通常の資格取得パス(12c Bronze → 12c Silver → 12c Gold)でORACLE MASTER Gold Oracle Database 12cを取得するために必要な試験である 1Z0-063 Oracle Database 12c: Advanced Administration の合格に向けた学習を支援する書籍です。

すでに11g Goldをお持ちの方など、アップグレードの資格取得パスで12c Goldを取得する方向けの書籍ではないため、ご注意くださいませ。(その場合は、オラクルマスター教科書 Gold Oracle Database 12c Upgrade 新機能編 を)

(今回の執筆も)超大変だっただけど、自分がお世話になってきた「黒本」を執筆できて、感慨深いです・・・ :-)

2018年7月10日

Oracle Enterprise Manager Cloud Control 13.3 リリース

守田です。

Oracle Enterprise Manager Cloud Control 13.3 が公開されています。
oem133.JPG

ドキュメントは英語版ではありますが、OTNサイトからリンクがありました。
Oracle Enterprise Manager Cloud Control Online Documentation Library Release 13.3 doc133.JPG

注目すべき新機能 の1つとして、Database 18c のライフサイクル管理があげられます。
さらに、Database 12.2 に対しては、今までの Lifecycle Management Graphical User Interfaceを使用したパッチ適用は推奨されず、
Database Fleet Maintenance機能を使用したパッチ適用が推奨されています。
この Database Fleet Maintenance機能は Database 12.2 の新機能としてある「ゴールドイメージを使用した高速ホーム・プロビジョニング」に対応した
機能とみられます。

2018年6月29日

ORACLE MASTER 20周年記念表彰

渡部です。

詳細は弊社人事ブログの「Platinum Club 2018」レポート!に記載がありますが、

先日の Platinum Club 2018 にて、ORACLE MASTER 20周年記念表彰 として表彰いただきました!

oracle_master_20th_aniv.png

表彰の背景や理由などは以下の通りです。

今年 ORACLE MASTERは資格提供開始20周年を迎えます。それを記念しまして、長年に渡り、Oracle技術者への啓蒙活動にご尽力頂いている株式会社コーソル 渡部様を特別に表彰させて頂きたいと思います。渡部様は、2011年、有志とともにオラクル製品のユーザーグループJapan Oracle User Groupを設立されました。JPOUGのボードメンバーおよび現在日本で4名しかいないOracle Database分野のOracle ACEとしてコミュニティ活動をリードされ、イベント企画、セミナー講演など、Oracle 技術者の技術力向上に多大な貢献をされました。過去10年に渡り、イベント企画28回、公開セミナー登壇27回、書籍執筆5冊と、目覚しいご活躍をなさっています。

引き続き、Oracleエンジニアのスキルアップやコミュニティ活動に力を注ぎたいと思います! 御表彰いただいた日本オラクルのOracle Universityの方々、ありがとうございました!

投稿内容は個人の意見であり、所属企業・部門見解を代表するものではありません。

プロフィール

Ryota WATABE / 渡部 亮太

100x100.jpg

  • Oracle ACE
  • AWS Certified Solutions Architect - Associate
  • ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

Norio Morita / 守田 典男

Norio Morita

  • 新しもの好きな Oracle Fighter。
  • 保有資格 : ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数