cassandra数据备份与迁移

简介: 单机备份 注意备份的时候schema也要备份一下,否则不能恢复快照! 1.备份单个keyspace schemacqlsh -e "DESC KEYSPACE user" > user_schema.

单机备份

注意备份的时候schema也要备份一下,否则不能恢复快照!

1.备份单个keyspace schema
cqlsh -e "DESC KEYSPACE user" > user_schema.cql
2.备份整个database schema
cqlsh -e "DESC SCHEMA" > db_schema.cql

3.导入keyspace schema
在 user_schema.cql所在的目录下打开cqlsh:
source 'user_schema.cql'
4.导入database schema:
在db_schema.cql所在的目录下打开cqlsh:
source 'db_schema.cql'
5.备份单个keyspace数据
bin/nodetool snapshot -t 20171130 user
6.备份所有的keyspace
bin/nodetool snapshot -t 20171130

-t后面指定快照的名字,备份好的数据在这个目录下
$CASSANDRA_HOME/data/yourkeyspace/table-uuid/snapshots/20171130

7.使用脚本将快照拷贝出来
将如下脚本保存为copy.sh,注意修改keyspacePath和dstKeyspacePath的值。 这个脚本只拷贝某一个keyspace的快照

#!/bin/bash
keyspacePath="cassandra-3.11.1/data/data/your_keysapce_name"
currentIp=`ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1  -d'/'`
dstKeyspacePath="/home/master/beifen/$currentIp/my_backup"
echo $currentIp
if [ ! -x "$dstKeyspacePath" ]; then  
    mkdir -p $dstKeyspacePath
fi 
for dir in `ls $keyspacePath`; do (
    currentTableName=`basename $dir`
    echo "currentTableName=$currentTableName"
    tableDstPath="$dstKeyspacePath/$currentTableName"
    echo "tableDstPath=$tableDstPath"
    if [ ! -x "$tableDstPath" ]; then  
        mkdir -p $tableDstPath
    fi 
    cp -r "$keyspacePath/$dir/snapshots/" $tableDstPath
); done

给脚本赋予执行权限:
chmod +x ./copy.sh
执行脚本:
./copy.sh
8.恢复快照
将dstKeyspacePath下的SSTable(table-uuid)目录拷贝到新的cassandra的Data目录下,执行如下命令即可
bin/nodetool refresh


集群备份

直接从一个集群导到另一个集群:

1.memTable数据刷新到SSTable
bin/nodetool flush

2.源集群导出schema

cqlsh 192.168.40.x -e "DESC KEYSPACE your_keyspace" > your_keyspace_schema.cql

your_keyspace_schema.cql 拷贝到目录集群某个目录下,然后进入到这个目录,打开cqlsh。
source 'your_keyspace_schema.cql'

3.使用脚本直接导数据
该脚本只能导一个keyspace
将如下脚本保存为 migrate.sh,注意修改keyspacePath和dstClusterIP。keyspacePath是源集群的keyspace所在目录,dstClusterIP是目标集群的IP,可以是多个。

#!/bin/bash
keyspacePath="cassandra-3.11.1/data/data/your_keyspace"
dstClusterIP=192.168.40.1,192.168.40.2,192.168.40.3
for dir in `ls $keyspacePath`; do (
    sstableloader -d $dstClusterIP -t 100 "$keyspacePath/$dir"
); done

脚本赋上执行权限:
chmod +x ./migrate.sh
执行脚本,(请确保你的PATH环境变量里配置过Cassandra的路径)
./migrate.sh

如果要备份所有的数据:

#!/bin/bash
srcDataPath="/data/janus/apache-cassandra-3.11.1/data/data"
# 可以是多个IP,逗号分隔
dstClusterIP=192.168.40.13

for keyspacePath in `ls $srcDataPath`; do (
    echo "currentkeyspace=$keyspacePath"
    for table in `ls $srcDataPath/$keyspacePath`; do (
        echo "$srcDataPath/$keyspacePath/$table"
        sstableloader -d $dstClusterIP -t 100 "$srcDataPath/$keyspacePath/$table"
    );done
);done

dstClusterIP 后面指定的是目标集群的IP,可以是多个IP。根据你的实际情况修改之。

srcDataPath 是源集群的数据目录。根据你的实际情况修改之。

执行脚本的时候,控制台会打印出当前备份的进度。

目录
相关文章
|
NoSQL 前端开发
cassandra nodetool常用命令介绍
简介 nodetool是cassandra自带的外围工具,通过JMX可以动态修改当前进程内存数据,注意cassandra是无主对等架构,默认的命令是操作本机当前进程,例如repair,如果需要做全集群修复,需要在每台机器上执行对应的nodetool命令。
4249 0
|
缓存 NoSQL SQL
cassandra 查询超时
cassandra count 超时及建议解决方式
3076 0
|
12月前
|
人工智能 API 数据库
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
Browser Use 是一款专为大语言模型设计的智能浏览器工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
3141 0
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
|
Java Spring
SpringBoot: 启动Banner在线生成工具
SpringBoot: 启动Banner在线生成工具
36742 1
SpringBoot: 启动Banner在线生成工具
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
130265 0
|
Java 数据安全/隐私保护
6-22|keytool如何将jks转化为pfx
6-22|keytool如何将jks转化为pfx
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
8551 5
一文带你认识蓝牙 GATT 协议
|
数据采集 存储
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
本文介绍了如何使用SwiftSoup库和爬虫代理技术抓取网站视频资源。通过安装SwiftSoup、获取HTML内容、解析HTML以提取视频链接,以及设置爬虫代理来绕过访问限制,可以实现高效、灵活的视频资源获取。示例代码展示了一个完整的过程,包括下载并存储视频文件到设备。结合这两种技术,可以有效应对网站访问挑战,方便地获取互联网视频资源。
721 3
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
【随想】每日两题Day.2
随想】每日两题Day.2
60 0
|
存储 SQL JSON
5、DataX(DataX简介、DataX架构原理、DataX部署、使用、同步MySQL数据到HDFS、同步HDFS数据到MySQL)(一)
5、DataX(DataX简介、DataX架构原理、DataX部署、使用、同步MySQL数据到HDFS、同步HDFS数据到MySQL)(一)