solrCloud模式下shard搬迁

1、环境

solrCloud部署,solr版本6.0.

2、操作办法

2.1 手工复制

作起来比较复杂的方式,好处是对solr压力比较小,因为不需要进行数据的同步。

1、删除老的shard
http://127.0.0.1:8983/solr/admin/collections?action=DELETEREPLICA&collection=shards201806&shard=shard1&replica=core_node2&deleteInstanceDir=false&deleteDataDir=false&deleteIndex=false&wt=json

2、移动老shard对应的操作系统文件到新节点的目录
cp -r shards201806_shard1_replica1/ ../solrhome2

3、添加副本 ,在新节点的url调用添加副本
http://127.0.0.1:8984/solr/admin/collections?action=ADDREPLICA&collection=shards201806&shard=shard1&node=127.0.0.1:8984_solr&instanceDir=/home/solr/miaohq/solrhome2/shards201806_shard1_replica1&dataDir=/home/solr/miaohq/solrhome2/shards201806_shard1_replica1/data&wt=json&name=shards201806_shard1_replica1

2.2 Solr完成复制

操作起来比较简单的方式,坏处是对solr压力有点大,存在数据的复制(solr自动完成)

1、添加副本 注意同时指定副本所在的节点 用下面参数指定:createNodeSet=127.0.0.1:8983_solr
http://127.0.0.1:8984/solr/admin/collections?action=CREATESHARD&collection=shards201806&shard=shard2&createNodeSet=127.0.0.1:8983_solr

2、看solr日志等待数据同步完成
3、删除原来的老leader(数据仍然保留)
http://127.0.0.1:8983/solr/admin/collections?action=DELETEREPLICA&collection=shards201806&shard=shard2&replica=core_node4&deleteInstanceDir=false&deleteDataDir=false&deleteIndex=false&wt=json

4、新添加的副本自动变成leader 。

3.更简单的办法

直接把需要缩的节点的数据拷贝到老节点下面,然后删除zk上的solr数据,重启即可。

顺便说下

createNodeSet可以设置一个特殊的值EMPTY,设置了之后可以创建空的不含任何shard的collection。

你可能感兴趣的:(solrCloud模式下shard搬迁)