メインコンテンツへ移動

ワークシート行レコードのログのアーカイブ手順

MongoDBのmdworksheetlogデータベースにおける継続的なストレージ増加の負担を軽減するため、ワークシート行レコードのログをアーカイブし、新しいMongoDBインスタンスへ保存できます。アーカイブ済みの履歴ログは、ページ上で引き続き閲覧可能です。


アーカイブ構成手順​

  1. アーカイブ用MongoDBインスタンスの事前デプロイ

  2. ミラーイメージのダウンロード(オフラインパッケージダウンロード)

    docker pull nocoly/archivetools:1.0.7
  3. 下記のような内容で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データテーブル名
    deletetrue固定。アーカイブ後に検証件数が正しければソースDBの対象データを削除
    batchSize1バッチごとの処理件数
    retentionDays0がデフォルト。0より大きい場合、X日前のデータを定期削除。start/endは無効、24時間ごと自動実行
    concurrencyLimit並列処理上限。通常は100で維持
  4. config.jsonファイルを配置したディレクトリで、アーカイブサービスを起動

    docker run -d -it -v $(pwd)/config.json:/usr/local/MDArchiveTools/config.json -v /usr/share/zoneinfo/Etc/GMT-8:/etc/localtime nocoly/archivetools:1.0.7

その他事項:

  • リソース使用量:実行中はソースDB・アーカイブDB・実行端末に一定の負荷がかかります。業務の閑散時間帯での実行を推奨します。
  • ログの確認方法:
    • バックグラウンド実行(デフォルト):docker ps -aでコンテナID確認後、docker logs <コンテナID>で確認。
    • フォアグラウンド実行:-dパラメータを削除し、ログがリアルタイムで出力されます。
  • config.json内のアーカイブDB名は「ソースデータベース名_archive_日付」の形式推奨。毎回archiveのDB名を変更してください。
  • アーカイブ終了後に件数検証があり、一致しない場合は削除が行われません。同じDB名で再実行すると、アーカイブ先テーブルの件数が増え、削除処理が止まる場合があります。
  • ディスク領域の再利用:アーカイブ後、ソースDBの対象データは削除されます。削除済データのディスク領域は即時開放されず、同じテーブル作業で再利用されます。

アーカイブデータの可視化設定​

  1. appextensions.json構成ファイルを作成

    例:/data/hap/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:アーカイブデータの終了日
  2. 構成ファイルのマウント

docker-compose.yamlでmicroserviceのvolumesに以下を追加します。

- ./volume/worksheet/appextensions.json:/usr/local/MDPrivateDeployment/worksheet/Config/appextensions.json
  1. microserviceを再起動します。