ELK Elasticsearch的備份和恢復

2021-08-28 02:33:52 字數 1793 閱讀 5136

非原創,只是留作自己查詢使用,**

elasticsearch的備份和恢復

備份 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的一大特點就是使用簡單,api也比較強大,備份也不例外。簡單來說,備份分兩步 1 建立乙個倉庫。2 備份指定索引。下面一步一步來 1 建立乙個倉庫 creating the repository 假如共享檔案儲存介質掛載在 mount backups my backup目錄...

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....