美文网首页
zabbix4.0 mysql本地数据库迁移到腾讯云数据库

zabbix4.0 mysql本地数据库迁移到腾讯云数据库

作者: Daisy小朋友 | 来源:发表于2019-05-27 15:48 被阅读0次

    原环境:centos7.2 mysql5.7

    目的环境:腾讯云 mysql5.7

    工具:navicat premium

    1.1.远程云数据库——使用工具navicat premium

    使用navicat premium连接mysql时只有云数据库内网连接方式
    首先在ssh标签页输入一个和云数据库可达的IP


    image.png

    再在常规下输入云主机的内网IP以及用户名密码即可


    image.png
    root登录后在navicat premium中执行sql语句,创建zabbix数据库以及zabbix用户并赋权
    image.png
    语句如下:
    create database zabbix character set utf8 collate utf8_bin;
    grant all privileges on zabbix.* to zabbix@'10.%' identified by 'your passwd';
    flush privileges;
    

    1.2 远程云数据库——使用工具腾讯云自带工具

    创建账户
    点击云数据库——管理——数据库管理——账号管理,如下:


    image.png

    点击创建账号——填写完毕后确定即可


    image.png
    创建数据库
    数据库登陆后点击“前往PMA”,输入sql语句执行即可
    image.png image.png

    可参考
    参考:https://cloud.tencent.com/document/product/236/8465

    1.3 远程云数据库——使用linux远程连接

    需要登录到和内网服务器同一网段的机器上(此云数据库没有外网IP)

    登录
    [root@VM_20_3_centos scripts]# mysql -h 10.50.xx.xx -u zabbix -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1749
    Server version: 5.7.18-txsql_57_0918-log 20180918
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
    导出

    因为腾讯云的mysql开启GTID,所以导出的时候需要添加 --set-gtid-purged=OFF,如下

    mysqldump -h 10.50.xx.xx -u zabbix -p --set-gtid-purged=OFF zabbix >test.sql
    
    导入

    将从原数据库导出的ZABBIX20190527.sql导入到云数据中(可参考3的导出方法)

    mysql -h 10.50.xx.xx  -uzabbix -p zabbix < ZABBIX20190527.sql
    

    可参考:

    https://docs.lvrui.io/2016/10/28/%E5%BC%80%E5%90%AFGTID%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AF%BC%E5%87%BA%E5%AF%BC%E5%85%A5%E5%BA%93%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/

    2 修改zabbix的数据库连接

    修改 /etc/zabbix/web/zabbix.conf.php文件

    [root@VM_20_3_centos ~]# cat /etc/zabbix/web/zabbix.conf.php
    <?php
    // Zabbix GUI configuration file.
    global $DB;
    
    $DB['TYPE']     = 'MYSQL';
    $DB['SERVER']   = '10.50.xx.xx';
    $DB['PORT']     = '3306';
    $DB['DATABASE'] = 'zabbix';
    $DB['USER']     = 'zabbix';
    $DB['PASSWORD'] = 'your passwd';
    
    // Schema name. Used for IBM DB2 and PostgreSQL.
    $DB['SCHEMA'] = '';
    
    $ZBX_SERVER      = 'localhost';
    $ZBX_SERVER_PORT = '10051';
    $ZBX_SERVER_NAME = 'wupao';
    
    $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
    

    修改/etc/zabbix/zabbix_server.conf中的数据库配置

    [root@VM_20_3_centos ~]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
    ListenPort=10051
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBHost=10.50.xx.xx
    DBName=zabbix
    DBUser=zabbix
    DBPassword=your passwd
    DBPort=3306
    StartTrappers=20
    StartDiscoverers=90
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=30
    

    重启zabbix_server服务,重启httpd服务

    systemctl restart zabbix-server
    systemctl restart httpd
    

    3 将原数据库中数据通过mysqldump导出

    原有数据库操作,执行mysqldump,将源数据库数据备份

    #!/usr/bin/env bash
    #author:chy
    #date:20190416 
    Date=`date +"%Y%m%d"`
    LogFile=zabbix_sql.log
    ZABBIXBegin=`date +"%Y-%m-%d %H:%M:%S"`
    ZABBIXDumpFile=ZABBIX$Date.sql
    ZABBIXGZDumpFile=ZABBIX$Date.sql.tar.gz
    BakDir_ZABBIX=/data/backup/mysql/
    PASSWD=your passwd
    mysqldump -uzabbix -p$PASSWD -l zabbix >$BakDir_ZABBIX$ZABBIXDumpFile
    cd $BakDir_ZABBIX
    /usr/bin/tar czPvf $ZABBIXGZDumpFile $ZABBIXDumpFile
    /usr/bin/rm -f $BakDir_ZABBIX$ZABBIXDumpFile
    ZABBIXEnd=`date +"$%Y-%m-%d %H:%M:%S"`
    echo zabbixbackup_start:$ZABBIXBegin end:$ZABBIXEnd $ZABBIXGZDumpFile >> $LogFile
    ##delete 300天之前的数据
    find /data/backup/mysql/* -type f -mtime +300 |xargs rm -rf
    

    4 zabbix 数据库分表

    之前有对本地zabbix数据库做了分表操作,请参考之前的文章

    https://www.jianshu.com/p/b6b5b5377c9b
    将数据库迁移到云数据库后,需要修改相应的脚本
    修改为远程连接到云数据库即可

    cat  /data/scripts/zabbix_partitions.sh
    #!/usr/bin/env bash
    #author:chy
    #date:20190527
    DIR=/data/scripts
    PARTBegin=`date +"%Y-%m-%d %H:%M:%S"`
    mysql -h 10.50.xx.xx -uzabbix -pyour_paaswd zabbix -e"CALL partition_maintenance_all('zabbix')" &>>$DIR/partition.log&
    PARTEnd=`date +"$%Y-%m-%d %H:%M:%S"`
    echo zabbixMYSQL_part_start:$PARTBegin end:$PARTEnd >> $DIR/partitiona.log
    

    crontab

    #zabbix partition_maintenance
    01 03 * * * /bin/bash /data/scripts/zabbix_partitions.sh
    

    相关文章

      网友评论

          本文标题:zabbix4.0 mysql本地数据库迁移到腾讯云数据库

          本文链接:https://www.haomeiwen.com/subject/jcmctctx.html