rbd-db数据迁移至外部数据库
部署外部数据库
- 安装Docker
export VERSION=19.03 && curl -fsSL http://rainbond-pkg.oss-cn-shanghai.aliyuncs.com/releases/docker/install-docker.sh | bash -s docker
systemctl start docker
- 运行数据库
mkdir -p /opt/rainbond/rbd-db/data/ && docker run --name rbd-db --restart=always -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD="yes" -v /opt/rainbond/rbd-db/data:/var/lib/mysql -i registry.cn-hangzhou.aliyuncs.com/goodrain/rbd-db:8.0.19
数据库部署过程仅供参考,可根据自身需求选择数据库部署方式。
相关要求
外部数据库版本要求:MySQL5.7/8.0。
Rainbond数据库需要一些特殊配置,配置文件参考如下
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 服务端默认utf8编码
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
# Compatible with versions before 8.0
default_authentication_plugin=mysql_native_password
skip-host-cache
skip-name-resolve
[client]
#设置客户端编码
default-character-set=utf8mb4
[mysql]
# 设置mysql客户端默认编码
default-character-set=utf8mb4
迁移数据
注意:数据备份之后请勿在平台上继续进行操作,以免造成数据不一致
- 获取原来的数据库密码
kubectl exec -it -n rbd-system rbd-db-0 -- env|grep MYSQL_ROOT_PASSWORD
- 替换变量
MYSQL_ROOT_PASSWORD后,备份数据库并确认数据是否完整(含有console及region两个库)
kubectl exec -it rbd-db-0 -n rbd-system -- mysqldump -p$MYSQL_ROOT_PASSWORD --all-databases > all.sql
- 在新的数据库中导入数据
示例命令
mysql -uroot -p数据库密码 < all.sql
修改数据库连接地址
数据导入后,修改Rainbond组件连接数据库主机的IP即可。
- rbd-app-ui
kubectl edit -n rbd-system deploy rbd-app-ui
spec:
containers:
- env:
- name: MYSQL_HOST
value: 172.24.206.76
- rbd-api
kubectl edit -n rbd-system deploy rbd-api
spec:
containers:
- args:
- --mysql=root:31771251@tcp(172.24.206.76:3306)/region
- rbd-chaos
kubectl edit -n rbd-system ds rbd-chaos
containers:
- args:
- --hostIP=$(POD_IP)
- --mysql=root:31771251@tcp(172.24.206.76:3306)/region
- rbd-worker
kubectl edit -n rbd-system deploy rbd-worker
spec:
containers:
- args:
- --mysql=root:31771251@tcp(172.24.206.76:3306)/region
- rbd-eventlog
kubectl edit -n rbd-system sts rbd-eventlog
spec:
containers:
- args:
- --db.url=root:31771251@tcp(172.24.206.76:3306)/region
验证
1.查看Rainbond组件是否处于Running状态
$ kubectl get pod -n rbd-system
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-754cdcbbb6-pckfj 1/1 Running 1 28h
kubernetes-dashboard-57b897f8df-8hkrv 1/1 Running 1 28h
nfs-provisioner-0 1/1 Running 1 28h
rainbond-operator-0 2/2 Running 2 28h
rbd-api-564f456468-4w9xj 1/1 Running 1 28h
rbd-app-ui-64c7c55995-svg56 1/1 Running 1 28h
rbd-app-ui-migrations-k5jwd 0/1 Completed 0 28h
rbd-chaos-htwr2 1/1 Running 1 28h
rbd-db-0 2/2 Running 2 28h
rbd-etcd-0 1/1 Running 1 28h
rbd-eventlog-0 1/1 Running 1 28h
rbd-gateway-sz7wf 1/1 Running 1 28h
rbd-hub-85b7b94846-kbffc 1/1 Running 1 28h
rbd-monitor-0 1/1 Running 1 28h
rbd-mq-989c5549c-8p8n4 1/1 Running 1 28h
rbd-node-5c887 1/1 Running 1 23h
rbd-node-bndzh 1/1 Running 1 28h
rbd-node-s2mnc 1/1 Running 1 22h
rbd-repo-0 1/1 Running 1 28h
rbd-webcli-84969b7fc5-zm7tw 1/1 Running 1 28h
rbd-worker-78b6dc8fc4-rxd7p 1/1 Running 1 28h
2.登录平台查看应用数量,组件数量是否和迁移前一致
数据迁移完毕删除rbd-db服务,到此完成数据迁移
kubectl delete rbdcomponents.rainbond.io rbd-db -n rbd-system
rbd-db数据迁移至外部数据库的更多相关文章
- 如何将MongoDB数据库的数据迁移到MySQL数据库中
FAQ v2.0终于上线了,断断续续忙了有2个多月.这个项目是我实践的第一个全栈的项目,从需求(后期有产品经理介入)到架构,再到设计(有征询设计师的意见).构建(前端.后台.数据库.服务器部署),也是 ...
- mysql 客户无感知迁移_亿级账户数据迁移,不用数据库工具还能怎么搞?
原标题:亿级账户数据迁移,不用数据库工具还能怎么搞? 背景 在阿里巴巴内部"大中台,小前台"的组织和业务体制,使前线业务更加敏捷,赋能业务积极迎接未来挑战和机遇,在阿里大中台能力建 ...
- EF架构~CodeFirst数据迁移与防数据库删除
回到目录 本文介绍两个概念,防数据库自动删除,这是由于在code first模式下,当数据实体发生变化时,会对原来数据库进行删除,并将新数据表添加进来,但这对于我们的运营环境数据库,是万万不能接受的, ...
- EF CodeFirst数据迁移与防数据库删除
1 开启migrations功能 enable-migrations -force 2 添加迁移版本 add-migration 名称后缀 我们每次修改实体后,都应该使用这个add-migration ...
- 将MySQL一张表的数据迁移到MongoDB数据库的Java代码示例
Java代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.sql.Connection; import java.sql ...
- Oracle中的数据迁移到Mysql数据库中的方式Navicat premium工具
1.安装 Navicat premium工具 2.破解 Navicat premium工具 3.连接需要相互迁移的两个库Mysql和Oracle(可以是远程的或者本机的数据库都是可以的) 4.连接上之 ...
- redis 练习 a的数据库数据迁移到b数据库
思路 1.从a redis中获取所有的key 2.判断key的类型 3.根据key的类型,判断使用的是set/hset类型 4.set到b redis中(写入到b redis中)
- 创建app子应用,配置数据库,编写模型,进行数据迁移
文章目录 web开发django模型 1.创建app子应用 2.配置子应用 3.使用 4.配置子应用管理自已的路由 django数据库开发思维与ORM 1.创建数据库 2.配置数据库 3.安装pymy ...
- Mongodb到mysql数据库的数据迁移(Java,Windows)
运行环境为windows 测试过260万的数据表,迁移大概要10分钟左右,当然肯定和网络,字段大小什么的有关系. 遇到的坑和注意点都用紫色标记了(对,就是我大乃团的高冷紫--Nogizaka 46) ...
随机推荐
- eclipse中字体、XML字体设置
[修改编辑区中文字体大小]: Window > Preferences > General > Appearance > Colors and Fonts > Java ...
- openstack高可用集群17-openstack集成Ceph准备
Openstack集成Ceph准备 Openstack环境中,数据存储可分为临时性存储与永久性存储. 临时性存储:主要由本地文件系统提供,并主要用于nova虚拟机的本地系统与临时数据盘,以及存储gla ...
- WEB层知识点
目录 Web 应用程序技术 HTTP 1.1 HTTP请求 1.2 HTTP响应 1.3 HTTP方法 1.4 URL 1.5 HTTP消息头 1.常用消息头 2.请求消息头 3.响应消息头 1.7 ...
- Code Review 最佳实践
ref: Code review Best Practices 文章将了以下内容: 3w:why.what.when 进行 code review code review 之前的准备 执行 code ...
- PowerCLI从模版批量新建虚拟机
有一个需求,新建200个虚拟机,这要是一个一个去建那我可就疯了.想起之前听vmware原厂工程师说过的这个powercli,就着手研究了一下. 将以下文件存储为 *.ps1 #在使用时应使用VMwar ...
- Erlang那些事儿第3回之我是函数(fun),万物之源MFA
Erlang代码到处都是模式匹配,这把屠龙刀可是Erlang的看家本领.独家绝学,之前在<Erlang那些事儿第1回之我是变量,一次赋值永不改变>文章提到过,Erlang一切皆是模式匹配. ...
- 每日一个linux命令6 -- mv
mv test.log test1.txt 文件改名 mv test1.log test3 文件移动 mv test1.log test2.log test3.log test4 将1,2,3.log ...
- 手撕redis分布式锁,隔壁张小帅都看懂了!
前言 上一篇老猫和小伙伴们分享了为什么要使用分布式锁以及分布式锁的实现思路原理,目前我们主要采用第三方的组件作为分布式锁的工具.上一篇运用了Mysql中的select ...for update实现了 ...
- JSF学习实战
JSF是什么? JSF(JavaServer Faces)它是一个基于服务器端组件的用户界面框架. 它用于开发Web应用程序.它提供了一个定义良好的编程模型,由丰富的API和标签库组成.JSF API ...
- PHP 自定义 alert 跳转方法
/** * 跳转方法 * @param $msg * @param null $path * @param null $parent */ public function alert($msg,$pa ...