1 环境治理之同步数据库
2 如何同步数据库


##################################备份##################################
#注:如果账号密码有特殊字符,需用斜杠做转义,如:qwe\!
#1.1、备份单个数据库dbname到目录/tmp下面,并指定名称为dbname(dbname可任意更改)
mysqldump -h127.0.0.1 -uroot -ppassword dbname > /tmp/dbname.sql;
#1.2、备份数据库中的某个表t_a_table t_b_table,注:表名之间是空格
mysqldump -h127.0.0.1 -uroot -ppassword dbname t_a_table t_b_table > /tmp/dbname.sql;
#1.3、备份多个数据库a_dbname b_dbname,注:加上--databases参数,数据dbname之间是空格
mysqldump -h127.0.0.1 -uroot -ppassword --databases a_dbname b_dbname > /tmp/dbname.sql;
#1.4、备份数据库并压缩
mysqldump -h127.0.0.1 -uroot -ppassword dbname | gzip > /tmp/dbname.sql.gz;
##################################还原##################################
#2.1、还原数据库
mysql -h127.0.0.1 -uroot -ppassword dbname < /tmp/dbname.sql;
#2.2、解压数据库并还原
gunzip < /tmp/dbname.sql.gz | mysql -h127.0.0.1 -uroot -ppassword dbname;
#2.3、source还原数据库
mysql -h127.0.0.1 -uroot -ppassword
mysql>use dbname #数据库
mysql>source /tmp/dbname.sql #然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
复制
3 定时同步数据库
以下是synchronize_database_data.sh同步数据库脚本,可供参考~
#!/bin/bash
time1=`date +%Y-%m-%d`
time2=`date +%Y-%m-%d_%H:%M:%S`
# 注:数据库位置一定要对应!!!src_dbname_list=(dbname_a dbname_b)
dst_dbname_list=(dbname_a dbname_b)
# 1、根据当天时间创建目录, -p:如果不存在该目录则创建
create_dir(){
mkdir -p /tmp/src_dbname/${time1}
mkdir -p /tmp/dst_dbname/${time1}
}
# 2、源数据库压缩备份
bak_scr(){
mysqldump -h127.0.0.1 -P3306 -uroot -ppassword ${src_dbname_list[$i]} | gzip > /tmp/src_dbname/${time1}/${src_dbname_list[$i]}.sql.gz
echo -e "\033[32m${time2} ${src_dbname_list[$i]} 源数据库压缩备份成功 路径:/tmp/src_dbname/${time1}/${src_dbname_list[$i]}.sql.gz\n\033[0m"
}
# 3、目标数据库备份+源数据库同步到目标数据库
sync_dst(){
mysqldump -h127.0.0.1 -P3306 -uroot -ppassword ${dst_dbname_list[$j]} | gzip > /tmp/dst_dbname/${time1}/${dst_dbname_list[$j]}.sql.gz
echo -e "\033[32m${time2} ${dst_dbname_list[$j]} 目标数据库压缩备份成功 路径:/tmp/dst_dbname/${time1}/${dst_dbname_list[$j]}.sql.gz\n\033[0m"
gunzip < /tmp/src_dbname/${time1}/${src_dbname_list[$i]}.sql.gz | mysql -uroot -ppassword ${dst_dbname_list[$j]}
echo -e "\033[32m${time2} ${src_dbname_list[$i]} to ${dst_dbname_list[$j]} 数据同步成功\n\033[0m"
}
for i in ${!src_dbname_list[@]}
do
create_dir
bak_scr
for j in ${!dst_dbname_list[@]}
do
# $i -eq $j :表示参数i和参数j的位置相同, 注:数据库位置一定要对应!!!if [ $i -eq $j ];then
sync_dst
fi
done
done
复制
4 总结
文章转载自嘎嘎软件测试,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
1248次阅读
2025-04-09 15:33:27
2025年3月国产数据库大事记
墨天轮编辑部
718次阅读
2025-04-03 15:21:16
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
518次阅读
2025-04-10 15:35:48
征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动
KaiwuDB
453次阅读
2025-04-01 20:42:12
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
401次阅读
2025-04-11 09:38:42
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
380次阅读
2025-03-21 10:34:08
天津市政府数据库框采结果公布!
通讯员
304次阅读
2025-04-10 12:32:35
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
295次阅读
2025-04-07 09:44:54
从HaloDB体验到国产数据库兼容性
多明戈教你玩狼人杀
266次阅读
2025-04-07 09:36:17
OceanBase 单机版发布,针对中小规模业务场景
通讯员
230次阅读
2025-03-28 12:01:19