gradle的安裝
鏈接地址:https://gradle.org/releases/
下載binary-only
解壓下載的壓縮包到指定位置,比如:
D:\program\gradle-4.9\
配置環境變量
右鍵計算機->屬性->高級系統設置->環境變量,在系統變量區域,點擊新建,輸入變量名爲:GRADLE_HOME,變量值爲:D:\program\gradle-4.9\(根據實際情況)。找到Path,在原始內容基礎上加入%GRADLE_HOME%\bin;,必須以分號結束。
測試配置是否成功
打開一個新的cmd命令窗口或者powershell或者其他命令行工具(比如cmder),輸入命令gradle -v,如果出現類似下面的消息,則說明配置成功
安裝elasticbak
下載elasticbak
用git 命令下載
git clone https://github.com/jiashiwen/elasticbak
進入安裝目錄
cd elasticbak
用gradle編譯
gradle clean build
注意此處有坑:由於gradle編譯時訪問的中央maven庫http://10.207.2.29:8081/repository/maven-public,在國內可能會導致編譯緩慢甚至失敗,本人就是失敗的那種!!
解決方法:找到gradle的配置文件路徑,例如Windows中的路徑爲C:\Users${你的用戶名}.gradle,新建一個文件名爲init.gradle,用記事本或者類似的編輯器打開,輸入以下內容:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
重試編譯
這裏把下載地址改爲阿里雲,然後編譯快得飛起!!
Gradle錯誤:編碼GBK的不可映射字符
在項目build.gradle下添加下面代碼
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
再次編譯
編譯結束後會看到build/libs/elastictbak-1.0.jar jar包,接下來就可以用這個jar包遷移數據了
數據備份
java -jar elasticbak-5.5.1.jar --exp --cluster weicluster --host 10.3.69.137 --filesize 1000 --backupdir ./esbackupset --backupindexes "*" --threads 4
注意,如果集羣中沒有索引,那麼備份目錄esbackupset不會創建的
數據恢復
java -jar elasticbak-5.5.1.jar --imp --cluster elasticsearch --host 10.3.69.138 --restoreindex test1 --backupset esbackupset/test1 --metafile esbackupset/test1/test1.meta --threads 4
工具參數說明
–backupdir
備份目錄,該目錄下生成索引備份集(以索引名稱命名的目錄),該備份集包括索引元數據備份文件(indexname.meta)和數據備份文件(indexname_num.data)
Default: ./–backupindexes
備份索引。可以用’,’分割,支持通配符,如果備份集羣中有索引則用’”*”’,注意必須用雙引號
–backupset
恢復索引時需要指定的備份集路徑
–cluster
Elasticsearch 集羣名稱
Default: elasticsearch–exp
備份模式,與–imp不同時出現
Default: false–filesize
每個data文件的文檔數量,也是每次es批量去除數據的數量,默認 500
Default: 500–help
Default: false
–host
Elasticsearch cluster 中masterip地址,默認爲 ‘127.0.0.1’.
Default: 127.0.0.1–imp
恢復模式 ,與–exp不同時出現
Default: false–metafile
恢復索引時需要指定的meta文件,用於重建索引setting、mapping
Default:–port
Elasticsearch 端口,默認 9300
Default: 9300–restoreindex
需要恢復的索引名稱,可以與備份索引名稱不同
–threads
併發線程數
Default: 2