对于MySQL数据库,备份与恢复相关的术语包括:备份(backup)、还原(restore)、恢复(recover)、二进制日志(binlog),其中备份按照其特性可以分为:物理备份和逻辑备份;冷备、温备和热备;完全备份和不完全备份等;常用的备份工具包括: *** 作系统拷贝、mysqldump等;还原包括物理备份的还原和逻辑备份的还原;下面分别加以介绍和说明。
数据库备份通俗地说是将数据库的某一时刻的数据复制了一份;数据库还原是将备份出的数据替换掉原来数据库中的数据文件,将备份放回到原来数据库文件的目录位置;二进制日志(BINLOG)记录数据库的变更过程,例如创建数据库、建表、修改表等DDL *** 作、以及数据表的相关DML *** 作,这些 *** 作会导致数据库产生变化,开启binlog以后导致数据库产生变化的 *** 作会按照时间顺序以“事件”的形式记录到binlog二进制文件中。
参考上图,在凌晨2:00,管理员将已开启二进制日志的数据库的数据做了一个完整的备份,随着时间的推移,仍然有用户对数据库进行相关的写 *** 作(包括:DDL语句、DML语句中的增删改 *** 作、DCL授权语句和TCL事务处理语句等),导致了二进制日志文件写满(默认1G)后自动切换;在上午9:37时,由于硬盘出现故障,数据库用户不能正常访问存放在硬盘中的数据库数据,此时如果数据库备份和二进制日志没有损坏,管理员是可以通过还原备份和恢复二进制日志的方式挽回数据损失的。
挽回数据损失的过程包括:1更换新硬盘;2还原备份;3重做备份到故障时段的二进制日志中的语句等;正常情况不会造成数据的丢失,损失的仅仅是一段时间的停机时间。
上例中,还原数据备份时,数据库中的数据回到了备份时刻的状态,而二进制日志中记录了从备份到故障前一段时间内所有用户对数据库的写 *** 作的语句,只要把这些语句按照时间顺序重新运行一遍,所还原的数据就会变成为故障前那一刻的状态,不会造成数据丢失。因此通常把保存在二进制日志中的语句重新执行的过程叫做恢复。
1
数据量小的情况下可以用:
exp/imp、expd/impd,当然oracle不建议用这种方式。
2
正常的方式就是rman
3
另外还有就是所谓的冷备份,就是把数据库停掉,将数据库文件啊、控制文件啊、什么的都copy备份。
一、数据备份的重要性
工作中,如果意外删除了重要的文件或者目录的话,那结果可就惨了。尤其是当误删除的数据涉及重要的客户或者关键项目,并且这些数据无法轻易重新创建的时候,那滋味,不用我说你也能想象得到。不巧的是,像这样的数据在公司环境中随处可见,例如销售记录、客户****,等等。
二、关于mysqldump
MySQL自身提供了许多命令行工具,例如mysql工具可以用来与MySQL的数据库模式、数据、用户和配置变量进行交互,而mysqladmin工具则可以进行各种管理任务,还有就是下面将要介绍的mysqldump。此外还有很多,不过那超出了本文的讨论范围。工具mysqldump既可以用来备份数据库模式,还可以用来备份数据;利用它,我们不仅可以对一个服务器上的所有数据库进行地毯式的备份,同时我们还可以选择性地备份某个数据库,甚至数据库中指定的某些表。
当在服务器上安装MySQL的时候,应修改系统路径以便使全局命令行可以访问各个客户程序。打开终端窗口,并执行下列命令:%>mysqldump Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS]
databases [OPTIONS] DB1 [DB2 DB3] OR mysqldump [OPTIONS] all-databases [OPTIONS]
For more options, use mysqldump help
这里给出了使用mysqldump程序的方法。举例来说,若要备份所有数据库模式和数据至文件backup092210sql的话,可以执行如下所示的命令:%>mysqldump -u root -p all-databases > backup092210sql Enter password:
这里,为了能够访问所有数据库,我们需要一个root权限,所以这里需要在提示符后面输入相应口令。此外,如果你是在开发用的服务器上练习这些命令的话,不妨花一些时间看看备份文件的内容。这时您会看到一系列的SQL语句,先是删除各个表后重新创建的语句,然后是重新创建相关数据的语句。另外,由于上面的例子中我们对所有数据库进行备份,所以您还会发现,备份文件将创建每个数据库(如果它还没有存在的话),然后通过USE命令切换到该数据库,进而创建与该数据库相关的表跟数据。
若要备份单个数据库,例如要备份名为wiki的数据库到一个名为wiki-backup092210sql的文件中,我们可以使用如下所示的命令:%>mysqldump -u root -p wiki > wiki-backup092210sql Enter password:
最后,若要备份数据库中名为users的表的话,例如要把它备份到名为wikiusers-backup092210sql的文件中,我们可以使用如下所示的命令:%>mysqldump -u root -p wiki users > wikiusers-backup092210sql Enter password:
三、调整备份内容
有时候,我们可能只想备份数据库的模式,或者只想备份数据库的数据。为了备份数据库模式,可以向mysqldump传递参数no-data,如下所示:%>mysqldump -u root -p no-data wiki > wiki-backup092210sql
为了只备份数据库的数据,可以向mysqldump使用参数no-create-info,如下所示:%>mysqldump -u root -p no-create-info wiki > wiki-backup092210sql
对于前面所举的例子,仅需要少量的击键次数就能执行mysqldump命令。然而,工作中要干的活还有很多,并且如果老是执行这些命令的话,那么生活就会变得太单调了。因此,我们可以设法使这些过程自动化,这时我们可以借助cron工具来达成我们的目标,这个工具在所有类UNIX *** 作系统上都能找到。为了自动执行备份任务,我们需要新建一个正确命名的文件。例如nightly-backupsh,具体命令如下所示:#!/bin/sh mysqldump -uroot -psecret wiki > /home/backup/sql/wiki-backup-`date +%m%d%Y`sql
接下来,我们将这个脚本提供交给cron,方法是使用crontab。为此,我们可以执行如下所示的命令:%>crontab -e
这将打开当前登录用户的crontab文件,如果该文件不存在的话就会自动新建一个。在这个文件中,我们可以添加如下内容,来确保每天上午3时运行该备份脚本:0 3 /home/backup/scripts/nightly-backupsh
如果您对crontab的语法很陌生的话,这里的参数可能让您摸不着头脑。这里前五个参数分别对应于执行脚本的时间,依次为分、时、日、月和星期几。因此,要想在每星期二的4:45am执行脚本的话,可以使用参数45 4 3。
插入上面所示的一行内容后,保存文件,那么我们的任务就会开始按照给定时间调度执行。 需要注意的是,第二天早上一定要查看相应的目录,看看事情是否一切正常。
五、其它备份方案
就像本文前面所说的那样,mysqldump只是MySQL众多备份方案中的一个。此外,您还可以使用MySQL的二进制日志文件进行增量备份,或者使用从MySQL主服务器中将数据复制到从服务器中。
六、小结本文中,我们与读者一道建立了一个简单的MySQL备份解决方案。如果您之前还未实施任何解决方案的话,不妨立即动手试一下。重要的是,这只需要花费您几分钟的时间,我想这是很划得来的。
解答:第一种情况:通过软件中提供的数据库备份来进行。在软件的“系统维护”-“数据库备份\恢复”,在一些商业类软件中的“系统设置”-“系统维护”-“数据库备份\恢复”。
第二种情况:专业版和标准版备份不同,如果是标准版可以通过“桌面软件图标”-“右键”-“属性”-“查找目标”,在d出的对话框例,找到data或者database文件夹,把它给复制,粘贴到其他磁盘,就完成了备份。
如果是专业版软件,可以通过SQL Server来进行。在“开始”-“程序”-“Microsoft SQL Server”-“企业管理器”。
进入“企业管理器”后,在左边区域把Microsoft SQL Servers双击“
”进行展开。
src=/images/37jpg />
在“数据库”中找到“mphotel”(这个是美萍酒店的数据库,其他软件的数据库也都是由mp和软件全称的首字母或者英文名组合),击右键 —“所有任务”—“备份数据库”。
src=/images/38jpg />
备份选择“数据库-完全”,备份到可以修改下数据库备份的路径,然后点确定。
1、首先打开mysql数据库软件进入软件主界面。
2、然后再左侧树里打开自己的的数据库。
3、然后需要点击需要备份的数据库名。
4、如图所示为打开数据库后界面。
5、然后需要点击转储sql文件选项。
6、然后需要打开选择存储文件路径并选择保存。
7、点击保存即可在路径备份好格式为sql的数据库文件。
1、打开SqlServer数据库,选中要备份的数据库,右键选择任务,点击备份。
2、输入数据集名称,选择备份路径,点击确定就完成了数据库的备份。
3、右键选择任务,点击还原,选择数据库。
4、选择之前备份的数据库,点击确定。
5、至此SqlServer备份还原的 *** 作就已完成。
1 恢复 AM 1:00 的 完整备份
2 恢复 1:30 的 交易记录备份
3 恢复 2:30 的 交易记录备份
后面的应该就没有了,如果有日志是否能够恢复我也忘记了。
以上就是关于什么是数据库备份全部的内容,包括:什么是数据库备份、数据库的备份方式有哪些、如何利用mysqldump备份MySQL数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)