Dem*_*oid 4 database clickhouse
需要备份Clickhouse DB,有的表分区了,有的没有。
如果可能,请提供一些脚本或代码以便更好地理解。
请先查看官方页面Official Doc's
有多种方式进行备份。但他们都有自己的缺点。
方法一
转储数据的一般步骤:
有关格式列表,请参阅此.
clickhouse-client --query="SELECT * FROM table FORMAT Native" > table.native
Native is the most efficient format
CSV, TabSeparated, JSONEachRow are more portable: you may import/export data to another DBMS.
Dump of metadata:
clickhouse-client --query="SHOW CREATE TABLE table" --format=TabSeparatedRaw > table.sql
Restore of metadata:
clickhouse-client < table.sql
Restore of data:
clickhouse-client --query="INSERT INTO table FORMAT Native" < table.native
Run Code Online (Sandbox Code Playgroud)
方法二
ALTER TABLE ... FREEZE PARTITION命令似乎只是创建一个分区的本地快照
ALTER TABLE ... 冻结分区
方法三
这个工具是非常简单的 ClickHouse 备份和恢复支持 S3 轻松创建和恢复所有或特定表的备份,您可以编写查询和 cron 作业,支持 S3 上的增量备份。
用于日常备份和上传的简单 cron 脚本
#!/bin/bash
BACKUP_NAME=my_backup_$(date -u +%Y-%m-%dT%H-%M-%S)
clickhouse-backup create $BACKUP_NAME
clickhouse-backup upload $BACKUP_NAME
Run Code Online (Sandbox Code Playgroud)
方法四
数据目录的二进制副本。
/var/lib/clickhouse/
对于非复制表:停止服务器,rsync/scp/etc...它的数据目录,启动服务器。
确保文件访问权限和所有权正确。