Sybase培训教材-20021218 - 图文(8)

2019-04-02 10:22

grant update on students(name,native) to zhang1 go

sp_helprotect go

36

第7章 数据库备份与恢复

SQL Server提供了两种不同类型的恢复:一类是系统自动完成的恢复;另一类是人工完成的恢复。

7.1 系统软件故障恢复

系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。

自动恢复从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制观察事务日志。如果日志写入比数据库更近的数据,则向前恢复数据库。如果事务尚未完成,则要回退它们。

所谓事务日志就是一张系统表,syslogs。在这张表中记录着对数据库的更新请求,例如插入、修改和删除。查询操作不记入事务日志中。

7.2 介质故障的恢复

一旦介质发生故障,只有通过以前备份的数据库和事务日志才能恢复数据库,为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令,而恢复数据库和事务日志我们使用load命令。 与创建数据库需要一个数据库设备类似,我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。

sp_addumpdevice \例:

sp_addumpdevice \

(1) 备份数据库和事务日志 备份数据库的语法为:

37

dump database database_name to dump_device 例如:

dump database tele114 to db114

备份事务日志的语法为:

dump transaction database_name to dump_device [with truncate_only | with no_log | with no_truncate] 前两项在日志中删除提交的事务,后一项不删除。

在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。 (2)恢复用户数据库

要恢复已被破坏的数据库,可以按如下步骤进行:

用带no_truncate选项的dump命令卸出用户数据库事务日志。 用和被破坏的数据库的同样的结构建立一个新的数据库。 用load命令重新装入数据库和事务日志。

装入数据库的语法为: load database database_name from file_name

装入事务日志的语法为: load transaction database_name from file_name 例:数据库备份

dump db_name to file_name go

38

数据库恢复

load db_name from file_name go 日志备份

dump transaction db_name to file_name go 日志恢复

load transaction db_name from file_name go 日志删除

dump transaction db_name with truncate_only Go

(3)master数据库的恢复

A、保存系统表的拷贝:sysdatabases、sysdevices、sysusages、sysloginroles和Syslogins。 B、转储主设备上的用户数据库。

C、关闭SQL Server并使用buildmaster建立新的master数据库或主设备。 Buildmaster -m ...仅重建master数据库 Buildmaster ...重建主设备 D、已单用户模式启动SQL Server( Master-Recover ) Startserver -f RUN_服务器名 -m

E、若master数据库用alter database 命令扩展过,严格重建它在sysusages中的分配。

F、若Backup Server 的网络名(接口文件中的名字)不是SYB_BACKUP,在sysservers中改动网络名。

Update sysservers set srvnetname=\where srvname=\

G、使用showserver查看,检查确保Backup Server正运行,若有必要,重启Bakup Server

39

H、装载master的备份。

Load database master from 'master.bak'

Load database执行成功后,SQL Server 自动关闭。

I、若自master的上次转储以来增加过数据库设备,执行disk reinit命令以重建sysdevices。

J、若执行了disk reinit,或自上次转储以来使用过create database或alter database,执行disk refit 重建sysusages和sysdatabases表,执行完毕后SQL Server自动关闭。

K、检查一致性:比较sysusages和sysdatabases的备份和新的联机版本,对每个数据库执行dbcc checkalloc, 并检查每个数据库中重要的表;若发现错误重新执行disk reinit和disk refit。

L、若恢复了整个主设备,则恢复model数据库。 Cd $SYBASE/scripts Setenv DSQUERY 服务器名

Isql -Usa -P口令 -S服务器名

O、以多用户模式重新启动SQL Server。 (4)恢复model 数据库 Buildmaster -d/设备名 -x (5)恢复sybsystemproces数据库

A、删除sybsystemproces数据库(若物理磁盘损坏,删除设备,使用Disk init 重建设备) B、重建数据库

Create database sybsystemporces on 设备名=数据库大小 C、恢复数据库

Cd $SYBASE/scripts

Setenv DSQUERY 服务器名

Isql -Usa -P口令 -S服务器名

40


Sybase培训教材-20021218 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:政校企三方联动“五三型”实训实习基地构建-最新文档资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: