clickhouse备份
1、备份表结构
语法
#备份bgecd数据库中的user表结构
clickhouse-client --user bgecd --password 123456 --port 9000 -q "SHOW CREATE TABLE bgecd.user format CSV" >> "/data/backup/bgecd.user.sql"
可以使用脚本备份库中所有表
#备份clickhouse表结构
outdir=/data/backup
user='bgecd'
pw='123456'
port=9000
clickhouse-client --user $user --password $pw --port $port -q "show databases" > $outdir/db.txt
while read dblist
do
clickhouse-client --user $user --password $pw --port $port -q "SHOW TABLES FROM $dblist" >> $outdir/table.txt
while read table
do
echo "export ${table} from database ${dblist}"
clickhouse-client --user $user --password $pw --port $port -q "SHOW CREATE TABLE ${dblist}.${table} format CSV" >> "${outdir}/clickhouse-backup.sql"
done < $outdir/table.txt
done < $outdir/db.txt
rm -rf $outdir/db.txt
rm -rf $outdir/table.txt
2、备份数据
语法
#备份bgecd库中的user表数据
clickhouse-client --user bgecd --password 123456 --multiquery -h 127.0.0.1 --database="bgecd" --query="select * from bgecd.user FORMAT CSV" >user.csv
脚本批量备份
#备份clickhouse数据
outdir=/data/backup
user='bgecd'
pw='123456'
port=9000
db='bgecd'
clickhouse-client --user $user --password $pw --port $port -nq "use $db;show tables;" > $outdir/table.txt
while read table
do
echo "export ${table} from database ${db}"
clickhouse-client --user ${user} --password ${db} --multiquery -h 127.0.0.1 --port ${port} --database=${db} --query="select * from ${db}.${table} FORMAT CSV">> "${outdir}/${db}-${table}.csv"
done < $outdir/table.txt
rm -rf $outdir/table.txt
3、恢复
语法
#恢复bgecd库中的user表数据
clickhouse-client --user bgecd --password 123456 --multiquery -h 127.0.0.1 --database="bgecd" --query="insert into bgecd.user on cluster cluster_bigdata FORMAT CSV"<./user.csv