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