当前位置:文档之家› MySQL备份恢复策略

MySQL备份恢复策略

MySQL备份恢复策略
MySQL备份恢复策略

MySQL 备份和恢复策略

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。本文主要对MyISAM表做备份恢复。

备份策略一:直接拷贝数据库文件(不推荐)

备份策略二:使用mysqlhotcopy备份数据库(完全备份,适合小型数据库备份)

备份策略三:使用mysqldump备份数据库(完全+增量备份,适合中型数据库备份)

备份策略四:使用主从复制机制(replication)(实现数据库实时备份)

备份策略一、直接拷贝数据库文件

直接拷贝数据文件最为直接、快速、方便,但缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在备份文件前,执行以下SQL 语句:

FLUSH TABLES WITH READ LOCK;

也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。

备份策略二、使用mysqlhotcopy备份数据库

mysqlhotcopy 是一个PERL 程序,最初由Tim Bunce编写。它使用LOCK TABLES、FLUSH TABLES 和cp 或scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上,并且mysqlhotcopy 只能用于备份MyISAM表。

本备份策略适合于小型数据库的备份,数据量不大,可以采用mysqlhotcopy程序每天进行一次完全备份。

备份策略布置:

(1)、安装DBD-mysql perl模块,支持mysqlhotcopy脚本连接到MySQL数据库。shell> tar -xzvf DBD-mysql-4.005.tar.gz

shell> cd DBD-mysql-4.005

shell> unset LANG

shell> perl Makefile.PL -mysql_config=/usr/local/mysql/bin/mysql_config -testuser=root

-testpassword=UserPWD

shell> make

shell> make test

shell> make install

(2)、设置crontab任务,每天执行备份脚本

shell> crontab -e

0 3 * * * /root/MySQLBackup/mysqlbackup.sh >/dev/null 2>&1

每天凌晨3:00执行备份脚本。

mysqlbackup.sh注释:

#!/bin/sh

# Name:mysqlbackup.sh

# PS:MySQL DataBase Backup,Use mysqlhotcopy script.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义变量,请根据具体情况修改

# 定义脚本所在目录

scriptsDir=`pwd`

# 数据库的数据目录

dataDir=/usr/local/mysql/data/

# 数据备份目录

tmpBackupDir=/tmp/tmpbackup/

backupDir=/tmp/mysqlbackup/

# 用来备份数据库的用户名和密码

mysqlUser=root

mysqlPWD=111111

# 定义eMail地址

eMail=alter@https://www.doczj.com/doc/004654970.html,

# 如果临时备份目录存在,清空它,如果不存在则创建它if [[ -e $tmpBackupDir ]]; then

rm -rf $tmpBackupDir/*

else

mkdir $tmpBackupDir

fi

# 如果备份目录不存在则创建它

if [[ ! -e $backupDir ]];then

mkdir $backupDir

fi

# 清空MySQLBackup.log

if [[ -s MySQLBackup.log ]]; then

cat /dev/null >MySQLBackup.log

fi

# 得到数据库备份列表,在此可以过滤不想备份的数据库for databases in `find $dataDir -type d | \

sed -e "s/\/usr\/local\/mysql\/data\///" | \

sed -e "s/test//"`; do

if [[ $databases == "" ]]; then

continue

else

# 备份数据库

/usr/local/mysql/bin/mysqlhotcopy --user=$mysqlUser --password=$mysqlPWD -q "$databases" $tmpBackupDir

dateTime=`date "+%Y.%m.%d %H:%M:%S"`

echo "$dateTime Database:$databases backup success!" >>MySQLBackup.log

fi

done

# 压缩备份文件

date=`date -I`

cd $tmpBackupDir

tar czf $backupDir/mysql-$date.tar.gz ./

# 发送邮件通知

if [[ -s MySQLBackup.log ]]; then

cat MySQLBackup.log | mail -s "MySQL Backup" $eMail

fi

# 使用smbclientmv.sh脚本上传数据库备份到备份服务器

# $scriptsDir/smbclientmv.sh

smbclientmv.sh注释:

#!/bin/sh

# Name:smbclientmv.sh

# PS:Move the data to Backup Server.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义变量

# 备份服务器名

BackupServer="BackupServerName"

# 共享文件夹名

BackupShare="ShareName"

# 备份服务器的访问用户名和密码

BackupUser="SMBUser"

BackupPW="SMBPassword"

# 定义备份目录

BackupDir=/tmp/mysqlbackup

date=`date -I`

# Move the data to BackupServer

smbclient //$BackupServer/$BackupShare \

$BackupPW -d0 -W WORKGROUP -U $BackupUser \

-c "put $BackupDir/mysql-$date.tar.gz \

mysql-$date.tar.gz"

# Delete temp files

rm -f $BackupDir/mysql-$date.tar.gz

(3)、恢复数据库到备份时的状态

mysqlhotcopy 备份出来的是整个数据库目录,使用时可以直接拷贝到mysqld 指定的datadir (在这里是/usr/local/mysql/data/)目录下即可,同时要注意权限的问题,如下例:shell> cp -rf db_name /usr/local/mysql/data/

shell> chown -R mysql:mysql /usr/local/mysql/data/ (将db_name 目录的属主改成mysqld 运行用户)

本套备份策略只能恢复数据库到最后一次备份时的状态,要想在崩溃时丢失的数据尽量少应该更频繁的进行备份,要想恢复数据到崩溃时的状态请使用主从复制机制(replication)。

备份策略三、使用mysqldump备份数据库

mysqldump 是采用SQL级别的备份机制,它将数据表导成SQL 脚本文件,在不同的MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。mysqldump 比直接拷贝要慢些。关于mysqldump的更详细解释见最后的附录。

对于中等级别业务量的系统来说,备份策略可以这么定:第一次完全备份,每天一次增量备份,每周再做一次完全备份,如此一直重复。而对于重要的且繁忙的系统来说,则可能需要每天一次全量备份,每小时一次增量备份,甚至更频繁。为了不影响线上业务,实现在线备份,并且能增量备份,最好的办法就是采用主从复制机制(replication),在slave 机器上做备份。

备份策略布置:

(1)、创建备份目录

Shell> mkdir /tmp/mysqlbackup

Shell> mkdir /tmp/mysqlbackup/daily

(2)、启用二进制日志

采用binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。

启用binlog 时必须要重启mysqld。首先,关闭mysqld,打开/etc/https://www.doczj.com/doc/004654970.html,f,加入以下几行:[mysqld]

log-bin

然后启动mysqld 就可以了。运行过程中会产生HOSTNAME-bin.000001 以及HOSTNAME-bin.index,前面的文件是mysqld 记录所有对数据的更新操作,后面的文件则是所有binlog 的索引,都不能轻易删除。关于binlog 的更详细信息请查看手册。

(3)、配置SSH密钥登录,用于将MySQL备份传送到备份服务器(如果备份服务器为Windows,请跳过此部)。

1)、在MySQL所在服务器(192.168.0.20)生成SSH密钥

[root@lab ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): //直接回车

Enter passphrase (empty for no passphrase): //直接回车,不使用密码

Enter same passphrase again: //直接回车,不使用密码

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

c2:96:9f:2d:5a:8e:08:42:43:35:2f:85:5e:72:f8:1c root@lab

2)、在备份服务器(192.168.0.200)上创建目录,修改权限,并传送公钥。

[root@lab ~]# ssh 192.168.0.200 "mkdir .ssh;chmod 0700 .ssh"

The authenticity of host '192.168.0.200 (192.168.0.200)' can't be established.

RSA key fingerprint is 37:57:55:c1:32:f1:dd:bb:1b:8a:13:6f:89:fb:b8:9d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.0.200' (RSA) to the list of known hosts.

root@192.168.0.200's password: //输入备份服务器的root密码

[root@lab ~]# scp .ssh/id_rsa.pub 192.168.0.200:.ssh/authorized_keys2

root@192.168.0.200's password:

id_rsa.pub 100% 218 0.2KB/s 00:00

3)、测试SSH登录

[root@lab ~]# ssh 192.168.0.200 //测试SSH登录

Last login: Fri Nov 16 10:34:02 2007 from 192.168.0.20

[root@lib ~]#

(4)、设置crontab任务,每天执行备份脚本

shell> crontab -e

#每个星期日凌晨3:00执行完全备份脚本

0 3 * * 0 /root/MySQLBackup/mysqlFullBackup.sh >/dev/null 2>&1

#周一到周六凌晨3:00做增量备份

0 3 * * 1-6 /root/MySQLBackup/mysqlDailyBackup.sh >/dev/null 2>&1

mysqlFullBackup.sh注释:

#!/bin/sh

# Name:mysqlFullBackup.sh

# PS:MySQL DataBase Full Backup.

# Write by:i.Stone

# Last Modify:2007-11-17

#

# Use mysqldump --help get more detail.

#

# 定义变量,请根据具体情况修改

# 定义脚本目录

scriptsDir=`pwd`

# 定义数据库目录

mysqlDir=/usr/local/mysql

# 定义用于备份数据库的用户名和密码

user=root

userPWD=111111

# 定义备份目录

dataBackupDir=/tmp/mysqlbackup

# 定义邮件正文文件

eMailFile=$dataBackupDir/email.txt

# 定义邮件地址

eMail=alter@https://www.doczj.com/doc/004654970.html,

# 定义备份日志文件

logFile=$dataBackupDir/mysqlbackup.log

DA TE=`date -I`

echo "" > $eMailFile

echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile

cd $dataBackupDir

# 定义备份文件名

dumpFile=mysql_$DA TE.sql

GZDumpFile=mysql_$DA TE.sql.tar.gz

# 使用mysqldump备份数据库,请根据具体情况设置参数

$mysqlDir/bin/mysqldump -u$user -p$userPWD \

--opt --default-character-set=utf8 --extended-insert=false \

--triggers -R --hex-blob --all-databases \

--flush-logs --delete-master-logs \

--delete-master-logs \

-x > $dumpFile

# 压缩备份文件

if [[ $? == 0 ]]; then

tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1

echo "BackupFileName:$GZDumpFile" >> $eMailFile

echo "DataBase Backup Success!" >> $eMailFile

rm -f $dumpFile

# Delete daily backup files.

cd $dataBackupDir/daily

rm -f *

# Delete old backup files(mtime>2).

$scriptsDir/rmBackup.sh

# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉# Move Backup Files To Backup Server.

#适合Linux(MySQL服务器)到Linux(备份服务器)

$scriptsDir/rsyncBackup.sh

if (( !$? )); then

echo "Move Backup Files To Backup Server Success!" >> $eMailFile else

echo "Move Backup Files To Backup Server Fail!" >> $eMailFile

fi

else

echo "DataBase Backup Fail!" >> $emailFile

fi

# 写日志文件

echo "--------------------------------------------------------" >> $logFile

cat $eMailFile >> $logFile

# 发送邮件通知

cat $eMailFile | mail -s "MySQL Backup" $eMail

mysqlDailyBackup.sh注释:

#!/bin/sh

# Name:mysqlDsilyBackup.sh

# PS:MySQL DataBase Daily Backup.

# Write by:i.Stone

# Last Modify:2007-11-17

#

# 定义变量,请根据具体情况修改

# 定义数据库目录和数据目录

scriptsDir=`pwd`

mysqlDir=/usr/local/mysql

dataDir=$mysqlDir/data

# 定义用于备份数据库的用户名和密码

user=root

userPWD=111111

# 定义备份目录,每日备份文件备份到$dataBackupDir/daily dataBackupDir=/tmp/mysqlbackup

dailyBackupDir=$dataBackupDir/daily

# 定义邮件正文文件

eMailFile=$dataBackupDir/email.txt

# 定义邮件地址

eMail=alter@https://www.doczj.com/doc/004654970.html,

# 定义日志文件

logFile=$dataBackupDir/mysqlbackup.log

# 得到数据库所在主机的主机名

HOSTNAME=`uname -n`

#

echo "" > $eMailFile

echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile

#

# 刷新日志,使数据库使用新的二进制日志文件

$mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs

cd $dataDir

# 得到二进制日志列表

fileList=`cat $HOSTNAME-bin.index`

iCounter=0

for file in $fileList

do

iCounter=`expr $iCounter + 1`

done

nextNum=0

iFile=0

for file in $fileList

do

binLogName=`basename $file`

nextNum=`expr $nextNum + 1`

# 跳过最后一个二进制日志(数据库当前使用的二进制日志文件)

if [[ $nextNum == $iCounter ]]; then

echo "Skip lastest!" > /dev/null

else

dest=$dailyBackupDir/$binLogName

# 跳过已经备份的二进制日志文件

if [[ -e $dest ]]; then

echo "Skip exist $binLogName!" > /dev/null

else

# 备份日志文件到备份目录

cp $binLogName $dailyBackupDir

if [[ $? == 0 ]]; then

iFile=`expr $iFile + 1`

echo "$binLogName Backup Success!" >> $eMailFile

fi

fi

fi

done

if [[ $iFile == 0 ]];then

echo "No Binlog Backup!" >> $eMailFile

else

echo "Backup $iFile File(s)." >> $eMailFile

echo "Backup MySQL Binlog OK!" >> $eMailFile

# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉# Move Backup Files To Backup Server.

#适合Linux(MySQL服务器)到Linux(备份服务器)

$scriptsDir/rsyncBackup.sh

if [[ $? == 0 ]]; then

echo "Move Backup Files To Backup Server Success!" >> $eMailFile

else

echo "Move Backup Files To Backup Server Fail!" >> $eMailFile

fi

fi

# 发送邮件通知

cat $eMailFile | mail -s "MySQL Backup" $eMail

# 写日志文件

echo "--------------------------------------------------------" >> $logFile

cat $eMailFile >> $logFile

rsyncBackup.sh注释:

#!/bin/sh

# Name:rsyncBackup.sh

# PS:Move Backup Files To Backup Server.

# Write by:i.Stone

# Last Modify:2007-11-17

#

# 请根据具体情况修改,注意最后有“/”

# 定义数据库备份目录

dataBackupDir=/tmp/mysqlbackup/

# 定义备份服务器上存放备份数据的目录

backupServerDir=/root/mysqlbackup/

# 定义备份服务器

backupServer=192.168.0.200

#

# 同步备份文件到备份服务器

rsync -a --delete $dataBackupDir -e ssh $backupServer:$backupServerDir > /dev/null 2>&1

rmBackup.sh注释:

#!/bin/sh

# Name:rmBackup.sh

# PS:Delete old Backup.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义备份目录

dataBackupDir=/tmp/mysqlbackup

# 删除mtime>2的日志备份文件

find $dataBackupDir -name "mysql_*.gz" -type f -mtime +2 -exec rm {} \; > /dev/null 2>&1

(5)、恢复数据库到备份时的状态

用mysqldump 备份出来的文件是一个可以直接倒入的SQL 脚本,直接用mysql 客户端导入就可以了。

/usr/local/mysql/bin/mysql -uroot -pUserPWD db_name < db_name.sql

对于任何可适用的更新日志,将它们作为mysql 的输入:

% ls -t -r -1 HOSTNAME-bin* | xargs mysqlbinlog | mysql -uUser -pUserPWD

ls 命令生成更新日志文件的一个单列列表,根据服务器产生它们的次序排序(注意:如果你修改任何一个文件,你将改变排序次序,这将导致更新日志以错误的次序被运用。)

本套备份策略只能恢复数据库到最后一次备份时的状态,要想在崩溃时丢失的数据尽量少应该更频繁的进行备份,要想恢复数据到崩溃时的状态请使用主从复制机制(replication)。如果使用本套备份脚本,将日志文件和数据文件放到不同的磁盘上是一个不错的主义,这样不仅可以提高数据写入速度,还能使数据更安全。

备份策略四、使用主从复制机制(replication)

详见配置MySQL主从复制.doc

附录:

mysqldump 的一些主要参数:

--compatible=name

它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL 服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。

--complete-insert,-c

导出的数据采用包含字段名的完整INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少不推荐。

--default-character-set=charset

指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

--disable-keys

告诉mysqldump 在INSERT 语句的开头和结尾增加/*!40000 ALTER TABLE table DISABLE KEYS */; 和/*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合MyISAM 表。

--extended-insert = true|false

默认情况下,mysqldump 开启--complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为false 即可。

--hex-blob

使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有BINARY、VARBINARY、BLOB。

--lock-all-tables,-x

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。

--lock-tables

它和--lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于MyISAM 表,如果是Innodb 表可以用--single-transaction 选项。

--no-create-info,-t

只导出数据,而不添加CREATE TABLE 语句。

--no-data,-d

不导出任何数据,只导出数据库表结构。

--opt

这只是一个快捷选项,等同于同时添加--add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用--skip-opt 禁用。注意,如果运行mysqldump 没有指定--quick 或--opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。

--quick,-q

该选项在导出大表时很有用,它强制mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。

--routines,-R

导出存储过程以及自定义函数。

--single-transaction

该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如InnoDB 和BDB。

本选项和--lock-tables 选项是互斥的,因为LOCK TABLES 会使任何挂起的事务隐含提交。

要想导出大表的话,应结合使用--quick 选项。

--triggers

同时导出触发器。该选项默认启用,用--skip-triggers 禁用它。

其他参数详情请参考手册,我通常使用以下SQL 来备份MyISAM 表:

/usr/local/mysql/bin/mysqldump -uroot -pUserPWD --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x db_name > db_name.sql

使用以下SQL 来备份Innodb 表:

/usr/local/mysql/bin/mysqldump -uroot -pUserPWD --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction db_name > db_name.sql

MySQL数据库备份与恢复

MySQL数据库备份与恢复方法 常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法: MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。 在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL 的安装路径而定,DiaHosting的技术员一般为客户安装在D:serversoftmysql下。 如,有一个名为bbs的数据库,那么bbs的数据库文件会存放在/var/lib/mysql/bbs(linux)或者D:serversoftmysqlbbs(Windows)下。 备份文件前,需要将MySQL服务停止,然后将数据库目录拷贝即可。 恢复数据数据库时,需要先创建好一个数据库(不一定同名),然后将备份出来的文件(注意,不是目录)复制到对应的MySQL数据库目录中。 使用这一方法备份和恢复数据库时,需要新旧的MySQL版本一致,否则可能会出现错误。备份数据库: mysqldump –user=root –password=root密码–lock-all-tables 数据库名> 备份文件.sql 恢复数据库: mysql -u root –password=root密码数据库名< 备份文件.sql (3)使用Web程序 在这里我们推荐使用“帝国备份王”对MySQL进行备份。 主要优点: 1,跨平台。Windows与Linux下各种WEB环境均可以运行。 2,智能识别编码,解决备份时的乱码问题。 3,不同的MySQL版本间都可以进行备份和恢复操作。 4,采用分组备份,即使是超过1G的数据库也可以正常备份。 登录“帝国备份王”

SQL SERVER数据库备份与恢复方案

SQL SERVER数据库备份与恢复方 案 世界上没有万无一失的信息安全措施。信息世界“攻击和反攻击”也永无止境。对信息的攻击和防护好似矛与盾的关系,螺旋式地向前发展。在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。 威胁数据的安全,造成系统失效的主要原因有以下几个方面:硬盘驱动器损坏;人为错误;黑客攻击;病毒;自然灾害;电源浪涌;磁干扰。因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。 只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。 数据故障的形式是多种多样的。通常,数据故障可划分为系统故障、事务故障和介质故障三大类。从信息安全数据库备份与恢复方案的角度出,实际上第三方或敌方的“信息攻击”,也会产生不同种类的数据故障。例如:计算机病毒型、特洛伊木马型、“黑客”入侵型、逻辑炸弹型等。这些故障将会造成的后果有:数据丢失、数据被修改、增加无用数据及系统瘫痪等。作为系统管理员,要千方百计地维护系统和数据的完整性与准确性。

通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。 以下主要介绍SQL SERVER数据备份方案和数据库恢复方案。SQL SERVER数据备份方案 SQL SERVER数据库的备份方法主要有完整备份,差异备份,事务日志备份等。根据数据安全性的要求,推荐的备份方式为每周一次完整备份,每天一次差异备份,每半个小时一次事务日志备份。 默认情况下,为sysadmin 固定服务器角色以及db_owner 和db_backupoperator 固定数据库角色的成员授予BACKUP DATABASE 和BACKUP LOG 权限。 备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。SQL Server 必须能够读取和写入设备;运行SQL Server 服务的帐户必须具有写入权限。 备份文件存放磁盘需要与数据库文件存放磁盘分开,避免磁盘IO冲突。备份执行时间与数据库作业执行时间错开,避免备份影响数据库作业的执行。 SQL SERVER 维护计划功能可以较好的实现自动化备份,在使用该功能前启动数据库管理器上的SQL SERVER 代理功能。

MySQL完全备份、增量备份与恢复

MySQL完全备份、增量备份与恢复 适用版本] MySQL 4.x - 6.x [ 配置] 执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或https://www.doczj.com/doc/004654970.html,f中 加入 log-bin=C:/Program Files/MySQL/MySQL Server 6.0/Data/mysql-bin “log-bin=”后的字符串为日志记载目录,一般建议放在不同于mysql数据目录的磁盘上。 [ 完全备份] 假定星期日下午1点执行完全备份,适用于MyISAM存储引擎。 mysqldump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql 对于InnoDB 将--lock-all-tables替换为--single-transaction --flush-logs 为结束当前日志,生成新日志文件 --master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称, 用于日后恢复时参考,例如输出的备份SQL文件中含有: -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106; 其他说明: 如果mysqldump加上--delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用mysqldump --delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用PURGE MASTER LOGS更为安全。 [ 增量备份] 每日定时使用mysqladmin flush-logs来创建新日志,并结束前一日志写入过程。并 把前一日志备份,例如上例中开始保存数据目录下的日志文件mysql-bin.000002 , ... [ 从备份中恢复] * 恢复完全备份 mysql -u root -p < backup_sunday_1_PM.sql * 恢复增量备份 mysqlbinlog mysql-bin.000002 ... | mysql -u root -p 注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能。

oracle数据库备份与恢复方案

oracle数据库备份与恢复方案

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (2) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (3) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原 (restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8 或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级 别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备 份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Windows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不 关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上

四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中 五、数据备份 1.业务系统或数据库在打重要补丁或升级的前后,必须按要求对业务系统进行停 机备份或非停机备份,备份需包含应用和数据库的文件系统及数据,备份方式为手工备份,使用RMAN执行备份; 2.系统日常备份:作为7*24运行的重要系统,必须最小化数据丢失的同时,还 需要尽可能缩短恢复时间,数据库的日常备份策略如下: (1)确保数据库处于ArchiliveLog模式; (2)每日凌晨01:00执行数据库全备份,含控制文件备份; (3)每四小时间隔执行数据库归档日志备份,含控制文件备份; (4)每间隔两周执行数据库与应用系统文件备份,执行时间:数据库服务器在第一周的周六05:00,应用服务器在第一周的周六7:00。 3.每周一将上周的备份文件拷贝到其它存储介质上; 4.每月一号将上月最后一周的备份文件刻录到光盘上。 六、备份的存储 1.在确保成功备份数据的同时,必须严格保证存储结构的完整性,在备份服务器 或备份带库上需要保留足够的剩余空间,以存储需要保存的多份备份文件; 2.如项目上采用了专门的备份软件,有专用的备份存储,应提前规划好备份的存

mysql备份与恢复方案

服务器备份方案 一、MYSQL数据库备份与恢复: 数据库本地备份:当数据量少的时候可以在每天凌晨1点-3点进行完全备份,随着数据库的增大,可以2两小时(按照需求设置时间)做增量备份与完全备份相结合的备份方式以确保数据的安全。 数据库完全备份脚本: 1.确定我们备份文件存放的目录这里我把所有备份文件放到/home/mysqlback 2.确定需要备份的数据库,这里我们用备份d_test这个数据库来说明。 dbuser="root" #定义数据库用户名 dbpasswd="123456" #定义数据库密码 dbname="d_test" #定义需要备份的数据库 date1=`date +%Y%m%d` #读取当前日期 date2 = `date +%Y%m%d%H%M%S` #读取当前的日期时间Y年m月d日H小时M分钟S秒 date3 = `date -d -5day +"%Y%m%d"` #读取当天日期之5天前的日期 back = /home/mysqlback/$date1 #备份文件存放目录 #判断是不是有文件存放目录如果没有则新建。 if [ ! -d $back ] then mkdir -p $back fi #使用mysqldump命令来备份指定的数据库并且压缩成gz包。 mysqldump -u$dbuser -p$dbpasswd $dbname | gzip > $back/$dbname$date2.sql.gz #删除指定5天前备份的过期文件以便节省磁盘空间 cd /home/mysqlback rm -rf $date3 异地备份 首先准备一台异地的服务器,并且搭建好vsftp(vsftp具体搭建详细步骤请参考VSFTP搭建文档) 异地备份到vsftp服务器上脚本如下:

MySQL备份与恢复(PDF版)

下面文章摘录的主题:mysql日志文件,使用mysqld加相应选项来启用某种日志。Mysql 完全备份及恢复:mysqldump对MyISAM或InnoDB完全备份,mysqlhotcopy对MyISAM完全备份。增量备份:使用二进制日志增量备份,使用mysqlbinlog命令恢复二进制日志。 SQL语法备份及恢复。拷贝数据文件备份(对Innodb还需拷贝日志文件)。MyISAM表的检查与修复(另见《MySql存储引擎》)。Innodb表的碎片整理和模糊检查点。 MySQL备份和恢复 作/译者:叶金荣 本文讨论MySQL的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM和Innodb,文中设计的MySQL版本为 5.0.22。 目前MySQL支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用SQL语法进行备份:BACKUP TABLE或者SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份binlog,或者用mysqldump。 1、mysqldump 1.1备份 mysqldump是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 现在来讲一下mysqldump的一些主要参数: 1.--compatible=name 它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。 2.--complete-insert,-c 导出的数据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。 3.--default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 4.--disable-keys 告诉mysqldump在INSERT语句的开头和结尾增加/*!40000ALTER TABLE table DISABLE KEYS*/;和/*!40000ALTER TABLE table ENABLE KEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合MyISAM表。 5.--extended-insert=true|false 默认情况下,mysqldump开启--complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为false即可。 6.--hex-blob

AnyBackup MySQL定时备份与恢复最佳实践手册

.

目录 第 1 章 . 概述 (1) 1.1.目标读者 (1) 1.2.本文档适用范围 (1) 1.3.MySQL 定时备份功能模块简介 (1) 第 2 章. MySQL 基础知识简介 (1) 2.1.MySQL 简介 (1) 2.2.MySQL 引擎介绍 (1) 2.3.关键技术原理 (1) 2.3.1.MySQL 数据库定时备份原理分析 (1) 2.3.2.MySQL 数据库恢复原理分析 (2) 第 3 章. MySQL 定时备份最佳实践 (3) 3.1.MySQL 定时备份最佳实践 (3) 3.1.1.部署注意事项 (3) 3.1.2.定时备份最佳操作 (3) 3.2.MySQL 恢复最佳实践 (13) 3.2.1.部署注意事项 (13) 3.2.2.定时备份的恢复最佳操作 (14) 3.3.FAQ (16)

第1章. 概述 本文档是爱数备仹容灾家族MySQL 一体化容灾最佳实践文档,主要描述了如何正确地使用爱数备仹容灾家族产品成员迚行 MySQL 定时备仹恢复的方法,包括部署前后的注意事项和典型部署方案。 1.1.目标读者 本技术文档面向爱数备仹容灾家族产品成员的用户和相关技术人员,主要介绍 MySQL 数据库定时备仹不恢复的基础知识,以及如何正确使用爱数备仹容灾家族产品成员部署MySQL 数据库定时备仹方案。 旨在通过此文档帮劣用户和技术人员快速掊插MySQL 数据库定时备仹模块的使用方法。 1.3.MySQL 定时备份功能模块简介

恢复位置原位置 恢复粒度整个实例、单个数据库异机恢复支持

第2章. MySQL 基础知识简介 2.1.MySQL 简介 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB 公司。目前MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。 2.2.MySQL 引擎介绍 MyISAM:MySQL 的默讣数据库,最为常用。拥有较高的揑入,查询速度,但不支持事务。 InnoDB:事务型数据库的首选引擎,支持 ACID 事务,支持行级锁定。 BDB:源自 Berkeley D B,事务型数据库的另一种选择,支持 COMMIT 和 ROLLBACK 等其他事务特性 Memory :所有数据置于内存的存储引擎,拥有极高的揑入,更新和查询敁率。但是会占用和数据量成正比的内存空间。幵丏其内容会在 Mysql 重新启劢时丢失。 Merge:将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时徆有用。 Archive:非常适合存储大量的独立的、作为历叱记弽的数据。它们不经常被读取。Archive 拥有高敁的揑入速度,但其对查询的支持相对较差。 Federated:将不同的 MySQL 服务器联合起来,逡辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。 CSV:逡辑上由逗号分割数据的存储引擎。 BlackHole:黑洞引擎,写入的仸何数据都会消失,一般用于记弽 binlog 做复制的中继。 2.3.关键技术原理 2.3.1.MySQL 数据库定时备份原理分析 本版本,MySQL 数据库定时备仹采用的是脚本+文件备仹方式。爱数备仹软件系统首先根据用户的选择获取数据源,然后根据数据库类型生成相应的备仹脚本。接着,备仹系统调用备仹脚本,该脚本可以让数据库自带的备仹工具迚行备仹,幵将备仹集放到临时路径。随后备仹系统将生产的备仹集备仹到介质服务器,最后删除备仹脚本和临时路径的备仹内容。 ?支持的备仹类型:完全备仹 ?备仹命令调用: 1.备份整个实例 mysqldump -u root -p https://www.doczj.com/doc/004654970.html, --all-database > “E:\homebakpath\allDatab ases\localhost_allDatabases_2012121210352.full”

数据备份与恢复方案

数据备份与恢复方案 2016年8月 目录 1概述 (1) 2备份需求 (1) 3策略 (1) 3.1备份环境 (1) 3.2备份节点 (1) 3.3备份方案概述 (1) 3.4数据恢复概述 (2) 4方案 (2) 5可能遇到情况及解决方法 (5)

1概述 随着公司信息化系统建设的不断推进,我们对信息系统的实时性要求也会越来越高,系统运行遇到故障时尽快恢复服务对公司的正常运营至关重要; 为最大限度保障云盘用户数据安全性,同时为了能在不可预计灾难情况下,保证云盘的安全快速恢复工作,所以需要对云盘进行数据备份与恢复工作。 方案主要内容:数据备份是指通过软件自动执行或手工操作将服务器重要文件及数据保存到磁盘柜和磁带等存储设备上。主要目的是减少及避免由于服务器软硬件故障造成的数据丢失,确保公司信息系统出现故障时在最短的时间内恢复运行并且重新提供服务。 云盘环境 采用双节点方式部署: 服务器:2台物理服务器均安装CentOS 7.0系统与云盘软件。 数据存储:2台服务器分别为:db_master与db_slave,各挂载3T的FC-SAN存储。 2备份需求 对2台云盘服务器数据进行备份,并验证恢复,保证数据安全性。 3策略 3.1备份环境 需要1台服务器安装CV备份服务器,分别为云盘服务器上安装CV控制台,因考虑备份服务器存放备份文件,故CV备份服务器挂载存储需要大于7T(云盘服务器存储为:800G磁盘+3T存储)。 3.2备份节点 2台生产环境云盘服务器都需要备份/data/data_all、/lefsdata、/usr/local/lefos,同时做好标记,区分开主服务器与副服务器的/data/data_all、/lefsdata、/usr/local/lefos。 3.3备份方案概述 将2台生产服务器安装CV客户端,从CV服务器中检测云盘服务器。检测到后,拷贝数据到CV服务器指定目录下。 3.4数据恢复概述 数据恢复时对应主、副服务器,从CV服务器上进行相关操作,将备份的主服务器与副服务器的/data/data_all、/lefsdata、/usr/local/lefos传输回备份服务器目录位置,检测拷贝后文件的所有者与所有组、权限是否正确,重启所有服务。

mysql数据库备份与恢复

my sql数据库备份与恢复 windows下实现mysql数据库定时备份功能一、进入mysql的bin目录 二、导出: [mysql bin path]>mysqldump--opt-d-u root-p dbn> backup-file.sql Enter password:****** 三、导入: [mysql bin path]>mysql-u root-p dbn<backup-file.sql Enter password:****** 四、收尾工作:清理sql文件,导出时会在bin目录下生成backup-file.sql 文件,在导入工作完成后就没用了,可以删了,当然留着也可以。

我自己的用的备份语句: d: cd\mysql\mysql5.1.30\bin mysqldump--opt-uroot-p123456 bbs_sikaozhoubao_com>E:\backup\bbs_sikaozhoubao_com\%date:~ 0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.sq l 更多的说明: 导出要用到MySQL的mysqldump工具,基本用法是: shell>mysqldump[OPTIONS]database[tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump--help,你能得到你mysqldump的版本支持

的选项表。 注意,mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。 mysqldump支持下列选项: --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 --add-drop-table 在每个create语句之前增加一个drop table。

数据库备份方案

《客户名称》备份管理系统设计方案上海鸿翼数字计算机网络有限公司

目录 1.项目概述 (3) 2.系统需求分析 (3) 1.1系统现状分析 (3) 1.2备份系统风险评估 (3) 1.3备份系统需求分析 (4) 3.系统备份理念 (5) 3.1系统设计指引 (5) 3.2数据保护技术选择 (5) 3.3连续数据保护 (6) 3.4备份管理系统组成 (6) 4.系统备份结构设计 (8) 4.1整体系统架构设计 (9) 5.系统备份方案介绍 (10) 5.1W INDOWS服务器自身备份 (10) 5.2方案2:双机热备 (12) 5.3方案3:爱数备份 (13)

1.项目概述 上海鸿翼数字计算机网络有限公司将根据《》的网络实际需求,制定一套完整的集数据备份、灾难恢复、服务器整合及虚拟化一身的方案。一个完整的企业数据备份与恢复解决方案就意味着数据安全与性能(机器和网络)的完美结合,一条龙式的服务标准(产品的服务与支持)。所以在选择备份系统时,既要做到满足系统容量不断增加的需求,又要所用的备份方式能够支持多系统平台操作。要达到这些,就要充分使用网络数据存储系统,在分布式网络环境下,通过专业的数据存储软件,配合系统备份及双机备份,结合相应的硬件和存储设备,对网络的数据备份进行集中管理,从而实现自动化备份、文件归档、数据分级存储和灾难恢复。 2.系统需求分析 1.1系统现状分析 《》网络基础结构是基于Windows平台,现在拥有X台服务器。《》的文档管理系统包含了文件服务器、转档服务器、数据库服务器等企业信息管理系统,为企业的发展提供了强有力的信息化支持。主要数据库包含了Microsoft SQL Server、Oracle、DB2等。 1.2备份系统风险评估 《》的信息系统管理人员十分重视数据的保护,在没有备份软件的情况下,已经采用了重要数据镜像备份、服务器系统镜像备份等常规保护方法,为企业的数据财产提供了安全的保障。但是以上方法很难实现快速备份和灾难后的迅速恢复,很难保证业务的连续性。

数据备份与恢复方案0803

目录 第1章数据备份与恢复 (2) 1.1 数据库备份方案背景 (2) 1.2 备份与恢复概述 (2) 1.3 数据库备份与恢复所要达到的目标 (2) 第2章数据备份方案 (3) 2.1 备份工具的选取 (3) 2.2 数据备份方案 (3) 2.3 备份实施需求 (3) 2.4 数据备份的几种方式 (4) 第3章数据恢复方案 (5) 3.1 数据恢复的几种方式 (5) 第4章相关参数以及备份恢复示例 (6) 4.1.1 相关参数 (6) 4.1.2 数据备份恢复示例 (7) 第1页

第1章数据备份与恢复 1.1 数据库备份方案背景 随着电子化进程的飞速发展和信息技术的广泛应用,数据越来越成为企业、事业单位日常运作中不可缺少的部分和领导决策的依据。但是,计算机的使用有时也会给人们带来烦恼,那就是计算机数据非常容易丢失和遭到破坏。有专业机构的研究数据表明:丢失300MB的数据对于市场营销部门就意味着13万元人民币的损失,对财务部门意味着16万的损失,对工程部门来说损失可达80万。而丢失的关键数据如果15天内仍得不到恢复,企业就有可能被淘汰出局。随着计算机系统越来越成为企业不可或缺的数据载体,如何利用数据备份来保证数据安全也成为我们迫切需要研究的一个课题。 1.2 备份与恢复概述 备份与恢复是我们使用数据库中不可缺少的部分,也是我们在使用数据库时会经常碰到的问题,当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。 1.3 数据库备份与恢复所要达到的目标 备份仅仅是数据保护的手段,“备份数据必须能够迅速、正确的进行恢复”才是真正的目地,换句话说,企业规划备份架构时应该以恢复为最终目的进行构架,当意外发生时、当用户端提出恢复需求时,备份数据要能快速、可靠的恢复,如此的备份才是值得信赖的备份,才有其存储的意义。

完整word版数据库备份与恢复方案

数据库备份与恢复方案特别是计算机网络的飞速随着计算机的普及和信息技术的进步,数据备份是保证信息安全的一个发展,信息安全的重要性日趋明显。重要方法。就有可能产生数据故数据存储和数据交换,只要发生数据传输、障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。数据故障可划分为系统故通常,数据故障的形式是多种多样的。从信息安全数据库备份与恢复方案事务故障和介质故障三大类。障、,也会产生不同种类的角度出,实际上第三方或敌方的“信息攻击”“黑客”入侵型、的数据故障。例如:计算机病毒型、特洛伊木马型、数据被修改、这些故障将会造成的后果有:数据丢失、逻辑炸弹型等。要千方百计地维护系作为系统管理员,增加无用数据及系统瘫痪等。统和数据的完整性与准确性。通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。“攻击和反攻击”世界上没有万无一失的信息安全措施。信息世界 螺旋式地向前对信息的攻击和防护好似矛与盾的关系,也永无止境。发展。传输和分发中经常会存在一些新的问题,存储、处理、在信息的收集、1 其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。威胁

数据的安全,造成系统失效的主要原因有以下几个方面: 、硬盘驱动器损坏;1 人为错误;2、黑客攻击;3、病毒;4、自然灾害;5、 电源浪涌;6、 磁干扰;、7 也是防止主因此,数据备份与数据恢复是保护数据的最后手段, 动型信息攻击的最后一道防线。 数据备份方案SQL SERVER 数据库的备份方法主要有完整备份,差异备份,事SQL SERVER 推荐的备份方式为每周一次根据数据安全性的要求,务日志备份等。完整备份,每天一次差异备份,每半个小时一次事务日志备份。和db_owner 固定服务器角色以及默认情况下,为sysadmin 2 BACKUP DATABASE 固定数据库角色的成员授予db_backupoperator 权限。和BACKUP LOG 备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 服务的帐SQL Server SQL Server 必须能够读取和写入设备;运行户必须具有写入权限。备份文件存放磁盘需要与数据库文件存放磁盘分开,避免磁盘 冲突。备份执行时间与数据库作业执行时间错开,避免备份影响IO 数据库作业的执行。维护计划功能可以较好的实现自动化备份,在使用SQL SERVER 代理功能。如下图:该功能前启动数据库管理器上的SQL SERVER

oracle数据库备份与恢复方案

oracle数据库备份与恢复方案 受控不受控

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (1) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (2) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfil e参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Wind ows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上 四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中

五、数据备份 1.业务系统或数据库在打重要补丁或升级的前后,必须按要求对业务系统进行停机备份或非停机备份,备份需包含应用和数据库的文件系统及数据,备份方式为手工备份,使用RMAN执行备份; 2.系统日常备份:作为7*24运行的重要系统,必须最小化数据丢失的同时,还需要尽可能缩短恢复时间,数据库的日常备份策略如下: (1)确保数据库处于ArchiliveLog模式; (2)每日凌晨01:00执行数据库全备份,含控制文件备份; (3)每四小时间隔执行数据库归档日志备份,含控制文件备份; (4)每间隔两周执行数据库与应用系统文件备份,执行时间:数据库服务器在第一周的周六05:00,应用服务器在第一周的周六7:00。 3.每周一将上周的备份文件拷贝到其它存储介质上; 4.每月一号将上月最后一周的备份文件刻录到光盘上。 六、备份的存储 1.在确保成功备份数据的同时,必须严格保证存储结构的完整性,在备份服务器或备份带库上需要保留足够的剩余空间,以存储需要保存的多份备份文件; 2.如项目上采用了专门的备份软件,有专用的备份存储,应提前规划好备份的存储空间,比如按时间特征存储相对应的备份:年备份池、月备份池、日备份池;和按类型存储的备份池:os文件系统池、db数据库池等; 3.如未采用专门的备份软件,在备份服务器上架设专门的ftp服务器,每次备份之后,由计划任务定时调度,将备份数据传输至备份服务器,传输备份数据的时间应选在服务器业务较少的空闲时间进行。 七、备份数据的保存规定 1.年备份永久保存(即每年最后一天的备份)

(完整word版)数据库备份与恢复方案

数据库备份与恢复方案 随着计算机的普及和信息技术的进步,特别是计算机网络的飞速发展,信息安全的重要性日趋明显。数据备份是保证信息安全的一个重要方法。 只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。 数据故障的形式是多种多样的。通常,数据故障可划分为系统故障、事务故障和介质故障三大类。从信息安全数据库备份与恢复方案的角度出,实际上第三方或敌方的“信息攻击”,也会产生不同种类的数据故障。例如:计算机病毒型、特洛伊木马型、“黑客”入侵型、逻辑炸弹型等。这些故障将会造成的后果有:数据丢失、数据被修改、增加无用数据及系统瘫痪等。作为系统管理员,要千方百计地维护系统和数据的完整性与准确性。通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。 世界上没有万无一失的信息安全措施。信息世界“攻击和反攻击”也永无止境。对信息的攻击和防护好似矛与盾的关系,螺旋式地向前发展。 在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,

其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。 威胁数据的安全,造成系统失效的主要原因有以下几个方面: 1、硬盘驱动器损坏; 2、人为错误; 3、黑客攻击; 4、病毒; 5、自然灾害; 6、电源浪涌; 7、磁干扰; 因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。 SQL SERVER数据备份方案 SQL SERVER数据库的备份方法主要有完整备份,差异备份,事务日志备份等。根据数据安全性的要求,推荐的备份方式为每周一次完整备份,每天一次差异备份,每半个小时一次事务日志备份。 默认情况下,为sysadmin 固定服务器角色以及db_owner 和

MySQL备份与恢复

MySQL的备份与恢复 一、MySQL的备份: MySQL通过在全量备份基础上保证完整的二进制日志文件来达到增量备份的目的。因此MySQL实现增量备份主要有以下几个步骤: 1.开启二进制日志(bin-log): mysql默认没有启二进制日志。首先我们需要在my.ini中修改参数: 在[mysqld]下添加: log-bin=log-bin 这是设置开启二进制日志的参数,日志名为log-bin.index和log-bin.000001等。默认路径为:MySQL安装目录\data。 expire_logs_day=7 这是设置二进制日志过期时间的参数。目前二进制日志在flush log时自动删除7天之前的日志。 然后重启MySQL服务。可以在E:\MySQL Server5.5\data目录下看到“log-bin.数字编号”的文件,如log-bin.000001。以后每次flush log时都会从当前时间开始生成新的log-bin,文件名中的数字编号依次递增。 2.MySQL的自动全量备份: 这里使用mysqldump备份数据库。mysqldump是MySQL用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 这里编写了一个批处理程序,通过任务计划定时运行来完成自动备份功能。代码如下: MySQLBackup.bat: @echo off title "数据库备份程序" set MYSQLPATH=E:\"MySQL Server5.5" set DT=%date:~0,4%-%date:~5,2%-%date:~8,2% //获得当前日期 if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%) //小时数前自动添0 set TM=%hour%-%time:~3,2%-%time:~6,2% //获得当前时间 set USERNAME=root set PASSWORD=google //数据库用户名和密码 @echo on

Oracle数据库备份与恢复方案

Oracle数据库备份与恢复方案 任何数据库在长期使用过程中,都会存在安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当任何人为的或是自然的灾难一旦出现,而导致数据库崩溃、物理介质损坏等,就可以及时恢复系统中重要的数据,不影响整个单位业务的运作。然而如果没有可靠的备份数据和恢复机制,就会带来系统瘫痪、工作停滞、经济损失等等不堪设想的后果。本文以ORACLE数据库为例,结合医院的业务应用环境,介绍ORACLE数据库的备份恢复。 首先,应当制定一个严格的工作制度,规范化数据库维护的工作流程。 总结实际工作中的经验,数据库管理员应当按照以下原则进行数据库系统的维护: 要求:每日值班的数据库管理员应当随时监控主数据库服务器、备份数据库服务器的软件、硬件的正常运行,一旦出现故障,应立即向领导汇报并采取相应恢复措施。 一、管理员应当每日察看数据库的冷备份报告,出现问题及时检查备份文件,保障每日数据库服务器的备份正常运行。 二、当主数据库服务器出现数据库错误时,应检查数据库的工作状态。如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。 三、当主数据库服务器出现硬件故障时,应在1小时内更新备份数据库为最新数据,并启动备份数据库服务器,将备份数据库服务器升级为主数据库服务器。对于损坏的主数据库服务器应重新安装ORACLE数据库,并启用紧急恢复方案。 四、当备份数据库服务器出现数据库错误时,应检查ORACLE数据库的工作状态,如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。如果ORACLE工作不正常,应重新安装ORACLE数据库并启用紧急恢复方案。 五、当备份数据库服务器出现硬件故障时,应尽快修复。等待硬件正常工作后,首先重新安装ORACLE数据库,并采用紧急恢复方案恢复ORACLE数据库。 六、每周至少三次将备份数据转移到移动磁盘内,以防止出现自然灾害的事故而导致的备份数据丢失。 七、UCACHE企业级灾备云作为企业整体数据迁移工具使用: 1、基于云数据中心的灾备服务方案实现跨地域和物理隔离的异地容灾解决方案,可作为企业解决异地容灾备份工具; 2、作为支持企业数据从本地到云端(D2C或D2D2C)的整体数据迁移工具; 3、作为云端到云端(C2C)的灾备服务架构,满足企业云端到云端的整体数据迁移工具; 4、支持将数据灾备到UCache全国300+数据中心,或用户自建的数据中心的数据异地灾备使用。

数据备份与恢复预案

公司数据灾难备份及恢复应急预案 1、数据抢救 灾难发生时,需在保证人身安全得情况对公司得重要数据进行抢救,抢救得范围主要包括:记录公司重要信息得文件、资料,存储公司重要数据得磁带,存放重要数据得硬盘、服务器。此过程需由安全组进行统筹指挥,按照既定得计划执行,各组成员、公司员工必须服从安全组得统一调度与指挥。 2、损坏评估及启动应预案 灾难发生后需根据情况汇报损失情况给损坏评估组,损坏评估组根据汇总信息进行消息告知。 损坏信息包括: a)公司重要数据服务器、监视、办公设备 b)拥有在可以执行计划之内得关键性功能得员工 c)保存公司重要数据得介质 d)网络、通讯设备 根据披露得损坏信息情况进行应急预案启动,如选举临时领导、使用备份服务器、备份通讯设备进行替代等。 3、业务恢复计划 业务恢复计划可划分为以下几个阶段: a)IT基础设施恢复阶段:

此阶段主要得目标就是将对于保存数据得基础设施、业务系统所在得主机、公司网络架构进行恢复。首先须根据损失评估得报告分析可继续利用得IT基础设施,如供电设施、交换机、服务器、防火墙等。若有损坏不可用得设备,需及时同代理商进行沟通借用或新购相应设备。 b)系统恢复阶段: 系统恢复主要针对关键应用主机,如邮件服务器。为节约时间需同时针对各个服务器系统进行快速恢复。 c)网络恢复阶段: 网络恢复阶段得主要针对以下几点进行: 关键商业应用系统得内部局域网与网络设备得支持 外部广域网与电信服务 待恢复系统与终端用户(公司同事)间得通讯 4、业务系统数据恢复: 首先须对业务系统得数据进行恢复,需要寻找相应得恢复设备完成此操作,目前我们主要利用磁盘、远程灾备数据,可正常工作得主机或同城备份机房进行数据恢复工作。需要将抢救出得磁带、硬盘或远程数据在对应设备上恢复出数据。 5、业务系统重搭建: 由于一些业务系统得特殊性,需尽快与相应平台得供应商接口人取得联系,并申请临时可用得许可文件等。 6、业务系统数据导入:

mysql的自动备份与恢复(mysqlhotcopy)

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。 这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell。 [1] 建立自动备份脚本 在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

个提示是DBD包没有安装。 根据README中的提示进行安装,如果在TAR包的MYSQL系统上安装DBD::MYSQL,那么在设置环境时应使用如上命令: perl Makefile.PL \ --libs="-L/usr/local/mysql-4.0.9/lib/mysql -lmysqlclient -lz" \ --cflags=-I/usr/local/mysql-4.0.9/include/mysql \ --testhost=127.0.0.1 接下来的命令没有必要执行,还有可能报错。 make make test # Some minor error messages can be ignored here make install 若还是不行的话,请跟着做: 此时将/usr/local/mysql/include/mysql/*复制到/usr/include/,同时将 /usr/local/mysql/lib/mysql/*复制到/usr/lib/,然后使用perl Makefile.PL 设置环境,再进行后续的正常安装,就能正确连接到MYSQL数据库。 [2] 运行数据库自动备份脚本 [3] 让数据库备份脚本每天自动运行

相关主题
文本预览
相关文档 最新文档