怎么做阿里国际网站的数据分析,长春网站快照优化公司,石家庄网络公司哪家正规,中企动力的网站开发语言内容较多#xff0c;可先收藏#xff0c;目录如下#xff1a; 一、什么是主从复制 二、主从复制的作用#xff08;重点#xff09; 三、主从复制的原理#xff08;重中之重#xff09; 四、三步轻松构建主从 五、必问面试题干货分析#xff08;最最重要的点#xff09…内容较多可先收藏目录如下 一、什么是主从复制 二、主从复制的作用重点 三、主从复制的原理重中之重 四、三步轻松构建主从 五、必问面试题干货分析最最重要的点 一、什么是主从复制技术文 主从复制是用来建立一个和主数据库完全一样的数据库环境称为从数据库主数据库一般是准实时的业务数据库。 二、主从复制的作用好处或者说为什么要做主从重点 1、做数据的热备作为后备数据库主数据库服务器故障后可切换到从数据库继续工作避免数据丢失。 2、架构的扩展。业务量越来越大I/O访问频率过高单机无法满足此时做多库的存储降低磁盘I/O访问的频率提高单个机器的I/O性能。 3、读写分离使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢导致锁表影响前台服务。如果前台使用master报表使用slave那么报表sql将不会造成前台锁保证了前台速度。 三、主从复制的原理重中之重面试必问 1.数据库有个bin-log二进制文件记录了所有sql语句。 2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。 3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。 4.下面的主从配置就是围绕这个原理配置 5.具体需要三个线程来操作 binlog输出线程。每当有从库连接到主库的时候主库都会创建一个线程然后发送binlog内容到从库。 在从库里当复制开始的时候从库就会创建两个线程进行处理 从库I/O线程。当START SLAVE语句在从库开始执行之后从库创建一个I/O线程该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件其中包括relay log文件。 从库的SQL线程。从库创建一个SQL线程这个线程读取从库I/O线程写到relay log的更新事件并执行。 可以知道对于每一个主从复制的连接都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程每一个从库都有它自己的I/O线程和SQL线程。技术文 主从复制如图 原理图 还不懂没关系这图也一样 步骤一主库db的更新事件(update、insert、delete)被写到binlog 步骤二从库发起连接连接到主库 步骤三此时主库创建一个binlog dump thread把binlog的内容发送到从库 步骤四从库启动之后创建一个I/O线程读取主库传过来的binlog内容并写入到relay log 步骤五还会创建一个SQL线程从relay log里面读取内容从Exec_Master_Log_Pos位置开始执行读取到的更新事件将更新内容写入到slave的db技术文 再不懂没办法了留言为你解惑。 真长中场休息会一起左三圈右三圈吧。看不下去的可以先收藏关注哈。 需要知道的是面试过程中原理不会让你讲那么久一般的只要把1234点讲出来然后说简略说下三个线程这就满分了 四、三步轻松构建主从技术文 一、Master主服务器上的配置103.251.237.42 1.编辑my.cnf 命令查找文件位置find / -name my.cnf 在[mysqld]中注释掉 bind-address 127.0.0.1 不然mysql无法远程 server-id 1 中 1 是可以自己定义的但是需要保持它的唯一性是服务器的唯一标识 1.log_bin 启动MySQL二进制日志 2.binlog_do_db 指定记录二进制日志的数据库 3.binlog_ignore_db 指定不记录二进制日志的数据库。 注释掉 binlog_do_db 和 binlog_ignore_db 则表示备份全部数据库 做完这些后重启下数据库 2.登陆主服务器mysql 创建从服务器用到的账户和权限; 之后IP可访问主服务器这里值定从服务器IP 新建密码为masterbackup的masterbackup 用户并赋予replication slave 权限 可以看到用户masterbackup 已经添加 3.查看主数据库的状态 记录 mysql-bin.000007 以及 276编写以下命令待用 change master to master_host103.251.237.42,master_port3306,master_usermasterbackup,master_passwordmasterbackup,master_log_filemysql-bin.000007,master_log_pos276; 二、Slave从服务器配置上的配置103.251.237.45 1.编辑my.cnf命令查找文件位置find / -name my.cnf 在[mysqld]中 relay-log slave-relay-bin relay-log-index slave-relay-bin.index 暂时不清楚这是做什么的。加入这两条。 重启mysql服务 登陆mysql停止同步命令 执行用上面准备的命令 登录Slave从服务器连接Master主服务器 重新启动数据同步 查看Slave信息如图两句都为yes则状态正常 三、从主从服务器测试结果 在主服务器创建一个数据库 在从服务器上查看刚才创建的数据库 可以查到主从服务器配置完成。技术文当然还有主主复制如果有感兴趣的朋友可以留言。 其实主从复制也存在一些问题 1. 负载均衡由于复制的时间差不能保证同步读而且写仍然单点没法多点写我对这个理解就是半吊子的读写均衡。 2. 容灾基本都是有损容灾因为数据不同步谁用谁知道半吊子的容灾。 可能只是提供一种成本较低的数据备份方案加不完美的容灾和负载均衡吧这种方案注定是一种过渡方案个人认为必须更新了。当然在不是体量巨大的情况下还是不失为一个优化的解决办法。 五、面试题干货分析如果问到数据库主从问题必问以下问题 1、主从的好处是 2、主从的原理是 3、从数据库的读的延迟问题了解吗如何解决 4、做主从后主服务器挂了怎么办转载于:https://www.cnblogs.com/a8457013/p/7819018.html