Sybase数据库故障处理方法

合集下载

Sybase_926数据库挂起、3414错误解决方法

Sybase_926数据库挂起、3414错误解决方法

Sybase 926数据库挂起、3414错误解决方法(Error: 926 Error: 3414)一、查看错误日志 errorlog 发现了这段记录00:00000:00001:2009/04/28 16:13:36.46 server Error: 926, Severity: 14, State: 100:00000:00001:2009/04/28 16:13:36.46 server Database 'FD_JXC' cannot be opened. An earlier attempt at recovery marked it 'suspect'. Check the SQL Server errorlog for information as to the cause.00:00000:00002:2009/04/28 16:13:36.46 kernel network name200.100.101.100, type ether, port 5000, filter NONE00:00000:00003:2009/04/28 16:13:36.48 kernel network name yzserver, type ether, port 5000, filter NONE00:00000:00001:2009/04/28 16:13:36.48 server Unable to proceed with the recovery of dbid <4> because of previous errors. Continuing with the next database.明显的 926 数据库挂起错误,即先将数据库状态修改为 -32768 然后再修改为0/* 1、将 'allow updates' 从 0 改为 1 允许修改系统表*/sp_configure "allow updates", 1/* 2、将数据库状态修改为 -32768 即 bypass recovery */update sysdatabases set status = -32768 Where name="FD_JXC"这时需要停止Sybase服务并且重新启动Sybase/* 3、将数据库状态修改为正常 status=0 */update sysdatabases set status=0 where name="FD_JXC"sp_configure "allow updates", 0第二次停止Sybase服务并且重新启动Sybase这步完成后一般重新设置数据库选项(例如"select into","trunc log on chkpt"等)exec sp_dboption FD_JXC, 'select into/bulkcopy' ,trueexec sp_dboption FD_JXC, 'trunc. log on chkpt' ,true运行dbcc命令检查数据库的一致性dbcc checkdb(FD_JXC)备份用户数据库dump database FD_JXC to "D:\backup\FD_JXC0428.dump"晕死,眼看胜利在望,服务器蓝屏,无语,破机器,只好非法关机重新启动,启动好后数据库还是无法正常使用,再查看错误日志 errorlog ,我的神啊,竟然变成3414错误了,肯定是刚才蓝屏的时候,数据库在恢复日志被中断了,这样就要重建数据库日志了190197: Master device size: 30 megabytes, or 15360 virtual pages. (A virtual page is 2048 bytes.)00:00000:00001:2009/04/28 16:40:14.75 server Error: 3414, Severity: 21, State: 100:00000:00001:2009/04/28 16:40:14.75 server Database 'FD_JXC' (dbid 4): Recovery failed. Check the SQL Server errorlog for further information as to the cause.Error: 3414, Severity: 21, State: 1 Database 'FD_JXC' (dbid 4): Recovery failed. Check the SQL Server errorlog for further information as to the cause.解决办法: 重建数据库日志,方法如下:/* 1、赋予sa用户sybase_ts_role的角色 (这步最重要,我一开始没搞,费了不少工夫) */sp_role "grant","sybase_ts_role",sa/* 2、将数据库状态修改为 -32768 即 bypass recovery */sp_configure "allow updates",1update master..sysdatabases set status =-32768 Where name="FD_JXC" 这时需要停止Sybase服务并且重新启动Sybase/* 3、rebuild数据库日志 */dbcc rebuild_log(FD_JXC,1,1)第二次停止Sybase服务并且重新启动Sybase/* 4、将数据库状态修改为正常 status=0 */update master..sysdatabases set status=0 Where name="FD_JXC"sp_configure "allow updates", 05、还要第三次停止并重启Sybase服务,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备份,使用dump database或bcp命令。

Sybase编程中出现的错误及其解决办法-电脑资料

Sybase编程中出现的错误及其解决办法-电脑资料

Sybase编程中出现的错误及其解决办法-电脑资料SYBASE 数据库是当今在UNIX环境下最为流行的大型数据库之一,本人在SYBASE下开发和维护软件的过程中,发现了一些SYBASE 的内部规则,在程序设计中极易造成误解,而达不到预期的目的,。

下文将本人所发现的几个问题及其解决办法叙述如下:1、在sybase11.5中,组合两个定长的char(x)="aaa",char (y)="bbb"; char(x)+char(y)!="aaabbb"declare @val_1 char(8)declare @val_2 char(1)select @val_2 = 'x'select @val_1 = "0000"select @var_1= @val_1 + @val_2select @var_1我们期望的结果为0000x,而实际上其结果为0000。

解决方法一:当我们将"select @var_1=@val_1+@val_2",改为"select @var_1=rtrim(@var_1)+@var_2"时,我们便看到了我们所期望的结果。

为什么呢?在有的SYBASE版本中存储一个char(n)时,在其真实值后补上了相应数量的空格,在本例中,存储在@var_1中的是0000 (在0000后有四个空格)。

你可以加上如下两句来验证:declare @val3 char(10)select @val3 = @val_1 + @val_2select @val3这时你会得到的结果为0000 x (在0000后有四个空格)。

解决方法二:将char 改为 varchar 也可以达到预期的目的,电脑资料《Sybase编程中出现的错误及其解决办法》(https://www.)。

2、用alter table 增加表结构时,虽然用sp_recompile tablename 重编译了所影响的数据库对象,但在运行某些包含"select * from tablename"的存储过程时,存储进程仍不认识用alter table 增加的列。

Sybase服务故障的分析及解决办法

Sybase服务故障的分析及解决办法

Sybase服务故障的分析及解决办法一、问题的起因国库业务系统用DELL服务器原为国库核算系统、国库统计系统、国库综合业务报表系统、国债兑付管理系统四套业务系统的工作机,自2003年以来就投入运行,因使用时间较长,期间做过不少次系统配置更改及业务系统升级换代,因此运行速度越来越慢,且常出现些小问题,为此笔者新装了一台HP DX2000计算机作为生产机,而把DELL服务器改作备份机,以便于有充裕的时间对其进行系统的整理维护,提高其整体性能。

前些天,国库业务人员因为业务问题需要使用备份机,发现国库综合业务系统无法正常登录,查询服务功能,发现NTRS服务没有启动,如是采用手工启动的方法,结果出现如下错误提示:“在本地计算机,无法启动Sybse SQLServer_ntrs服务并未返回错误。

这可能是一个Windows内部错误或服务内部。

如果问题持续存在,请与您的系统管理员联系。

”二、处理的过程为解决此故障,笔者反复多次启动服务,乃至重新启动机器,但问题依然如此,联想到新装HP DX2000计算机更改IP地址时也出现过如此问题,而且Sybase Config也经常出现启动错误,需要到Sybase 系统目录中找到对应文件直接执行才能解决问题,因此认为Sybase本身可能存在某些问题,需要手工更改其他配置。

如是笔者打电话咨询总行信息技术支持中心,答复这个问题咨询的电话较多,每周都有好几个,这属于Sybase系统本身的不完善问题,而总行已经解除了与Sybase公司的服务协议,因此没有办法解决,只能删除NTRS服务再重建。

辛辛苦苦建立的NTRS服务,怎忍心一删了事,而且国库统计系统、国库综合业务报表系统、国债兑付管理系统三套系统都使用此服务,到时恢复起来也较费事。

抱定不到黄河心不死,见到棺材也不落泪的心里,笔者广泛查找资料,多方电话咨询Sybase方面的专家,经过连续数天的实践摸索,终于查明是Sybse服务配置的冲突所至,需要通过Sybase Dsedit更改系统配置或手工清理、修改SQL.ini文件。

数据库故障的解决方式

数据库故障的解决方式

数据库故障的解决方式在启动sybase数据库时,由于疏忽,忘记首先打开装有用户数据库(daydb) 的外置硬盘驱动器。

导致数据库引擎在启动时出现错误:udactivate:eTTOr startingvirtualdisk5〔启动虚拟磁盘5错误)Op en'/wkdisk/data l.dat',Nosuckfileordirectory〔打开,/wkdisk/data l.dat',没有此文件或目录)udstario:vdn5hasnotbeensetupError:840,severity17,state1Device'datadevl'hasnotbeencorrectlyactivatedatstartuptime(在启动时设备,datadevl'没有正确地激活)Unabletoproceedwiththerecorveryofdbid(6)becauseofprecious eTT or〔因为上述错误,dbid(6)不能执行恢复进程)Database'daydb'cannotbeopened〔数据库,daydb'不能打开)Anearlierattemptatrecorverymarkedit'suspect'〔以前的个恢复动作失败导致标识其‘可疑,)这样,由于驻留有数据库设备文件的磁盘驱动器未开启,导致在sybase数据库启动时不能正确地激活相应地数据库虚拟设备,从而造成用户数据库‘dbid(6),即‘daydb'不能打开,无法进入。

出现此错误后,我们首先用isql以数据库管理员的身份登录到数据库中,尝试进入daydb数据库,系统显示此数据库为‘可疑的,不能打开,请看系统错误记录文件errorlog查找错误。

而errorlog文件中记录的错误即为数据库引擎启动时显示的错误。

我们又尝试用数据库检查维护命令dbcccheckdb来解决,系统同样显示"此数据库为‘可疑的,不能打开。

修复Sybase SQL Anywhere 数据库的好方法修复Sybase SQL Anywhere 数据库的好方法

修复Sybase SQL Anywhere 数据库的好方法修复Sybase SQL Anywhere 数据库的好方法

修复Sybase SQL Anywhere 数据库的好方法SybaseSQLAnywhere是Sybase公司开发的一种小型数据库产品,有单用户版和多用户版,可安装在Win95、Win98、NT、Netware等平台。

SQLAnywhere的SQL语句基本上和SybaseAdaptiveServer一致;而且功能也相当强;PowerBuilder5.0以上的版本都自带一个SQLAnywhere。

因此,对使用笔记本或单机的开发人员来说,选择SQLAnywhere作为数据库来开发应用程序是十分方便的,故SQLAnywhere 得到了普遍的应用。

但是突然断电或不正常关机都有可能破坏SQLAnywhere的数据,由此造成很大的损失,下面就来介绍一种恢复被破坏的数据库的方法。

SQLAnywhere数据库由后缀分别为.db和.log的两个文件组成。

其中.db的文件是用来存放数据库信息(包括表结构、视图、数据等)。

而.log文件是个日志文件,用来记录用户每一次对数据库有影响的操作,例如创建或删除表、视图、触发器等对象,插入、删除、修改表中的数据等。

所以只要把.log 文件的内容转换成一条条的SQL语句,然后再建一个空的数据库,再执行这些SQL语句,则恢复数据的问题就解决了。

Sybase公司提供了几个实用程序来完成以上功能。

现假设数据库系统文件分别名为mydb.db和mydb.log。

如果mydb.db已被破坏。

现在创建一个新的数据库,假设文件分别名为new.db和new.log。

用Sybase提供的dbtranw.exe,DB32W.EXE,rtsqlw.exe等实用程序来完成恢复工作,步骤如下表。

步骤命令功能1.Dbtranw -r-k-y mydb.logdb.sql把.log文件的内容转换成的SQL语句2.Attrib -r mydb.db修改只读文件mydb.db的属性为可写3.Attrib -r mydb.log修改只读文件mydb.log的属性为可写4.Copy new.db mydb.db用新的空库文件覆盖被破坏的旧库文件5.Copynew.log mydb.log用新的日志文件覆盖旧的日志文件6.DB32W.EXE -d mydb.db启动数据库SQLAnywhere7.Rtsqlw -q-c "userid=dba;password=sql"readdb.sql执行从.log文件中倒出来的SQL语句其中第一步的功能是把旧的日志文件转换成SQL语句,并放在一个名为db.sql的文件中,特别注意它只能在第五步之前操作,否则日志文件会被new.log所覆盖,而导致无法恢复数据。

Sybase备份恢复和问题解决

Sybase备份恢复和问题解决

Sybase数据备份指南问题描述:Database in use. A user with System Administrator (SA) role must have exclusive use of database to run load解决方法:有些用户正在使用该被恢复的数据库。

使用下面的sql查询哪些会话在连接该数据库。

select spid,hostname,loggedindatetime,ipaddr from master.dbo.sysprocesses where db_name(dbid)='数据库名'使用如下的sql杀掉连接那个数据库的用户连接:select 'kill '+convert(varchar,spid) from master.dbo.sysprocesses where db_name(dbid)='数据库名'实例代码(注意当前数据库的选择):1.备份数据库--dump database Test2 to ‘D:\002.dat’2.恢复数据库--load database Test2 from 'D:\002.dat'3.切换数据库状态--online database Test24.故障解决--select spid,hostname,loggedindatetime,ipaddr from master.dbo.sysprocesses where db_name(dbid)='Test2'--select 'kill '+convert(varchar,spid) from master.dbo.sysprocesses where db_name(dbid)='Test2' --online database Test2。

SYBASE数据库的使用及日常问题的解决方法

SYBASE数据库的使用及日常问题的解决方法

SYBASE数据库的使用及日常问题的解决方法中兴通讯固网南京用服部辛国成摘要:介绍sybase数据库的基础知识和核心系统SQL Server的基本特征以及sybase软件重要组成、系统库和用户数据库主要部分,sybase数据库各种问题的处理。

关键词: SQL Server 数据库备份BCP表操作1 Sybase基础知识1.1 Sybase软件的组成Sybase软件可划分为以下三个部分:(1)进行数据管理与维护的联机关系数据库管理系统Sybase SQL Server;( 2 )支持数据库应用系统的建立和开发的一组前端工具软件Sybase SQL Tools;(3)可把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口软件Open Client/Open Server。

SQL Server是个可编程的数据库管理系统(DBMS),它是整个Sybase产品的核心软件,起着数据管理、高速缓冲区管理、事务管理的作用。

1.2 SQL Server的基本特征SQL Server是个关系数据库管理系统,它具有如下一些基本特征:(1)SQL Server可以放在若干个磁盘设备上,初始安装时所需的磁盘空间根据版本不同需要的空间不同。

(2)SQL Server支持多库结构,也就是说Sybase系统中可以有多个数据库。

Sybase可以管理多个数据库。

(3)SQL Server可以编译和运行T-SQL语句,并可返回客户程序所要求的结果。

T-SQL语句是标准SQL的扩充,它除了有数据定义语句、数据操纵语句和数据控制语句之外,主要增加了流程控制语句。

(4)SQL Server可以管理多个用户并具有较高的事务吞吐量和较低的事务响应时间。

1.3 客户/服务器体系结构Sybase系统是一种建立在客户/服务器体系结构上的数据库管理系统。

那么什么是客户/服务器体系结构?从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台机器之间进行分配,其中客户机(Client)用来运行提供用户接口和前端处理的应用程序,服务器机(Server)提供客户机使用的各种资源和服务。

Sybase 数据库容灾

Sybase 数据库容灾

Sybase 数据库容灾Sybase 数据库是一款高可靠性、高性能的企业级数据库管理系统,为了保障数据的安全和可用性,很多企业都采用了容灾方案来应对自然灾害、硬件故障或人为错误等可能导致数据丢失或服务中断的情况。

下面将介绍一种常见的 Sybase 数据库容灾解决方案。

1. 数据复制:Sybase 数据库采用可复制复制技术,将主数据库的事务日志实时地传输到一个或多个备份数据库,并同步应用到备份数据库中。

这样,在主数据库发生故障时,可以快速切换到备份数据库,确保数据的连续性。

2. 故障切换:在主数据库发生故障时,通过自动或手动将数据库的读写请求切换到备份数据库,从而实现业务的持续运行。

在实施故障切换前,需要确保备份数据库与主数据库的数据是一致的。

3. 热备份:Sybase 数据库支持热备份,即在数据库运行的同时进行备份操作。

通过定期的备份操作,可以将数据库的数据和日志文件备份到磁盘或磁带中,以保障在数据损坏或灾难发生时能够恢复数据。

4. 跨数据中心复制:为了进一步提高容灾能力,可以将备份数据库部署在不同的数据中心,以防止单一数据中心的故障导致数据丢失。

通过跨数据中心的复制,可以实现地理上的容灾,在一方数据中心发生故障时,可以切换到另一方数据中心继续提供服务。

5. 监控和自动化:在容灾方案中,需要设置监控系统来实时监测数据库的状态,并在发生异常情况时自动触发故障切换操作。

通过自动化的容灾流程,可以提高响应速度和可靠性,减少人为错误的风险。

Sybase 数据库容灾方案的实施需要综合考虑数据安全性、业务连续性和成本效益等因素。

不同的企业可以根据自身的需求和资源情况选择合适的容灾方案,以保障数据库的可用性和数据的完整性。

Sybase数据库故障处理方法

Sybase数据库故障处理方法

Sybase数据库故障处理方法一、Sybsystemprocs 库“挂起”解决办法1. 修改Sybase.cfg 文件,修改Sybase 数据库可以修改系统参数.2. $ vi Sybase.cfg 查找―allow updates‖,将其修改为1.(缺省值为0). 既allow updates to system tables=1 重新启动系统.3. 用isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为-32768. $isql –Usa –P 1> update master..sysdatabases 2> set status = -32768 where name =‖sybsystemprocs‖1>go 1>shutdown with nowait 2>go 关闭数据库重新启动.4.用isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为0. $isql –Usa –P 1>update master..sysdatabases 2>set status = 0 where name =‖sybsystemprocs‖3>go 1>shutdown with nowait 2>go 关闭数据库重新启动.5. 将Sybase.cfg 中的‖allow updates to system‖的值改为0.二、如何恢复master数据库ASE can't setup and has no valid dump of master1、编辑RUN_servername 在命令行最后加入:-T36072、单用户模式启动ASE $cd install $startserver -f RUN_servername -m3、bcp out系统表$bcp master..sysdevices out /directory.spec/devs -Usa -P -c $bcp master..sysdatabases out /directory.spec/dbs -Usa -P -c $bcp master..sysusages out /directory.spec/usages -Usa -P -c $bcp master..syslogins out /directory.spec/logins -Usa -P -c $bcp master..sysconfigures out /directory.spec/configures -Usa -P -c $bcp master..syscharsets out /directory.spec/charsets -Usa -P -c4、shutdownASE5、创建新master设备$buildmaster -d<path_to_new_master_device> -s<new_master_device_size> (new_master_device_size以2K为单位)6、编辑RUN_servername 将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。

如何解决Sybase数据库乱码问题详解

如何解决Sybase数据库乱码问题详解

如何解决Sybase数据库乱码问题详解Sybase数据库是一种常用的关系型数据库管理系统(RDBMS),它被广泛应用于企业级应用程序的开发和管理中。

然而,在使用Sybase数据库过程中,我们有时会遇到乱码问题。

乱码是指数据库中存储的数据在显示过程中出现了不正常的字符或者无法识别的字符。

本文将详细介绍如何解决Sybase数据库乱码问题。

一、乱码问题的原因分析乱码问题的产生原因非常多样化,下面列举了一些常见的原因:1. 字符集不匹配:数据库中使用的字符集与应用程序中使用的字符集不一致会导致乱码问题。

2. 数据导入不正确:如果在导入数据时未指定正确的字符集,则可能导致数据乱码。

3. 数据存储不正确:如果数据库中存储的字符串没有使用正确的字符集,将会导致乱码问题。

4. 字符串处理不当:在应用程序中对字符串进行处理时,如果没有正确处理字符集,数据可能会出现乱码。

5. 系统环境配置问题:有时,操作系统、数据库软件或应用程序中的某些配置存在问题,也可能导致乱码问题。

二、解决乱码问题的方法针对上述原因,可以采取以下一些解决乱码问题的方法:1. 修改字符集配置:确保数据库中使用的字符集与应用程序中使用的字符集一致。

可以通过修改数据库或应用程序的配置文件来设置正确的字符集。

2. 指定正确的字符集进行导入:在导入数据时,需要指定正确的字符集,以保证数据能够正确地存储到数据库中,避免乱码问题的发生。

可以根据具体情况使用不同的导入工具或命令来完成这个操作。

3. 使用合适的数据类型:在创建数据库表时,选择合适的字符数据类型来存储字符串。

根据具体情况选择varchar、nvarchar等数据类型,并指定正确的字符集。

4. 对字符串进行正确的处理:在应用程序中,对于涉及到字符串处理的操作,需要确保使用了正确的字符集。

比如,对字符串进行拼接、截取、比较、转换等操作时,都需要注意字符集的一致性。

5. 检查系统环境配置:如果乱码问题持续存在,需要检查系统环境配置是否正确,包括操作系统、数据库软件和应用程序的相关配置。

如何修复Sybase数据库

如何修复Sybase数据库

如何修复Sybase数据库对于数据库的恢复,一直是用户比较头痛的一个问题,特别是Sybase数据库,由于该数据库本身构架比较复杂,所以大多数用户对Sybase数据库一知半解,当Sybase数据库出现问题时,用户很难及时对数据库采取有效的修复,从而造成了数据库文件丢失的情况。

就目前而言,当Sybase数据库出现故障数据丢失时,大家要如何对其进行恢复呢?当Sybase数据库出现各种故障问题时,最好的解决方法不是根据网上的解决方法一个个尝试,而是直接咨询专业的数据恢复机构,让专业的数据库修复专家帮助修复数据库故障,恢复数据库丢失的各种数据。

(1)系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏得备份文件情况下得恢复。

(2)误Delete、Drop、Truncate操作的数据库修复。

(3)各种sybase错误的修复。

(4)sybase数据库被标记为可疑,不可用等情况。

(5)由于坏块无法启动或无法使用的数据库修复。

(6)sybase数据库无数据文件但有有日志的情况下的恢复。

(7)sybase数据库只有设备数据文件没有任何日志的情况下的恢复。

(8)sybase数据文件被误删除情况下的恢复。

(9)磁盘阵列上的sybase数据库被误格式化情况下的恢复。

(10)Sybase IQ各种IO错误的数据库修复等等。

提醒:1)不要试图用网上各种软件自行恢复,也不要随意使用网上所说的恢复方法,盲目的操作最终可能会让数据库故障更加严重,数据也会遭到二次破坏。

2)不要再往硬盘上写入任何数据。

在数据丢失后进行任何操作都可能导致数据永久丢失无法恢复。

3)不要重建数据库,不要作任何操作。

4)不要交由不具有技术和能力的公司或个人恢复,一定要将其交给专业的数据恢复机构,让专业的数据库恢复专家进行数据库修复。

Sybase数据库常见问题及解决办法

Sybase数据库常见问题及解决办法
g 0
四 a s 空口令修改后不能再改回
原 因: 为安全起 见 , a s 口令不能为空 , 但有些应 用 软件用s及空E令连接Sbs数据库 , a l yae —旦修改sE令, al
六. 使用S b s 单用户方式 ya e
原因: 当需要恢Jmatr  ̄ s 数据库时, [ e 必须使用单用
户方式 。 解决办法 :
应用系统就出错, 用普通方法无法再改 回空 口 令。
解决办法 :
s — o f u e ” p r d eso ” p c n g r u g a ev rin i
g 0
U i系统下,5 yae nx 1Sb s用户登 录, )  ̄ 执行s r evr t t re — as
g o
解决办法 : 在 S b s 安 装 目录 中, 除 s b . 文 件 yae 删 y a ek g s r
u pda e es db. s us r s t Ui t t t . ys e s e S d=6 wher e
na e=” t t e ” m es us r
U Se aSt m er
g o
s — o f u e “ lo u d ts 1 p c ni r g alw p ae ”,
go
新版本是 1 ., 55 但用 的最 多的版本是 1.和1 .。 人 1 9 25 在
民银行各中心支行中, y ae Sbs数据库主要用于国库核算 系统 ( no s 0 0evrsbsl.) 人事信息管理 Widw 0 sre+yae1 、 2 9 系统 ( n o s 0 0 ev rsb s1 .) 支 票影像 系 Widw 0 sre+ yae25 、 2 统外挂软件 ( n o s p sb sl .) 国际收支统计 Widw +y ae25 、 x (C i . +yae 1 ) 同城票据清算系统 (e t S u x 0 s sl. 、 On 55 b 9 rdh a l u 5 sb sl .) 在 日 i x +yae25 等。 n 常的Sb s数据库维护过程 yae 作中, 时会 ̄ 有 Sb s数 据库出错 的情况 , y ae 现将工作 中发现的典型问题及详细解决办法, 介绍给大家 。 为方面起见 , 假设S bs数据库服务名为Sb s, y ae y ae 数据库名为t tb 一个系统用户及ts b ed, s et 数据库用户名 d 为t tsr 为执行sl e u e, s q脚本 , n o s Widw 系统要进2.yae k b s S 的sl d atg 的窗口, nx q a vnae U i系统 通过执行i l U a s — s— q P x - sb s, xx Syae 进人命令行窗 E。 l

sybase常见错误

sybase常见错误

sybase常见错误在用isql连接数据库的时候,比较常见的错误有:服务没启动报错,报密码错误,报服务名不存在。

分别为:服务名不存在:CT-LIBRARY error:ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.服务没有启动:CT-LIBRARY error:ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed密码错误:Msg 4002, Level 14, State 1:Server 'TEST':Login failed.CT-LIBRARY error:ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed.在执行isql命令连接数据库的时候,报密码错误和服务名称不存在这两个错误的情况下,反映很快。

也就是说:在isql命令行后敲入回车后很快就给你提示服务名不存在或密码错误。

但是在报因服务没有启动导致的错误时,要等一段时间才有结果。

因为 isql 需要等待 ASE 服务器的响应。

连接sybase数据库的时候将依次尝试sql.ini文件中相应服务名下面的所有监听信息。

如果所有的监听信息都连接失败后,才给出无法连接的提示信息。

sybase尝试连接一个监听地址端口需要花费多长时间?失败后将继续尝试几次?以后再总结。

SYBASE常见问题

SYBASE常见问题

SYBASE常见问题1.Sybase数据库日志满碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。

在代码中跟踪可以发现,连接能够打开,但事务却无法开启。

常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。

解决办法:若是开发数据库,则直接清除日志即可。

若是正式数据库:建议备份当前日志再清空日志,扩日志设备及日志数据库。

清空日志的语句为『dump transaction database_name with no_log 』2.Sybase中文乱码出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。

可以考虑更改sybase的默认字符集。

在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。

这里我们针对Sybase 服务器字符集不支持中文给出解决办法:解决办法(安装cp936字符集):假设sybase的安装路径为"D:\Sybase"。

(1)D:\>cd \sybase\charsets\cp936(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。

找到name为cp936的ID,假定是171。

(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』(5) 重启Sybase服务两次。

Syabse数据库常见问题解法之数据库无法启动

Syabse数据库常见问题解法之数据库无法启动

Syabse数据库常见问题解法之数据库无法启动
在探讨本问题之前,首先要为大家解释一下Syabse数据库本身。

Syabse数据库应用和本身的架构相对而言都相对比较复杂,多数技术人员及公司对Sybase数据库底层结构和运行机制也处于并非完全了解的阶段,这就对Sybase数据库数据恢复和Sybase数据库数据修复造成了很大的阻碍。

难道一旦Sybase数据库出现严重的故障就没有解决之道了吗?答案是否定的。

计算机运行的根本原理谁都无从改变,任何系统和应用都要遵守计算机的计算和存储规则,只不过是某些概念和规则过于生涩,导致我们需要更多的时间和精力来学习和熟悉。

这也是目前Sybase数据库数据恢复和数据修复方面的处境。

下面将以真实案例为例为大家介绍数据库无法启动该如何解决。

Sybase版本:SQL Anywhere 8.0
故障现象:数据库无法启动。

错误提示如图:
然后使用 Sybase Central 连接后报错如图:
经过分析得出的结论是:突然断电造成数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,并有一些存储页底层数据完全杂乱。

于是我们在Sybase数据库底层把杂乱和错误的存储页进行修正,并对系统表部分信息进行更改。

繁重的Sybase数据库修复工作完成后,Sybase数据库已能成功启动,使用Sybase Central已能成功连接,经用户验证已无任何问题,上两张图给大家看看最终成果。

SYBASE解决数据库被标记为“suspect”的方法

SYBASE解决数据库被标记为“suspect”的方法

SYBASE解决数据库被标记为“suspect”的方法 (转载)现象: Error 926 Severity Level 14 Error Message Text Database "xx" cannot be opened - it has been marked SUSPECT by recover Explanation 当你使用Transact_SQL命令操作这个数据库的数据时,出现这个信息,这是一个严重的错误,如果你要使用这个数据库的数据,必须改正这个错误。

用SQL Advantage登录到SQL Server,须用sa帐号sp_configure "allow updates", 1goreconfigure with overridegoupdate master..sysdatabases set status =-32768 Where name="database_name"/*database_name 是你的数据库名*/goshutdown with nowaitgo 这时重新启动SQL Server,再有SA帐号注册到SQL Server。

update master..sysdatabases set status=0 Where name="database_name"/*database_name 是你的数据库名*/gosp_configure "allow updates" ,0goreconfigure with overridego 如果你的数据库原来有dboption,你需要重新设置这些选项。

可以参考《系统管理员手册》。

SYBASE数据库常见的问题总结

SYBASE数据库常见的问题总结

SYBASE 数据库常见问题总结SYBASE 数据库常见问题总结 (1)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统 (1)2. 数据库日志损坏时重建日志启动数据库的解决办法 (3)3. 数据库处于可疑状态的解决方法 (5)4.Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库? (8)5.不小心直接删除了日志的设备文件,如何恢复数据库? (13)6.sa密码忘记了导致isql -Usa -P******进不去怎么办? (15)7.关于sybase的配置-(数据库慢的请留意) (15)8.设备路径更改的方法 (19)9.dump文件load后数据库访问不了解决办法 (20)10.sybase数据库备份方案 (20)11.master数据库状态被置为-32768后的处理方法 (26)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决:第一步,启用allow updates to system tables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。

系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begin transaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allow updates to system tables。

1>sp_configure "allow update",12>go第二步,Adaptive Server中的每个数据库在sysdatabases中都有相应的一行,安装Adaptive Server后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Sybase数据库故障处理方法一、Sybsystemprocs 库“挂起”解决办法1.修改Sybase.cfg 文件,修改Sybase 数据库可以修改系统参数.2.$ vi Sybase.cfg查找―allow updates‖ ,将其修改为1.(缺省值为0).既allow updates to system tables=1重新启动系统.3.用 isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为-32768.$isql –Usa –P1>update master..sysdatabases2>set status = -32768 where name =‖sybsystemprocs‖1>go1>shutdown with nowait2>go关闭数据库重新启动.4.用 isql 登录到sql server 中,修改master库中sysdatabases 表中sybsystemprocs 库对应的status 的值为0.$isql –Usa –P1>update master..sysdatabases2>set status = 0 where name =‖sybsystemprocs‖3>go1>shutdown with nowait2>go关闭数据库重新启动.5.将Sybase.cfg 中的‖allow updates to system‖的值改为0.二、如何恢复master数据库ASE can't setup and has no valid dump of master1、编辑RUN_servername在命令行最后加入:-T36072、单用户模式启动ASE$cd install$startserver -f RUN_servername -m3、bcp out系统表$bcp master..sysdevices out /directory.spec/devs -Usa -P -c$bcp master..sysdatabases out /directory.spec/dbs -Usa -P -c$bcp master..sysusages out /directory.spec/usages -Usa -P -c$bcp master..syslogins out /directory.spec/logins -Usa -P -c$bcp master..sysconfigures out /directory.spec/configures -Usa -P -c$bcp master..syscharsets out /directory.spec/charsets -Usa -P -c4、shutdownASE5、创建新master设备$buildmaster -d<path_to_new_master_device> -s<new_master_device_size>(new_master_device_size以2K为单位)6、编辑RUN_servername将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。

7、删除/directory.spec/dbs、/directory.spec/usages文件中有关master、tempdb、model的内容。

8、单用户模式启动ASE$cd install$startserver -f RUN_servername -m9、bcp in系统表$ bcp master..sysdevices in /directory.spec/devs -Usa -P -b 1 -c$bcp master..sysdatabases in /directory.spec/dbs -Usa -P -b 1 -c$bcp master..sysusages in /directory.spec/usages -Usa -P -b 1 -c$bcp master..syslogins in /directory.spec/logins -Usa -P -b 1 -c$bcp master..sysconfigures in /directory.spec/configures -Usa -P -b 1 -c$bcp master..syscharsets in /directory.spec/charsets -Usa -P -b 1 -c10、shudown ASE11、执行installmaster脚本$isql -Usa -P < $SYBASE/scripts/installmaster12、启动ASE三、如何删除坏的用户数据库?(以pubs2为例)当使用drop database无法删除数据库时,使用本文所示方法可以删除。

(1)使用isql以sa注册SQL server(2)设置允许修改系统表1>sp_configure "allow updates",12>go(3)把要删除的用户数据库置为"suspect"状态1>use master2>go1>begin tran2>go1>update sysdatabases set status=2562>where name="pubs2"3>go如果得到(1 row affected),则1>commit2>go否则1>rollback2>go(4)重启server,并用isql以sa注册。

(5)删除数据库1>dbcc dbrepair(pubs2,dropdb)2>go(6)恢复允许修改系统表1>sp_configure "allow updates",02>go(7)结束四、如何做 rebuild log注意:这个过程可能会引起数据的不一致性。

(1)赋予sa用户sybase_ts_role的角色isql -Usa -P1>sp_role "grant","sybase_ts_role",sa2>go1>quit(2)将数据库置为"bypass recovery"状态isql -Usa -P1>sp_configure "allow updates",12>go1>use master2>go1>update sysdatabases set status=-327682>where name="database_name"3>go1>shutdown with nowait2>go(3)rebuild数据库日志重启Serverisql -Usa -P1>use master2>go1>dbcc rebuild_log(database_name,1,1)2>go1>shutdown with nowait2>go(4)重启SQL server1>use master2>go1>update sysdatabases set status=0 where name="database_name"2>go1>sp_configure "allow updates",02>go1>shutdown with nowait2>go(5)在重启SQL server之后,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备份,使用dump database或bcp命令。

五、数据库被标记为"suspect"时(1) ---- 一般解决方案现象: Error 926Severity Level 14Error Message TextDatabase '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", 12>go1>begin tran2>go1>update master..sysdatabases2>set status = -327683>Where name="pubs2"4>go如果得到(1 row affected),则1>commit2>go否则1>rollback2>go(4)如果条件允许,bcp out用户数据或dump用户数据库(5)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.1>begin tran2>go1>update master..sysdatabases2>set status=03>Where name="pubs2"4>go如果得到(1 row affected),则1>commit2>go否则1>rollback2>go1>sp_configure "allow updates" ,02>go(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等),你需要重新设置这些option..(5) 运行dbcc命令检查数据库的一致性isql -Usa -P -i dbcc.sql -o dbcc.outdbcc.sql文件示例:dbcc checkdb("pubs2")godbcc checkalloc("pubs2")godbcc checkcatalog("pubs2")gogrep Msg dbcc.out(6) 后备用户数据库1>dump database pubs2 on"/usr/sybase/pubs2_dump.19991201"2>go六、数据库被标记为"suspect"时(2) ---- 数据库设备损坏时的解决方案现象: 926错误产生的原因有几种。

相关文档
最新文档