目錄
1. 為什麼備份?
2. 資料備份
3. 資料恢復
4. es備份資料遷移目標伺服器
5. 指令碼備份恢復
常見的資料庫都會提供備份機制,以解決在資料庫無法使用的情況下通過備份來恢復資料減少損失。 elasticsearch 雖然有良好的容災性,但以下原因,其依然需要備份機制:
1) 資料災備:在整個集群無法正常工作時,可以及時從備份中恢復資料。
2) 歸檔資料:隨著資料的積累,比如日誌類的資料,集群的儲存壓力會越來越大,不管是記憶體還是磁碟都要承擔資料增多帶來的壓力,此時我們往往會選擇只保留最近一段時間的資料,比如將1個月之前的資料刪除。如果不想刪除這些資料,以備後續有檢視需求,那麼就可以將這些資料以備份的形式歸檔。
3) 遷移資料:當你需要將資料從乙個集群遷移到另乙個集群時,也可以用備份的方式來實現。
elasticsearch備份兩種方式:
1) 將資料匯出成文字檔案,比如通過 elasticdump
、esm
等工具將儲存在 elasticsearch 中的資料匯出到檔案中。
2) 備份 elasticsearch data 目錄中檔案的形式來做快照,借助 elasticsearch 中 snapshot 介面實現的功能。
第一種方式相對簡單,在資料量小的時候比較實用,當應對大資料量場景效率就顯得乏力。這裡本文著重講解下第二種備份方式,即 snapshot api 的使用。其次,備份集群的唯一可靠方法是使用快照和還原功能。
版本相容性:
1) 5.x中建立的索引快照可以還原為6.x
2) 2.x中建立的索引快照可以還原為5.x
3) 1.x中建立的索引快照可以還原為2.x
官方文件參考
1) 設定備份目錄
修改elasticsearch.yml
建立es資料備份的資料目錄
2) 建立倉庫(creating the repository)
備份資料之前,要建立乙個倉庫來儲存資料,倉庫的型別支援shared filesystem, amazon s3, hdfs、azure cloud選擇。 }'
3) 建立快照(備份索引)
乙個倉庫可以擁有同乙個集群的多個快照。在乙個集群中快照擁有乙個唯一名字作為標識。在倉庫 datasvr 中建立名字為 snapshot_1 的快照。
備份名稱為snapshot_1 (自行定義備份名稱)
同步執行,加wait_for_completion 標誌,備份完成後才返回,如果資料量大的話,會花很長時間
如果只想備份部分索引的話,可以加上indices 引數:'
執行完後,檢視備份資料目錄下,已經備份在備份目錄下
4) 檢視倉庫資訊
瀏覽器中檢視備份倉庫資訊
#5) 檢視倉庫儲存的所有快照
瀏覽器中檢視備份倉庫某個快照資訊
snapshot_1
瀏覽器中檢視備份倉庫所有快照資訊
_all
6) 刪除快照
# curl -x delete "localhost:9200/_snapshot/datasvr/snapshot_1"
7) 刪除倉庫
倉庫被登出時,elasticsearch 只刪除倉庫儲存快照的引用位置,快照本身沒有被刪除並且在原來的位置
# curl -x delete "localhost:9200/_snapshot/datasvr"
集群備份恢復:
注意:以上是單機的備份方法,集群的備份恢復方法和單機模式一樣,只不過需要增加乙個集群共享目錄用來存放備份資料,使所有節點可訪問。
1) 配置集群共享目錄
# yum install sshfs
2) 建立集群共享目錄,並將各節點備份目錄掛載到共享目錄
建立集群共享目錄
# mkdir -p /home/backup/elk_share
共享目錄掛載
# sshfs [email protected]:/home/backup/elk_share /home/backup/elk -o allow_other
3) 資料備份恢復與單機備份恢復一樣,參考單機備份恢復
官方文件參考
用過head外掛程式檢視,資料已經恢復:
1) 源資料備份
參考以上第二步
2) 源資料備份目錄拷貝目標es備份目錄下
注意:這裡為了方便,源備份目錄和目標備份目錄一致。
3) 目標es機器建立源es同名倉庫
4) 目標es檢視快照
5) 目標es執行恢復操作
將用到的api封裝成shell指令碼進行備份恢復操作較為方便,後續有時間在補充。
elasticsearch 同步myql 資料
專案 elastic 搜尋資料庫內容,達到快速匹配的效果 elasticsearch 上面是官方鏈結,我也對它不做過多介紹,有興趣的小夥伴可以直接跳轉。目前我們是通過elastic node的api呼叫它的 直接npm install s elasticsearch 同步mysql的手段 logst...
Elasticsearch與Mysql資料同步
elasticsearch就是專門用於搜尋的,所以我們會將新增的資料放入elasticsearch中用於搜尋,就有這樣的常見的場景,需要將mysql中的資料同步到elasticsearch中。mysql資料同步到es型別 mysql資料同步到es中分為兩種,分別是全量同步和增量同步。全量同步表示第一...
ElasticSearch怎樣加入,檢索資料
elasticsearch是乙個分布式的文件 document 儲存引擎。它能夠實時儲存並檢索複雜資料結構 序列化的json文件。換言說,一旦文件被儲存在elasticsearch中,它就能夠在集群的任一節點上被檢索。當然,我們不僅須要儲存資料。還要高速的批量查詢。儘管已經有非常多nosql的解決方...