Skip to main content

 

 

 

 
Language:

 

 
 
 
OutSystems

OutSystemsパブリッククラウドのデータベースストレージ

OutSystemsパブリッククラウドはSQL ServerまたはOracle RDSデータベース上で実行されます。プラットフォームを購入したときに、初期のデータストレージサイズで実行されます。ストレージは、必要に応じて上限まで増やすことができます。ストレージを増やした後は、減らすことはできません。

詳細については、以下のトピックをご覧ください。

ストレージはどのように管理されますか? LifeTimeに表示される値にはどのような意味がありますか?

OutSystemsでは、Amazon RDSデータベース(OracleまたはSQL Server)を使用しています。ユーザーがOutSystems Cloudで使用するストレージは、OutSystemsがRDS内で確保しているものです。

OutSystemsでは、Amazon RDSの使用状況のメトリックに基づいたストレージの使用状況が表示されます。つまり、この値はユーザーのテーブルやプラットフォームのシステムテーブルの実際のデータを反映したものではなく、以下の2種類のオーバーヘッドがあります。

  • データベーステクノロジー(OracleまたはSQL Server)によって発生するオーバーヘッド

  • Amazon RDSによって発生するオーバーヘッド

データベーステクノロジーによって発生するオーバーヘッド(OracleまたはSQL Server)

データベースには、ユーザーのデータ以外も保存されています。制御データやモデルの情報などが保存されています。このため、データベースのサイズはユーザーが保存するデータよりも大きくなり、実際の使用状況に応じて増加します。

また、データベースサイズはデータを追加するにつれて増加しますが、データを削除するときに必ずしも縮小させる必要はありません。ベストプラクティスでは、データベースのパフォーマンスを最適化するために使用済みのストレージを縮小する必要はありません。OutSystemsは、そのベストプラクティスに従っています。

Amazon RDSによって発生するオーバーヘッド

Amazon RDSでは、内部使用(ログファイル、トランザクションログなど)によってオーバーヘッドが発生します。RDSの領域の管理方法の詳細については、Amazonのドキュメントをご覧ください。

ストレージ領域の不足を回避するにはどのようにすればよいですか?

データベースストレージの不足を回避するには、LifeTimeでデータベースのストレージ使用率を監視し、セルフサービスモードで追加ストレージをプロビジョニングする必要があります。

図1 - LifeTimeによるデータベースサイズの監視と増加

データベースサイズを適時に増やすことができなかった場合、OutSystemsパブリッククラウドの正常性の常時監視メカニズムが作動します。データベースサイズがサブスクリプションの99%を超えると、OutSystemsパブリッククラウドの監視システムからの警告がOutSystemsのサポートチームに送信されます。

OutSystemsのサポートチームは、重要度が緊急のサービスリクエストと同じ優先順位でこの警告に対応します。

OutSystemsサポートチームは、データベースサイズを増やした後、以下を行います。

  • ユーザーに問題の発生を通知します。

  • OutSystemsのアカウントマネージャーに連絡して追加データベースストレージを購入するように求めます。

システムデータを解放する

一部のシステムデータは手動で解放できます。

  1. 環境管理コンソール(https://<ご利用の環境>/ServiceCenter)に移動します。

  2. Factory]タブをクリックします。

  3. Modules]オプションをクリックします。次に、[Check Old Module Versions to Delete]リンクをクリックします

  4. 削除する期間を選択して、[Check Versions to Delete]ボタンをクリックします

次に、それらのモジュールバージョンを削除して、システムデータを解放します。

アプリケーションデータを解放する

アプリケーションデータは、基本的にアプリケーションのデータベースエンティティに保存されているすべての情報です。

ユーザーがIDEでデータベースのテーブルや列を削除しても、データの損失を防ぐためにOutSystemsがそれらを削除することはありません。そのため、一部のデータベースストレージが使用されている可能性があります。使用されなくなったこうしたデータベースのテーブルや列は、DbCleaner APIを使用してプログラムで削除できます。

追加ストレージを購入しなかった場合、どのようになりますか?

実際のデータベースサイズがLifeTimeに表示されなくなります。LifeTimeでは、サブスクリプションを超えて使用しているストレージのサイズはわかりません。LifeTimeのレポートには、サブスクリプションの対象となっているデータベースサイズをすべて使用していることが示されます。

ディスク領域の不足によってOutSystemsプラットフォームが停止することはありますか?

上記の正常性の監視メカニズムによって、ほとんどの場合、OutSystemsは適時に作業を行うことができ、プラットフォームの堅牢性を守ることができます。しかし、プラットフォームの使用中にOracleがトリガーされて短時間で大量のディスク領域が消費された場合、データベースを増やす前にディスク領域が不足することがあります。たとえば、100GBのデータベースに20GBのデータをアップロードした場合、OutSystemsのサポートチームが「low database storage space」の警告に対応するより前に、アップロードによってデータベースサイズが使い果たされてしまうことがあります。

ディスク領域の不足によってOutSystemsプラットフォームが停止しないようにするにはどのようにすればよいですか?

  1. オーバーヘッドを常に適度な状態に保ち、ストレージのサブスクリプションがストレージ使用量より数GB多い状態を維持します。

  2. 常識として、マルチギガビットのデータベース操作を行わないようにします。そのような操作が必要な場合は、事前に影響の予測とLifeTimeでのストレージ使用率の確認を行います。

  3. ストレージのオーバーヘッドポリシーに沿ったスケジュールに従って、定期的にストレージ使用率をLifeTimeで確認します。たとえば、ストレージのオーバーヘッドが50GBであり、これが一般的なデータベース使用パターンである場合、月1回の確認で十分です。

誤って作成したデータを大量に削除(または大量のデータをクリーンアップ)しました。その変更がLifeTimeに反映されないのはなぜですか?

LifeTimeには、Amazon RDSで測定されたストレージ使用状況が表示されます。データをデータベースから削除しても、Amazonのストレージは引き続き確保されたままであり、「確保されているが使用されていないストレージ」になっています。

データのタイプやデータベーステクノロジー(OracleまたはSQL Server)によっては、解放した領域を引き続き使用できる場合があります。

  • 一般的な使用

  • 同じテーブル内のオブジェクトのみによる使用

  • 異なるタイプの使用

このようなクリーンアップを実行しても、LifeTimeに表示されるストレージ使用量は減らないものと考えてください。

データベースサイズを減らすにはどのようにすればよいですか?

システムパフォーマンスと操作効率を守るため、OutSystemsパブリッククラウドでは一度割り当てたデータベースサイズを減らすことはできません。

その一方で、不要になったデータを削除すると、データベース内の未使用領域の量は増加します。今後データを追加すると、このデータベースの未使用領域に新しいデータが(解放した領域のタイプに基づいて)保存されるため、データベースサイズは増加しません。

そのため、データベースの不要になったデータを削除することで、将来的にデータベースサイズを増やす必要性を低減したり、先延ばししたり、解消したりすることができます。

データベースの使用率が100%に達しましたが、古いデータを削除してそのほとんどを解放しました。LifeTimeに表示されている使用率は100%のままですが、作業を継続しても問題はありませんか?

LifeTimeで使用率が100%と表示されている場合は、追加ストレージ領域を購入することを推奨します。購入しない場合は、OutSystemsプラットフォームが最終的に動作しなくなるおそれがあります。

解放したデータのタイプによっては引き続き新しいデータを保存することができる場合がありますが、その領域を一般的な用途で使用できる保証はありません。

各データベーステクノロジーのデータストレージの仕様の詳細については、それぞれのドキュメントをご覧ください。

データベースがストレージ領域を内部でどのように使用しているかを確認できますか?

これを行うには、OutSystemsの直接データベースアクセスを利用してデータベースモデルに対して直接クエリを実行します。詳細については、データベーステクノロジーのオンラインヘルプをご覧ください。

データベースへのアクセスをリクエストする方法

  • Was this article helpful?