【徹底解説】Oracle Database 18cの注目新機能4選|DBAの運用を楽にする使い方
本記事では、Oracle Database 18cに導入された、DBA(データベース管理者)の日々の運用作業を少しでも楽にしてくれる注目の新機能について解説します。
Oracle Database 18cで追加された主な新機能は以下のとおりです。
- SQLキャンセル機能
- パスワードファイルの配置場所の変更
- 読み取り専用Oracle Home
- プライベート一時表
SQLキャンセル機能
Oracle Database 18cでは、ブロックを引き起こしているSQL文や、過度にリソースを消費するSQL文を、セッション自体を強制終了させることなくキャンセルできる新しいコマンドが導入されました。従来のリリースでは、DBAはalter session killコマンドを使ってセッションごと終了させるしかありませんでした。新しいalter system cancelコマンドを使用すれば、セッションを切断することなく、対象セッション内で実行中のSQL文だけを取り消せます。
alter system cancelステートメントの基本構文は以下のとおりです。
ALTER SYSTEM CANCEL SQL 'SID, SERIAL#[, @INST_ID][, SQL_ID]';
INST_IDを省略した場合、現在のインスタンスがデフォルトで指定されます。SQL_IDを省略した場合は、指定したセッションで実行中のSQLが対象となります。代表的な指定例をいくつか紹介します。
-
現在のインスタンス上のセッションで実行中のSQLをキャンセルする場合:
ALTER SYSTEM CANCEL SQL '723, 45325'; -
INST_ID=1のインスタンス上のセッションで実行中のSQLをキャンセルする場合:
ALTER SYSTEM CANCEL SQL '723, 45325, @1'; -
現在のインスタンス上のセッションで実行されている特定のSQLをキャンセルする場合:
ALTER SYSTEM CANCEL SQL '723, 45325, 84djy3b3xgvq'; -
INST_ID=1のインスタンス上のセッションで実行されている特定のSQLをキャンセルする場合:
ALTER SYSTEM CANCEL SQL '723, 45325, @1, 84djy3b3xgvq';
パスワードファイルの配置場所
Oracle Database 18cでは、パスワードファイルのデフォルトの配置場所がORACLE_HOME/dbsからORACLE_BASEに変更されました。これにより、Oracle Homeをデータベース固有のファイルに依存しない静的なリポジトリとして扱えるようになります。
ORACLE_BASEはすべてのインストール環境で共通となるため、この変更はデータベースのマイグレーション作業の簡素化にもつながります。あるORACLE_HOMEから別のORACLE_HOMEへデータベースを移行する際、パスワードファイルを移動する必要はありません。
orapwd file='$ORACLE_BASE/orapwtest18c' password=oracle force=y format=12
読み取り専用Oracle Home
パスワードファイルの配置場所変更により、複数のシステム間で1つの共有読み取り専用Oracle Homeをマウントできるようになり、複雑なアーキテクチャへのデプロイがより信頼性が高く、シンプルになりました。読み取り専用Oracle Homeでは、ソフトウェア本体とデータベース構成情報やログファイルが分離されるため、ソフトウェアをさまざまなデプロイ環境間で容易に共有できます。また、バージョン管理や標準化も格段に行いやすくなります。
読み取り専用Oracle Homeを有効化する手順は以下のとおりです。
-
binディレクトリへ移動します。
$ cd $ORACLE_HOME/bin -
読み取り専用Oracle Homeを有効化するスクリプトを実行します。
$ ./roohctl -enable
プライベート一時表
Oracle Database 18cでは「プライベート一時表」という新しい概念が導入されました。これはメモリ上に作成される一時表で、設定に応じてセッション終了時またはトランザクション終了時に自動的に削除されます。従来のリリースでは、トランザクション単位またはセッション単位で一時セグメントに行を保持する、永続的なメタデータオブジェクトであるGlobal Temporary Table(GTT)を作成できましたが、GTTは通常、その場で作成・削除するものではありませんでした。プライベート一時表の登場により、他のデータベースエンジンで提供されていたような、データだけでなく表オブジェクト自体が一時的な仕組みがOracleでも利用可能になりました。
初期化パラメータPRIVATE_TEMP_TABLE_PREFIX(デフォルト値はORA$PTT_)は、プライベート一時表を作成する際に名前に付ける必要がある接頭辞を定義します。正しい接頭辞を使用せずに作成しようとすると、エラーが発生しますので注意してください。
デフォルトのON COMMIT DROP DEFINITION句を指定すると、トランザクションまたはセッションの終了時に表そのものが削除されます。
プライベート一時表を作成する構文は以下のとおりです。
CREATE PRIVATE TEMPORARY TABLE ora$ptt_my_temp1 (
id NUMBER,
description VARCHAR2(20)
)
ON COMMIT DROP DEFINITION;
まとめ
これらの新機能は、ぜひ積極的に活用することをおすすめします。たとえば、SQLキャンセル機能を使えば、問題のあるセッションを特定した際に、セッション全体を強制終了させることなく該当のSQLだけを解除できます。読み取り専用ORACLE_HOME機能により、ソフトウェアを複数のデプロイ環境間で簡単に共有できるようになります。さらに、プライベート一時表を使えば、後始末を気にすることなく素早く一時表を作成できます。表はトランザクション終了時にOracleが自動的に削除してくれるためです。直面している状況に応じてこれらの機能を使い分けることで、大幅な時間短縮が期待できるでしょう。
ご意見やご質問がある場合は、フィードバックタブからお気軽にお寄せください。
専門家による管理・運用・構成で環境を最適化
Rackspaceのアプリケーションサービス(RAS)の専門チームは、幅広いアプリケーションポートフォリオにわたり、以下のようなプロフェッショナルサービスおよびマネージドサービスを提供しています。
- eコマースおよびデジタルエクスペリエンスプラットフォーム
- エンタープライズ・リソース・プランニング(ERP)
- ビジネスインテリジェンス(BI)
- Salesforceカスタマーリレーションシップマネジメント(CRM)
- データベース
- メールホスティングおよび生産性向上ソリューション
Rackspaceが提供する価値:
- 偏りのない専門知識:モダナイゼーションの道のりをシンプルにガイドし、即座に価値をもたらす機能に焦点を当てて支援します。
- ファナティカルな体験(Fanatical Experience™):Process first. Technology second.®というアプローチと専任の技術サポートを組み合わせ、包括的なソリューションを提供します。
- 比類のないポートフォリオ:豊富なクラウド経験を活かし、適切なクラウド上に適切なテクノロジーを選定・デプロイするお手伝いをします。
- アジャイルなデリバリー:お客様の現在地に合わせて伴走し、私たちの成功をお客様の成功と一致させます。
まずはチャットでお気軽にご相談ください。
-
データベース管理者必見!Oracle Database 19cの新機能徹底解説
Oracle® Database 19cは、数多くの新機能と改善された機能を搭載して登場しました。本記事では、データベース管理者(DBA)の業務を効率化する主要な新機能について詳しく解説します。 はじめに Oracle 19cは、Oracle Database 12cリリース2製品ファミリーにおいて長期サポートが提供される最終リリースです。Linux®、Windows®、Solaris®、HP/UX®、AIX®などの各プラットフォームに加え、Oracle Cloud上でも利用可能です。Oracle 19cは、あらゆる運用系および分析系ワークロードに対して、最高レベルのパフォーマンス、スケーラビ
-
Ruby 2.6の新機能9選|コード例でわかる注目ポイントを徹底解説
Ruby 2.6には、開発者の生産性を高める新しい機能やパフォーマンス改善が多数盛り込まれています。 本記事では、Ruby 2.6で導入された9つの注目新機能を、実際のコード例とともにわかりやすく紹介します。最新のRuby動向をキャッチアップしたい方は、ぜひ最後までご覧ください。 1. 無限Range(Endless Range) Ruby 2.5以前でもFloat::INFINITYを使えば終端のない範囲を表現できましたが、Ruby 2.6ではさらに直感的な記法が使えるようになりました。 新しい無限Rangeは次のように書きます。 (1..) 通常のRangeが(1..10)のように終端