简单讲解MySQL的数据库复制方法

 更新时间:2015年11月27日 17:39:21   作者:冰&红&茶  
这篇文章主要介绍了简单讲解MySQL的数据库复制方法,利用到了常见的mysqldump工具,需要的朋友可以参考下

MySQL复制其实就是把数据从一个节点(master) 拷贝到另一个节点(slaves), 当然根据应用架构的不同,采用的方式也不同,MySQL服务器之间的复制使用的是二进制日志机制.对master的更新与变动都会作为事件(event)记录在日志中,日志中的信息会随变化的不同被记录成不同的格式.slaves被配置成从master读取日志,并且执行二进制日志中的事件到slave本地数据库.一旦master启动二进制日志功能,那么所有语句操作都会被记录下来,每一个slave会收到一份整个日志内容的拷贝.slave的责任就是决定日志中的哪条语句需要被执行,而我们不能通过配置master来仅仅记录某些特定的事件.如果您没有另行指定,在主服务器二进制日志中的所有事件都在slave上执行.如果需要,还可以配置slave仅应用来自于特定数据库或表的事件.

20151127172726207.jpg (506×339)

根据上图来说说MySQL复制的工作机制,复制的过程在主从架构中一般是有三个线程来完成复制工作的,主服务器上dump thread ,从服务器I/O thread ,从服务器sql  thread, 如果想使用多线程的话需要打补丁的, 根据上图一主一从的架构复制是这样工作的,主服务器将操作写入二进制日志,由主服务器上的dump线程将日志发送到从服务器上的I/O线程,然后存储为中继日志,而由sql线程根据中继日志将数据写入从服务器中,下面来配置下这样的复制架构,


MySQL同主机不同数据库的复制命令:注意运行在Terminal中,不运行在MySQL命令行中。

 mysqldump Portal_DEV -u root -ppassword1$ --add-drop-table | mysql Portal_Optimize -u root -ppassword1$

在复制过程中,出现如下报错:

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!!!

相关文章

  • MySQL8.2.0安装教程分享

    MySQL8.2.0安装教程分享

    这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤
    2025-02-02
  • MySQL全局共享内存介绍

    MySQL全局共享内存介绍

    这篇文章主要介绍了MySQL全局共享内存介绍,全局共享内存则主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连接线程的 Thread Cache等等,需要的朋友可以参考下
    2014-12-12
  • MySQL慢查询优化之慢查询日志分析的实例教程

    MySQL慢查询优化之慢查询日志分析的实例教程

    这篇文章主要介绍了MySQL慢查询日志分析的实例教程,通过设置参数从慢查询日志开始分析性能问题的原因,需要的朋友可以参考下
    2015-11-11
  • MYSQL中查询LONGBLOB类型数据的大小的详细示例

    MYSQL中查询LONGBLOB类型数据的大小的详细示例

    在MySQL中,LONGBLOB 是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,但是,LONGBLOB 数据类型本身并不直接存储数据的大小(长度),它存储的是二进制数据的实际内容,这篇文章主要介绍了MYSQL中怎么查询LONGBLOB类型数据的大小,需要的朋友可以参考下
    2024-06-06
  • 详解MySQL资源组的使用方法

    详解MySQL资源组的使用方法

    MySQL支持创建和管理资源组,并允许将服务器内运行的线程分配给特定的组,本文主要介绍了详解MySQL资源组的使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MySQL解压版配置步骤详细教程

    MySQL解压版配置步骤详细教程

    这篇文章主要介绍了MySQL解压版配置步骤详细教程的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • MySQL和连接相关的timeout 的详细整理

    MySQL和连接相关的timeout 的详细整理

    这篇文章主要介绍了MySQL和连接相关的timeout 的详细整理的相关资料,本文主要总结下和连接有关的timeout,需要的朋友可以参考下
    2017-08-08
  • MySQL进阶之索引

    MySQL进阶之索引

    索引就是一种数据结构,这种结构类似,链表,树等等。但是比它们要复杂的多,索引(index)是帮助MySQL高效获取数据的数据结构(有序),本文详细介绍了MySQL索引,感兴趣的同学可以参考阅读
    2023-04-04
  • 什么是blob,mysql blob大小配置介绍

    什么是blob,mysql blob大小配置介绍

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型
    2012-02-02
  • MySQL的Data_ADD函数与日期格式化函数说明

    MySQL的Data_ADD函数与日期格式化函数说明

    今天看到了MySQL的日期函数,里面很多有用的,这里只把两个参数不太好记的粘下来了。
    2010-06-06

最新评论