MySQL数据库的自动备份与数据库被破坏后的恢复1

一、前言:

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。

或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。

这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell。

建立数据库备份所需条件

[1] 建立自动备份脚本

在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[[email protected] ~]# vi mysql-backup.sh  ← 建立数据库自动备份脚本,如下:

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# The Directory of Backup 
BACKDIR=/backup/mysql

# The Password of MySQL 
ROOTPASS=********  此处请将星号替换成MySQL的root密码

# Remake the Directory of Backup 
rm -rf $BACKDIR 
mkdir -p $BACKDIR

# Get the Name of Database 
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# Backup with Database 
for dbname in $DBLIST 
do 
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy 
done

[2] 运行数据库自动备份脚本

[roo[email protected] ~]# chmod 700 mysql-backup.sh  改变脚本属性,让其只能让root用户执行 
[[email protected] ~]# ./mysql-backup.sh   运行脚本 
[[email protected] ~]# ls -l /backup/mysql/   确认一下是否备份成功 
total 8 
drwxr-x--- 2 mysql mysql 4096 Sep 1 16:54 mysql   已成功备份到/backup/mysql目录中

[3] 让数据库备份脚本每天自动运行

[[email protected] ~]# crontab -e  ← 编辑自动运行规则(然后会出现编辑窗口,操作同vi) 
00 03 * * * /root/mysql-backup.sh   添加这一行到文件中,让数据库备份每天凌晨3点进行

MySQL数据库的自动备份与数据库被破坏后的恢复1,布布扣,bubuko.com

时间: 2024-10-01 02:25:18

MySQL数据库的自动备份与数据库被破坏后的恢复1的相关文章

MySQL数据库的自动备份与数据库被破坏后的恢复(2)

测试自动备份正常运转与否(备份恢复的方法) 这里,以通过实际操作的过程来介绍问题出现后的恢复方法. [1] 当数据库被删除后的恢复方法 首先建立一个测试用的数据库. [[email protected] ~]# mysql -u root -p ← 用root登录到MySQL服务器 Enter password: ← 输入MySQL的root用户密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL conne

MySQL数据库的自动备份与数据库被破坏后的恢复(3)

[2] 当数据库被修改后的恢复方法 数据库被修改,可能存在着多方面的原因,被入侵.以及相应程序存在Bug等等,这里不作详细介绍.这里将只介绍在数据库被修改后,如果恢复到被修改前状态的方法. 具体和上面所述的“数据库被删除后的恢复方法”相类似.这里,测试用数据库接着使用刚刚在前面用过的test.这里为了使刚刚接触数据库的朋友不至于理解混乱,我们再次登录到MySQL服务器上确认一下刚刚建立的测试用的数据库test的相关信息. [[email protected] ~]# mysql -u root

SQL Server 数据库定时自动备份

原文:SQL Server 数据库定时自动备份 SQL Server 数据库定时自动备份——每天定时备份,保留前8天的备份 利用SQL Server代理新建作业来定期备份 1)在数据库库的[SQL Server代理]->[作业],右键[新建作业] 2)在[常规]选项卡设置[名称](自定义) 3)在[步骤]选项卡中点击[新建],然后在弹出的窗口的[常规]选项卡中设置“步骤名称”(自定义):选择“类型”为“Transact-SQL 脚本(T-SQL)”(默认):选择“数据库”为你要备份的数据库:添加

Windows环境下Oracle数据库的自动备份脚本

批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据库的自动备份脚本 echo  1. 使用当前日期命名备份文件. echo  2. 自动删除7天前的备份. echo ================================================ ::以“YYYYMMDD”格式取出当前时间. set BACKUPDATE=%date

SQL Server 数据库定时自动备份(转载)

SQL Server 数据库定时自动备份 本文来源于转载:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 前提:在使用下面的备份方式之前需要确保你的Sqlserver Agent服务启动,切设置为自动启动.否则当你服务器重启了但是Agent服务没有启动,那么自动备份任务就不会执行 (一)使用TSql代码自动备份 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本

实战:INNOBACKUPEX for mysql 5.6自动备份脚本

#backup.sh #!/bin/sh # # 第一次执行它的时候它会检查是否有完全备份,否则先创建一个全库备份 # 当你再次运行它的时候,它会根据脚本中的设定来基于之前的全库备份进行增量备份 #[email protected] INNOBACKUPEX_PATH=innobackupex  #INNOBACKUPEX的命令 INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX_PATH  #INNOBACKUPEX的命令路径 #mysql目标服务器以及用户名和密码

MySql Windws 下自动备份脚本

这几天正在做一个  使用MySQL数据库的项目,目前项目已经完成了,当部署好项目之后,正在考虑如何自动备份MySql数据库的问题,我在网上找了一下资料终于解决了,特此记录一下. 1 @echo off 2 echo. 3 echo MySQL数据库备份 4 5 echo ***************************** 6 echo. 7 echo 今天是 %date% 8 echo 时间是 %time% 9 echo. 10 echo ************************

在CentOS实现mysql数据库的自动备份

数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦.本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件.避免太多无用陈旧的备份占用空间. #!/bin/bashid="root" #用户名pwd="123123" #密码dbs="conedu commlib" #数据库名字的列表,多个数据库用空格分开.backuppath="/root/mysqlbackup" #保存备份的位置day=15  

mysql数据库定时自动备份(坑点都写出来了)

(1)首先创建text文件,(在什么地方创建都可以)修改后缀名为bat的文件,如果你的电脑没有设置显示后缀名,先通过左击我的电脑,“查看”->“文件扩展名”->打钩,这样你才那个成功修改后缀名为bat,否则是假的bat文件. (2)编辑刚刚创建的bat文件,(你也可以在创建txt文件的时候先修改好)加入如下内容保存:其中d:/MySQL/bin/mysqldump.exe"路径改成你自己对应的,DBNAME是你要备份的数据库,pxxx,我对于的是proot,其中root是密码,当然你