时间:2021-05-23
MySQL复制其实就是把数据从一个节点(master) 拷贝到另一个节点(slaves), 当然根据应用架构的不同,采用的方式也不同,MySQL服务器之间的复制使用的是二进制日志机制.对master的更新与变动都会作为事件(event)记录在日志中,日志中的信息会随变化的不同被记录成不同的格式.slaves被配置成从master读取日志,并且执行二进制日志中的事件到slave本地数据库.一旦master启动二进制日志功能,那么所有语句操作都会被记录下来,每一个slave会收到一份整个日志内容的拷贝.slave的责任就是决定日志中的哪条语句需要被执行,而我们不能通过配置master来仅仅记录某些特定的事件.如果您没有另行指定,在主服务器二进制日志中的所有事件都在slave上执行.如果需要,还可以配置slave仅应用来自于特定数据库或表的事件.
根据上图来说说MySQL复制的工作机制,复制的过程在主从架构中一般是有三个线程来完成复制工作的,主服务器上dump thread ,从服务器I/O thread ,从服务器sql thread, 如果想使用多线程的话需要打补丁的, 根据上图一主一从的架构复制是这样工作的,主服务器将操作写入二进制日志,由主服务器上的dump线程将日志发送到从服务器上的I/O线程,然后存储为中继日志,而由sql线程根据中继日志将数据写入从服务器中,下面来配置下这样的复制架构,
MySQL同主机不同数据库的复制命令:注意运行在Terminal中,不运行在MySQL命令行中。
在复制过程中,出现如下报错:
ERROR 1153 (08S01) at line 1160: Got a packet bigger than 'max_allowed_packet' bytes mysqldump: Got errno 32 on write需要将my.cnf中的max_allowed_packet 放大,我本机默认是1M,放大至32M。重启MySQL。
OK. 以上方案适用于小数据量的数据库。下面来个大容量(1G以上)的。
mysqldump -uroot -ppassword --quick Portal_DEV | gzip > Portal_DEV.contents.gz通过以上命令,将Portal_DEV数据库导成Portal_DEV.contents.gz压缩文件。
gunzip < Portal_DEV.contents.gz | mysql -uroot -ppassword Portal_Optimize然后通过以上命令,将Portal_DEV导入Portal_Optimize数据库。
Perfect, it's done!!!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在MySQL中,我们可以通过几种不同的方法来执行数据库的备份。今天我们就给大家简单的介绍三种方法来对MySQL数据库进行备份。 第一种方法是在复制数据文件
MySQL数据库source命令详解及实例MySQL数据库source命令,该命令是数据库导入命令。source命令的用法非常简单,首先你需要进入MySQL数据
MySQL数据库的导入导出相信很多人都接触过,但是大量数据的导入导出就给MySQL数据库导入导出工作提高了难度,接下来就为大家讲解实现MySQL数据库导入导
在此文中,我将详细讲解如何在Windows10平台中安装MySQL数据库的最新版本,即MySQL5.7.17压缩版数据库。关于MySQL5.7.17数据库压缩版
我们在进行数据库设计中,考虑到共享与并发问题,经常要对数据库进行锁定操作,本文就讲解了在MySQL数据库中对表进行锁定的方法。同时讲解了如何检查表的锁定及修复表