`
hecal
  • 浏览: 75092 次
社区版块
存档分类
最新评论

Sybase数据库备份方案

 
阅读更多
Sybase数据库产品自从1987年问世以来,它的客户机/服务器(client/server)工作模式、分布处理的基础体系结构、完善的安全保密性能、高速快捷的运行方式、多平台跨操作系统的广泛应用等优点,迅速被IT界接受并推广应用。我们作为金融业的用户,也在1995年开始使用Sybase10版本。在具体的使用中,发现集中式的数据管理有其优点,就是数据风险范围大为缩小,但是作为Sybase的服务器一端,数据风险比较集中,如何做好数据库的数据备份,成为至关重要的问题。

  在实际应用中,我们总结出了两种全量备份方案:

  一、使用Sybase的Backup Server(备份服务器),做Dump备份

  转储数据库(Dump database),就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次物理备份。转储数据库时,系统自动执行一次checkpoint,即将日志和数据从缓冲区拷贝到硬盘(只拷贝脏页),把已被分配的页(日志和数据)转储到设备。

  命令格式为:

   dump database 数据库名 to 设备文件名 with 参数

  如果备份到硬盘的文件上,可以不预先估算备份文件的大小,只要硬盘有足够的存储空间就可以。如果是备份到dds磁带上,那么就要估算一下备份后的大小,90米的dds磁带压缩存储空间为4G,120米的磁带压缩存储空间为8G,如果数据库的备份文件超过了这个尺寸,就要考虑多文件转储,使用stripe参数。

  命令格式为:

   dump database 数据库名 to 设备文件名1
   stripe on 设备文件名2
   stripe on 设备文件名3……
   with 参数

  这种数据备份方式是将整个数据库的运行环境完整的复制一份,包括数据库的脏页和碎片,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),适用于在每天的日终营业网点下班后的日常备份。优点是数据库完整无误,缺点是不能直接查看备份内容。

  二、分数据结构和数据记录做两次备份

  在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环境中以load命令恢复工作机的内容。所以,在工作实践中,我们摸索出了第二种全量备份方案。

  1、数据结构备份

  在windows平台的Sybase SQL Server Manager(数据库管理)平台中选择ServeràGenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则产生所选定数据库的信息,以master库为例,产生的文件主要包括:config.ddl(配置)、devices.ddl(设备)、database.ddl(数据库)、logins.ddl(用户)、remote.ddl(远程)、cache.ddl(缓冲)、segment.ddl()、group.ddl(用户组)、user.ddl(用户)、default.ddl(确省)、rule.ddl(规则)、udt.ddl、table.ddl(表)、view.ddl(视图)、proc.ddl(存储过程)、triger.ddl(触发器)。

  2、数据记录备份

  将数据库各表以Sybase自代的bcp(bulk copy)工具的方式导成一定格式的文本文件,命令格式:
bcp 表名 out 路径名 文件名 -c -t 分隔符 -u (用户名)-p(密码)-S(服务器名)
如果将一个数据库中的所有表都做一个bcp备份,就需要针对每一个表都做一次bcp,在一般情况下,一个数据库有100多个表,工作量比较大。可以利用数据库中的系统表信息做一个bcp备份脚本。原理是每一个用户表在系统表中都有信息记载,可以通过isql语句查询得到。现举一例说明:

  1)、先编辑一个名为mkbcpout.sql的文件,内容如下:

select "echo bcp '"+name+" out ……………………'
"+"bcp "+name+" out ./+"name+".table -c -t '|' -Uuser -Ppassword -S SERVER" from sysobjects where type='U'
go

  2)、执行isql命令,以此文件作为输入,执行结果输出到另外一个文件里:

isql -Uuser -Ppassword -S server -I mkbcpout.sql -O bcpout

  3)、对bcppout文件稍微修改,增加可执行权限

chmod +x bcpout

  4)、执行bcpout,导出数据文本

./bcpout

  3、数据库恢复

  业务生产机可能为小型机,而实验开发环境的硬件环境为PC server,安装好win nt或SCO unix下的Sybase服务器后,根据需要创建空间足够大的数据库和tempdb(系统临时数据库),创建数据库用户,并将其更改为此数据库的所有者,要注意两点:1)此数据库允许bcp拷贝,2)此数据库自动清除log。命令格式为:

  1> sp_dboption databasedbname ,"select into/bulkcopy",true

  2> go

  1> sp_dboption databasename,"trunc log on chkpt",true

  2> go

  上述两个配置可能与生产机的配置不同。

  然后以新创建的数据库用户登录,导入数据结构,注意要首先导入表结构,然后才是存储过程、触发器等等。命令格式:

  1、 isql -Uusername -Ppassword -I table.ddl -o error.log.table

  2、 isql -Uusername -Ppassword -I proc.ddl -o error.log.proc

  ……

  为了提高bcp导入数据的速度,需要将比较大的表的索引和主键删除,否则的话,每bcp进一条数据,数据库都自动写一条log日志,记载此数据的上一条和下一条记录,确定本记录在此表中的准确位置,一是影响bcp速度,二是数据库的log飞速膨胀。数据库的自动清除log功能只有在一个事务结束后才起作用。
准备工作做完后,开始倒入数据记录。使用类似做bcpout的方法做一个bcpin的脚本,然后执行:

   ./bcpin |tee error.bcpin

  使用tee管道输出的目的是让计算机完整记录下倒入过程,自动存入error.bcpin文件中,待倒入结束后,我们只需要检查日志文件,不需要一直紧盯着计算机屏幕。

  所有工作做完之后,不要忘记重新将删除的主键和索引建上。

  如果有现成的数据库,只需要单纯地导入数据记录,则首先将数据库中所有用户表(也就是所有type="U"的表)清空,命令格式:

  1> truncate table tablename

  2> go

  当然最好也是利用做bcpout脚本的做一个truncate脚本,通过执行此脚本将所有用户表清空。然后的数据导入、处理索引和主键的过程与上面类似。

  三、利用做bcp备份脚本的方法做数据库碎片整理

  Sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。具体表现为:业务繁忙时出现死锁(dead lock),数据库的输入/输出资源被大量占用,业务处理速度慢。其解决办法是:

  1、 清空数据库中的所有表,命令格式:

    isql -Uusername -Ppassword -I truncate.sql -o error.truncate

  2、 删除所有表的索引和主键

    isql -Uusername -Ppassword -I dropindex.sql -o error.dropindex

  3、 导入数据

    ./bcpin

  4、 添加索引和主键

    isql -Uusername -Ppassword -I addindex.sql -o error.addindex

  5、 更新数据库状态

    1> update statistics tablename

    2> go

  上述操作都是针对数据库中的所有用户表进行的,利用做bcp备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易行,还克服了直接使用isql语句操作风险大、没有操作日志的毛病。

  笔者在实际工作中,使用第一种方法对生产机做日常全量备份,日终通过unix的crontab定时批量作业(具体做法请参考《中国金融电脑》2001年第10期有关crontab的文章)bcp出全部数据。使用高档PC server 搭建模拟运行环境,在需要的情况下导入生产机数据,处理运行中后台server的各种问题,待研究出解决办法后再在生产机上做相应调整,这样做风险小,效果好。
分享到:
评论

相关推荐

    Sybase数据库备份方案.txt

     在windows平台的Sybase SQL Server Manager(数据库管理)平台中选择ServeràGenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则产生所选定数据库的信息,以master库为例,产生的...

    HP磁带库保护Sybase数据库安全备份解决方案

    根据这些需求特点,HP利用磁带库与备份软件建立一套全面的数据库备份方案。HP的数据库备份解决方案全面满足Sybase数据库用户的各种需求,能够提供各种方式的备份,实现从在线备份、打开文件的备份到零停机备份、零...

    HP磁带库保护Sybase数据库安全解决方案

    利用HP存储技术实现的SYBASE数据库备份,则避免了传统备份方式的缺陷。对于用户来说,HP在数据库备份技术上的革新让系统管理员备感轻松。HP认为,当今数据库备份的潮流是可管理、自动备份、最短时间恢复以及可伸缩等...

    如何实现Sybase数据库备份愿望

    Sybase的服务器一端,数据风险比较集中,...本文总结出了两种全量备份方案:使用Sybase的Backup Server(备份服务器),做Dump备份;分数据结构和数据记录做两次备份。介绍了利用做bcp备份脚本的方法做数据库碎片整理。

    PB中实现SYBASE数据库备份恢复的一种方法 (2012年)

    目的:探讨PowerBuilder实现Sybase数据库备份及恢复。方法:利用PowerBuilder,进行窗口设计实现数据库备份和恢复。结果:在PowerBuilder6开发环境下,在数据库应用程序中实现SYBASE数据备份、恢复的具体解决方案。...

    DBBS 数据库备份系统 v4.3

    应用于 MSSQLServer/SYBASE/ORACLE 数据库异地备份的安全、完美、可靠的解决方案 主要特点:一切从安全入手;采用控制台与系统服务的架构设计;完全无人值守,智能管理;每天可完成多次备份;自动管理备份文件;提供...

    NBU备份恢复方案

    SYMANTEC NetBackup 软件是一个功能强大的企业级数据备份管理软件, 它为 UNIX 、 Windows 和 Netware 混合环境提供了完整的数据保护...SQL Server 和 Microsoft Exchange Server 等数据库提供了备份和恢复的解决方案

    安庆地税数据高可用及备份解决方案

    要求备份软件支持Sybase数据库的在线备份、支持集群、支持服务器的快速灾难恢复、支持打开文件的备份和将来异构环境备份的高效、可靠、易扩展的系统平台,确保数据的可靠。在保证数据安全的基础上,如何保障各种关键...

    ASE 数据库迁移方案2

    标准方案sqlupgrad dump bcp 适用于ASE到ASE升级,迁移 几种方案各有其应用场合,总的说来方案最适于同平台同版本...据它编制的一个工具程序,更能高效地实现数据库转移及备份任务,需要该工具程序的读者可直到与联系。

    系统容错、备份设计方案

    用户的硬件资源(如网卡)及软件资源(如NT操作系统、数据库管理系统、数据库应用系统、电子邮件系统等)均能处于该容错系统的保护之下,当这些被保护资源出现技术故障时,容错系统可随时实施系统资源切换。...

    CoinstorBackupServer 基于IPSAN的备份解决方案

    思创科达技术有限公司开发的Coinstor Backup Server企业版和Coinstor Backup VIP个人版结合了现有流行的iSCSI技术,Coinstor Backup Server软件可提供分布式服务器、数据库和应用感知的智能备份和恢复解决方案,适用...

    数据库管理系统(1).doc

    (6)数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障 、数据库备份、数据库重组以及性能监控等维护工具。 基于关系模型的数据库管理系统已日臻完善,并已作为商品化软件广泛应用于各行 ...

    中国网通某分公司本地网备份系统方案

    每个系统均由2台服务器构成HA或OPS结构,运行ORACLE 或Sybase数据库。应用服务器主要由IBM S85, HPP RP7400, RP5470等组成。本次升级只需将原有EXB X80挪走,代以Mirage:trade_mark:虚拟磁带库。

    数据库设计说明书模板

    历史数据管理方式:备份磁带、备份表、删除 历史数据检索方式、数据恢复方式 历史数据操作方案 数据量估计 【说明】使用表格+文字的方式,对每个子系统进行估计。形如: 子系统名: 实体名 数据总量(KB) … ...

    信息系统评分表.xls

    HIS系统评分表,,,,,, 分类,序号,评分项目,分值(100),,评分标准,评分 数据库,1,系统是否应用大型数据库,5,5,Oracle\DB2\sybase\Cache,5 ,,,,2,SQL SERVER, ,,,,0,其他, 系统安全性,2,数据库登录用户权限管理,2,2,每...

    ES分布式搜索解决方案.docx

    1.2传统数据库的应对解决方案? 对于关系型数据,我们通常采用以下或类似架构去解决查询瓶颈和写入瓶颈: 解决要点: 1)通过主从备份解决数据安全性问题; 2)通过数据库代理中间件心跳监测,解决单点故障问题...

    详细讲解西软FOXHIS增量备份与恢复方法

    如果通过Sybase和中标的高可用集群配置将带来成本的高额上升,可能大部分酒店总经理都不会批准这个方案,前段时间做了一个方案,并在我们集团的某酒店数据库中实现了,过程非常简单,就看各位EDP有没有心思去做。...

    EleasticSearch基本原理及架构.pdf

    (离线、近实时) 2、传统数据库的应对解决方案? 对于关系型数据,我们通常采用以下或类似架构去解决查询瓶颈和写入瓶颈: 解决要点: 1)通过主从备份解决数据安全性问题; 2)通过数据库代理中间件心跳监测,解决单...

    数据库技术 .chm

    5.[目录]FAQ-问题及解决方案 6.[目录]其他相关文章 7.[目录]网上资源 7. 1.[目录]www网站 7. 2.[目录]ftp资源 7. 3.[目录]好书推荐 8.[目录]老精华区 8. 2.[目录]----------本版版务---------- 8. 3...

Global site tag (gtag.js) - Google Analytics