Medusa 是一个为 Apache Cassandra 和 Scylla 数据库设计的数据备份工具,它支持多种存储后端,包括本地存储和云存储服务,如 Google Cloud Storage 和 Amazon S3。Medusa 使得数据库备份和恢复过程更加灵活和可靠。
功能介绍
- 高性能备份:Medusa 提供了高性能的数据备份能力,适用于大型数据库的快速备份。
- 多种存储后端:支持多种存储后端,包括本地文件系统、云存储服务等,为备份数据提供多样化的选择。
- 灾难恢复:在数据中心发生故障时,Medusa 可以用来快速恢复数据,减少业务中断时间。
- 数据迁移与克隆:Medusa 可用于迁移 Cassandra 或 Scylla 数据库到新环境,或创建测试/开发环境的数据克隆。
实际应用场景
- 数据中心故障恢复:当数据中心发生故障,使用 Medusa 快速恢复关键数据。
- 数据库迁移:在迁移到新环境或升级数据库时,使用 Medusa 备份并恢复数据。
- 环境克隆:创建测试或开发环境时,使用 Medusa 克隆生产环境的数据。
- 定期备份:定期使用 Medusa 对数据库进行完整或增量备份,确保数据安全。
使用 Docker CLI 搭建 Medusa
拉取 Medusa Docker 镜像
docker pull thelastpickle/cassandra-medusa
运行 Medusa 容器
docker run -d \
-e CASSANDRA_HOST=<cassandra_host> \
-e CASSANDRA_PORT=<cassandra_port> \
-v <local_backup_dir>:/var/lib/cassandra \
-v <medusa_config_dir>:/etc/medusa \
thelastpickle/cassandra-medusa
参数解释:
-d
: 在后台运行容器。-e CASSANDRA_HOST=<cassandra_host>
: 设置连接到的 Cassandra 主机地址。-e CASSANDRA_PORT=<cassandra_port>
: 设置 Cassandra 主机的端口。-v <local_backup_dir>:/var/lib/cassandra
: 将本地备份目录映射到容器内的/var/lib/cassandra
目录。-v <medusa_config_dir>:/etc/medusa
: 将本地 Medusa 配置目录映射到容器内的/etc/medusa
目录。thelastpickle/cassandra-medusa
: 使用的 Docker 镜像名称。
使用 Docker Compose 搭建 Medusa
创建 docker-compose.yml
文件
version: '3'
services:
medusa:
image: thelastpickle/cassandra-medusavolumes:
- <local_backup_dir>:/var/lib/cassandra
- <medusa_config_dir>:/etc/medusa
environment:
CASSANDRA_HOST: <cassandra_host>
CASSANDRA_PORT: <cassandra_port>
参数解释:
version
: Docker Compose 文件版本。image
: 指定使用的 Docker 镜像。volumes
: 映射本地目录到容器,用于备份数据和存储配置。environment
: 设置环境变量,如 Cassandra 的主机地址和端口。
启动 Medusa 服务
docker-compose up -d