ワークシート行レコードのログのアーカイブ手順
MongoDBのmdworksheetlogデータベースにおける継続的なストレージ増加の負担を軽減するため、ワークシート行レコードのログをアーカイブし、新しいMongoDBインスタンスへ保存できます。アーカイブ済みの履歴ログは、ページ上で引き続き閲覧可能です。
アーカイブ構成手順
-
アーカイブ用MongoDBインスタンスの事 前デプロイ
- MongoDBデプロイドキュメント(シングルノード)をご参照ください。
-
ミラーイメージのダウンロード(オフラインパッケージダウンロード)
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-archivetools:1.0.7 -
下記のような内容で
config.json構成ファイルを作成[{"id": "1","text": "説明文","start": "2022-12-31 16:00:00","end": "2023-12-31 16:00:00","src": "mongodb://root:password@192.168.1.20:27017/mdworksheetlog?authSource=admin","archive": "mongodb://root:password@192.168.1.30:27017/mdworksheetlog_archive_2023?authSource=admin","table": "wslog*","delete": true,"batchSize": 500,"retentionDays": 0,"concurrencyLimit": 100}]-
上記形式に従い、必要に応じてデータテーブルの設定やアーカイブ範囲を調整・追加してください。
-
注意:構成ファイルに記載する時刻は協定世界時(UTC)です。
- UTC: 2023-05-31 16:00:00 → UTC+8(中国標準時): 2023-06-01 00:00:00(8時間加算)
- UTC: 2023-06-30 16:00:00 → UTC+8(中国標準時): 2023-07-01 00:00:00(8時間加算)
パラメータ説明:
パラメータ 説明 id タスク識別ID text 説明文 start アーカ イブデータの開始時刻(UTC)。retentionDays > 0の場合は無効。対象はこの時刻以上。 end アーカイブデータの終了時刻(UTC)。retentionDays > 0の場合は無効。対象はこの時刻未満。 src ソースデータベースの接続アドレス archive アーカイブ先データベースの接続アドレス。空欄時はアーカイブせず、削除のみ実施 table データテーブル名 delete true固定。アーカイブ後に検証件数が正しければソースDBの対象データを削除 batchSize 1バッチごとの処理件数 retentionDays 0がデフォルト。0より大きい場合、X日前のデータを定期削除。start/endは無効、24時間ごと自動実行 concurrencyLimit 並列処理上限。通常は100で維持 -
-
config.jsonファイルを配置したディレクトリで、アーカイブサービスを起動docker run -d -it -v $(pwd)/config.json:/usr/local/MDArchiveTools/config.json -v /usr/share/zoneinfo/Etc/GMT-8:/etc/localtime registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-archivetools:1.0.7
その他事項:
- リソース使用量:実行中はソースDB・アーカイブDB・実行端末に一定の負荷がかかります。業務の閑散時間帯での実行を推奨します。
- ログの確認方法:
- バックグラウンド実行(デフォルト):
docker ps -aでコンテナID確認後、docker logs <コンテナID>で確認。 - フォアグラウンド実行:
-dパラメータを削除し、ログがリアルタイムで出力されます。
- バックグラウンド実行(デフォルト):
config.json内のアーカイブDB名は「ソースデータベース名_archive_日付」の形式推奨。毎回archiveのDB名を変更してください。- アーカイブ終了後に件数検証があり、一致しない場合は削除が行われません。同じDB名で再実行すると、アーカイブ先テーブルの件数が増え、削除処理が止まる場合があります。
- ディスク領域の再利用:アーカイブ後、ソースDBの対象データは削除されます。削除済データのディスク領域は即時開放されず、同じテーブル作業で再利用されます。
アーカイブデータの可視化設定
-
appextensions.json構成ファイルを作成例:
/data/mingdao/script/volume/worksheet/appextensions.json{"Log.Archive": [{"id": "1","text": "Archive-2023","uri": "mongodb://root:password@192.168.1.30:27017/mdworksheetlog_archive_2023?authSource=admin;socketTimeout=30s","start": "2023-01-01","end": "2023-12-31"}]}パラメータ説明:
- id:デフォルト1。複数アーカイブデータの場合は連番
- text:画面上に表示する名称
- uri:アーカイブDBへの接続アドレス
- start:アーカイブデータの開始日
- end:アーカイブデータの終了日
-
構成ファイルのマウント
- スタンドアロンモード
- クラスタモード
docker-compose.yamlでmicroserviceのvolumesに以下を追加します。
- ./volume/worksheet/appextensions.json:/usr/local/MDPrivateDeployment/worksheet/Config/appextensions.json
構成ファイルのマウントを参照し、作成した構成ファイルをmicroserviceコンテナの/usr/local/MDPrivateDeployment/worksheet/Config/appextensions.jsonにマウントします。
- microserviceを再起動します。