付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、mysql 主从备份及原理分析2012-11-28 12:05 3508 人阅读 评论(0) 收藏 举报.mysql 主从备份(复制)的基本原理个服务器充当主mysql 复mysql 支持单向、异步复制,复制过程中 服务器,而一个或多个其它服务器充当从服务器。制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等 ) 。因此,要进行复制,必须在主服务器上 启用二进制日志。每个从服务器从主服务器接收主服务器已 经记录到其二进制日志的保存的更新。当一个从服务器连接 主服务器时,它通知主服务器从服务器在日志中读取的最后次成功更新的位置。从服务器接收从那时起发生的任何更 新,并在本机上执行
2、相同的更新。然后封锁并等待主服务器 通知新的更新。从服务器执行备份不会干扰主服务器,在备 份过程中主服务器可以继续处理更新。二 .mysql 主从备份配置方法 在进行 mysql 主从备份时, 最好确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。主机(master)配置:1. 修改 mysql 配置文件 f在 mysqld 标签下添加以下几行 plain view plaincopyprint?log-bin # 开启二进制日志server-id=id # 主服务器 id 号binlog-do-db=db_nameA # 指定对 db_nameA 记录二进制日志binlog-i
3、gnore-db=db_namB # 指定不对 db_namB 记录二进制 日志 log-bin # 开启二进制日志server-id=id # 主服务器 id 号binlog-do-db=db_nameA # 指定对 db_nameA 记录二进制日志binlog-ignore-db=db_namB # 指定不对 db_namB 记录二进制 日志注意:log-bin , server-id 是配置文件中必须添加的内容。此时主服 务器默认对所有数据库进行备份。如果需要特殊指明只对某 个数据库进行备份或不备份,则可以加入 binlog-do-db 和binlog-ignore-db 选项。有关(
4、log-bin 的详细说明见附录 1) 在测试主机上,我们实际添加入如下内容: plain view plaincopyprint?log-bin server-id=1 binlog-do-db=test log-bin server-id=1binlog-do-db=test2. 为从服务器添加 mysql 账户并配置权限 在主服务器上,必须为从服务器创建一个用来连接主服务器 的用户,并设置 replication slave 权限。所用具体命令如下:sql view plaincopyprint?grant replication slave on *.* to 帐号 从服务器 IP i
5、dentified by 密码; grant replication slave on *.* to 帐号 从服务器 IP identified by 密码;在测试机上,我 们实际执行: sql view plaincopyprint?grant replication slave on *.* to replication% identified by sosotest; grant replication slave on *.* to replication% identified by sosotest; 这时在 mysql 库的user表中使用sql view plaincopypr
6、int?select * from user where user = replication G; select * from user where user = replication G; 可以看到 Repl_slave_priv 项 对就的值为 Y 。3. 导出主服务器数据导出主服务器数据,以备之后将其导入从服务器,使主从服 务器的初始状态保持一致。 在测试机上, 我们实际执行: sql view plaincopyprint?mysqldump test > test.bak mysqldump test > test.bak4. 记录 File 及 Position 项
7、的值重启mysql,使用show master statusG查看主服务器状态,记录 File 及 Position 项的值, 以便之后对从服务器进行 配置。在测试机上,我们实际执行时看到的结果如下:* d C . f* 1. row*File: simba-bin.000008Position: 79Binlog_Do_DB: testBinlog_Ignore_DB: 1 row in set (0.00 sec)其中 File 为 imba-bin.000008 ; Position 为79。至此主服务器配置完毕从机(slave)配置:1.修改 mysql 配置文件 f在mysqld标签
8、下添加以下面一行:plain view plaincopyprint?server-id=id # 从机 id server-id=id # 从机 id 实际中,我们添 加: plain view plaincopyprint?server-id=2 server-id=2 2.导入主机数据库在测试机上,我们实际执行:mysql test < test.bak3. 重启 mysql 数据库并设置相关参数sql view plaincopyprint?change master to master_host = 33, master_user = replication
9、, master_password = sosotest, master_log_file = darkstar-bin.000008, master_log_pos = 79;slave start; change master to master_host = 33,master_user = replication, master_password = sosotest, master_log_file = darkstar-bin.000008, master_log_pos = 79;slave start;4.检查数据库查看相关参数使用 show slave s
10、tatus G ;查看相关参数是否正确。在实际执行时,我们在从机上看到的结果如下(只摘取了部分输出):* d,* 1. row*Slave_IO_State: Waiting for master to send eventMaster_Host: 33Master_User: replicationMaster_Port: 3306Connect_Retry: 60Master_Log_File: darkstar-bin.000006Read_Master_Log_Pos: 79Relay_Log_File: simba-relay-bin.000003Relay_Lo
11、g_Pos: 171Relay_Master_Log_File: darkstar-bin.000006Slave_IO_Running: YesSlave_SQL_Running: Yes对部分参数的解释:Slave_IO_State: Waiting for master to send eventSlave_IO_Running: YesSlave_SQL_Running: Yes以上参数说听 slave 正常运行,正等待主服务器发来的消息。此时若用 netstate 命令可以看到从机与主机间已经建立了 条边接。特别需要注意的两个参数是:Master_Log_File 和 Read_Ma
12、ster_Log_Pos。 Master_Log_File代表主机上用于主备同步的日志文件名,Read_Master_Log_Pos 代表上一次成功同步到的日志文件中 的位置。如果这两项与先前在主服务器上看到的 File 及 Position 的值不相符,则无法正确进行同步。.主从备份的实现细节mysql使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上) 。当发出 start slave 时,从服务器创建个 I/O 线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以即为主服务器上showprocess
13、list输出中的Binlog Dump线程。从服务器I/O线程读取主服务器 Binlog Dump 线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3 个线程是 sql 线程,由从服务器创建,用于读取中继日志并执行日志中包含的更新。在从服务器上,读取和执行更新语句被分成两个独立的任务。当从服务器启动时,其 I/O 线程可以很快地从主服务器索取所有二进制日志内容。1.复制线程状通过 show slave statusG 和 show master status 可以查看复制线程状态。常见的线程状态有:1)主服务器 Binlog Dump 线程Has sent all
14、binlog to slave; waiting for binlog to be updated线程已经从二进制日志读取所有主要的更新并已经发送到 了从服务器。线程现在正空闲,等待由主服务器上新的更新 导致的出现在二进制日志中的新事件。 ( 2)从服务器 I/O 线 程状态Waiting for master to send event线程已经连接上主服务器,正等待二进制日志事件到达。如 果主服务器正空闲,会持续较长的时间。如果等待持续slave_read_timeout 秒,则发生超时。此时,线程认为连接被中断并企图重新连接。3)从服务器 SQL 线程状态Reading event fro
15、m the relay log线程已经从中继日志读取一个事件,可以对事件进行处理 了。Has read all relay log; waiting for the slave I/O thread to update it线程已经处理了中继日志文件中的所有事件,现在正等待I/O 线程将新事件写入中继日志。 2.复制过程中使用的传递和状态文件默认情况,中式的文件名,其中继日志使用 host_name-relay-bin.nnnnnn 形序列号。中继日志与二进制日志的格式相同,并且可以用host_name是从服务器主机名,nnnnnn 是mysqlbinlog 读取。从服务器在 data 目录中另外创建两个小文件。 这些状态文件默认名为主 和 。状态文件保存 在硬盘上, 从服务器关闭时不会丢失。 下次从服务器启动时, 读取这些文件以确定它已经从主服务器读取了多少二进制 日志,以及处理自己的中继日志的程度。附录 1关于 log_bin 日志my.conf 文件中的 mysqld 标签下的 log_bin 指定日志文件,如果不提供文件名, mysql 将自己产生缺省文件名。 mysql会在文件名后面自动添加数字引,每次启动服务时,都会重 新生成一个新的二进制文件。此外,使用 log-bin-index 可以 指定索引文件;使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民宿安全培训内容2026年从零到精通
- 大医大中医学总结
- 2026年治理设施安全培训内容完整指南
- 2026年水电安全培训内容核心要点
- 长沙市雨花区2025-2026学年第二学期四年级语文第五单元测试卷(部编版含答案)
- 2026年高分策略桥头林场工作总结报告
- 景德镇市珠山区2025-2026学年第二学期四年级语文期中考试卷(部编版含答案)
- 甘孜藏族自治州丹巴县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 三门峡市陕县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 青岛市即墨市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 电度表测试报告
- 双溪课程评量表
- 煤矿的劳动定额
- 退还房屋定金协议书
- 年产200吨高纯金属铯铷项目报告书
- (高清版)DB11∕T2370-2024生态修复树种选择技术规范
- 见证取样送检计划方案
- 中粮集团招聘笔试冲刺题2025
- 2024年官方兽医考试题库及参考答案
- 房产销售人员劳动合同范本专业版
- 《SAP权限讲解》课件
评论
0/150
提交评论