主从复制与主主复制怎么自动切换:使用Keepalived

    日常如何导出数据:mysqldump、xtrabackup

  1. 主库宕机解决方案(一主多从)

    登陆从库>show processlist\G;

    #cat /data/3306/data/master.info

    #cat /data/3307/data/master.iinfo

    显示POS数值最大的将升级为主库

    或者利用半同步功能,直接选择做了实时同步的从库升为主库。

    授权同步用户和主库一样。

    1)确保所有relay log更新完毕

    每个从库执行:>stop slave io_thread;show processlist;

    直到看到Has reda all realy log; 表示从库更新都执行完毕

    2)登陆将要升为主的从库

    #mysql -uroot -p'000' -S /data/3306/mysql.sock

    >stop slave;

    >retset master;

    >quit;

    3)进入数据库目录,删除master.info relay_log.info

    #cd /data/3306/data

    #rm -f master.info relay-log.info

    检查授权表 read-only等参数

    4)提升为主库

    #vim /data/3306/my.cnf

    开启:log-bin = /data/3306/mysql-bin

    注:存在log-slave-updates read-only等一定要注释

    #/data/3306/mysql restart

    5)若主库没宕机,则需要去主库拉取binlog补全从库。

    6)其他从库操作

    >stop slave;

    >change master to master_host = '192.168.11.6' ;

    >start slave;

    >show slave status\G;

    7)修改程序配置文件从主库35指向32

    一般访问数据库用域名,则可直接修改hosts解析。

     

  2. 数据库读写慢原因

    1)在程序设计时没有索引

    2)I/O吞吐量小

    3)内存不足

    4)查询数据量过大

  3. 数据库同步延迟原因

    1)主从库间的网络延迟;

    优化:提升端口带宽;

    2)从库数量较多导致复制延迟;

    优化:建议从库数量3-5个为宜;

    3)主从两台机器负载不一致。由于主从复制是主数据库上启动一个I/O线程,从上启动一个I/O线程和一个SQL线程,当机器负载高时,可能导致其中的任何一个线程出现资源不足;

    优化:提升硬件性能;

    4)慢sql语句过多;

    优化:sql执行时间较长,需优化sql语句;

    5)主从复制设计问题;

    优化:主从复制单线程,可通过多线程IO方案解决;

    6)Max_allowed_packet设置不一致。主库设置其值大于从库,当较大的sql语句能在主库上执行,从库其值过小,无法执行;

    优化:数值设置保持一致;

    7)版本不一致;

    优化:版本保持一致;

MySQL解决方案的更多相关文章

  1. 常见的高可用MySQL解决方案

    MySQL数据库作为最基础的数据存储服务之一,在整个系统中有着非常重要的地位,因此要求其具备高可用性是无可厚非的.有很多解决方案能实现不同的SLA(服务水平协定),这些方案可以保证数据库服务器在硬件或 ...

  2. Ubuntu Server 14.04 --secure-file-priv error in MySql 解决方案

    在VPS部署Ubuntu 14.04服务器时,MySQL执行导出文件命令,报错: The MySQL server is running with the --secure-file-priv opt ...

  3. 远程无法访问linux Mysql解决方案

    在网上有很多关于这个的解决方案,我也采用了 写的比较详细的如: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更 ...

  4. linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql解决方案

    在Linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql,提示如下: 而导致连接错误的原因是MYSQL没有开启远程登录权限. 解决方案: 在mysql命令中执 ...

  5. Navicat远程连接不上mysql解决方案

    一.can‘t connect to MySql server on ‘47.93.X.X’ 这是因为mysql端口被防火墙拦截,需用linux执行如下指令: 1.#/sbin/iptables -I ...

  6. Navicat远程连接不上mysql解决方案(已测试过)

    内容参考网上的文章,此处只做记录. 一.can‘t connect to MySql server on ‘192.168.X.X’ 这是因为mysql端口被防火墙拦截,需用linux执行如下指令:( ...

  7. PHP连接不上MySQL解决方案总结

    1. 获取当前 mysql.default_socket.mysqli.default_socket.pdo_mysql.default_socket 配置信息 建立一个 PHP 文件, 显示 php ...

  8. host is not allowed to connect to this mysql解决方案

    报错:1130-host ... is not allowed to connect to this MySql server   解决方法: 1. 改表法. 可能是你的帐号不允许从远程登陆,只能在l ...

  9. SQLServer To MySQL 解决方案

        最近在忙一个项目,就不详写了.过两天不忙了把项目总结一下.   思路: Access作为桥梁   1.SQLServer To Access 2007 在access里直接导入 2.Use t ...

随机推荐

  1. SQL 分组统计 行转列 CASE WHEN 的使用

    原文地址:http://blog.itpub.net/26451903/viewspace-733526 原文在分组统计部分  sql是有问题的     本文已将sql改正   已用红色标记  Cas ...

  2. mysql数据库导入导出 查询 修改表记录

    mysql数据导入导出: 导入: 把系统的文件的内容,保存到数据库的表里 导入数据的基本格式:mysql> load data infile "文件名" into table ...

  3. RMAN还原时注意set newname时文件名不要有空格

      今天遇到一个非常奇怪的现象,查看ORACLE数据库的一个文件,明明这个文件是存在的,但是使用ls -lrt 查看都显示这个文件不存在.很是纳闷! 后面发现在终端输入文件名后并使用tab键时,发现文 ...

  4. numpy 实践记录

    reshape是从低维度到高维度.max,sum等函数都是注意axis,不选择就是全体计算. swapaxes 转换轴,将两个选择的轴对调,在CNN中X乘W有的时候需要拉伸,如果轴不同结果不对. 看p ...

  5. 使用CXF和spring搭建webService服务

    虽然下一个项目需要使用xfire,但是在查资料的过程中还是看到有不少地方都说cxf比xfire更好,cxf继承了xfire,但是不仅仅包含xfire,因此便也一起来尝试尝试.大概是有了xfire的经验 ...

  6. mongodb: Remote server has closed the connection

    <?php function getMongoClient($seeds = "", $options = array(), $retry = 3) { try { retu ...

  7. PHP openssl函数库

    php openssl 函数库中.提供了大量的函数.但是我们一般用的最多的,就是 openssl_encrypt string openssl_encrypt ( string $data , str ...

  8. FusionCharts 3D环饼图

    1.设计静态页面 Doughnut.html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"& ...

  9. Flex父子窗口相互调用

    Flex父子窗口相互调用 1.设计思路 (1)子窗口调用父窗口的方法 (2)子窗口做了修改后,返回父窗口,父窗口调用子窗口函数 2.设计源码 (1)父窗口 ParentWindow.mxml: < ...

  10. Netty的并发编程实践4:线程安全类的应用

    在JDK1.5的发行版本中,Java平台新增了java.util.concurrent,这个包中提供了一系列的线程安全集合.容器和线程池,利用这些新的线程安全类可以极大地降低Java多线程编程的难度, ...