Sybase数据库备份浅议

IT商界

  随着计算机技术的飞速发展,各种大型的关系数据库系统的应用越来越广泛,并在企业的管理和生产活动中发挥着日益重要的作用。一般大型数据库系统中都保存着企业的核心数据,这些资料和数据一旦丢失或被破坏,将会给企业带来不可估量的损失。

  作为一名数据库管理员(DBA),最主要的一项工作就是随时做好数据库的备份,以保证在数据库系统崩溃及发生任何意外的情况下都能够最大限度地恢复数据,将企业的损失降低到最小。下面以Sybase数据库系统为例对数据库系统的备份作一个简单的介绍。

  一、数据库完全备份

  完全备份是指对数据库的一个物理拷贝,一般的备份介质为磁带,也可以备份在硬盘上。不管备份是在磁带还是在硬盘上,都需要先登录到数据库。以Unix操作系统为例,用Sybase账号登录Unix,在$提示符下输入:

  isql -Usa -SSserverName -Ppass word

  上面命令中ServerName为数据库服务器名,Password为sa用户的密码

  成功登录到数据库后,在>提示符后输入:

  dump database DatabaseName to TapeName capacity=4000000 with init

  go

  其中TapeName为磁带设备名(如/dev/rmt0),capacity=4000000设定磁带的容量,单位为KB,with init表示要对磁带进行初始化

  如果备份到硬盘,则要将以上命令修改为:

  dump database DatabaseName to FileName

  go

  FileName为备份文件名

  由于在硬盘上备份时备份文件和数据库文件在同一物理介质上,因此这种备份并不可靠,应尽量采取磁带备份方式并将备份磁带放在安全可靠的地方,有条件的话可以将磁带进行异地存放。

  完全备份最好每天备份一次,视备份数据的保留日期,用足够多的磁带进行轮换备份。

  二、用户数据表的备份

  在很多情况下,仅有数据库的备份是不够的。如果一张用户数据表遭到了破坏,需要单独恢复表中的数据,这时用数据表的备份来恢复就要方便得多。

  Sybase提供了一个BCP工具,利用它可以实现单表的导入和导出功能。下面是一个实现将表数据导出功能的BCP命令:

  Bcp USER_DATA out C:\back up\US ER_DAT.bak -c -Uuser -P12345 -Saaa

  表示将aaa数据库服务器中的US ER_DATA表导出为C:\backup\US ER_DAT.bak文件,数据库用户为user,密码为12345。相反,如果要将C:\back up\US ER_DAT.bak文件导入到数据库中,则将out改为in即可。

  可以将多条BCP脚本编制在一个批命令中来执行,一般来说,用户数据表的备份也应该每天执行一次,以保证数据的万无一失。