NPMなどのOrion製品では、ポーリングにて取得したデータなど、ほぼ全てのデータをSQLDBに保存します。
データの蓄積により、SQLのDB領域の拡大しますが、以下のような理由で、OSで見たドライブの領域の空きが少なくなるケースが考えられます。
-元々十分な領域が確保されていなかった
-保存期間を大きく延長した
-ポーリング間隔を短くした(※特に詳細データのポーリング)
-多数のSyslogやTrapを常時多数受信している
このような場合、その逆の設定に見直した上で、「データベース保守」の実行により、"データベースの空き"を確保できます。
DB メンテナンス中に断片化率 90% 以上のインデックスが発見されました
"データベースの空き"とは、SQLがDBを構築できる領域内での空きを指しており、上の操作により、元々データのあった部分が「空白」になります。
つまり、"上の操作を実行しても、DB内に空白は増えるが、DB自体のサイズは小さくならない" 為、OS上で見るドライブの領域の空きが減ることはありません。
この状態において、DB内に空白があるので、DBの動作は問題ありません。
ですが、別の理由などで「OS上で見るドライブの空き」を確保したいケースもあります。このような場合には「データベースの縮小化」の作業を行います。
0. 作業前の準備
- SQLDBのバックアップを取得し、リストアに備える(仮想環境であれば、Orionサーバ、SQLサーバ共にスナップショットの取得が望ましい)
- MS SQL Management Studio を入手・導入する(※SQLDBサーバ上でなくても良い)
- 全Orionサービスを停止する(※SQLDBサービスの停止は不要)
1. SQL Management Studioを利用して、SQLDBにアクセスする(以下はMS SQL Management Studio 2017 で、saでアクセスする例)
2. Orion DB を右クリック> プロパティ> サイズの確認が可能
3. Orion DB を右クリック> タスク> 圧縮> ファイル
4. ファイル種類: データ、ファイルグループ: PRIMARY、圧縮アクション: ”未使用領域を解放” に指定して、[OK]
(※"未使用領域の解放前に..." の部分では、最小値よりも大き目の数値になっていることが確認できれば、これを利用しても良い)
5. しばらく後に表示が消えて、完了(※サイズやリソースにより、時間に差がある)
6. 再度、Orion DB を右クリック> タスク> 圧縮> データベース
7. データベース名などの情報を確認して、[OK]
8. しばらく後に表示が消えて、完了(※サイズやリソースにより、時間に差がある)
9. Orionサービスを再開し、CPUが落ち着いたら、Webコンソールにアクセスなど、通常運用に戻る
※上の情報は、以下公開情報(英語)を参考
Shrink the size of the Orion Database - SolarWinds Worldwide, LLC. Help and Support
Comments