Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997534
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:09:41

为了备份数据库,你可以运行BACKUP命令。(你也可以使用SQL Enterprise Manager。)在执行命令之前知道它的语法永远是个好主意。BACKUP命令有许多选项,它的基本语法是:

 

BACKUP DATABASE { database_name }

TO < backup_device > |

 

backup_device可以是磁盘或者磁带——或者它也可以是一个用磁盘文件、磁带或者已命名管道表示的逻辑上的备份设备。

 

如果你想做一个快速、一次性的备份,那么向下面那样使用磁盘文件:

 

BACKUP DATABASE Northwind TO DISK = "c:\backup\Northwind.bak"

 

如果你想把数据库备份到另外一台上,可以使用UNC名字:

 

BACKUP DATABASE Northwind TO DISK = "\\FILESERVER\Shared\Backup\Northwind.bak"

 

如果想进行有规律、有计划的备份,就需要使用逻辑备份设备。一个逻辑备份设备可以保存若干个数据库备份并驻留在磁盘、磁带或者已命名管道上。如果你使用磁带设备,磁带驱动器必须在同一台物理上。已命名管道可以利用第三方备份软件。

 

为了创建逻辑备份设备,使用sp_addumpdevice系统保存过程。SQL Enterprise Manager也可以用来创建备份设备。命令行语法如清单A所示。

 

清单B给出了一个在磁盘上创建逻辑备份设备的例子。

 

当备份设备创建完毕,Northwind数据库可以用下面的命令进行备份:

 

BACKUP DATABASE Northwind TO DiskBackup

 

频繁变动的大数据库的备份

 

现在,我已经演示了如何备份整个数据库。然而,它只允许你恢复备份结束时刻的数据库所保存的数据。如果数据库很大并且频繁变动,由于时间和空间的限制,频繁进行全数据库备份是不现实的。当数据库失败时,可能会造成大量数据丢失。

 

在这种情况下,有两种提高可恢复性的途径,这两个途径都要求全数据库备份。而且这两种方法都要求数据库恢复模型为FULL或者BULK_LOGGED

 

第一种方法采用差异数据库备份,它只捕获并保存全数据库备份后改变的数据。由于它的文件较小而且信息简明,用它进行数据恢复的速度非常快。

 

下面的例子在一个名为DiffBackupDevice的逻辑备份设备上创建了一个差异备份:

 

BACKUP DATABASE Northwind TO DiffBackupDevice WITH DIFFERENTIAL

 

第二个提高可恢复性的方法利用交易记录备份,恢复可以在一个特定的时间点上完成。

 

你可能会问这怎么可能。记住,交易记录的目的就是记录发生在数据库中所有交易。交易记录允许COMMITROLLBACK正确工作。为了达到这个功能,该数据的变化前后的数值必须随同操作类型、交易开始(时间)等一齐被记录下来,

【责编:Amy】

--------------------next---------------------

阅读(109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~