ElasticSearch数据迁移

Title ElasticSearch数据迁移
Framework ElasticSearch
User wy8817399@vip.qq.com
Id 70
Created 3/15/26, 5:35 PM
Modified 3/15/26, 8:01 PM
Published Yes
Content

1、创建文件备份路径

 mkdir -p /backup/elasticsearch

#给权限
sudo chown -R elasticsearch:elasticsearch /mnt/elasticsearch/backups
sudo chmod -R 750 /mnt/elasticsearch/backups

 

2、编辑配置文件

# Ubuntu24.04
sudo vim /etc/elasticsearch/elasticsearch.yml

# Windows11
D:\Elasticsearch\config\elasticsearch.yml

 

3、在elasticsearch.yml 文件末尾添加仓库路径:

path.repo: ["/backup/elasticsearch"]

 

4、重启es

sudo systemctl restart elasticsearch

 

5、重置es用户密码(如果忘记),如果记得则略过该步骤

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

 

6、 创建快照仓库,这里用curl获取,如果有工具也可以直接用apifox或者postman获取

curl -u elastic -X PUT "http://localhost:9200/_snapshot/my_repo" -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "/backup/elasticsearch",
    "compress": true
  }
}
'

 

7、创建快照(导出数据,例如叫 snapshot_ubuntu)

curl -u elastic -X PUT "http://localhost:9200/_snapshot/my_repo/snapshot_ubuntu?wait_for_completion=true"

 

8、打包快照文件(准备拷贝到 Windows)

# 进入 backup 目录
cd /backup

# 打包整个 elasticsearch 目录
sudo tar -czvf es_snapshot.tar.gz elasticsearch

# 查看
ls -lh es_snapshot.tar.gz

 

9、将打包好的文件复制到windows上

# 用sz直接下载
sz es_snapshot.tar.gz

# 或者scp传输
scp your_user@ubuntu_ip:/backup/es_snapshot.tar.gz D:\Backup\Elasticsearch

 

10、 在windows上设置备份文件的存放路径

# 这是windowspower shell的操作命令,其实和mkdir没区别。简单粗暴点就直接手动鼠标右键新建文件夹
New-Item -Path "D:\Backup\Elasticsearch" -ItemType Directory -Force

 

11、解压快照文件

# 解压到 D:\Backup\Elasticsearch,简单粗暴点就直接winrar解压,都上了windows了也没必要都用命令行了
tar -xzf D:\Backup\Elasticsearch\es_snapshot.tar.gz -C D:\Backup\Elasticsearch\

 

12、修改windows上ES的yml配置文件

C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml

 

13、同样最后添加仓库路径,要用/不能用windows的\,会报错无法启动

path.repo: ["D:/Backup/Elasticsearch"]

 

12、重启ES

#这个也一样,手动吧elasticsearch.bat启动的命令行对话框关掉再也行
Restart-Service elasticsearch

 

13、重置windows上es的密码

cd "C:\Program Files\Elastic\Elasticsearch\9.3.1\bin"
.\elasticsearch-reset-password.bat -u elastic

 

14、注册相同的快照仓库

curl -u elastic -X PUT "http://localhost:9200/_snapshot/my_repo" -H "Content-Type: application/json" -d "{`"type`":`"fs`",`"settings`":{`"location`":`"D:\Backup\Elasticsearch`",`"compress`":true}}"

 

15、恢复快照

curl -u elastic -X POST "http://localhost:9200/_snapshot/my_repo/snapshot_ubuntu/_restore?wait_for_completion=true"