ELKエコ:esデータバックアップとリカバリ

4215 ワード

データバックアップ

  • 説明:


  • Esは倉庫とスナップショットの概念を導入してデータのバックアップと回復を実現し、elasticsearch.ymlでは倉庫のbaseディレクトリを指定し、倉庫を作成し、スナップショットを指定した倉庫に作成するとインデックスのバックアップが実現します.
  • 解決された問題:

  • 指定インデックス
  • をバックアップ
  • すべてのインデックス
  • をバックアップ
  • 質疑応答

  • スナップショットのプロセスは、バックグラウンドで
  • を行うことができる.
  • スナップショットの場合、インデックスのすべてのデータ
  • が保存されます.
  • 同じ倉庫の下の同じスナップショットは1回しか実行できません.
  • このスナップショットは、前回の倉庫の前のスナップショットに基づいてインクリメンタル保存されます.
  • スナップショット保存内容:①インデックスデータ②クラスタグローバル状態③.探索
  • を残す
  • 同じ時点では、1つのスナップショットのみが実行されます.
  • ステップの実行

  • はelasticsearch.ymlプロファイルにおけるウェアハウスbaseディレクトリ
  • の構成
     
    # windows , 
    path.repo: ["D:\\program\\elasticsearch-5.1.1\\data\\back"]
    
  • 倉庫の作成
  •  
    POST _snapshot/my_backup_1
    {
      "type": "fs",
      "settings": {
        "location": "D:\\program\\elasticsearch-5.1.1\\data\\back\\my_backup_1",
        "max_snapshot_bytes_per_sec": "20mb",
        "max_restore_bytes_per_sec": "20mb",
        "compress": true
      }
    }
    

    構成説明:注意要求方式:POST要求は既存の倉庫構成を更新し、PUTは倉庫を再作成します.type:倉庫のタイプは共有ファイルシステムlocation:倉庫のパスを指定し、pathである必要があります.repoのサブディレクトリmax_snapshot_bytes_per_sec:スナップショットデータが倉庫に入ると、このパラメータはプロセスのストリーム制限状況を制御することができ、デフォルトは毎秒20 M max_である.restore_bytes_per_sec:倉庫からデータを復元する場合、このパラメータはプロセスのストリーム制限状況を制御し、デフォルト値:毎秒20 M注意:保留中のパスがリモートディレクトリの場合、ネットワークトラフィックが満たされないように合理的に設定する必要があります.compress:データが圧縮されているかどうか
  • スナップショット開いているすべてのインデックス
  •  
    # , 
    PUT _snapshot/my_backup_1/snapshot_1
    #  wait_for_completion=true 。
    PUT _snapshot/my_backup_1/snapshot_1?wait_for_completion=true
    
  • スナップショット指定インデックス
  •  
    PUT _snapshot/my_backup_1/snapshot_3
    {
      "indices": "my_index_1,my_index_2",
      "ignore_unavailable": true,
     "include_global_state": true
    }
    

    構成説明:indices:インデックスバックアップignore_を指定するunavailable:indicesで指定したインデックスの一部が存在しない場合、無視するかどうかは、デフォルトでtrueで存在しないインデックスを無視します.include_global_state:クラスタのグローバルステータスがスナップショットの一部として保存されるのを阻止するかどうか.
    これでバックアップ操作が完了する.

    スナップショットでのリカバリ

  • スナップショットからのリカバリ


  •  
    # 
    POST _snapshot/my_backup/snapshot_1/_restore
    # 
    POST _snapshot/my_backup/snapshot_1/_restore?wait_for_completion=true
    

    スナップショットのインデックスデータをすべて復元する注意:関連するインデックスがすでに存在する場合は、まずインデックスをPOST index_を閉じる必要があります.name/_closeインデックスを開くPOST index_name/_open
  • 指定したインデックスを復元し、名前を変更


  •  
    POST _snapshot/my_backup/snapshot_2/_restore
    {
      "indices": "my_index_1,my_index_2",
      "rename_pattern": "my_index_(.+)",
      "rename_replacement": "restored_my_index_$1"
    } 
    

    バックアップ関連の残りのAPI

  • スナップショットの情報の取得


  •  
    # 
    GET _snapshot/my_backup/snapshot_1
    # 
    GET _snapshot/my_backup/_all
    
  • スナップショットの削除


  •  
    DELETE _snapshot/my_backup/snapshot_2
    
  • スナップショットの進行状況の監視


  •  
    GET _snapshot/my_backup/snapshot_1
    GET _snapshot/my_backup/snapshot_1/_status
    

    この2つのAPIはいずれもスナップショットの進行状況の違いを監視することができる:第2のAPIはより詳細な監視情報を提供する第1のAPIはスナップショットメカニズムが同じスレッドプールを使用し、スナップショットが非常に大きなスライスである場合、ステータス更新間隔が大きくなる.APIは競合スレッドプールリソースであり、第2のAPIは個別のスレッドプールで実行されるからである.総合的に考慮してスナップショットAPIは第2のAPIを使用して結果を返す
     
    {
       "snapshots": [
          {
             "snapshot": "snapshot_3",
             "repository": "my_backup",
             "state": "IN_PROGRESS", 
             "shards_stats": {
                "initializing": 0,
                "started": 1, 
                "finalizing": 0,
                "done": 4,
                "failed": 0,
                "total": 5
             },
          ........
      ]
    }
    

     
  • スナップショットのキャンセル


  •  
    # , 
    DELETE _snapshot/my_backup/snapshot_2

    作者:3517 a 85 fd 522リンク:https://www.jianshu.com/p/f6d10f97a20d出典:簡書の著作権は作者の所有である.商業転載は著者に連絡して許可を得てください.非商業転載は出典を明記してください.