• MySQL问题处理记录


    1.测试服务器直接kill -9关闭数据库后,数据库无法启动,日志报错: Could not open unix socket lock file /tmp/mysql.sock.lock

    去/tmp目录下查看有mysql.sock.lock文件,但是没有权限打开。

    -rw-------. 1 root root  6 Mar 18 22:29 mysql.sock.lock

    解决: chown -R mysql. mysql.sock.lock

    启动正常。

    2.记一次主从不同步,重新构建主从,持续报错主键重复,

    原因不详,有尝试注入一个空事物,来解决,但是持续报错,然后再找了一台服务器构建主从,发现没有问题了,怀疑这台服务器有问题,便重启了服务器,再次构建主从问题解决

    一般处理这样的问题,先看错误日志,如果检查不出来配置问题,那就再搭一个新的重库。

    主键矛盾的问题,解决办法:1.删掉重复的。

                                                  2.跳过重复的,执行后面的。

                                                    基于gtid跳过的方式:

                                                     1). stop slave;

                                                     2).set gtid_next='Retrieved_Gtid_Set'

                                                             Retrieved_Gtid_Set值从show slave statusG获取

                                                     3). begin;

                                                     4).commit;

                                                     5).set gtid_next='automatic'

                                                     6).start slave;

    3.mysqldump备份

    /usr/local/mysql/bin/mysqldump -uroot -p'1qaz@WSX'  -h$ip  --single-transaction --triggers --set-gtid-purged=ON --routines --events --master-data=2 -A  |gzip > $path/redmine_master/all_${ttime}.sql.gz

     1.  --single-transaction:

    可以支持innodb存储引擎热备功能,对innodb可以不锁表进行热备,对于非innodb热备进行锁表

    2.--triggers:备份触发器

    3.--routines :备份存储过程和自定义函数

    4.--events:导出事件

    5.--master-data:该选项将binlog的位置和文件名追加到输出文件中。如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE  MASTER命令前添加注释信息。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间;其他内容参考下面的--single-transaction选项)。该选项自动关闭--lock-tables选项。

    官网介绍:

    https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

    6.--set-gtid-purged=ON 备份恢复到其他库,从库恢复将gtid信息导出

    --set-gtid-purged=OFF备份恢复到本地数据库,主库恢复,避免将gtid信息导出

    5.基于gtid构建的主从,从库重新构建主从关系的方法:

         1.reset master;

          2.reset slave;

          3.change master to .............

    6.https://i.cnblogs.com/posts/edit;postId=12522697

    innodb_max_dirty_pages_pct 通过设置该值为0可以让内存的数据尽快刷新到磁盘,通过,查看show engine innodb status 的modified db pages值很小了说明,就已经刷新完了

     7.给普通用户授权可以创建存储函数

    root登录后,执行以下命令:

    GRANT SUPER ON *.* TO 'public'@'%';

    flush privileges;

    8.主从不同步

         显示:1032报错

    Last_SQL_Error: Could not execute Delete_rows event on table mirror.mirror; Can't find record in 'mirror', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log mysql-bin.000004, end_log_pos 116977

         原因:主库再执行delete语句发现从库已经没有这行记录了,但是我真的不知道为何我的架构会出这样的问题

          解决:

                  set global slave_exec_mode='IDEMPOTENT';  ##忽略delete和key矛盾的记录继续往下走,默认为STRICT模式

    9.查看语句执行各个环节消耗的情况

    set profiling = 1
    update t set name where id = 1
    SELECT STATE,
           SUM(DURATION) as total_R,
           ROUND(100 * SUM(DURATION) /
                 (SELECT SUM(DURATION)
                    FROM INFORMATION_SCHEMA.PROFILING
                   WHERE QUERY_ID = 1),
                 2) as pct_r,
           count(*) as calls,
           sum(DURATION) / count(*) as "R/Call"
      FROM INFORMATION_SCHEMA.PROFILING
     WHERE QUERY_ID = 1
     GROUP BY STATE
     ORDER BY Total_R DESC;
    
    +--------------------------------+----------+----------+-------+--------------+
    | STATE                          | total_R  | pct_r    | calls | R/Call       |
    +--------------------------------+----------+----------+-------+--------------+
    | query end                      | 1.003655 | 35641.16 |     2 | 0.5018275000 |
    | updating                       | 0.001037 |    36.83 |     1 | 0.0010370000 |
    | starting                       | 0.000100 |     3.55 |     1 | 0.0001000000 |
    | freeing items                  | 0.000084 |     2.98 |     1 | 0.0000840000 |
    | Opening tables                 | 0.000078 |     2.77 |     1 | 0.0000780000 |
    | System lock                    | 0.000068 |     2.41 |     1 | 0.0000680000 |
    | init                           | 0.000042 |     1.49 |     1 | 0.0000420000 |
    | Waiting for semi-sync ACK from | 0.000042 |     1.49 |     1 | 0.0000420000 |
    | end                            | 0.000041 |     1.46 |     1 | 0.0000410000 |
    | cleaning up                    | 0.000035 |     1.24 |     1 | 0.0000350000 |
    | closing tables                 | 0.000027 |     0.96 |     1 | 0.0000270000 |
    | checking permissions           | 0.000020 |     0.71 |     1 | 0.0000200000 |
    +--------------------------------+----------+----------+-------+--------------+

         

    
    
  • 相关阅读:
    博客用Markdown编辑器插入视频
    软件工程网络15个人作业3——案例分析
    软工网络15结对编程练习
    软件工程15个人阅读作业2
    软件工程第一次个人阅读
    Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
    Java课程设计—学生成绩管理系统
    网络15软工个人作业5——软件工程总结
    软工网络15个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/liuxiuxiu/p/12522697.html
Copyright © 2020-2023  润新知