• MySQL效力维护笔记(上)


     滥觞:网海拾贝  




    MySQL效力器的设计

    为了此后维护,晋级备份的等闲和数据的平安性,最好将MySQL法式文件和数据离别安置在“差别的硬件”上。

             /   / 
    | /usr <== 利用体系
    | /home/mysql <== mysql主目次,为了等闲晋级,这只
    硬盘1==>| 是一个最新版本目次的链接
    | /home/mysql-3.23.54/ <== 最新版本的mysql /home/mysql链接到这里
    /home/mysql-old/ <== 从前运转的旧版本的mysql

    / /data/app_1/ <== 利用数据和启动剧本等
    硬盘2==>| /data/app_2/
    /data/app_3/


    MySQL效力的安置和效力的启动

    MySQL通俗运用当前STABLE的版本:

    固然即便不运用--with-charset=选项,我感受with-charset只在按字母排序的时分才有效,这些选项会对数据的迁移带来很多费事。

    固然即便不运用innodb,innodb严重用于必要外键,事宜等企业级支撑,价钱是速度比MYISAM罕见量级的下降。

    ./configure --prefix=/home/mysql --without-innodb
    make
    make install

    效力的启动和阻止

    1 复制缺省的mysql/var/mysql到 /data/app_1/目次下。

    2 MySQLD的启动剧本:start_mysql.sh

    #!/bin/sh
    rundir=`dirname "$0"`
    echo "$rundir"
    /home/mysql/bin/safe_mysqld --user=mysql --pid-file=
    "$rundir"/mysql.pid --datadir="$rundir"/var "$@"-O 
    max_connections=500 -O wait_timeout=600 -O key_buffer=
    32M --port=3402 --socket="$rundir"/mysql.sock &



    注释:

    --pid-file="$rundir"/mysql.pid --socket="$rundir"/mysql.sock --datadir="$rundir"/var

    目的都是将响应数据和利用一时文件放在一同;
    -O 前面通俗是效力器启动全局变量优化参数,偶然刻必要按照具体利用调整;
    --port: 差别的利用运用PORT参数分布到差别的效力上去,一个效力可以提供的连接数通俗是MySQL效力的严重瓶颈;

    修改差别的效力到差别的端口后,在rc.local文件中参加:

    /data/app_1/start_mysql.sh
    /data/app_2/start_mysql.sh
    /data/app_3/start_mysql.sh

    具体:必需写全路子

    3 MySQLD的阻止剧本:stop_mysql.sh

    #!/bin/sh
    rundir=`dirname "$0"`
    echo "$rundir"
    /home/mysql/bin/mysqladmin -u mysql -S"$rundir"/mysql.sock shutdown



    运用这个剧本的益处在于:

    1 多个效力启动:关于差别效力只必要修改剧本中的--port[=端口号]参数。单个目次下的数据和效力剧本都是可以自力打包的。
    2 一切效力响应文件都位于/data/app_1/目次下:比如:mysql.pid mysql.sock,当一台效力器上启动多个效力时,多个效力不会相互影响。但都放到缺省的/tmp/下则有可以被其他利用误删。
    3 当硬盘1出结果此后,直接将硬盘2放到一台装好MySQL的效力器上就可以赶紧恢复效力(如果放到my.cnf里则还必要备份响应的设置文件)。

    效力启动后/data/app_1/下响应的文件和目次分布如下:

    /data/app_1/
        start_mysql.sh 效力启动剧本
        stop_mysql.sh 效力阻止剧本
        mysql.pid 效力的过程ID
        mysql.sock 效力的SOCK
        var/ 数据区
           mysql/ 用户库
           app_1_db_1/ 利用库
           app_1_db_2/
    ...
    /data/app_2/
    ...



    搜检一切的利用过程ID:
    cat /data/*/mysql.pid

    搜检所罕见据库的错误日志:
    cat /data/*/var/*.err

    团体倡导:MySQL的严重瓶颈在PORT的连接数上,因而,将表布局优化好此后,响应单个MySQL效力的CPU占用依旧在10%以上,就要思量将效力拆分到多个PORT上运转了。

    效力的备份

    固然即便运用MySQL DUMP而不是直接备份数据文件,以下是一个按weekday将数据轮循备份的剧本:备份的间隔和周期可以按照备份的需求确定

    /home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`data %w`.dump.gz

    因而写在CRONTAB中通俗是:

    15 4 * * * /home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`data %w`.dump.gz

    具体:

    1 在crontab中'%'必要转义成'%'
    2 按照日志统计,利用负载最低的时分通俗是在早上4-6点

    先备份在当地然后传到近程的备份效力器上,可能直接树立一个数据库备份帐号,直接在近程的效力器上备份,近程备份只必要将以上剧本中的-S /path/to/msyql.sock改成-h IP.ADDRESS即可。

    数据的恢复和体系的晋级

    一样往常维护和数据迁移:在数据盘没有被毁坏的情形下,硬盘通俗是体系中寿命最低的硬件。而体系(包括利用体系和MySQL利用)的晋级和硬件晋级,都会碰着数据迁移的结果。
    只需数据不乱,先装好效力器,然后直接将数据盘(硬盘2)安置上,只必要将启动剧本从新参加到rc.local文件中,体系就算是很好的恢复了。

    灾难恢复:数据库数据本人被毁坏的情形下,确定毁坏的时间点,然后从备份数据中恢复。



    版权声明: 原创作品,许可转载,转载时请务必以超链接形式标明文章 原始理由 、作者信息和本声明。不然将清查司法责任。

  • 相关阅读:
    python接口自动化之发送post(四)
    python接口自动化之发送get(三)
    python接口自动化之fiddler使用(二)
    python读取yaml配置文件
    python接口自动化测试之http协议(一)
    python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功
    python3读取、写入、追加写入excel文件
    python UI自动化之处理多窗口
    python UI自动化之js操作
    python UI自动化之切换iframe
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975790.html
Copyright © 2020-2023  润新知