
dolphinscheduler节点任务备份至别的节点上(docker迁移MySQL数据库)
现在需要使用的节点三个节点,配置两个master节点,三个worker节点,其中数据库存在MySQL8.0上,MySQL安装在docker容器中。现象描述:正在使用的集群描述四个节点一个master节点,三个worker节点,数据库存在MySQL5.7上,安装在docker容器中(集群1);需求:需要在不停机的情况下将正在使用的集群1上任务迁移到集群2上并且可以使用相当于对集群的任务做了一个高可用
现象描述:正在使用的集群描述四个节点一个master节点,三个worker节点,数据库存在MySQL5.7上,安装在docker容器中(集群1);
现在需要使用的节点三个节点,配置两个master节点,三个worker节点,其中数据库存在MySQL8.0上,MySQL安装在docker容器中并且做了MySQL的双主监听(集群2);
需求:需要在不停机的情况下将正在使用的集群1上任务迁移到集群2上并且可以使用相当于对集群的任务做了一个高可用的任务备份;
操作如下:使用MySQLdump将数据库导出备份
如果没用MySQLdump需要进行下载下载的流程如下
1、下载依赖
https://downloads.mysql.com/archives/community/
2、下载内容
mysql-community-common-8.0.19-1.el7.x86_64.rpm
mysql-community-libs-8.0.19-1.el7.x86_64.rpm
mysql-community-client-8.0.19-1.el7.x86_64.rpm
3、上传到服务器(CentOS7)
4、检索mysql历史版本 rpm -qa | grep mysql
如果存在mysql服务,可以直接使用mysqldump
5、卸载历史版本
rpm -e mysql.....
6、安装
rpm -ivh *.rpm
7、或逐个安装
rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm mysql-community-libs-8.0.19-1.el7.x86_64.rpm mysql-community-client-8.0.19-1.el7.x86_64.rpm
8、验证
mysqldump
提示如下安装成功
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
(1)备份:从数据库导出数据:
格式:mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码数据库名>d:XX.sql(路径)
示例:mysqldump -h132.72.192.432 -P3307 -uroot -p8888 htgl > bak.sql;
如果执行不成功可以试一下这个命令
MySQLdump -h132.72.192.432 -uroot -pAvary88! --databases dolphinscheduler --single-transaction --flush-logs --master-data=2 > databases20231228.sql
-hip远程连接
-u用户名 -p密码
--databases需要备份的数据库
--single-transaction 备份期间使用事物来确保一致性
--flush-logs 备份完成后刷新二进制日志文件
--master-data=2 在备份文件中包涵主次主从信息,这将生成一个带有CHANGE MASTER TO 语句的备份可用于恢复主从关系
> databases20231228.sql将指定的备份输出到名为databases20231028.sql的文件中
执行文件后显示错误:
mysqldump: Error:Binlogging on server not active(服务器上的 Binlogging 未激活)
解决方式:
sudo vim /etc/my.cnf
在[MySQLd]标签下添加
log-bin=mysql-bin
server-id=1
保存退出后,重启服务
systemctl restart mysqld
==========================================================
执行命令(集群1)
查看容器名进入docker容器中
docker ps -a
docker exec -it 容器名字 bash
将所需要迁移的机台的任务的dump.sql dump出来
mysqldump -uroot -p密码 dolphinscheduler(迁移的数据库) > /home/mysql/dump.sql
退出docker容器 exit
将刚才dump处的.sql保存在本地系统
docker cp mysql:/home/mysql/dump.sql ./
将保存在本地的dump.sql发送到集群2
scp dump.sql root@ip:/home/
============================================================
在将本地的dump.sql 发送到容器中
在执行命令将dump.sql到入到MySQL中
mysql -uroot -p123456 数据库 <dump.sql
任务导入完毕,可进IU界面查看详情,更改用户IP测试即可,注意集群之间的DNS互通。
更多推荐
所有评论(0)