sybase问题整理

1) 关于定时备份

http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1233&show=390

crontab 中可以这样写:

00 23 * * * /sybase/ASE-12_0/bin/DUMPDB.sh >>/sybase/ASE-12_0/install/DUMPDB.out

放那里都无所谓,一个dumpdb.sh的例子:

#SUN Solaris 8

#!/bin/ksh

export SYBASE=/sybase

export SYBASE_FTS=FTS-12_0

export PATH=/sybase/ASE-12_0/bin:/sybase/OCS-12_0/bin:$PATH:/sybase/ASE-12_0/install:/usr/sbin

export SYBASE_OCS=OCS-12_0

export SYBASE_ASE=ASE-12_0

export LM_LICENSE_FILE=/sybase/SYSAM-1_0/licenses/license.dat:$LM_LICENSE_FILE

export LD_LIBRARY_PATH=/sybase/ASE-12_0/lib:/usr/local/openwin/lib:/sybase/FTS-12_0/lib:/sybase/OCS-12_0/lib:/usr/local/openwin/lib:/usr/lib:/sybase/SQLRemote/lib:$LD_LIBRARY_PATH

export SYBASE_SYSAM=SYSAM-1_0

export HOME=$SYBASE

$SYBASE_OCS/bin/isql -Usa -SSYBASE -P <dump database YOURDBNAME to "/sybdump/dump.01"

                stripe on "/sybdump/dump.02"

                stripe on "/sybdump/dump.03"

                stripe on "/sybdump/dump.04"

                stripe on "/sybdump/dump.05"

go

!

这里是一个典型的脚本,用于实现full备份!

#!/usr/bin/sh

# *************************************************************************

#for full backup after excuted dbcc operation

# *************************************************************************

SHLIB_PATH=/opt/sybase/ASE-12_0/lib:/opt/sybase/FTS-12_0/lib:/opt/sybase/OCS-12_0/lib:/usr/lib:/lib:/usr/lib/Motif1.2:/opt/sybase/SQLRemote/

lib

export SHLIB_PATH

SYBASE_OCS=OCS-12_0

export SYBASE_OCS

SYBASE=/opt/sybase

export SYBASE

ISQL="/opt/sybase/OCS-12_0/bin"

ymd=`date +%y%m%d`

bk_user="unb"

bk_pwd="******"

bk_db="SYB_HP"

cd /sybase/backup

mkdir $ymd

LOG="/sybase/backup/$ymd"

echo $ymd >$LOG/backup.log

echo "\n11*************************" >>$LOG/backup.log

echo "Check database $bk_db..." >>$LOG/backup.log

d1=`date`

su - sybase -c "isql -SSYB_HP -Usa -P****** <$LOG/dbcc-$ymd.log 2>&1

dbcc traceon(3604)

go

dbcc checkdb($bk_db)

go

dbcc traceoff(3604)

go

DBCC

echo $d1,`date` >>$LOG/backup.log

echo "\n22*************************" >>$LOG/backup.log

d1=`date`

dump_file="/sybase/backup/$dump-unb-full-$ymd.dat"

echo "Dump database $bk_db to " $dump_file >>$LOG/backup.log

su - sybase -c "isql -SSYB_HP -Usa -P****** <$LOG/dump-$ymd.log 2>&1

dump database $bk_db to "$dump_file"

go

DUMP

echo $d1,`date` >>$LOG/backup.log

echo "\n33*************************" >>$LOG/backup.log

请根据自身系统,调试后再使用!

至于备份日志的脚本与此类似,自己根据sybase的相关语法,稍加变动即可!

2) 有个关于游标的问题,请教各位大虾

http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=429&show=390

在sybase数据库中用游标操作完表a的记录后,关闭close游标,在free游标。但接着想drop此表a,结果失败,显示的错误信息是"游标在使用"(记得不是很清楚了,大概是这个意思)。

请碰到过这类问题的大虾支持支持。在informix和oracle中释放游标是用free,在sybase也是用free吗?

sybase 中正确操作游标的顺序是:

1、DECLARE CUR_ACCTINFO CURSOR FOR SELECT .....    (定义)

2、OPEN CUR_ACCTINFO                               (打开)

 

3、WHILE @@SQLSTATUS = 0                            (判断是否成功)

 BEGIN

 

4、         FETCH CUR_ACCTINFO INTO  .......     (取数据)

          IF @@SQLSTATUS  <> 0

 begin

                    ......

 end

           ...........

5、 CLOSE CUR_ACCTINFO               (关闭)

6、 DEALLOCATE  CURSOR CUR_ACCTINFO  (释放)

3) 在sybase中有没有进行数据类型转换的函数

  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1346&show=330

四舍五入用round,如round(123.4567,1)=123.5或round(123.4567,0)=123或round(123.67,0)=124

去尾用floor,如floor(123.4567)=123

进尾用ceiling,如ceiling(123.4567)=124

 

4) 新手问题:为什么我的SYBASE的RUN_BACKUP老是自己DOWN啊!?

  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1335&show=330

 为什么我的SYBASE的RUN_BACKUP老是自己DOWN啊!?

我用NetTerm登陆运行,但只要一退出NetTerm,BACKUP就自己DOWN了

加&运行也不行,怎么办啊?

 

命令前加nohup 试试

那是因为你的backup进程是以你的登录用户起动的,所以当该用户退出unix时,

进程也跟着退出操作系统了

5) 什么是BYPASS RECOVERY mode?

  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1371&show=300

 

在客户端出现提示:

Attempt to BEGIN TRANsaction in database "****" failed because database is in BYPASS RECOVERY mode.

请问如何解决?

select name,status from master..sysdatabases where db_name="你所说的数据库"

看status是否是-32768 ,若是,sysdatabases系统表相应记录的status字段改为0,reboot数据库服务器就可以了。

谢谢各位,问题已解决。中午去SYBASE网站查找到有关这个问题的详细信息,包括问题成因及解决办法:

Error 3908

Severity

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值