打印本文 打印本文 关闭窗口 关闭窗口
Sybase系统维护经验谈
作者:武汉SEO闵涛  文章来源:敏韬网  点击数656  更新时间:2009/4/22 22:54:49  文章录入:mintao  责任编辑:mintao

   Sybase数据库系统作为CS构架的主流产品在我国有着广泛的应用,因此,对Sybase系统的维护也显得至关重要。笔者在对Sybase系统维护工作中,总结了一些技巧和经验,现介绍给大家。

  1.实现开机时自动装载Sybase数据库
  原先要使Sybase SQL Server启动,一般需要先以sybase用户登录,然后运行$SYBASEinstall目录下的startserver命令启动SYBASE_XXXX服务进程和SYB_BACKUP_XXXX备份服务进程。

  要实现Unix系统启动时就能在后台装载Sybase的功能,我们可在etcrc2.d目录下新建一文件S99sybase,内容如下

  SYBASE=usrsybase

  PATH=$PATH$SYBASEbin

  export $SYBASE $PATH

  $SYBASEinstallstartserver -f $SYBASEinstallRUN_SYBASE_XXXX  devnull

  $SYBASEinstallstartserver -f $SYBASEinstallRUN_SYB_BACKUP_XXX devnull

  然后修改Sybase的权限,重启系统即可。

  2.实现关机时自动卸载Sybase数据库
  为保证Sybase系统的正常运行,每次在关闭Unix系统时要先结束Sybase SQL Server 的服务进程,从减轻系统管理人员操作的角度出发建立一用户halt,修改etcpasswd文件,将halt用户的uid改为0(或其他可运行shutdown的用户id),在usrhalt.profile中添加以下语句:

  SYBASE=usrsybase

  DSQUERY=SYBASE_XXXX

  PATH=$PATH$SYBASEbin

  export SYBASE DSQUERY PATH

  isql -Usa -Pabcabc -ihalt.sql  devnull

  shutdown -y -g0

  其中“abcabc”为sa用户的口令,halt.sql是一简单的文本文件,内容如下:

  shutdown

  go

  这样每次只要以halt用户登录,就实现了自动卸下Sybase数据库,然后关闭Unix系统。

  3.Sybase库备份技巧
  一般对Sybase库进行备份都用磁带作介质进行,但还有一更好的方法,即先备份到硬盘上然后经压缩,拷贝到磁带上,这样便于恢复,多了一个备份拷贝,同时也节省了备份时间。具体实现步骤如下:

  (1)建立磁盘备份设备

  运行isql,以sa进入Sybase系统,运行如下内容:

  sp_addumpdevice disk,disk_bkupdevice ,tmpdumpdb ,2

  go

  这样就在Sybase中建立了一个名为“disk_bkupdevice”的备份设备,它对应Unix系统下的tmpdumpdb文件。

  (2)创建备份用户

  以root身份进入Unix系统,新建用户backupdb,并归属于sybase组。

  (3)修改相关文件

  在usrbackupdb.profile中添加以下语句:

  SYBASE=usrsybase

  DSQUERY=SYBASE_XXXX

  PATH=$PATH$SYBASEbin

  export SYBASE DSQUERY PATH

  rm tmpbackupdb.Z

  echo开始备份SYBASE数据库…

  isql -Usa -Pabcabc -ibackup.sql  tmpdbbackup.log

  echo硬盘备份完成,正在压缩备份的数据文件…

  compress tmpbackupdb

  echo 正在将备份的压缩数据拷入磁带…

  tar c8v tmpbackupdb.Z

  echo 备份完成!

  其中abcabc为sa用户的口令,backup.sql是一简单的文本文件,内容如下:

  dump database db_main to disk_bkupdevice

  go

  备份的执行日志被记录在tmpdbbackup.log中,当然系统管理员也可通过查看$SYBASEinstallbackup.log获知备份日志。

  这种备份方法要求硬盘空间足够大,这点请系统管理员在为Unix建分区时特别注意。

  在SCO Open Server 5.0.4、Sybase 11.0.3平台上,以上几个小技巧已应用成功,为笔者的日常维护节省了许多时间,取得了非常好的效果。

问:不知此处“$SYBASEinstallstartserver -f $SYBASEinstallRUN_SYBASE_XXXX  devnull ”为什么不打启动日志,这样做有什么好处?

答:好,我补充一下
在里backup.sql加:

use mydb--你数据库名字
go
dbcc checkdb
go
dbcc checkalloc
go
---最好在backup之前,检查一下数据库,看有没有硬件错误等,否则dump出的文件也会有错
dump trun mydb to ...
go
----如果你log和data是分离的,这样会先dump日志,然后清掉log,在备份数据库就会节省好多空间
dump database mydb to ...
go
quit


问::“devnull ”有什么好处?

答:对SYBASAE启动来说打印不打印关系不大。
如果是其他运行程序,如C写的使用了print的话,如果不用devnull,会把硬盘写暴。

 

打印本文 打印本文 关闭窗口 关闭窗口