注意备份的时候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/bashkeyspacePath="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 $currentIpif [ ! -x "$dstKeyspacePath" ]; then mkdir -p $dstKeyspacePathfi 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/bashkeyspacePath="cassandra-3.11.1/data/data/your_keyspace"dstClusterIP=192.168.40.1,192.168.40.2,192.168.40.3for dir in `ls $keyspacePath`; do ( sstableloader -d $dstClusterIP -t 100 "$keyspacePath/$dir"); done

脚本赋上执行权限:

chmod +x ./migrate.sh

执行脚本,(请确保你的PATH环境变量里配置过Cassandra的路径)

./migrate.sh

如果要备份所有的数据:

#!/bin/bashsrcDataPath="/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 是源集群的数据目录。根据你的实际情况修改之。

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

cassandra 数据导出导入_cassandra数据备份与迁移相关推荐

  1. BCP导出导入大容量数据实践

    前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文 件.各有优缺点,以适用不同的需求.下面介绍 ...

  2. 在pl/sql中使用exp/imp工具实现oracle数据导出/导入

    在pl/sql中使用exp/imp工具实现oracle数据导出/导入 2006年11月19日 星期日 10:59 Oracle 数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令 ...

  3. 【redis】三种redis数据导出导入方式

    文章目录 1.概述 一.redis-dump方式 二.aof方式导入 三.rdb文件迁移方式 1.概述 转载:三种redis数据导出导入方式 一.redis-dump方式 redis-dump安装 y ...

  4. reids数据导出导入

    redis数据导出导入 1.结构 库 ip dir地址 源库 192.168.0.15 /usr/local/redis/ 目标库 192.168.0.174 /usr/local/redis/ 1. ...

  5. 不同版本的SQL Server之间数据导出导入的方法及性能比较

    原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...

  6. 涂抹mysql笔记-数据导出导入

    数据导出导入 <>利用CSV存储引擎加载数据:CSV存储引擎基于CSV格式文件存储数据,CSV格式是纯文本格式的文件,以逗号分隔取值.CSV引擎表的所有列值不能为空.Excel可以直接打开 ...

  7. 【MySQL基础篇】数据导出导入权限与local_infile参数

    [MySQL基础篇]数据导出导入权限与local_infile参数 问题背景 数据导出测试 创建测试库(在主库进行) 测试数据导出(在从库进行) 测试数据导入(在主库进行) 问题背景 MySQL高可用 ...

  8. mysql 导入 rdb_几种redis数据导出导入方式

    几种redis数据导出导入方式 1 环境说明: 192.168.1.101 node1 redis源实例 192.168.1.102 node2 redis目标实例 192.168.1.103 nod ...

  9. pandas——数据移位、数据转换、数据合并、数据导出和日期数据的处理,时间序列等

    pandas统计分析(下) 本文主要介绍使用pandas进行数据移位.数据转换.数据合并.数据导出和日期数据的处理,时间序列等. 数据移位 数据移位就是在分析数据时,需要移动到上一条,在pandas中 ...

最新文章

  1. LGOJ P3919【模板】可持久化数组(可持久化线段树/平衡树)
  2. Swift之源码编译的环境搭建和编译流程
  3. oracle将查询结果声明为伪表,Oracle的伪列和伪表
  4. 关于Spring的几个问题
  5. shell中用grep查找并且不输出_grep awk 搜索日志常用命令
  6. IOS学习笔记04---编写第一个C语言程序-Hello World
  7. 记录一个扫描二维码报错问题
  8. Go开源说第十七期 分布式事务DTM
  9. Linux 网页挂马实验,网页挂马常见漏洞分析与检测
  10. gdb调试时no debugging symbols found
  11. 毫秒级返回数据,TDengine 在大疆车载智能驾驶云端平台上的应用
  12. 南京三只松鼠java_又出新模式?三只松鼠南京首家品牌集合店开业
  13. 大学计算机品牌活动总结,大学活动总结(精选5篇)
  14. loj 2495. 「AHOI / HNOI2018」转盘
  15. C语言实现扫雷小游戏(扩展版)
  16. css电脑字体,CSS字体
  17. Matlab实现热带气旋不同风期的风速转换
  18. Windows10下pylon Viewer读取basler相机图像
  19. scrapy爬取酒店信息
  20. 一组漫画告诉你Linux 系统有什么

热门文章

  1. 2个月的程序员当了高中信息技术教师
  2. 3.python读取时间间隔
  3. HTTPS加密过程详解
  4. pythonturtle库函数详解_Python turtle库详解
  5. win11下Jenkins安装及配置
  6. redis4.0.14哨兵自动故障迁移失败
  7. cache--存储器系统
  8. 百度APP尝试电商新业务“百度返现”
  9. html图文阅读,图文混排
  10. 3款热门python库的使用方法,超详细