美文网首页
linux 数据库备份

linux 数据库备份

作者: 小黑泡泡 | 来源:发表于2018-01-09 11:30 被阅读0次

    1、Windows服务器 

    back.bat文件

    #!/bin/bash

    echo "back mysql hq_schools start"

    mysqldump -uljroot -pHUIQU.com12345!@#$% hq_schools | gzip > /usr/local/mydown/mysqlbackdata/hq_schools_$(date +%Y%m%d_%H%M%S).sql.gz

    echo "back mysql hq_schools end"

    2、

    通常情况下、mysql都需要备份,备份的方法有很多种。下面是我用脚本配合计划任务完成的自动备份远程的数据库。

    一、 确认备份方案:

    备份机:ip192.168.8.51

    数据库服务器:ip192.168.8.46

    备份的内容:对mysql的studydb、coursedb库进行远程备份、每天2:30执行,每个库备份为独立的sql文件。然后压缩为tar.gz格式,文件中嵌入备份的日期和时刻。

    1. 创建数据库:

    [root@ns ~]# service mysqld status

    mysqld (pid 3554) 正在运行...

    [root@ns ~]# mysqladmin -uroot -p password 123123 ##更改密码

    Enter password: ##输入原密码

    [root@ns ~]# mysql -uroot -p123123

    Welcome to the MySQL monitor. Commands end with ; or \g.

    Your MySQL connection id is 8

    Server version: 5.0.77-log Source distribution

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql>

    mysql> create database studydb; ##创建数据库

    Query OK, 1 row affected (0.05 sec)

    mysql> create database couredb;

    Query OK, 1 row affected (0.00 sec)

    2. 给数据库赋权:

    mysql> grant select,lock tables on studydb.* to 'operator'@'192.168.8.51' identified by 'pwd123'; ##使用逻辑工具备份工具mysqldump是需要对库有select和lock tables的权限

    Query OK, 0 rows affected (0.00 sec)

    mysql> grant select,lock tables on coursedb.* to 'operator'@'192.168.8.51' identified by 'pwd123';

    Query OK, 0 rows affected (0.00 sec)

    3. 在192.168.8.51测试备份:

    [root@localhost ~]# cd /tmp

    [root@localhost tmp]# mysqldump -u operator -ppwd123 -h 192.168.8.46 --databases studydb >test.sql

    [root@localhost tmp]# ls

    bin games test.sql

    二、 在192.168.8.51编写Mysql备份脚本:

    [root@localhost ~]# mkdir /root/bin

    [root@localhost ~]# cd /root/bin

    [root@localhost bin]# vi dbbak.sh

    #!/bin/bash

    #这是一个简单的mysql数据库逻辑备份脚本

    #1.定义数据库连接、目标库信息

    MY_USER="operator"

    MY_PASS="pwd123"

    MY_HOST="192.168.8.46"

    MY_CONN="-u $MY_USER -p$MY_PASS -h $MY_HOST"

    MY_DB1="studydb"

    MY_DB2="coursedb"

    #2.定义备份目录、工具、时间、文件名主体

    BF_DIR="/opt/dbbak/"

    BF_CMD="/usr/local/bin/mysqldump"

    BF_TIME=`date +%Y%m%d-%H%M`

    NAME_1="$MY_DB1-$BF_TIME"

    NAME_2="$MY_DB2-$BF_TIME"

    #3.先导出为.sql脚本,然后再进行压缩(打包后删除原文件)

    cd $BF_DIR/

    /bin/tar zcf $NAME_1.tar.gz $NAME_1.sql --remove &>/dev/null

    /bin/tar zcf $NAME_2.tar.gz $NAME_2.sql --remove &>/dev/null

    [root@localhost bin]# mkdir /opt/dbbak ###创建备份目录

    [root@localhost bin]# chmod a+x dbbak.sh ###给脚本执行权限

    [root@localhost bin]# dbbak.sh ##运行脚本

    [root@localhost bin]# ls /opt/dbbak/ ###验证效果

    coursedb-20130505-0311.tar.gz studydb-20130505-0311.tar.gz

    三、 在192.168.8.51上设置计划任务:

    [root@localhost bin]# crontab -e

    30 2 * * * /root/bin/dbbak.sh

    [root@localhost bin]# chkconfig crond on

    [root@localhost bin]# service crond status

    crond (pid 3263) 正在运行...

    好了数据库备份这件事就搞定了。

    相关文章

      网友评论

          本文标题:linux 数据库备份

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