MySQL从另一个韩国服务器开始复制

作者:港云互联 时间:2019-10-31


        前面的设置都是假定主备库均为刚刚安装好且都是默认的数据,也就是说两台韩国服务器上数据相同,并且知道当前主库的二二进制日志。这不是典型的案例。大多数情况下有一个已经运行了一段时间的主库,然后用一台新安装的备库与之同步,此时这台备库还没有数据。


        有几种办法来初始化备库或者从其他服务器克隆数据到备库。包括从主库复制数据、从另外一台备库克隆数据,以及使用最近的一次备份来启动备库,需要有三个条件来让主库和备库保持同步:

韩国服务器

(1)在某个时间点的主库的数据快照。



(2)主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量,我们把这两个值称为日志文件坐标(log file cordinates)。通过这两个值可以确定二进制日志的位置。可以通过SHIOM MSTER STAUS命令来获取这些值。


(3)从快照时间到现在的二进制日志。


下面是些从别的服务器克隆备库的方法:


使用冷备份


        最基本的方法是关闭主库,把数据复制到备库(高效复制文件的方法参考附录C)。重启主库后,会使用-个新的二进制日志文件,我们在备库通过执行CHANGEMASTER TO指向这个文件的起始处。这个方法的缺点很明显: 在复制数据时需要关闭主库。


使用热备份


        如果仅使用了MyISAM表,可以在主库运行时使用mysqlhotcopy或rsyne来复制数据。


使用mysqldump


        如果只包含InnoDB表,那么可以使用以下命令来转储主库数据并将其加载到备库,然后设置相应的二进制日志坐标:


$ mysqldump --single-transaction --all-databases --master-data=1--host=server1

|mysql --host=server2


        选项-single-transaction使得转储的数据为事务开始前的数据。如果使用的是非事务型表,可以使用--lock-all tables选项来获得所有表的一致性转储。


使用快照或备份


        只要知道对应的二进制日志坐标,就可以使用主库的快照或者备份来初始化备库(如果使用备份,需要确保从备份的时间点开始的主库二进制日志都要存在)。只需要把备份或快照恢复到备库,然后使用CHANGE MASTER TO指定二进制日志的坐标。也可以使用LVM快照、SaN快照、EBS 快照,任何快照都可以。


使用Percona Xtrabackup


        Percona的Xtrabackup是-款开源的热备份工具,多年前我们就介绍过。它能够在备份时不阻塞服务器的操作,因此可以在不影响主库的情况下设置备库。可以通过克隆主库或另一个已存在的备库的方式来建立备库。


        创建一个备份(不管是从主库还是从别的备库),并将其转储到目标机器,然后根据备份获得正确的开始复制的位置。



        如果是从主库获得备份,可以从xraup bnogPos_ innodb 文件中获得复制开始的位置。


        如果足从另外的备库获得备份,可以从xrbaerp slave info文件中获得复制开始的位置。


        另外,在以前提到的InoDB热备份和MySQL企业版的备份,也是比较好的初始化备库方式。


使用另外的备库


        可以使用任何一种提 及的克隆或者拷贝技术来从任意一台备库上将数据克隆到另外一台服务 器。但是如果使用的是mysqldump, --master -data选项就会不起作用。


        此外,不能使用SHOW MASTER STATUS来获得主库的二进制日志坐标,而是在获取快照时使用SHOW SLAVE STATUS 来获取备库在主库上的执行位置。


        使用另外的备库进行数据克隆最大的缺点是,如果这台备库的数据已经和主库不同步,克隆得到的就是脏数据。


        不要使用LOAD DATA FROM MSTER或者LOAD TALE FROM MSTER!这些命令过时.缓慢,并且非常危险,并且只适用于MyISAM存储引擎。


        不管选择哪种技术,都要能熟练运用,要记录详细的文档成编写脚本,因为可能不止一次需要做这样的事情。其至当错误发生时,也需要能够处理。





新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线