Sybase数据库系统作为C/S构架的主流产品在我国有着广泛的应用,因此,对Sybase系统的维护也显得至关重要。笔者在对Sybase系统维护工作中,总结了一些技巧和经验,现介绍给大家。
1、实现开机时自动装载Sybase数据库
原先要使Sybase SQL Server启动,一般需要先以sybase用户登录,然后运行$SYBASE/install目录下
的startserver命令启动SYBASE_XXXX服务进程和SYB_BACKUP_XXXX备份服务进程。
要实现Unix系统启动时就能在后台装载Sybase的功能,我们可在/etc/rc2.d/目录下新建一文件S99sybase,
内容如下:
以下是代码片段: SYBASE=/usr/sybase PATH=$PATH:$SYBASE/bin export $SYBASE $PATH $SYBASE/install/startserver -f $SYBASE/install/RUN_SYBASE_XXXX > /dev/null $SYBASE/install/startserver -f $SYBASE/install/RUN_SYB_BACKUP_XXX >/dev/null |
然后修改Sybase的权限,重启系统即可。
2、实现关机时自动卸载Sybase数据库
为保证Sybase系统的正常运行,每次在关闭Unix系统时要先结束Sybase SQL Server 的服务进程,从减轻
系统管理人员操作的角度出发建立一用户halt,修改/etc/passwd文件,将halt用户的uid改为0(或其他可运行
shutdown的用户id),在/usr/halt/.profile中添加以下语句:
以下是代码片段: SYBASE=/usr/sybase DSQUERY=SYBASE_XXXX PATH=$PATH:$SYBASE/bin export SYBASE DSQUERY PATH isql -Usa -Pabcabc -ihalt.sql > /dev/null shutdown -y -g0 |
其中“abcabc”为sa用户的口令,halt.sql是一简单的文本文件,内容如下:
这样每次只要以halt用户登录,就实现了自动卸下Sybase数据库,然后关闭Unix系统。
3、Sybase库备份技巧
一般对Sybase库进行备份都用磁带作介质进行,但还有一更好的方法,即先备份到硬盘上然后经压缩,
拷贝到磁带上,这样便于恢复,多了一个备份拷贝,同时也节省了备份时间。具体实现步骤如下:
(1)建立磁盘备份设备
运行isql,以sa进入Sybase系统,运行如下内容:
以下是代码片段: sp_addumpdevice "disk",disk_bkupdevice ,/tmp/dumpdb ,2 go |
这样就在Sybase中建立了一个名为“disk_bkupdevice”的备份设备,它对应Unix系统下的/tmp/dumpdb文件。
(2)创建备份用户
以root身份进入Unix系统,新建用户backupdb,并归属于sybase组。
(3)修改相关文件
在/usr/backupdb/.profile中添加以下语句:
以下是代码片段: SYBASE=/usr/sybase DSQUERY=SYBASE_XXXX PATH=$PATH:$SYBASE/bin export SYBASE DSQUERY PATH rm /tmp/backupdb.Z echo"开始备份SYBASE数据库…" isql -Usa -Pabcabc -ibackup.sql > /tmp/dbbackup.log echo"硬盘备份完成,正在压缩备份的数据文件…" compress /tmp/backupdb echo "正在将备份的压缩数据拷入磁带…" tar c8v /tmp/backupdb.Z echo "备份完成!" |
其中"abcabc"为sa用户的口令,backup.sql是一简单的文本文件,内容如下:
以下是代码片段: dump database db_main to disk_bkupdevice go |
备份的执行日志被记录在/tmp/dbbackup.log中,当然系统管理员也可通过查看$SYBASE/install/backup.log获知备份日志。
这种备份方法要求硬盘空间足够大,这点请系统管理员在为Unix建分区时特别注意。
在SCO Open Server 5.0.4、Sybase 11.0.3平台上,以上几个小技巧已应用成功,为笔者的日常维护节省了许多时间,取得了非常好的效果。