SQL Serverの復旧モデルの設定がFull(完全復旧モデル)の場合、トランザクションログの肥大化が発生しやすくなります。
SQL Serverは、次の2種類の復旧モデルの設定により、トランザクションログへのデータ出力方法が切り替わります。
- SIMPLE(単純復旧モデル):
SQL Server Express Editionの既定値です。必要なディスクスペースが少なくなるように、トランザクションログ領域が自動的に再利用されます。
- FULL(完全復旧モデル):
SQL Server Standard Editionの既定値です。定期的なバックアップ、または、トランザクションログの圧縮を行わない限りディスクスペースを圧迫するまでログファイルを採取します。
SigmaSystemCenterは管理対象の情報だけでなく、運用ログや性能データやイメージデータなどの様々なデータの追加・更新・削除処理を頻繁に行います。Full(完全復旧モデル)の設定を行うと以下のようなデメリットが発生するので、SIMPLE(単純復旧モデル)を利用してください。
- 頻繁なデータ更新や大量データの書き込みによりトランザクションログのサイズが肥大化し、ディスク容量を圧迫する。
- 頻繁なデータ更新によりトランザクションログへの書き込み処理の負荷が大きくなり、SigmaSystemCenterの性能に影響する
次の手順でSQL Serverの復旧モデルの設定変更を行い、SQL Server トランザクションログの肥大化要因を取り除いてください。また、既にデータベースが肥大化している場合は、復旧モデルの設定変更だけでなく、データベースの圧縮や断片化解消も行う必要があります。
- SigmaSystemCenterの各サービスを停止します。
[コントロールパネル]-[管理ツール]-[サービス]から次のサービスを停止します。
- SystemProvisioning
- SystemMonitor
- System Monitor Performance Monitoring Service
- DeploymentManager
- Apache Tomcat
- DeploymentManager API Service
- DeploymentManager Backup/Restore Management
- DeploymentManager Client Management
- DeploymentManager client start
- DeploymentManager Control Service
- DeploymentManager Get Client Information
- DeploymentManager PXE Managemnt
- DeploymentManager PXE Mtftp
- DeploymentManager Remote Update Service
- DeploymentManager Scenario Management
- DeploymentManager Schedule Management
- DeploymentManager Transfer Management
- 下記表のデータベースのファイルサイズを確認します。
SigmaSystemCenterは、2つのSQL Serverのインスタンスを使用します。それぞれのインストールディレクトリ配下にあるデータベースファイルを確認してください。SQL ServerのインストールディレクトリはC:\Program Files\Microsoft SQL Server\MSSQL.x\MSSQL\Dataです。インスタンスによりxの値が異なります。
- SystemProvisioning
- pvminf.mdf
- pvminf_2.ndf(SSC2.1u3以降のみ)
- pvminf_log.LDF
- SystemMonitor
- RM_PerformanceDataBase2.mdf
- RM_PerformanceDataBase2_log.ldf
- DeploymentManager
- 構成情報データベースのバックアップを行います。
下記の通り、C:\tempにバックアップファイルbackup_pvm.dat, backup_sysmon.dat, backup_dpm.datを作成します。インスタンス名を既定値より変更している場合、使用インスタンス名に指定を変更してください。既定値は、SystemProvisioningとSystemMonitorはSSCCMDB、DeploymentManagerはDPMDBIです。
sqlcmd -E -S (local)\SSCCMDB -d pvminf -Q "backup database pvminf to disk = 'C:\temp\backup_pvm.dat' with init"
sqlcmd -E -S (local)\SSCCMDB -d RM_PerformanceDataBase2 -Q "backup database RM_PerformanceDataBase2 to disk = 'C:\temp\backup_sysmon.dat' with init"
sqlcmd -E -S (local)\DPMDBI -d DPM -Q "backup database DPM to disk = 'C:\temp\backup_dpm.dat' with init"
- データベースの復旧モデルを確認します。
次のコマンドで、使用しているデータベースの復旧モデルが表示されます。
sqlcmd -E -S (local)\SSCCMDB -W -Q "SELECT DATABASEPROPERTYEX('pvminf','Recovery')"
sqlcmd -E -S (local)\SSCCMDB -W -Q "SELECT DATABASEPROPERTYEX('RM_PerformanceDataBase2','Recovery')"
sqlcmd -E -S (local)\DPMDBI -W -Q "SELECT DATABASEPROPERTYEX('DPM','Recovery')"
- 手順4.で復旧モデルがFULLと表示された場合、復旧モデルをSIMPLEに変更します。
sqlcmd -E -S (local)\SSCCMDB -Q "alter database pvminf set RECOVERY SIMPLE"
sqlcmd -E -S (local)\SSCCMDB -Q "alter database RM_PerformanceDataBase2 set RECOVERY SIMPLE"
sqlcmd -E -S (local)\DPMDBI -Q "alter database DPM set RECOVERY SIMPLE"
- 次にデータベース不要領域の圧縮により、トランザクションログファイルのサイズ縮小を行います。
データベース不要領域の圧縮を実施すると、圧縮によりデータベース領域の断片化が発生するため、圧縮後、断片化の解消も合わせて実施します。コマンドが終了するまでそれぞれ数分かかる場合があります。
sqlcmd -E -S (local)\SSCCMDB -Q "DBCC SHRINKDATABASE ( pvminf )"
sqlcmd -E -S (local)\SSCCMDB -Q "DBCC SHRINKDATABASE ( RM_PerformanceDataBase2 )"
sqlcmd -E -S (local)\SSCCMDB -Q "Exec sp_MSforeachtable @command1='ALTER INDEX ALL ON ? REBUILD'"
sqlcmd -E -S (local)\DPMDBI -Q "DBCC SHRINKDATABASE ( DPM )"
sqlcmd -E -S (local)\DPMDBI -Q "Exec sp_MSforeachtable @command1='ALTER INDEX ALL ON ? REBUILD'"
既に圧縮が完了した状態で、圧縮のコマンド"DBCC SHRINKDATABASE"を実行すると次のメッセージが表示されます。
"DBCC SHRINKDATABASE: データベース ID x のファイル ID y がスキップされました。ファイルに再利用する空き領域が不足しています。"
- データベース関連のファイルサイズが手順2で確認したサイズよりも小さくなっていることを確認します。
確認対象ファイルは手順2を参照してください。
- SQL Serverのデータベースエンジンサービスを再起動します。
[コントロールパネル]-[管理ツール]-[サービス]から次のサービスを再起動します。
- SQL Server (SSCCMDB)
- SQL Server (DPMDBI)
- SigmaSystemCenterの各サービスを開始します。開始対象のサービスは手順1を参照してください。