Skip to main content

 

 

 

 
Language:

 

 
 
 
OutSystems

複数データベースカタログおよびスキーマ

エンタープライズアプリケーションでは、多くの場合、データをデータベースレベルに至るまで完全に分離する必要があります。これにより、さらにきめ細かなストレージ管理やデータベース保守、あるいは組織の目的の明確化が可能になります。OutSystemsプラットフォームの複数データベースカタログおよびスキーマ機能により、特定のデータベースカタログまたはスキーマにeSpaceをバインドすることで、このような要件を満たすことができます。

この機能は、オンプレミス環境でのみ利用可能です。

はじめに

OutSystemsは、Microsoft SQL ServerとOracleの両方をサポートしています。これらのデータベース管理システムは使用する用語が異なりますが、わかりやすくするために、このテクニカルノートではSQL ServerカタログとOracleスキーマについて言及する場合は「データベース」という用語を使用します。

複数データベースカタログおよびスキーマを使用する理由

複数データベースカタログおよびスキーマを使用すると、以下のようにデータベースのデータの管理や保守が向上します。

  • アプリケーション単位のデータベースバックアップポリシーが向上します。たとえば、データベースのサイズや重要性に応じて様々なバックアップスケジュールを確立するなどです。

  • アプリケーション単位のデータベース保守計画が向上します。

  • アプリケーションのデータをストレージシステム間で分割することで、I/Oパフォーマンスを最適化します。たとえば、I/Oの多いデータはパフォーマンスの高いハードディスクに分散する必要があります。

  • 複数のデータベースにデータを分散することでデータベースサイズを小さくするため、すべての情報が大きなファイルの同じ場所に格納されるわけではありません。

  • プラットフォームデータベース(メイン)から独立したデータベースをすでに使用している場合は、他のアプリケーションに影響を与えることなくBPM以外のデータベースを復元できます。

  • 異なるデータベーストランザクションロギングポリシーを保持できます。

使用シナリオ

以下の図は、イントラネットアプリケーション、企業向けインターネットアプリケーション、OutSystemsデータベースに対応した3つの異なるデータベースを含む典型的なシナリオを示しています。

OutSystemsデータベースは、以下を保存するために常に存在している必要があります。

  • OutSystemsプラットフォームのメタデータ

  • システムコンポーネントの固有データ

  • シングルサインオン、権限領域など、アプリケーション横断型のインフラをサポートするためのグローバルデータ

複数のデータベースを作成する手順

SQL Serverで新しいデータベース(カタログ)を作成する

SQL Serverでは、DBAは最初にデータベースカタログを作成し、次にプラットフォームの管理者とランタイムデータベースユーザーの両方に権限を設定する必要があります(Configuration Toolで設定します)。

権限は以下のように設定する必要があります。

ランタイムユーザー: すべてのテーブルに対する読み取り/書き込み権限を持つ必要があります。

プラットフォームの管理者ユーザー: db_accessadmin、db_datareader、db_datawriter、db_ddladmin、db_securityadminに権限を設定する必要があります。

SQL Serverでカタログを作成したら、Service Centerの[Adminitration]タブに移動し、[Database Catalogs]を選択します。

次に、[Configure New Catalog]を使用して、すでに作成したカタログを追加します。権限が正しく設定されていることを確認するために、構成を保存する前にテストしてください。

Oracleで新しいデータベース(スキーマ)を作成する

新しいデータベーススキーマを作成するには、Service Centerに移動し、[Database Schemas]で[Configure new Schema]を選択します。

新しいスキーマの情報を入力し、構成スクリプトをダウンロードします。次に、Oracleデータベースでスクリプトを(DBAとして)実行して、新しいスキーマを効率的に作成します。完了するには、[Test Configuration]ボタンを使用して、Service Centerで新しく作成されたデータベーススキーマをテストしてから保存します。

スキーマを作成するスクリプトによって、必要なすべての権限がすでに設定されています。

新しいeSpaceをパブリッシュする

新しいeSpaceをパブリッシュする

Service Studioでは、複数データベースカタログおよびスキーマを使用してeSpaceを初めてパブリッシュする場合、そのeSpaceをパブリッシュするカタログ/スキーマを指定するように求められます。eSpaceがPlatform Serverにパブリッシュされ、そのデータベースオブジェクトが指定したカタログ/スキーマに作成され、ランタイムユーザーの権限が設定されます。

eSpaceを初めてパブリッシュした後は、そのカタログ/スキーマの指定を求められなくなり、eSpaceをService Centerの別のデータベースに移動できます。eSpaceを別のカタログ/スキーマに移動する方法の詳細については、「eSpaceを別のデータベースカタログ/スキーマに移動する」セクションをご覧ください。

Service Centerで新しいeSpaceをパブリッシュする動作はService Studioと同じです。

つまり、eSpaceをパブリッシュするカタログ/スキーマを設定するように求められます。

新しいeSpaceを含むソリューションをパブリッシュする

Service CenterまたはSolution Pack Toolのどちらかを使用して、複数データベースカタログおよびスキーマを含むソリューションをパブリッシュすると、ソリューションにある新しいeSpaceごとにカタログ/スキーマを設定するように求められます。

Platform ServerにすでにパブリッシュされているeSpaceの場合、そのeSpaceのカタログ/スキーマはPlatform Serverですでに設定されています。その他の場合、パブリッシュは以下のように行われます。

  • カタログ/スキーマがPlatform ServerのeSpaceに設定されていない場合、ユーザーはeSpaceのカタログ/スキーマを新しいeSpaceと同様に設定するように求められます。

  • カタログ/スキーマがPlatform ServerのeSpaceに設定されている場合、Platform Serverに設定されたカタログ/スキーマによって、ソリューションのeSpaceを含むカタログ/スキーマが上書きされます。

eSpaceを別のデータベースに移動する

複数データベースカタログおよびスキーマの場合、eSpaceをあるデータベースから別のデータベースに移動するには、このセクションで説明するいくつかの手順を実行する必要があります。

SQL Server

eSpaceを別のデータベースカタログに移動する

eSpaceを別のカタログに移動するには、以下の手順を実行します。

1.移動元データベースと移動先データベースをバックアップします。

2.移動するeSpaceにマークを付けます。

1.Service Centerを開きます。

2.eSpaceの編集画面を開いて[Operation]タブを選択し、[Catalog]ドロップダウンでeSpaceの移動先のカタログを選択します。

3.[Apply]ボタンを押します。eSpaceはすぐには移動されませんが、移動のマークが付けられます。そのため、このeSpaceは古いカタログで引き続き動作します。

3.データベースのデータをコピーします。

バージョン8以下の場合 プラットフォーム9以上の場合
a. eSpaceに移動のマークを付けたら、eSpaceの詳細画面に移動し、[Download Data Copy Script]リンクをクリックして、eSpaceのデータをコピーするスクリプトをダウンロードします。 a. eSpaceに移動のマークを付けたら、eSpaceを含むアプリケーションをオフラインにします(アプリケーションの詳細画面で[Take Offline]ボタンを使用します)。
b. アプリケーションの詳細画面で[Take Offline]ボタンを使用して、eSpaceを含むアプリケーションをオフラインにします。 b. eSpaceのデータを移動先カタログにコピーするSQLスクリプトを作成します(このスクリプトはSQL Server Management Studioで実行します)。
c. SQL Server Management Studioでスクリプトを実行して、eSpaceのデータをコピーします。プラットフォームの管理者ユーザーと同じ権限が必要です。 c. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
d. スクリプトは移動元のテーブルとビューを移動先カタログに作成し、それらのデータをコピーして、制約を作成します。
e. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
f. 移動元カタログでは、将来的なデータリカバリに備えてテーブルが保持されますが、テーブル名には「OLD_」というプレフィックスが付けられます。これらのテーブルを確実に削除するには、スクリプトの末尾にあるコメントアウトされた(実行されない)SQLコマンドを使用します。
g. 大量のデータを移動する場合は、スクリプトのデータコピー手順を調べて可能な限り効率化するためにDBAのサポートを求める必要があります。

4.eSpaceの移動を完了します。

a. Service Centerで、eSpaceをパブリッシュします。

b. 最初にPlatform Serverは、eSpaceのテーブルがすべて移動先カタログに作成されていることを確認します。次に表示される[Use Matching Tables]オプションを選択し、パブリッシュプロセスを続行します。

c. eSpaceにコンシューマeSpaceがある場合は、それらを再パブリッシュするか、または参照されているeSpaceをすべて含むソリューションを作成してワンステップでパブリッシュします。

d. eSpaceの詳細画面で[Bring Online]ボタンを使用して、eSpaceをオンラインにします。

e. これで、eSpaceは新しいカタログを使用するようになります。

移動されたeSpaceを含むソリューションをProductionにステージングする

別のカタログに移動されたeSpaceを含むソリューションをProduction環境にステージングするには、以下の手順を実行します。

1.データベースのバックアップを作成します。

2.ソリューションをステージングします。

a. Production環境のService Centerを開きます。

b. ソリューションのリスト画面で、ソリューションをアップロードします。

c. ソリューションには移動されたeSpaceが含まれているため、アップロード中にそれらの詳細を示すテーブルが表示され、移動を確認する必要があります。

3.データベースのデータをコピーします。

バージョン8以下の場合 プラットフォーム9以上の場合
a. eSpaceに移動のマークを付けたら、eSpaceの詳細画面に移動し、[Download Data Copy Script]リンクをクリックして、eSpaceのデータをコピーするスクリプトをダウンロードします。 a. eSpaceに移動のマークを付けたら、eSpaceを含むアプリケーションをオフラインにします(アプリケーションの詳細画面で[Take Offline]ボタンを使用します)。
b. アプリケーションの詳細画面で[Take Offline]ボタンを使用して、eSpaceを含むアプリケーションをオフラインにします。 b. eSpaceのデータを移動先カタログにコピーするSQLスクリプトを作成します(このスクリプトはSQL Server Management Studioで実行します)。
c. SQL Server Management Studioでスクリプトを実行して、eSpaceのデータをコピーします。プラットフォームの管理者ユーザーと同じ権限が必要です。 c. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
d. スクリプトは移動元のテーブルとビューを移動先カタログに作成し、それらのデータをコピーして、制約を作成します。
e. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
f. 移動元カタログでは、将来的なデータリカバリに備えてテーブルが保持されますが、テーブル名には「OLD_」というプレフィックスが付けられます。これらのテーブルを確実に削除するには、スクリプトの末尾にあるコメントアウトされた(実行されない)SQLコマンドを使用します。
g. 大量のデータを移動する場合は、スクリプトのデータコピー手順を調べて可能な限り効率化するためにDBAのサポートを求める必要があります。
  1. ソリューションのステージングを完了します。

    a. Service Centerで、ソリューションをパブリッシュします。

    b. 最初にPlatform Serverは、テーブル(移動されたeSpaceのテーブル)がすべて移動先カタログに作成されていることを確認します。次に表示される[Use Matching Tables]オプションを選択し、パブリッシュプロセスを続行します。

    c. すべてのコンシューマeSpaceを再パブリッシュする必要があります。それらを再パブリッシュするか、ソリューションを作成してワンステップでパブリッシュします。

    d. eSpaceが属している各アプリケーションの詳細画面で[Bring Online]ボタンを使用して、eSpaceをオンラインにします。

    E. これで、ソリューションがステージングされ、移動されたすべてのeSpaceが新しいカタログを使用するようになります。

Oracle

eSpaceを別のデータベースカタログに移動する

eSpaceを別のスキーマに移動するには、以下の手順を実行します。

1.移動元データベースと移動先データベースをバックアップします。

2.移動するeSpaceにマークを付けます。

 a. Service Centerを開きます。

b. eSpaceの詳細画面に移動し、[Operation]タブを選択して、eSpaceの移動先のカタログを選択します。

c. [Apply]ボタンを押します。eSpaceはすぐには移動されませんが、移動のマークが付けられます。そのため、このeSpaceは古いスキーマで引き続き動作します。

3.データベースのデータをコピーします。

バージョン8以下の場合 プラットフォーム9以上の場合
a. eSpaceに移動のマークを付けたら、eSpaceの詳細画面に移動し、[Download Data Copy Script]リンクをクリックして、eSpaceのデータをコピーするスクリプトをダウンロードします。 a. eSpaceに移動のマークを付けたら、eSpaceを含むアプリケーションをオフラインにします(アプリケーションの詳細画面で[Take Offline]ボタンを使用します)。
b. アプリケーションの詳細画面で[Take Offline]ボタンを使用して、eSpaceを含むアプリケーションをオフラインにします。 b. eSpaceのデータを移動先スキーマにコピーするSQLスクリプトを作成して実行します。
c. Oracle SQL DeveloperでDBAユーザーとしてスクリプトを実行して、データをコピーします。 c. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
d. スクリプトはOracle Data Pumpを使用して移動元のテーブルとビューを移動先スキーマに作成し、それらのデータをコピーして、制約を作成します。
e. 移動元スキーマでは、将来的なデータリカバリに備えてテーブルが保持されますが、テーブル名には「OLD_」というプレフィックスが付けられます。これらのテーブルを確実に削除するには、スクリプトの末尾にあるコメントアウトされた(実行されない)SQLコマンドを使用しますが、移動操作が成功してアプリケーションが正常に動作していることを確認してください。
f. 大量のデータを移動する場合は、一般にData Pumpが効率的ですが、特定のケースではDBAがスクリプトを最適化することもできます。

4.eSpaceの移動を完了します。

a. Service Centerで、eSpaceをパブリッシュします。

b. 最初にPlatform Serverは、eSpaceのテーブルがすべて移動先スキーマに作成されていることを確認します。次に表示される[Use Matching Tables]オプションを選択し、パブリッシュプロセスを続行します。

C. eSpaceにコンシューマeSpaceがある場合は、それらを1つずつ再パブリッシュします。ただし、数が多すぎる場合は、それらを含むソリューションを作成してワンステップでパブリッシュするほうが効率的です。

d. 移動されたeSpaceを含むアプリケーションの詳細画面で[Bring Online]ボタンを使用して、eSpaceをオンラインにします。

e. これで、eSpaceは新しいスキーマを使用するようになります。

移動されたeSpaceを含むソリューションをProductionにステージングする

別のスキーマに移動されたeSpaceを含むソリューションをProduction環境にステージングするには、以下の手順を実行します。

1.対象となるデータベースのバックアップを作成します。

2.ソリューションをステージングします。

a. Production環境のService Centerを開きます。

b. ソリューションのリスト画面で、ソリューションをアップロードします。

c. ソリューションには移動されたeSpaceが含まれているため、アップロード中にそれらの詳細を示すテーブルが表示され、移動を確認する必要があります。

3.データベースのデータをコピーします。

バージョン8以下の場合 プラットフォーム9以上の場合
a. eSpaceに移動のマークを付けたら、eSpaceの詳細画面に移動し、[Download Data Copy Script]リンクをクリックして、eSpaceのデータをコピーするスクリプトをダウンロードします。 a. eSpaceに移動のマークを付けたら、eSpaceを含むアプリケーションをオフラインにします(アプリケーションの詳細画面で[Take Offline]ボタンを使用します)。
b. アプリケーションの詳細画面で[Take Offline]ボタンを使用して、eSpaceを含むアプリケーションをオフラインにします。 b. eSpaceのデータを移動先スキーマにコピーするSQLスクリプトを作成して実行します。
c. Oracle SQL DeveloperでDBAユーザーとしてスクリプトを実行して、データをコピーします。 c. 移動操作が成功してアプリケーションが正常に動作していることを確認します。
d. スクリプトはOracle Data Pumpを使用して移動元のテーブルとビューを移動先スキーマに作成し、それらのデータをコピーして、制約を作成します。
e. 移動元スキーマでは、将来的なデータリカバリに備えてテーブルが保持されますが、テーブル名には「OLD_」というプレフィックスが付けられます。これらのテーブルを確実に削除するには、スクリプトの末尾にあるコメントアウトされた(実行されない)SQLコマンドを使用しますが、移動操作が成功してアプリケーションが正常に動作していることを確認してください。
f. 大量のデータを移動する場合は、一般にData Pumpが効率的ですが、特定のケースではDBAがスクリプトを最適化することもできます。

4.ソリューションのステージングを完了します。

a. Service Centerで、ソリューションをパブリッシュします。

b. 最初にPlatform Serverは、テーブル(移動されたeSpaceのテーブル)がすべて移動先スキーマに作成されていることを確認します。次に表示される[Use Matching Tables]オプションを選択し、パブリッシュプロセスを続行します。

c. すべてのコンシューマeSpaceを再パブリッシュする必要があります。ソリューションにすべてのコンシューマeSpaceが含まれていない場合は、個別に再パブリッシュするか、別のソリューション内で再パブリッシュする必要があります。

d. 移動されたeSpaceを含む各アプリケーションの詳細画面で[Bring Online]ボタンを使用して、eSpaceをオンラインにします。

e. これで、ソリューションがステージングされ、移動されたすべてのeSpaceが新しいスキーマを使用するようになります。
  • Was this article helpful?