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,会把硬盘写暴。
没有相关教程
|