cassandra数据备份与迁移

摘要:
-x“$tableDstPath”];thenmkdir-p$tableDstPathficp-r“$keyspacePath/$dir/snapshots/”$tableDstPath);“完成”赋予脚本执行权限:chmod+x./copy。sh执行脚本:./copy.sh8.还原快照并将dstKeyspacePath下的SSTable目录复制到新cassandra的数据目录。执行以下命令将bin/nodetoolrefresh集群备份从一个集群直接导入到另一个集群:1.将memTable数据刷新到SSTablebin/nodetoolsflush2.从源集群_keyspace_Schema导出schemaqlsh192.168.40.x-e“DESKEYSPACEyour_keyspace”˃your。sql会更改keyspaceschema。将cql复制到目录集群中的一个目录,输入该目录,然后打开cqlsh。source'your_keyspace_架构。cql'3.使用脚本直接导入数据。此脚本只能导入一个键空间。将以下脚本保存为migrate.sh。请注意,您应该修改keyspacePath和dstClusterIP/bin/bashkeyspacePath=“cassandra3.11.1/data/data/your_keyspace”dstClusterIP=192.40.1192.168.40.2192.168.40.3fordin`ls$keyspacePath`;做已完成的脚本被授权执行:chmod+x./migrate。sh执行脚本./migrate。sh如果要备份所有数据:#!SrcDataPath是源集群的数据目录。

注意备份的时候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数据备份与迁移》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swagger的应用vue报类似警告Computed property "isLoading" was assigned to but it has no setter下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

阿里云服务器数据备份到本地

有时候,我们需要把数据从阿里云服务器上定时备份到本地。闲话不多说。 阿里云服务器环境:Windows Server 2012 R2   一、配置FTP服务器   1、打开服务管理器面板       2、点击 “管理-添加角色和功能”按钮       3、一直下一步到“服务器角色”勾选“Web服务器(IIS)”       弹出对话框 添加功能       ...

JanusGraph : 图和图数据库的简介

JanusGraph:图数据库系统简介 图(graph)是《数据结构》课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构。 为了在计算机中存储图,《数据结构》中初步介绍了图的逻辑结构和存储结构。本文对图的定义、图的作用、图的逻辑结构、图的存储结构进行了回顾,继而引出了图数据库、主流的图数据库产品,最后重点介绍了Janu...

Linux文件系统应用---系统数据备份和迁移(用户角度)

1前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的 “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决。 之前的文章对Linux的文件系统有过粗略的介绍,但是了解文件系统结构后,有什么用途呢?在本章节将围绕"基于用户角度的Linux下的数据备份和迁移"的场景,对Linux文件系统相关知识进行实地...

Cassandra与职业发展 | 阿里云栾小凡 × 蔚来汽车张旭东 × 网龙阙乃祯

活动精彩实录 | Cassandra与职业发展 点击此处观看完整活动录像​   大家好,我叫邓为,我目前在DataStax担任领航架构师。我在DataStax工作了7年多的时间,也有7年多的Cassandra经验,我在大数据和数据库领域的经验则有大约十多年的时间。很高兴今天能够邀请大家到我们的活动中,来听听我们的嘉宾们与职场相关的经验和感悟。 ​ 我们今天...

Serv-U 的升级及数据备份和迁移【转】

Serv-U 配置备份   在serv-u7.x及以上版本安装目录下,有一个文件Serv-U.Archive是serv-u的配置文件,有一个users文件夹是Serv-U的域和用户的信息,那么我们只需要备份Serv-U.Archive这个文件和users文件夹就可以了。注:这和6.x的版本有所不一样的地方,6.x版本是备份安装目录下的ServUDae...

Memcache数据备份和还原

1.memcache数据存储限制条件 Key长度250bytes 预设Value 1MB(可使用-l 设定为2MB) 默认cache过期时间最为30天(设为0表示永不过期) 2.下载memcached-tool程序 # wget https://raw.githubusercontent.com/memcached/memcached/master/scr...