zoukankan      html  css  js  c++  java
  • mysql5.7.17版本升级源码方式及恢复主主复制

    版本升级--自测

    从库
    ------------
    停止主从复制
    stop slave

    全库备份
    mysqldump -u root -p -S mysql.sock --all-databases>/data/mysql/standby/dump.sql
    加-R参数可备份函数

    备份数据库global variables参数
    mysql -uroot -p -Bse "show global variables" > /data/mysql/standby/before_var.cnf

    备份my.cnf配置文件
    cp standby.cnf standby.cnf.bak

    备份basedir目录
    mkdir -p /mysqlbackup/basedir_bak

    cd /usr/local
    tar -cvf mysql.tar mysql
    mv *.tar /mysqlbackup/basedir_bak

    mkdir -p /mysqlbackup/
    mv mysql/ /mysqlbackup/

    进入到bin目录关闭mysql服务
    cd /mysqlbackup/mysql/bin

    设置慢关闭
    ./mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown=0;" --socket=/data/mysql/standby/mysql.sock

    查看是否设置为0
    ./mysql -uroot -p --socket=/data/mysql/standby/mysql.sock -e "show global variables like '%fast_shutdown%';"

    关闭mysql数据库
    ./mysqladmin -uroot -p -S /data/mysql/standby/mysql.sock shutdown

    记录binlog位置和pos信息
    tail -300f /data/mysql/standby/elog/mysql.err
    read up to log 'mysql-bin.000001', position 6451


    解压软件包
    cd /data/mysql
    tar -xvf mysql-boost-5.7.21.tar.gz

    编译5.7.21版本
    cd mysql-5.7.21
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/data/mysql/mysql-5.7.21/boost

    修改版本
    [root@rac02 mysql-5.7.21]# cat VERSION
    MYSQL_VERSION_MAJOR=5
    MYSQL_VERSION_MINOR=7
    MYSQL_VERSION_PATCH=99
    MYSQL_VERSION_EXTRA=

    编译
    make && make install

    查看是否升级成功
    mysql -V
    mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

    从库起库
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/standby.cnf --ledir=/usr/local/mysql/bin &

    执行升级脚本
    /usr/local/mysql/bin/mysql_upgrade -uroot -p -S /data/mysql/standby/mysql.sock

    Enter password:
    Checking if update is needed.
    Checking server version.
    Running queries to upgrade MySQL server.
    Checking system database.
    mysql.columns_priv                                 OK
    mysql.db                                           OK
    mysql.engine_cost                                  OK
    mysql.event                                        OK
    mysql.func                                         OK
    mysql.general_log                                  OK
    mysql.gtid_executed                                OK
    mysql.help_category                                OK
    mysql.help_keyword                                 OK
    mysql.help_relation                                OK
    mysql.help_topic                                   OK
    mysql.innodb_index_stats                           OK
    mysql.innodb_table_stats                           OK
    mysql.jzw                                          OK
    mysql.jzw2                                         OK
    mysql.jzw3                                         OK
    mysql.jzw4                                         OK
    mysql.ndb_binlog_index                             OK
    mysql.plugin                                       OK
    mysql.proc                                         OK
    mysql.procs_priv                                   OK
    mysql.proxies_priv                                 OK
    mysql.server_cost                                  OK
    mysql.servers                                      OK
    mysql.slave_master_info                            OK
    mysql.slave_relay_log_info                         OK
    mysql.slave_worker_info                            OK
    mysql.slow_log                                     OK
    mysql.tables_priv                                  OK
    mysql.time_zone                                    OK
    mysql.time_zone_leap_second                        OK
    mysql.time_zone_name                               OK
    mysql.time_zone_transition                         OK
    mysql.time_zone_transition_type                    OK
    mysql.user                                         OK
    The sys schema is already up to date (version 1.5.1).
    Checking databases.
    sys.sys_config                                     OK
    Upgrade process completed successfully.
    Checking if update is needed.

    mysql> s
    --------------
    mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

    Connection id:          5
    Current database:
    Current user:           root@localhost
    SSL:                    Not in use
    Current pager:          stdout
    Using outfile:          ''
    Using delimiter:        ;
    Server version:         5.7.99-log Source distribution
    Protocol version:       10
    Connection:             Localhost via UNIX socket
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8
    UNIX socket:            mysql.sock
    Uptime:                 5 min 56 sec

    Threads: 3  Questions: 2729  Slow queries: 0  Opens: 274  Flush tables: 1  Open tables: 39  Queries per second avg: 7.665
    --------------

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    主库
    ------------
    停止主从复制
    stop slave

    全库备份
    mysqldump -u root -p -S mysql.sock --all-databases>/data/mysql/primary/dump.sql

    备份数据库global variables参数
    mysql -uroot -p -Bse "show global variables" > /data/mysql/primary/before_var.cnf

    备份my.cnf配置文件
    cp primary.cnf primary.cnf.bak

    备份basedir目录
    mkdir -p /mysqlbackup/basedir_bak

    cd /usr/local
    tar -cvf mysql.tar mysql
    mv *.tar /mysqlbackup/basedir_bak

    mkdir -p /mysqlbackup/
    mv mysql/ /mysqlbackup/

    进入到bin目录关闭mysql服务
    cd /mysqlbackup/mysql/bin

    设置慢关闭
    ./mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown=0;" --socket=/data/mysql/primary/mysql.sock

    查看是否设置为0
    ./mysql -uroot -p --socket=/data/mysql/primary/mysql.sock -e "show global variables like '%fast_shutdown%';"

    关闭mysql数据库
    ./mysqladmin -uroot -p -S /data/mysql/primary/mysql.sock shutdown

    记录binlog位置和pos信息
    tail -300f /data/mysql/primary/elog/mysql.err
    read up to log 'mysql-bin.000001', position 6451


    解压软件包
    cd /data/mysql
    tar -xvf mysql-boost-5.7.21.tar.gz

    编译5.7.21版本
    cd mysql-5.7.21
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/data/mysql/mysql-5.7.21/boost

    修改版本
    [root@rac02 mysql-5.7.21]# cat VERSION
    MYSQL_VERSION_MAJOR=5
    MYSQL_VERSION_MINOR=7
    MYSQL_VERSION_PATCH=99
    MYSQL_VERSION_EXTRA=

    编译
    make && make install

    查看是否升级成功
    mysql -V
    mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

    从库起库
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/primary.cnf --ledir=/usr/local/mysql/bin &

    执行升级脚本
    /usr/local/mysql/bin/mysql_upgrade -uroot -p -S /data/mysql/primary/mysql.sock

    Enter password:
    Checking if update is needed.
    Checking server version.
    Running queries to upgrade MySQL server.
    Checking system database.
    mysql.columns_priv                                 OK
    mysql.db                                           OK
    mysql.engine_cost                                  OK
    mysql.event                                        OK
    mysql.func                                         OK
    mysql.general_log                                  OK
    mysql.gtid_executed                                OK
    mysql.help_category                                OK
    mysql.help_keyword                                 OK
    mysql.help_relation                                OK
    mysql.help_topic                                   OK
    mysql.innodb_index_stats                           OK
    mysql.innodb_table_stats                           OK
    mysql.jzw                                          OK
    mysql.jzw2                                         OK
    mysql.jzw3                                         OK
    mysql.jzw4                                         OK
    mysql.ndb_binlog_index                             OK
    mysql.plugin                                       OK
    mysql.proc                                         OK
    mysql.procs_priv                                   OK
    mysql.proxies_priv                                 OK
    mysql.server_cost                                  OK
    mysql.servers                                      OK
    mysql.slave_master_info                            OK
    mysql.slave_relay_log_info                         OK
    mysql.slave_worker_info                            OK
    mysql.slow_log                                     OK
    mysql.tables_priv                                  OK
    mysql.time_zone                                    OK
    mysql.time_zone_leap_second                        OK
    mysql.time_zone_name                               OK
    mysql.time_zone_transition                         OK
    mysql.time_zone_transition_type                    OK
    mysql.user                                         OK
    The sys schema is already up to date (version 1.5.1).
    Checking databases.
    sys.sys_config                                     OK
    Upgrade process completed successfully.
    Checking if update is needed.

    mysql> s
    --------------
    mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

    Connection id:          5
    Current database:
    Current user:           root@localhost
    SSL:                    Not in use
    Current pager:          stdout
    Using outfile:          ''
    Using delimiter:        ;
    Server version:         5.7.99-log Source distribution
    Protocol version:       10
    Connection:             Localhost via UNIX socket
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8
    UNIX socket:            mysql.sock
    Uptime:                 5 min 56 sec

    Threads: 3  Questions: 2729  Slow queries: 0  Opens: 274  Flush tables: 1  Open tables: 39  Queries per second avg: 7.665
    --------------

    -------------------------------------------------------------------------------------------------------------------------------------------------------


    升级完成后恢复主主复制
    先做主从复制
    ------------------------
    从库
    stop slave;
    start slave;
    show slave statusG
    如果有报错SQL,就要去修正,或者用set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;跳过

    反向复制
    -----------------------
    主库
    stop slave;
    start slave;
    show slave statusG
    如果有报错SQL,就要去修正,或者用set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;跳过


    同步错误处理
    发现mysql slave服务器经常因为一些特殊字符或者符号产生的更新语句报错,整个同步也会因此而卡在那,最初的办法只是手动去出错的机器执行下面三条SQL语句,跳过错误即可。
      mysql>slave stop;
      mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
      mysql>slave start;

  • 相关阅读:
    Linux自定义服务文件编写
    Ubuntu PPA方式安装vim
    ubuntu PPA使用指南
    ubuntu安装最新emacs
    Docker支持中文
    C#调用Go版DLL
    C#调用exe程序
    golang编写动态库供c#程序调用
    科学正在追赶中医,中医将变得时髦(转载)
    常见.NET功能代码汇总 (3)
  • 原文地址:https://www.cnblogs.com/kawashibara/p/10747065.html
Copyright © 2011-2022 走看看