elasticsearch的一大特點就是使用簡單,api也比較強大,備份也不例外。簡單來說,備份分兩步:1、建立乙個倉庫。2、備份指定索引。下面一步一步來:
1、建立乙個倉庫(creating the repository)
假如共享檔案儲存介質掛載在/mount/backups/my_backup目錄下,需要在elasticsearch.yml新增如下配置:
path.repo: ["/mount/backups/my_backup"]
否則在註冊時,報如下錯誤:
備份資料之前,要建立乙個倉庫來儲存資料,倉庫的型別支援shared filesystem, amazon s3, hdfs和azure cloud。下面以檔案系統為例:
put
}上面的**,我們建立了乙個名叫my_backup
的備份,存放在本地的/mount/backups/my_backup
目錄下。除了location
引數外,還可以通過max_snapshot_bytes_per_sec
和max_restore_bytes_per_sec
來限制備份和恢復時的速度,如下:
post /
}注意:第一段**用的是put
請求,用來建立repository,第二段**用的是post
請求,來修改已經存在的repository。
2、備份索引
倉庫建立好之後就可以開始備份了。乙個倉庫可以包含多個快照(snapshots),快照可以存所有的索引,部分索引或者乙個單獨的索引。可以給索引指定乙個唯一的名字:
put /snapshot_1
上面的**會將所有正在執行的索引,備份到my_backup倉庫下乙個叫snapshot_1的快照中。上面的api會立刻返回,然後備份工作在後台執行。如果你想api同步執行,可以加wait_for_completion
標誌:
put /snapshot_1?wait_for_completion=true
上面的方法會在備份完成後才返回,如果資料量大的話,會花很長時間。
如果只想備份部分索引的話,可以加上indices
引數:
put /snapshot_2
3、刪除備份
不要手動刪除檔案(elasticsearch一貫主張使用api操作,尤其是大集群中),刪除snapshot_2:
delete /snapshot_2
如果備份正在後台進行,也可以直接刪除來取消此次備份。
4、檢視備份資訊
直接使用get
請求即可:
get /snapshot_2
返回類似下面的值:}]
}如果要檢視所有索引的資訊,使用如下api:
get /_all
另外還有個一api可以看到更加詳細的資訊:
get /snapshot_3/_status
備份好後,恢復就更容易了,恢復snapshot_1裡的全部索引:
post /snapshot_1/_restore
這個api還有額外的引數:
post /snapshot_1/_restore
引數indices
設定只恢復index_1索引,引數rename_pattern
和rename_replacement
用來正則匹配要恢復的索引,並且重新命名。和備份一樣,api會立刻返回值,然後在後台執行恢復,使用wait_for_completion
標記強制同步執行。
另外可以使用下面兩個api檢視狀態:
get
get
如果要取消恢復過程(不管是已經恢復完,還是正在恢復),直接刪除索引即可:
delete
ELK Elasticsearch的備份和恢復
非原創,只是留作自己查詢使用,elasticsearch的備份和恢復 備份 elasticsearch的一大特點就是使用簡單,api也比較強大,備份也不例外。簡單來說,備份分兩步 1 建立乙個倉庫。2 備份指定索引。下面一步一步來 1 建立乙個倉庫 creating the repository 假...
Elasticsearch的資料備份和恢復以及遷移
目錄 1.為什麼備份?2.資料備份 3.資料恢復 4.es備份資料遷移目標伺服器 5.指令碼備份恢復 常見的資料庫都會提供備份機制,以解決在資料庫無法使用的情況下通過備份來恢復資料減少損失。elasticsearch 雖然有良好的容災性,但以下原因,其依然需要備份機制 1 資料災備 在整個集群無法正...
mysql利用mysqldump備份和恢復
mysqldump使用語法 mysqldump u 使用者 h host p 密碼 dbname table 路徑 遠端備份單庫例子 mysqldump uroot pabc123456 h192.168.1.101 zabbix gzip mysql data back zabbix users....