2015年3月3日 星期二

[elasticsearch] index備份與回復

在elasticsearch中需要做備份,比較普遍的有兩種方式,一種是使用內建的snapshot,另一種是做rsync,另外也有查到有人直接複製整個node資料夾,這種作法小弟沒試過,所以不敢保證不會有問題,這篇文章主要只闡述內建的snapshot作法。



  1. 建立repo
    PUT http://你的位址:9200/_snapshot/my_backup 
    {
        "type": "fs", 
        "settings": {
            "location": "/mount/backups/my_backup" 
        }
    }
    使用PUT,方法為_snapshot,
    1的部分隨便取個名字,
    2的部分為使用的檔案系統
    3的部分為儲存位置(注意:如為cluster備份需要每個shared都有這個路徑)
  2. 備份index
    PUT http://你的位址:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true
    一個repo可以包含一個或多個index備份,參數wait_for_completion可以讓指令跟備份行為同步執行,如果沒加這個參數,就會單純是背景執行,想要只備份某幾個index需要加上index名稱,
    PUT _snapshot/my_backup/snapshot_2{
        "indices": "index_1,index_2"
    }
    
  3.  恢復index
    POST /_snapshot/my_backup/snapshot_1/_restore{
        "indices": "index_1", 
        "rename_pattern": "index_(.+)", 
        "rename_replacement": "restored_index_$1" 
    } 
    1的部分是想恢復的index名稱,2是可以使用正規化恢復並重新命名index

    其餘詳細設定請參考官方文件
    http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_restoring_from_a_snapshot.html#_restoring_from_a_snapshot

沒有留言:

張貼留言

Google Analytics初學者入門簡介