elasticsearch 使用快照方式遷移資料

2021-10-01 12:20:36 字數 2822 閱讀 8089

註冊快照倉庫

es是通過快照的方式來實現資料備份,並且是以增量的方式,所以一般第一次做的話會花費較長的時間。為了做快照,那麼就需要註冊乙個快照倉庫,告訴es我們的快照應該如何儲存以及將快照儲存到**.

es的快照倉庫支援如下幾種形式:

共享的檔案系統,如nas

amazon s3

hdfs (hadoop distributed file system)

azure cloud

通常選擇註冊第一種形式。

任意選擇乙個節點,執行如下命令

$ curl -xput   -d '

}'

這樣就註冊了乙個名為my_backup的倉庫,這裡的location需要注意,最好是設定乙個每個節點都能訪問並且有寫許可權的共享目錄,如smb目錄等(如果整個集群就乙個節點那麼設定為本地目錄也無所謂)。 我自己在做的時候由於設定了本地目錄/data/backups/elasticsearch, 最後做出來發現快照被分別儲存在集群每個節點的/data/backups/elasticsearch目錄下,並且乙個節點儲存了一些資訊。最後做資料遷移的時候,不得不從每個節點將快照檔案拷貝出來,然後合併到一起。

除了location外,還有一些其他選項可以設定:

compress 是否壓縮

max_snapshot_bytes_per_sec 製作快照的速度,預設20mb/s

max_restore_bytes_per_sec 快照恢復的速度,預設20mb/s

更新倉庫設定如下:

curl -xpost /

}

這裡需要注意一點是,註冊倉庫用的是put, 而更新倉庫設定用的是post.

檢查註冊的倉庫資訊

$ curl -xget
開始備份

指定快照名稱為snapshot_20150812

$ curl -xput  /snapshot_20150812
執行上面的上面的命令會馬上返回,並在後台執行備份操作, 如果想等到備份完成,可以加上引數wait_for_completion=true

$ curl -xput /snapshot_20150812?wait_for_completion=true
預設是備份所有的索引indices, 如果要指定index,可以

curl -xput /snapshot_20150812

這個備份過程需要的時間視資料量而定.

檢視備份狀態

整個備份過程中,可以通過如下命令檢視備份進度

curl -xget /snapshot_20150812/_status
主要由如下幾種狀態:

initializing 集群狀態檢查,檢查當前集群是否可以做快照,通常這個過程會非常快

started 正在轉移資料到倉庫

finalizing 資料轉移完成,正在轉移元資訊

done 完成

failed 備份失敗

取消備份

curl -xdelete /snapshot_20150812
恢復備份

curl -xpost /snapshot_20150812/_restore
同備份一樣,也可以設定wait_for_completion=true等待恢復結果

curl -xpost /snapshot_20150812/_restore?wait_for_completion=true
預設情況下,是恢復所有的索引,我們也可以設定一些引數來指定恢復的索引,以及重命令恢復的索引,這樣可以避免覆蓋原有的資料.

curl -xpost /snapshot_20150812/_restore

上面的indices, 表示只恢復索引』index_1』

rename_pattern: 表示重新命名索引以』index_』開頭的索引.

rename_replacement: 表示將所有的索引重新命名為』restored_index_***』.如index_1會被重新命名為restored_index_1.

檢視恢復進度

curl -xget
curl -xget restored_index_1
取消恢復,只需要刪除索引,即可取消恢復

curl -xdelete
備份快照遷移

如果需要將快照遷移到另乙個集群.只需要將備份檔案全部拷貝到要遷移的機器上, 然後再在新的集群上註冊乙個快照倉庫,設定location的位置為備份檔案所在的地方,然後執行恢復備份的命令即可。

檢視所有索引:

curl '' 

curl '' -s |less

檢視單個索引:

curl 10.0.67.23:9200/_cat/indices/ad-2017.*
檢視快照資訊:

curl -xget "10.0.67.21:9200/_snapshot/es_backup/snapshot-20171123-16"
恢復快照:

curl -xpost "10.0.67.21:9200/_snapshot/es_backup/snapshot-20171123-16/_restore" -d''

誰在使用Elasticsearch

github github使用elasticsearch搜尋20tb的資料,包括13億的檔案和1300億行的 這個不用介紹了吧,碼農們都懂的,github在2013年1月公升級了他們的 搜尋,由solr轉為elasticsearch,目前集群規模為26個索引儲存節點和8個客戶端節點 負責處理搜尋請求...

ElasticSearch使用入門

es的安裝 啟動 cd.elasticsearch 2 4 3 bin elasticsearch bin elasticsearch d 後台執行 es安裝驗證 注意 預設啟動的時候es繫結的網路ip是本機127.0.0.1,只能通過這個ip訪問 兩種修改方式 1 修改config elastic...

ElasticSearch使用學習

elasticsearch是乙個基於lucene的搜尋服務,它通過倒排索引的方法提供了全文搜尋的能力。1 插入資料 elasticsearch中存放資料的為文件,有索引及型別名,如下插入兩文件 2 檢索文件 1 檢索id為1的文件 curl x get elasticsearch.in.netwa....