Oracle数据库备份技巧
文章作者 100test 发表时间 2007:05:15 12:19:30
来源 100Test.Com百考试题网
利用下面的列出的技巧来确保你不会在每周一次的数据库备份过程中忘记关键步骤。
每周一次备份主数据库。如果你创建、修改或者停止一个数据库,添加新的SQL Server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份。
每天备份一次msdb数据库。它一般非常小,但很重要,因为它包含了所有的SQL Server工作、操作和计划任务。
只有当你修改它时,才有必要备份模型数据库。
用SQL Server Agent来安排你的备份工作的时间表。
如果在你的生产(production)环境中有现成资源,备份生产数据库到本地磁盘或者网络服务器(用同一个开关)。然后,把备份文件/设备拷贝到磁带上。在存在许多硬件故障(特别是在RAID系统中)的情况下,磁盘常常是完好的(inact)。如果备份文件是在磁盘上,那么恢复时的速度会提高很多。
备份开发和测试数据库至少要用到SIMPLE恢复模型。
除了有计划的定时备份外,在进行未记录的(nonlogged)批操作(如,批拷贝)、创建索引、或者改变恢复模型后要备份用户数据库。
如果你使用的是SIMPLE恢复模型,记住在截短(truncate)交易记录之后备份你的数据库。
用文档记录你的恢复步骤。至少要大概记录这些步骤,注意所有的重要文件的位置。
--------------------------------------------------------------------------------
在截短记录之前,也就是所有的已提交(committed)交易从记录中清空之前,所有的这些信息都保存在交易记录中。在SIMPLE恢复模型中,记录在一个CHECKPOINT期间内截短(在SQL Server内存缓冲写道磁盘时),它是自动发生的,但也可以手动执行。这也就是SIMPLE恢复模型不支持时间点(point-in-time)恢复的原因。在FULL和BULK_LOGGED恢复模型下,当交易记录被备份时,交易记录被截短,除非你明确指出不进行截短。
为了备份交易记录,使用BACKUP LOG命令。其基本语法与BACKUP命令非常相似:
BACKUP LOG { database } TO
下面是如何把交易记录备份到一个名为LogBackupDevice的逻辑设备上的例子:
BACKUP TRANSACTION Northwind TO LogBackupDevice
如果你不希望截短交易记录,使用NO_TRUNCATE选项,如下所示:
BACKUP TRANSACTION Northwind TO LogBackupDevice WITH NO_TRUNCATE
只是基本知识。
尽管我在本文中仅仅概述了数据库恢复的基本知识,你还是可以通过这些技巧来找到正确的方向。那么,为了避免不必要的(丢失数据造成的)恐慌,你要做到每周备份主数据库,每天备份msdb。