Heim >Datenbank >MySQL-Tutorial >使用脚本自动化远程备份MySQL数据库

使用脚本自动化远程备份MySQL数据库

WBOY
WBOYOriginal
2016-06-07 17:28:421274Durchsuche

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

通常情况下、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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:删除redo log group or memberNächster Artikel:Oracle Flashback database