一般是即时备份。做主从。或者是每天增量备份。
本文是在linux下,mysql 4114版本下测试的,经过适当修改可能适合mysql 40,50及其其他版本
本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数
每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失
希望你明白这个脚本要干什么工作!
脚本描述
每7天备份一次所有数据,每天备份binlog,也就是增量备份
(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)
作者对shell脚本不太熟悉,所以很多地方写的很笨 :)
开启 bin log
在mysql 41版本中,默认只有错误日志,没有其他日志可以通过修改配置打开bin log方法很多,其中一个是在/etc/mycnf中的mysqld部分加入:
[mysqld]
log-bin
这个日志的主要作用是增量备份或者复制(可能还有其他用途)
如果想增量备份,必须打开这个日志
对于数据库 *** 作频繁的mysql,这个日志会变得很大,而且可能会有多个
在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的)
所以如果从来不备份,开启日志可能没有必要
完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据
完整备份脚本
如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了
#!/bin/sh
BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbaklog
DATE=`date +%Y%m%d`
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
cd $BakDir
DumpFile=$DATEsql
GZDumpFile=$DATEsqltgz
mysqldump --quick --all-databases --flush-logs
--delete-master-logs --lock-all-tables
> $DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]Backup Success!" >> $LogFile
rm -f $DumpFile
#delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件
cd $BakDir/daily
rm -f
cd $BakDir
echo "Backup Done!"
echo "please Check $BakDir Directory!"
echo "copy it to your local disk or ftp to somewhere !!!"
ls -al $BakDir
上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下
注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动 *** 作
增量备份
增量备份的数据量比较小,但是要在完整备份的基础上 *** 作,用户可以在时间和成本上权衡,选择最有利于自己的方式
增量备份使用bin log,脚本如下:
#!/bin/sh
#
# mysql binlog backup script
#
/usr/bin/mysqladmin flush-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-binindex`
##计算行数,也就是文件数
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "skip exist $base"
else
echo "copying $base"
cp $base $BAKDIR
fi
fi
done
echo "backup mysql binlog ok"
增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个
因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了
注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成
访问设置
脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqldump都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个mycnf文件,内容如下
[mysqladmin]
password =password
user= root
[mysqldump]
user=root
password=password
注:设置本文件只有root可读(chmod 600 mycnf )
此文件说明程序使用mysql的root用户备份数据,密码是对应的设置这样就不需要在脚本里写用户名和密码了
自动运行
为了让备份程序自动运行,我们需要把它加入crontab
有2种方法,一种是把脚本根据自己的选择放入到/etc/crondaily,/etc/cronweekly这么目录里
一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行
什么是备份
所谓备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。如下图所示:
ORACLE数据库的备份分为物理备份和逻辑备份两种。物理备份是将实际组成数据库的 *** 作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或 *** 作系统命令进行数据库的物理备份。逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。Oracle提供的逻辑备份工具是 EXP。
数据库逻辑备份是物理备份的补充。
根据在物理备份时数据库的状态,可以将备份分为一致性备份(consistent backup)和不一致性备份(inconsistent backup)两种:
一致性备份:一致性备份是当数据库的所有可读写的数据库文件和控制文件具有相同的系统改变号(SCN),并且数据文件不包含当前 SCN 之外的任何改变。在做数据库检查点时,Oracle 使所有的控制文件和数据文件一致。对于只读表空间和脱机的表空间,Oracle 也认为它们是一致的。使数据库处于一致状态的唯一方法是数据库正常关闭(用shutdown normal 或 shutdown immediate 命令关闭)。因此,只有在以下条件下的备份是一致性备份:
数据库正常关闭(用shutdown normal 或 shutdown immediate 命令关闭)。
不一致性备份:不一致备份是当数据库的可读写的数据库文件和控制文件的系统改变号(SCN)在不一致条件下的备份。对于一个 724 工作的数据库来说,由于不可能关机,而数据库数据是不断改变的,因此只能进行不一致备份。在 SCN 号不一致的条件下,数据库必须通过应用重做日志使 SCN 一致的情况下才能启动。因此,如果进行不一致备份,数据库必须设为归档状态,并对重做日志归档才有意义。在以下条件下的备份是不一致性备份:
数据库处于打开状态。
数据库处于关闭状态,但是用非正常手段关闭的。例如,数据库是通过 shutdown abort 或机器掉电等等方法关闭的。
什么是恢复
所谓恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。根据出现故障的原因,恢复分为两种类型:
实例恢复。这种恢复是Oracle实例出现失败后,Oracle自动进行的恢复。
介质恢复。这种恢复是当存放数据库的介质出现故障时所做的恢复。本书后面提到的恢复都是指介质恢复。
装载(restore)物理备份与恢复(Recover)物理备份是介质恢复的手段。装载是将备份考回到磁盘,恢复是利用重做日志(物理备份的一部分)修改考回到磁盘的数据文件(物理备份的另一部分),从而恢复数据库的过程。如下图所示:
根据数据库的恢复程度,将恢复方法分为两种类型:
完全恢复:将数据库恢复到数据库失败时数据库的状态。这种恢复是通过装载数据库备份和并应用全部的重做日志做到的。
不完全恢复:将数据库恢复到数据库失败前的某一时刻数据库的状态。这种恢复是通过装载数据库备份和并应用部分的重做日志做到的。进行不完全恢复后必须在启动数据库时用 resetlogs 选项重设联机重做日志。
例如,在上午10:00,由于磁盘损坏导致数据库中止使用。现在使用两种方法进行数据库的恢复,第一种方法使数据库可以正常使用,且使恢复后与损坏时(10:00)数据库中的数据相同,那么第一种恢复方法就属于完全恢复类型;第二种方法能使数据库正常使用,但只能使恢复后与损坏前(例如9:00)数据库中的数据相同,没能恢复数据库到失败时(10:00)数据库的状态,那么第二种恢复方法就属于不完全恢复类型。
事实上,如果数据库备份是一致性的备份,则装载后的数据库即可使用,从而也可以不用重做日志恢复到数据库备份时的点。这也是一种不完全恢复。
备份与恢复的关系
备份一个ORACLE数据库,类似于买医疗保险——在遇到疾病之前不会意识到它的重要性,获得保险金的数量取决于保险单的种类。同理,随着制作备份的种类和频繁程度的不同,数据库发生故障后其恢复的可行性、难度与所花费的时间也不同。
数据库故障是指数据库运行过程中影响数据库正常使用的特殊事件。数据库故障有许多类型,最严重的是介质失败(如磁盘损坏),这种故障如不能恢复将导致数据库中数据的丢失。数据库故障类型有:
语句失败。
用户进程失败。
实例失败。
用户或应用错误 *** 作。这类错误可能是意外地删除了表中的数据等错误 *** 作。
介质失败。如硬盘失败,硬盘中的数据丢失。
自然灾害。如地震、洪水等。
由于故障类型的不同,恢复数据库的方法也不同。通过装载备份来恢复数据库既是常用的恢复手段,也是恢复介质失败故障的主要方法。
备份与恢复要考虑的问题
备份与恢复要考虑以下的三个问题:
备份与恢复策略要考虑的商业、 *** 作、及技术问题
灾难恢复计划的组成
测试备份与恢复策略的重要性
能够进行什么样的恢复依赖于有什么样的备份。作为 DBA,有责任从以下三个方面维护数据库的可恢复性:
使数据库的失效次数减到最少,从而使数据库保持最大的可用性;
当数据库不可避免地失效后,要使恢复时间减到最少,从而使恢复的效率达到最高;
当数据库失效后,要确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性。
备份与恢复策略要考虑的商业、 *** 作、及技术问题
作为 DBA,首先需要了解企业是如何使用数据库系统的,以及企业对数据库的可用性,恢复性能,和数据的可恢复性以及恢复时间的要求。然后,DBA 需要使企业的管理人员了解维护这样的数据库的可用性的代价有多大。做到这点的最好方法是评估恢复需要的花费,以及丢失数据给企业带来的损失。
在代价被评估后,就可以进行备份与恢复的讨论了。此时,要定义数据库总体的可用性需求,并根据各项工作对数据库可用性的影响程度来定义工作重点的次序。例如,如果数据库需要 724 的可用性,那么其重要性就高于其它任何工作,其它任何需要关机才能做的工作就不能做。
另外,数据库变化的情况也是备份与恢复策略需要考虑的一个因素。例如,如果数据不断改变,有新数据或数据文件加入,或表结构有大的变化,则应该经常备份;反之,如果数据是静态的或只读的,则备份一次即可。无论如何,应遵从这样一个原则,如果怀疑数据库的可恢复性,就应该备份。
灾难恢复计划的组成
针对灾难恢复,必须回答下述问题:
系统可能出现什么样的灾难恢复情况?
如果出现数据丢失,灾难恢复情况是怎样的?
系统中数据的易变程度如何?
如果出现问题,系统需要多快的速度恢复?
在各种情况下恢复策略的代价,以及相应的花时间重新录入数据的代价
对这些问题的回答组成了灾难恢复计划。
计算机是易坏的。主板上的芯片、主板电路、内存、电源等任何一项不能正常工作,都会导致计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏。但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据。
灾难恢复的最重要步骤是设计充足频率的硬盘备份过程。备份过程应该满足系统要求的可恢复性。例如,如果数据库可有较长的关机时间,则可以每周进行一次冷备份,并归档重做日志;但是,如果数据库只有极少的关机时间,则只能从硬件的角度来考虑备份与恢复的问题,例如使用硬盘镜像或双机系统。选择备份策略的依据是:丢是数据的代价与确保数据不丢失的代价之比。
果每天都能备份当然会很理想,但要考虑其现实性。企业都在想办法降低维护成本,现实的方案才可能被采用。只要仔细计划,并想办法达到数据库可用性的底线,花少量的钱进行成功的备份与恢复也是可能的。
DBA 还应以服务协议的形式制订一个可恢复性与可用性的标准文件。该文件应成为讨论DBA 服务,以及服务是否能达到预期标准的依据。这样做可使所有相关人员对同样的预期有潜在的危机感。
测试备份与恢复策略的重要性
备份与恢复策略必须经测试无误后才可使用。如果进行了备份,但不知道该备份是否支持希望的恢复目标则与根本没有备份没有两样。
恢复策略也要考虑虑对环境的依赖性。例如,假如机器的硬盘失效了,供货商能在多长时间内提供一个新的硬盘;在机器需要重新启动时,能找到 *** 作系统管理员吗?
另外一个需要考虑的问题是数据库是否能经受自然的破坏。应在与计算机不同的地方再存储一份备份介质,以免出现自然灾害时主机与备份一起遭到破坏。
最后需要考虑的问题是万一DBA 出现了问题怎么办?后备的DBA能否执行备份策略?他或她能找到支持用的文档吗?这些文档存在吗?
没有比花了大精力指定了好的计划,但没有测试其有效性而使其付诸东流的了。一个好的计划还应容纳人为错误,特别是用于开发的系统。理想的测试计划应包括以下内容:
一系列的测试例子及其状态描述;
测试结果是否成功的标准;
解决这些状态的步骤。
只有在上述情况测试成功的前提下,DBA 才应该考虑把备份
课程有:
1、PKI技术:
本课程不仅适合于信息安全专业的学生专业学习,也适合金融、电信等行业IT人员及有关业务人员的学习。随着计算机安全技术的发展,PKI在国内外已得到广泛应用。它是开展电子商务、电子政务、网上银行、网上证券交易等不可缺少的安全基础设施。主要内容有,从PKI的概念及理论基础、PKI的体系结构、PKI的主要功能、PKI服务、PKI实施及标准化,以及基于PKI技术的典型应用,全面介绍PKI技术及其应用的相关知识。学生通过本课程的学习,能够了解PKI的发展趋势,并对其关键技术及相关知识有一定认识和掌握。
2、安全认证技术:
安全认证技术是网络信息安全的重要组成部分之一,同时也是信息安全专业高年级开设的专业课程,针对当前网络电子商务的广泛使用。主要学习验证被认证对象的属性来确认被认证对象是否真实有效的各种方法,主要内容有网络系统的安全威胁、数据加密技术、生物认证技术、消息认证技术、安全协议等,是PKI技术、数据加密、计算机网络安全、数据库安全等课程的综合应用,对于学生以后更好的理解信息安全机制和在该领域实践工作都打下了很好的基础作用。
3、安全扫描技术:
本课程系统介绍网络安全中的扫描技术,使学生全面理解安全扫描技术的原理与应用。深入了解网络安全、漏洞以及它们之间的关联,掌握端口扫描和 *** 作系统指纹扫描的技术原理,懂得安全扫描器以及扫描技术的应用,了解反扫描技术和系统安全评估技术,把握扫描技术的发展趋势。
4、防火墙原理与技术:
本课程深入了解防火墙的核心技术,懂得防火墙的基本结构,掌握防火墙的工作原理,把握防火墙的基本概念,了解防火墙发展的新技术,熟悉国内外主流防火墙产品,了解防火墙的选型标准。
5、入侵检测技术:
掌握入侵检测的基本理论、基本方法和在整体网络安全防护中的应用,通过分析网络安全中入侵的手段与方法,找出相应的防范措施;深入理解入侵检测的重要性及其在安全防护中的地位。课程内容包括基本的网络安全知识、网络攻击的原理及实现、入侵检测技术的必要性、信息源的获取、入侵检测技术以及入侵检测系统的应用。
6、数据备份与灾难恢复:
本课程系统讲解数据存储技术、数据备份与灾难恢复的相关知识与实用技术,介绍数据备份与恢复的策略及解决方案、数据库系统与网络数据的备份与恢复,并对市场上的一些较成熟的技术和解决方案进行了分析比较。全面了解数据备份与恢复技术,掌握常用的数据备份和灾难恢复策略与解决方案,熟悉市场上的一些比较成熟的技术和解决方案。
7、数据库安全:
从基本知识入手,结合典型的系统学习,介绍数据库安全理论与技术,包括数据库安全需求,安全防范措施,安全策略,安全评估标准等等。
8、数据文件恢复技术:
本课程系统讲解数据存储技术、数据备份与灾难恢复的相关知识与实用技术,介绍数据备份与恢复的策略及解决方案、数据库系统与网络数据的备份与恢复,并对市场上的一些较成熟的技术和解决方案进行了分析比较。全面了解数据备份与恢复技术,掌握常用的数据备份和灾难恢复策略与解决方案,熟悉市场上的一些比较成熟的技术和解决方案。
9、算法设计与分析:
本课程首先介绍算法的一般概念和算法复杂性的分析方法,旨在使学生学会如何评价算法的好坏;接着重点介绍常用的算法设计技术及相应的经典算法,旨在帮助学生完成从“会编程序”到“编好程序”的角色转变,提高学生实际求解问题的能力。
要求学生在非数值计算的层面上,具备把实际问题抽象描述为数学模型的能力,同时能针对不同的问题对象设计有效的算法,用典型的方法来解决科学研究及实际应用中所遇到的问题。并且具备分析算法效率的能力,能够科学地评估有关算法和处理方法的效率。
扩展资料:
信息安全主要包括以下五方面的内容,即需保证信息的保密性、真实性、完整性、未授权拷贝和所寄生系统的安全性。信息安全本身包括的范围很大,其中包括如何防范商业企业机密泄露、防范青少年对不良信息的浏览、个人信息的泄露等。
网络环境下的信息安全体系是保证信息安全的关键,包括计算机安全 *** 作系统、各种安全协议、安全机制(数字签名、消息认证、数据加密等),直至安全系统,如UniNAC、DLP等,只要存在安全漏洞便可以威胁全局安全。
信息安全是指信息系统(包括硬件、软件、数据、人、物理环境及其基础设施)受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,信息服务不中断,最终实现业务连续性。
信息安全学科可分为狭义安全与广义安全两个层次:
狭义的安全是建立在以密码论为基础的计算机安全领域,早期中国信息安全专业通常以此为基准,辅以计算机技术、通信网络技术与编程等方面的内容;
广义的信息安全是一门综合性学科,从传统的计算机安全到信息安全,不但是名称的变更也是对安全发展的延伸,安全不在是单纯的技术问题,而是将管理、技术、法律等问题相结合的产物。
本专业培养能够从事计算机、通信、电子商务、电子政务、电子金融等领域的信息安全高级专门人才。
参考资料:
以上就是关于如何将linux中mysql备份恢复全部的内容,包括:如何将linux中mysql备份恢复、什么是备份策略、网络安全专业学什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)