ClickHouse数据目录迁移 | 您所在的位置:网站首页 › clickhouse修改数据存储位置 › ClickHouse数据目录迁移 |
当数据量达到一定值时,磁盘存储空间不足,需要进行磁盘数据迁移,这个时候就需要更改clickhouse原有的数据目录 1.修改clickhouse的config.xml文件的数据目录存储标签 将/var/lib/clickhouse原有数据目录更改为我想要的数据目录,这里我将/var/lib/clickhouse目录替换成了/mnt/clickhouse_data
将原有的clickhouse下的目录复制到新目录下 cp /var/lib/clickhouse/ -a /mnt mv clickhouse/ clickhouse_data #权限修改 chmod 777 -R clickhouse_data 可有可无 chown -R clickhouse:clickhouse clickhouse_data 重启clickhouse /etc/init.d/clickhouse-server restart 测试 clickhouse-client --password '123456' create default.table test(id Int) engine=MergeTree order by id 查看/mnt/clickhouse_data/data/default下的test表软连接是否指向新目录下的store存储分区3.以上适合初始化数据盘后,clickhouse还没有存数据的情况,如果clickhouse已经存储数据后,想要做数据盘迁移的话,可以试试,先更改存储路径,保证新表的存储是在新盘里 然后生成新的表来rename create table test_new engine=MergeTree order by id select * from test; drop table test; rename table test_new to test;然后整体表都这样操作就可以了,对原有的数据进行数据删除,新版本的ck应该满足数据软连接重新指向,老版本可能出现数据表软连接没有改变的情况,更改数据目录后,data下的软连接还是指向/var/lib下的store分区,可以试试使用rename这种方式 更老的版本可能不存在store目录的情况,数据就是存储在data目录下 4.老版本数据迁移到新版本 将老版本的data下的数据目录,整体打包到新版本的clickhouse的user_files 例 cd user_files chmod 777 -R test chown -R clickhouse:clickhouse test ATTACH TABLE test from '/mnt/clickhouse_data/user_files/test'(`id` String) ENGINE = MergeTree ORDER BY ifNuLL(id, '') SETTINGS index_granularity = 8192 使用ATTACH的方式将test的目录重新落盘 当然从老版本复制数据的时候,要保证数据没有被DDL,增删改. |
CopyRight 2018-2019 实验室设备网 版权所有 |