Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1266019
  • 博文数量: 1211
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 14340
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-09 11:20
文章分类

全部博文(1211)

文章存档

2011年(1)

2008年(1210)

我的朋友

分类: 服务器与存储

2008-06-13 00:31:25

Sybase在当今公司数据库应用方面表现还是相当不错的,它可以轻松的应用于windows系统以及其他,例如linux,unix等。相比sql server仅仅适用于windows操作系统的局限性,sybase的跨平台性使得她更受开发者的喜爱。既然很多公司都使用了SYBASE作为数据库应用的载体,那么如何保证该数据库的呢?今天就为各位IT168的读者介绍如何备份与恢复SYBASE数据库。

一、SYBASE数据库特性:

    Sybase数据库产品是第一个真正的基于客户/服务体系结构的RDBMS产品,对客户/计算技术的发展起到了积极的推动作用。它的客户/模型具有以下优点。

    (1)支持共享资源且在多台设备间平衡负载。

    (2)允许容纳多个主机的环境,充分利用了企业已有的各种系统,是真正开放的数据库,公开了应用程序接口DB-LIB。

    (3)SYBASE是一种高性能的数据库。Sybase真正吸引人的地方还是它的高性能,体现在可编程数据库、事件的触发器及多线索化等方面。

    但是由于Sybase数据库的集中式数据管理方式,其数据库服务器一端数据相对集中,数据库的备份和恢复工作就显得非常重要了。在实际的日常维护工作中,我们总结出了如下的Sybase数据库的备份和恢复方法。在此为大家做一一介绍,希望各位管理员可以根据自己的实际情况采取不同的备份和恢复方法。

二、环境及实际方法:

    本次介绍备份和恢复数据库的网络环境为——数据库Sybase Adaptive Enterprise 11.5,网络平台为Windows 2000 Server。

    方法一:利用数据库管理工具Sybase Central

    Sybase Central是管理SYBASE的主要工具,通过他可以建立新表,建立新数据库以及对应关系等。当然备份和恢复数据库的工作也可以交给他。

    第一步:打开Sybase Central,选择需要备份的数据库名。(如图1)

图1 点击看大图

    第二步:使用管理员sa登录,启动备份服务器,(如图2)选择需要备份的数据库,单击右键选择“Backup”命令。系统提示“备份整个数据库”还是“备份事务日志”,我们选择“备份整个数据库”。(如图3)
图2
图3 点击看大图

    第三步:选择需要使用的转储设备,这里的转储设备有3种:第一种是“命名的转储设备”,例如在机上备份;第二种是“显式转储设备”,例如在上的备份,需要输入物理路径,包括目的文件名;最后一种是“远程Backup Server”,可以实现远程备份。

    第四步:接下来系统提示输入一个可选的备份名,在恢复进程中必须使用同样的名称。我们还可以根据情况选择是追加备份还是覆盖备份。在以上选择全部结束后,系统进入Sybase工具主控台,开始备份进程,完成后显示“Finished”。数据库恢复的操作过程与此类似。

    使用数据库管理工具Sybase Central完成对数据库的备份和恢复是建立在将整个数据库完整备份的基础上的。
方法二:使用dump命令

    当然任何操作都有图形化界面以及命令行模式,虽然图形化界面方便上手,但是操作起来不如命令行下快捷。为了让大家对备份和恢复有一个清晰的认识,我们还可以使用dump命令备份数据库和事务日志,而恢复数据库和事务日志使用load命令。转储数据库时系统执行一次checkpoint,即日志和数据被从缓冲区拷贝到;把已分配的页(日志和数据)拷贝到转储设备,SQL Server向Backup server发送一个备份进行的时候正在执行的、很少写日志的操作(如bcp)所修改的所有的页面的列表。Backup server转储这些页面。然后SQL Server指示Backup server转储备份期间已写的所有日志页面。最后备份捕获备份将近结束时的状态。知道了工作步骤后我们就要了解具体的操作指令了。

    备份数据库的语法为:

    dump database database_name to dump_device

    例如:

    dump database mydb to mydb-bk

    备份事务日志的语法为:

    dump transaction database_name to dump_device
    [with truncate_only | with no_log | with no_truncate]

    恢复用户数据库

    (1)装入数据库的语法为:
    load database database_name from file_name
    (2)装入事务日志的语法为:
    load transaction database_name from file_name
    (3)数据库恢复:
    1>load db_name frome file_name
    2>go

    日志备份:

    1>dump transaction db_name to file_name
    2>go

    日志恢复:

    1>load transaction db_name frome file_name

    在这里需要注意,在使用dump和load命令的时候,需要对每次执行的转储、装载操作,以及所需的空间大小进行详细的记录;执行备份操作之前,应检查数据库的一致性。

方法三:对数据库的库结构和数据库记录做全量备份

    在我们的实际应用当中,数据库都比较庞大,使用dump和load命令并不是最好的选择。我们可以分别对数据库的库结构和数据记录做全量备份。

    (1)数据库结构的备份

    用Sybase图形界面系统管理工具(Sybase Central)将需要备份的数据库下的相关内容,包括数据库设备、logins等数据库外的对象选中,并产生DDL文件。当数据库中的表及其他数据库对象总数量少于255个时,可直接对整个数据库生成一个DDL文件。注意:当总数大于255个时,应分批生成多个DDL 文件。

    (2)数据库记录的备份

    在advantage中制作一个使用bcp命令的批处理文件。其功能就是使数据库系统的数据表与操作系统的文件之间交换数据。bcp命令的格式如下:

    bcp表名out路径名 文件名-c –t 分隔符 –u(用户名) -p(密码) -s(名)。

    例如脚本:
    sekect“bcp”数据库名….“,name”out”,name,” .out” “-Usa_S名” from sysobjects where type=“U”
    将其执行结果存成一个以.bat扩展名的批文件。

    (3)数据库结构的恢复

    上面所生成的DDL文件在进行数据库结构的恢复时,可以直接使用Sybase图形界面系统管理工具(Sybase Advantage)打开,然后单击“Excute”创建数据库,即可恢复。注意:当生成的DDL文件或SQL文件在advantage中打开后,若超过3000行则可能不能执行,应在操作系统命令行方式下使用isql命令。其命令格式为
    isql  Uusername  Ppassword –I d11
    如:isql-Usa-Ssybase-ixxx.SQL(dll)

    (4)数据记录的恢复

    在操作系统命令行方式下运行上面所生成的.bat批文件时,会自动将数据库所有用户表中的记录都置于若干个与用户表同名的操作系统文件里(扩展名为.out)。在创建好数据库结构的基础上,再将上面的批文件中的“out”全部修改成“in”,执行修改后的批文件,将数据复制入用户表中,从而实现数据记录的恢复。


    总结:数据库的备份与恢复的主要工作就是为数据做一个的拷贝,这样才能有效地防止在故障出现时发生数据丢失的情况。因此,在实际的应用当中,应该根据具体的情况,制定切合实际的备份与恢复方案,明确在各种故障情况中数据可恢复的程度是否满足了应用的需求,这样才能不断完善备份与恢复方案。

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