新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > Sybase教程 > 正文:教你快速掌握Sybase数据库的日常维护

教你快速掌握Sybase数据库的日常维护

新客网 XKER.COM 2008-01-28 来源:赛迪网 10383 收藏本文

对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。

下面一条命令备份数据库 db160 的事务日志到备份设备上:

DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY

3、备份数据库及其日志间的相互作用:

假如在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。

但是,假如在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。

二、万一系统失败时恢复数据库系统

假如用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。

要恢复数据库按如下步骤去做:

1、假如日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。

2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。

下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:

SELECT segmap,size FROM sysusages
WHERE dbid = 
( SELECT dbid FROM sysdatabases WHERE name = “mydb”)

3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注重此信息的次序、使用和尺寸部分。例如,输出为:

segmapSize
--------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M

4、用 DROP DATABASE 命令删除毁坏设备上的数据库。假如系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。

5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。

6、用 DISK INIT 初始化新的数据库设备。

7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。

对上例,命令为:

CREATE DATABASE mydb 
ON datadev1=20,datadev2=10
LOG ON logdev1=10

8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:

ALTER DATABASE mydb ON datadev1=2

9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。

LOAD DATABASE 命令语法是:

LOAD DATABASE database_name
FROM dump_device

LOAD TRANsaction 命令的语法是:

LOAD TRANsaction database_name
FROM dump_device

卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。

共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐