ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 72457|回复: 140

[精华] SYBASE常见问题收集整理(希望大家一起不断更新)

[复制链接]
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
跳转到指定楼层
1#
发表于 2004-1-17 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、希望大家有问题,先看看这里
2、希望大家不断补充

谢谢大家的支持
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
2#
发表于 2004-1-17 15:05 | 只看该作者
如何解决数据库被标记为"suspect"的问题之一( 一般解决方案)?

A.现象:Error 926
 Severity Level 14
 Error Message Text
 Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation

(1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果
你要使用这个数据库的数据, 必须改正这个错误.  

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"
2>go

(3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = -32768
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

  否则

1>rollback
2>go

(4.1)如果条件允许,bcp out用户数据或dump用户数据库

(5.1)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.

1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

1>sp_configure "allow updates" ,0
2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置
这些option..

(5) 运行dbcc命令检查数据库的一致性

isql -Usa -P -i dbcc.sql -o dbcc.out
dbcc.sql文件示例:
dbcc checkdb("pubs2"
go
dbcc checkalloc("pubs2"
go
dbcc checkcatalog("pubs2"
go
grep Msg dbcc.out

6) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"
2>go

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
3#
发表于 2004-1-17 15:05 | 只看该作者
如何解决数据库被标记为"suspect"的问题之二( 数据库设备损坏时的解决方案 )?

A.现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文件读写权限
不正确 )时,导致数据库恢复失败,出现926错误的情况。

(1) 请先恢复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"
2>go

3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = status - 256
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一致性编辑生成dbcc.sql文件:

dbcc checkdb("pubs2"
go
dbcc checkalloc("pubs2"
go
dbcc checkcatalog("pubs2"
go
isql -Usa -P -i dbcc.sql -o dbcc.out
grep Msg dbcc.out

(5) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"
2>go

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
4#
发表于 2004-1-17 15:05 | 只看该作者
如何解决ASE11.5装载或备份数据库报3230的错误?

A.用sp_dropdevice或sybase central删除逻辑设备后,不重启服务器,不回收虚拟设备号,重用它建立
设备,新建数据库。这时dump&load数据库会出3230错误。这是ASE11.5的BUG,过去不重新启动服务器,
老的虚拟设备号不能使用,现在服务器不提示错误。但dump&load数据库会出现3230错误。

解决办法是重启服务器,3230错便会消失。


Q.如何删除坏的用户数据库?(以pubs2为例)

A.当使用drop database无法删除数据库时,使用本文所示方法可以删除。

(1)使用isql以sa注册SQL server

(2)设置允许修改系统表

1>sp_configure "allow updates",1
2>go

(3)把 要删除的用户数据库置为"suspect"状态

1>use master
2>go
1>begin tran
2>go
1>update sysdatabases set status=256
2>where name="pubs2"
3>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4)重启server,并用isql以sa注册。

(5)删除数据库

1>dbcc dbrepair(pubs2,dropdb)
2>go

(6)恢复允许修改系统表

1>sp_configure "allow updates",0
2>go

(7)结束

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
5#
发表于 2004-1-17 15:05 | 只看该作者
如何修改IP地址改变后的interfaces文件?

A.安装SYBASE Adapive Server的机器IP地址改变后, 应修改 interfaces 文件及有关的设置。

如果 interfaces 文件中使用的是机器名而不是 IP 地址, 则不需要变动。 但如果客户端联结服务器使
用的是服务器的 IP 地址而不是机器名,那么客户端需修改联结服务器的 IP 地址.。

如果 interfaces 文件中使用的是 IP 地址, 那么需要修改 interfaces 文件中和地址有关的部分,
可使用dscp 或 dsedit 进行修改。 如果客户端联结服务器使用的是服务器的地址而不是机器名,那么客
户端也需修改。

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
6#
发表于 2004-1-17 15:06 | 只看该作者
如何检查数据库中数据的一致性?

A.数据库一致性检查(dbcc)提供了一些命令用于检查数据库的逻辑和物理一致性。Dbcc主要有两个功能:

使用checkstorage 或 checktable 及 checkdb 在页一级和行一级检查页链及数据指针。
使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc 检查页分配。
在下列情况中需要使用 dbcc 命令:

作为数据库日常维护工作的一部分, 数据库内部结构的完整性决定于sa 或dbo 定期地运行 dbcc 检查。
在系统报错以后, 确定数据库是否有损坏。
在备份数据库之前, 确保备份的完整性。
如果怀疑数据库有损坏时, 例如, 使用某个表时报出表损坏的信息, 可以使用 dbcc 确定数据库中其他
表是否也有损坏。
下面是dbcc的简单用法:

dbcc checktable (table_name)
检查指定的表, 检查索引和数据页是否正确链接, 索引是否正确排序, 所有指针是否一致, 每页的数据
信息是否合理, 页偏移是否合理。
          
dbcc checkdb (database_name)
对指定数据库的所有表做和checktable 一样的检查。
dbcc checkalloc (database_name,fix|nofix)
检查指定数据库, 是否所有页面被正确分配, 是否被分配的页面没被使用。当使用"fix"选项时,
在检查数据库的同时会自动修复有问题的页面。(若数据库数据量很大,则该过程会持续很长时间。)
dbcc tablealloc (table_name,fix|nofix)
检查指定的表, 是否所有页面被正确分配, 是否被分配的页面没被使用。是 checkalloc 的缩小版本,
对指定的表做完整性检查。当使用"fix"选项时,在检查数据表的同时会自动修复数据表中有问题的页
面。
关于上述命令的其它选项及详细使用方法和checkstorage, checkverify, indexalloc 的详细使用方
法, 请参阅有关命令手册。

举例1: Unix平台检查pubs2数据库的一致性

单用户模式启动Server:
$SYBASE/install startserver -f RUN_server_name -m
vi dbcc_db.sql
use master
go
sp_dboption pubs2,"single user",true
go
use pubs2
go
checkpoint
go
dbcc checkdb(pubs2)
go
dbcc checkalloc(pubs2,fix)
go
dbcc checkcatalog(pubs2)
go
use master
go
sp_dboption pubs2,"single user",false
go
use pubs2
go
checkpoint
go
quit
go
isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out
grep Msg dbcc_db.out
举例2: Unix平台检查pubs2数据库中titles表的一致性

vi dbcc_table.sql
use pubs2
go
dbcc checktable(titles)
go
dbcc tablealloc(titles)
go
isql -Usa -Pxxxxxx -SSYBASE < dbcc_table.sql > dbcc_table.out
grep Msg dbcc_table.out

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
7#
发表于 2004-1-17 15:06 | 只看该作者
如何在Windows NT上手动卸载Sybase Server ?

A.关闭 Adaptive Server.
将Adaptive Server在Windows NT Services中由自动改为手动
重新启动 Windows NT server
运行sybedt32修改注册表, 删除以下内容:
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_BS
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_HS
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_MS
到注册表的如下结构下:
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
删除DSLISTEN, DSQUERY, SYBASE, 并修改 LIB, INCLUDE, PATH删除SYBASE有关目录
删除如下注册键值:
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
SYBSQL_
SYBXPS__XP
SYBBCK__BS
SYBMON__MS
SYBHIS__HS
重新启动 Windows NT server
使用 Start | Control Panel | Settings | Services 确认SYBASE已经卸载
删除SYBASE Server所用数据库设备文件及SYBASE系统文件

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
8#
发表于 2004-1-17 15:06 | 只看该作者
如何更改SQL Server名称(在UNIX、OPENVMS平台上)?

A.在SYBASE产品中没有特定的函数或者存储过程用来更改SQL Server/ASE Server的名称,因此,只能手
工修改某些参数或者配置来完成此任务。

需要修改interfaces文件;更改RUN_server_name文件名,并修改其内容,例如:-s(UNIX)、/SERVER
(OpenVMS)后面所跟的参数(server 名称);更改配置文件名;更改errorlog文件名(如果需要);如
果server名称加在了表sysservers中,需要更改'srvname'、'srvnetname'列,可使用sp_dropserver、
sp_addserver存储过程来实现。

在OpenVMS系统中还要修改RUN_server_name文件中DSLISTEN的逻辑名称,以及在使用startserver过程中
/SERVER后面所跟的参数。然后,重启SQL/ASE Server。确认DSQUERY、DSLISTEN环境变量已经更改为所
需内容。

另外,如果SQL/ASE Server是被设置为远程服务器,还要修改与此server相关的系统表sysservers中的
字段以及interfaces文件。

理论上例如配置文件、RUN脚本、errorlog文件不需要指定server 名称(但是通常习惯指定server名
称)。在RUN startup脚本中要指定server名称。

您可以根据以下提纲完成此项任务:

如果server名称加在了表sysservers中,用sp_dropserver删除。
Shut down server
编辑 interfaces文件
更改RUN_server_name文件名,并修改其内容,-s(UNIX)、/SERVER(OpenVMS)后面所跟的参数(server
名称)
更改errorlog文件名(如果需要)
修改DSQUERY、DSLISTEN环境变量(如果需要)
更改配置文件名(server_name.cfg、server_name.bak、server_name.nnn),在SYBASE安装路径下Start
server
使用sp_addserver重新添加server(如果需要)
如果server是作为远程server使用的,还需要删除并重新添加。

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
9#
发表于 2004-1-17 15:06 | 只看该作者
如何配置SQL Server来做远程备份?

A.在本地机器上:  
(1).本地SQL Server和Backup Server能运行。
(2).在本地的Interfaces文件中,增加远程机器上的Backup Server名称,只需“Quary” 行,不允许使
用别名(aliases)。

请注意:在网络上每个Backup Server必须有一个唯一的名字,这个名字必须在 Interfaces文件之中,用
户可以通过查看服务器运行文件来检查它,它的选项是-S(unix) 或者/Server(VMS)。  

(3).执行存储过程SP-helpServer SYB_BACKUP确认本地Backup Server具有正确的网络名称。远程Backup
Server不一定非要在系统表Syservers中有一条记录不可,但是有它便于测试。

请注意:不要修改SYB_BACKUP,使它指向远程Backup Server名字。

在远程机器上:  

(1).确认远程Backup Server正在运行。
(2).确认远程Backup Server有与本地Backup Server不同的网络名字。

请注意:在远程机器上的Interfaces文件中,必须包含远程Backup Server的定义记录,但是它不需其他
Backup Server的定义。

使用道具 举报

回复
求职 : 系统分析师
认证徽章
论坛徽章:
677
博彩大赢家
日期:2015-09-24 12:11:05博彩大赢家
日期:2014-07-14 11:41:47菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-06-24 10:29:08NBA季后赛大富翁
日期:2016-04-27 11:51:10芝加哥公牛
日期:2017-04-18 17:07:58芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2015-06-25 09:32:08
10#
发表于 2004-1-17 15:06 | 只看该作者
如何配置SQL Server 11,使得快速BCP具有更好的性能?

A.有几种方法可以改善BCP的性能:  
(1)增加扩展分配(extent allocation)。缺省情况下,预分配2到31个扩展。在一个BCP批次中,未使用的
预分配扩展被释放。为了获得最佳BCP性能,设置BCP批次大小和 “number of preallocated extents”
预分配扩展个数,以消除空间重新释放。使用Sp_config number of pre-allocated exetents,nn 对于系
统10:buildmaster -ycpreallocext=nn
(2)对表进行分区
(3)配置OAM页面的缓冲策略,以减少对OAM(Object Allocation Map)页面的物理读。
(4)配置大I/O的缓冲池,例如16K:

Sp-poolconfig default, "16K" (5)使用-A标记,加大网络包大小:

bcp -A 16384

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表