データファイルの追加とバランス調整 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データファイルの追加とバランス調整

EnterpriseOne に付属している SQL Server データベースは、多くの場合、ファイルを追加することでメリットを得られます。ファイルを追加すると、ストレージコアとプロセッサコア間の最適なバランスを取ることができます。ファイルのバランス調整は、複数ステップのプロセスです。これらのステップの多くは、データベースオブジェクトへの排他的アクセスを必要とするため、データベースにアクセスする EnterpriseOne やその他のシステムをオフラインにする必要があります。

ファイルサイズの計算を完了する

データベースファイルの適切なサイズを見つけるには、まず次のクエリを使用して、現在の ROW データのサイズを調べます。

USE JDE_PRIST920 SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

次に、以下の計算を行い、[ユーザー値] 列に入力します。

線グラフ 名前 ユーザー値 説明
1 現在の行のサイズ 1 TB 前のクエリの結果
2 計画的な増加 20% 安全マージンも含む、今後数か月で予想される増加
3 必要なサイズ 1.2 TB 1 行目に 2 行目を掛けた値
4 ファイルの数 8 ターゲットファイルの数
5 ファイルあたりのサイズ 150 GB 3 行目を 4 行目で割った値
6 自動成長率 10% 自動拡張のサイズ フラグメント化を最小限に抑えるには、10% が適切なターゲットです。
7 自動成長のサイズ 15 GB 5 行目に 6 行目を掛けた値

新規ファイルを作成する

次のスクリプトをテンプレートとして使用し、データベースにファイルを追加します。以下のパラメータを変更します。

  • JDE-PRIST920 を、ファイルを追加するデータベース名に変更します。

  • NAME で、追加する各ファイルの論理名を指定します。

  • FILENAME で、追加する各ファイルの物理名を指定します。

  • FILEGROWTH で、前の表の 7 行目で計算した値を使用します。

  • SIZE で、前の表の 5 行目の値を指定します。

USE master; GO ALTER DATABASE JDE_PRIST920 MODIFY FILE (NAME = JDE_PRIST920_Data, FILEGROWTH = 15GB); GO ALTER DATABASE JDE_PRIST920 ADD FILE (NAME = JDE_PRIST920_Data2, FILENAME = 'M:\DATA\PRIST920_Data2.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data3, FILENAME = 'M:\DATA\PRIST920_Data3.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data4, FILENAME = 'M:\DATA\PRIST920_Data4.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data5, FILENAME = 'M:\DATA\PRIST920_Data5.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data6, FILENAME = 'M:\DATA\PRIST920_Data6.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data7, FILENAME = 'M:\DATA\PRIST920_Data7.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data8, FILENAME = 'M:\DATA\PRIST920_Data8.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_TEMP, FILENAME = 'M:\DATA\PRIST920_TEMP.ndf', SIZE=150GB, FILEGROWTH = 15GB) GO

MDF ファイルを一時的に空にします。

ファイルが作成されたら、ファイルごとに次のコマンドを実行して、MDF ファイルから NDF ファイルにデータを移行します。データベース内のファイル名を反映するように、ファイル名を調整します。

USE JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, EMPTYFILE)

一部のコンテンツは NDF ファイルに移動できないため、EMPTYFILE コマンドはエラーを生成します。このエラーメッセージは無視して構いません。

MDF ファイルを空にすると表示されるエラーメッセージ

MDF ファイルのサイズを変更します。

MDF ファイルのサイズをターゲットサイズに減らすには、次のコマンドを実行します。表の計算の 5 行目の値を反映するように、ファイルサイズを調整します。

JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, 150000);

場合により、NDF ファイルに移動できなかったコンテンツが配置され、SHRINKFILE コマンドが失敗します。この場合は、DBCC DBREINDEX コマンドを実行し、プロセスを再実行してファイルを空にし、SHRINKFILE オペレーションを再試行する必要があります。

クリーンアップ

ターゲットファイルが作成され、MDF ファイルが適切なサイズになったら、次のコマンドを使用して TEMP ファイルのデータを MDF ファイルに戻します。データベース内のファイル名を反映するように、ファイル名を調整します。

DBCC SHRINKFILE (JDE_PRIST920_TEMP, EMPTYFILE)

ファイルが空の場合は、次のコマンドを使用して削除できます。

ALTER DATABASE JDE_PRIST920; REMOVE FILE JDE_PRIST920_TEMP;

検証結果

バランス調整後にデータベースの現在のディスクスペース使用率をチェックするには、以下のスクリプトを実行します。

USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

出力は以下のようになります。MDF ファイルにしか存在しないコンテンツもあるため、ファイルのバランスが完全に取れることはほとんどありません。

バランス調整後にディスクスペース使用率を検証する