提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系手机:(微信),QQ:289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371

sybase 12.5各个版本的新功能(转echoaix的博客)

ASE12.5.0.3新功能

一、性能监测系统表 一组新的系统性能监测系统表,利用这些系统表中的信息对分析ASE服务器的性能非常方便。这些性能监测系统表也是DB-XRAY的工作基础。 MDA表,安装配置文档中都有。这个很有用的。 二、多个临时库 能够让你在系统临 数据库tempdb外创建用户临时数据库。使用多个临时数据库的主要目的是减轻对系统临时数据库中系统表和日志表的争用。 三、外部文件系统 能够让你通过SQL语言访问外部文件系统,通过创建代理表将数据表映射到外部文件系统的文件目录或文件。 访问文件目录 访问文件 这个要licenses 四、Java和XML在DB中的应用 Adaptive Server内部提供了一个Java运行环境,这样就可在ASE中运行java代码。数据库服务器ASE就提供了一个新的方法来管理和存储数据及应用逻辑。 在ASE中可用下面三种方法使用java功能: 将java类用作SQL数据类型 在数据库中调用java方法 在数据库中存储和查询XML 五、新增强的功能和新函数 disk resize sampling : update statistics 可变页大小 large column size migrate utility ALS(asynchronous log service) 服务器动态参数配置 函数 year(date_expression) :表达式中年的部分 month(date_expression) :表达式中月份的部分 day(date_expression) :表达式中天的部分 str_replace(string_expression1, string_expression2, string_expression3) :使用string_expression3值替换 string_expression1中的string_expression2 字符串。 left(character_expression, integer_expression) :返回字符串的左边指定字符个数的字符串。 len(string_expression) :返回字符串的字符(character)数,注意不是字节数,而且不包含空隔。 square(numeric_expression) :返回平方数 newid([optionflag]) :产生一个32位或36位(包括破折号)的可读随机字符串。 六、SQL debugger ASE12.5提供一个命令行方式的debug工具sqldbgr,使用它可对存贮过程和触发器进行debug跟踪。

ASE 12.5.1新功能

实现连续N次备份数据库的脚本

我们知道根据生产数据库的业务数据情况来安排备份的频率,比如:每月、每周、每日,有的甚至每小时备份一次。要备份sybase数据库,需要自己手动写命令。这样,下一次可能会覆盖上一次的备份文件。通过脚本在下一次备份时产生不同的备份文件名称就不会覆盖上一个备份文件了。这样,能够自动保留数据库的多个数据库备份文件,更有力的保障了数据库的安全。

将下面的脚本复制到记事本中,另存为bat格式。添加到windows的计划任务中,
============================================================================================

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
echo off
cls
:: 默认保留近7日来的数据库备份,可以把7改成自己想连续的天数
:: 其中d:\sybase\data为数据库备份地址,可以自己再次指定
:: master为默认备份的数据库名称,可以修改成其它用户数据库名称
set databak_path=d:\sybase\data
set databasename=master
echo dt=date()-7>%temp%\OldDate.vbs
echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)>>%temp%\OldDate.vbs
echo wscript.echo s>>%temp%\OldDate.vbs
for /f %%f in ('cscript /nologo %temp%\OldDate.vbs') do @set DelFlag=%%f
::删除七日前的数据库备份文件
if exist "%databak_path%\%databasename%_%DelFlag%.dump" del "%databak_path%\%databasename%_%DelFlag%.dump"
del %temp%\OldDate.vbs
if exist %temp%\dump_db.txt (del %temp%\dump_db.txt)
echo dump database %databasename% to "%databak_path%\%databasename%_%date:~0,10%.dump" >>%temp%\dump_db.txt
echo go >>%temp%\dump_db.txt
isql -Usa -P -Syour_servername <"%temp%\dump_db.txt" >>%databak_path%\dump_log.txt
del "%temp%\dump_db.txt"

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 数据库 备份 自动 连续备份  删除旧备份
————————————————————————————————————

整理的Sybase Dbcc traceflags

从多个渠道收集来的sybase trace flag

With dbcc traceflags you can do many different things, like change the behaviour of the server, see why a certain query plan is choosen or fine-tune the optimizer.
This page shows you how to use them and provides a list of known traceflags.

You can set a traceflag in two ways
1.At boottime
Usually a server is booted through the runserver file. In this file (default location is $SYBASE/$SYBASE_ASE/install) you can add a traceflag by specifying a -T flag and one or more comma separated values.
2.At run time
When you are logged in to ASE you can set a traceflag with the dbcc traceon command. Example:
dbcc traceon(3604)

You can specify multiple values, comma separated.
To turn a traceflag off, use traceoff
dbcc traceoff(3604)

Which traceflags are active

To see which traceflags are active for your own session use the dbcc traceflags command
dbcc traceflags

To see the traceflags of other sessions as well
dbcc traceflags(2)

List of known traceflags

Below you will find a list of currently known traceflags. But beware of the following:
WARNING
? Most traceflags are undocumented and not supported by Sybase, use at your own risk. Certain traceflags can severely harm your databases.
? Some traceflags are obsolete and are replaced by configuration parameters.
? Certain traceflags should be used when you start the server, others are meant for a specific session, when known this is indicated in the list.
? Experiment first on a test server, use only on production systems when either the traceflag is documented by Sybase or when you have consulted Sybase Technical Support.

List of dbcc traceflags

-----------------------------------------------------------------------------------
100 Display a parse tree for each command
108 Allow dynamic and host variables in create view statements
116 Print the text of the abstract query plan. Supported by Sybase, see documentation
200 Display messages about the before image of the query-tree
201 Display messages about the after image of the query tree
208 Show types of locks taken
217 Display a warning message for using the T-SQL extension of queries with grouped aggregates and columns in the select list which are not in the GROUP BY clause.
241 Compress all query-trees when ASE is started
243 Do not expand select * to column names when creating a compiled object
244 When set, the maximum length of the returned value of str_replace() is 16384, otherwise it is 255
260 Reduce TDS (Tabular Data Stream) overhead in stored procedures. Turn off done-in-behaviour packets. See also Send doneinproc tokens.
291 Changes the hierarchy and casting of datatypes to pre-11.5.1 behaviour. There was an issue is some very rare cases where a wrong result could occur, but that's been cleared up in 11.9.2 and above.
292 Never send doneinproc tokens. See also Send doneinproc tokens.
298 Display an error message when a query uses a correlated variable as an inner or outer member of an outer join.
299 Do not recompile a stored procedure that inherits a temp table from a parent procedure.
302 Print trace information on index selection, supported by Sybase, see documentation
303 Display optimizer OR strategy
304 Revert special "or" optimizer strategy to the strategy used in pre-System 11 (this traceflag resolved several bug issues in System 11, most of these bugs are fixed in ASE 11.0.3.2)
310 Show the plan as choosen by the optimizer, as well as I/O costs. Supported by Sybase see documentation
311 Display optimizers expected I/O cost
317 Show all considered plans. Supported by Sybase, see documentation
319 Display optimizer reformatting strategy

Sybase Adaptive Server Enterprise(ASE)数据库恢复工具

专注于Sybase Adaptive Server Enterprise(ASE)以及 Sybase SQL Anywhere(ASA)数据库文件的恢复。

联系手机:(微信),QQ:
郑重承诺,修不好不收费。客户验证数据的正确性后,再付款。

Sybase ASE恢复工具产生背景:

曾经将笔记本电脑上的另一个数据库的备份文件B恢复到了一个在线数据库A里了(两个都是实验用数据库!)。库B比库A要小很多。向多方(包括sybase technical)咨询都说没有办法只能通过备份文件来恢复。但是,我感觉应该有种办法吧!难道sybase公司都没有办法?如果这样,我将一个小的备份文件load到一个大的数据库里面,难道这个大数据库也只能用备份来恢复吗? 突然产生了一种想法,能不能打开sybase的设备文件看看里面都存了一些什么样的数据?能读取一点数据也是收获啊!

于是,在接下来的三个月时间里我花了很大的精力来研究Sybase ASE的内部数据结构,用VB编写读取程序,并反复测试修改。最后,基本形成两个小工具。

1.能够从Sybase数据设备上提取数据的:READSYBDEVICE

2.从日志设备上提取日志信息的:LOG_ANALYZER_ASSISTANT (暂时叫这两个名字,以后可能会改)

下面为两个工具读取出来的数据截图:

一、下图为读取的Sybase数据库内页面上的数据(页号:165621,表名:FLOWREC1,右上部显示页面上的十六进制数据,下部分是FLOWREC1在页面165621上的数据)

读取的Sybase数据库内页面上的数据

二、下图为从日志设备上提取的日志信息(包括:页号,页内偏移,可用行号,日志类型OP,会话ID,列宽度,日志操作时间,SUID,UID,SPID,以及日志信息内容等)。针对插入(OP=4)、删除(OP=5)、更新(OP=9)能够逆向写出相应的SQL语句。从日志设备上提取的日志信息

Sybase ASE的恢复工具支持ASE v11.0, v11.5,v11.9.2,v12.0,v12.5.x,v15.x等各个版本,支持little endian以及big endian,支持cp850,iso_1,cp936,eucgb,utf8等国内常用的多个字符集。

关于从Sybase ASE设备文件中提取对象包含的页面不外乎两种方法。

第一:依次扫描页面获取页头控制信息中记录的对象ID;

第二:根据分配页追踪到对象的OAM页,再从OAM页上分析出对象占用的页面。

另 外,已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具,支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。恢复Sybase SQL Anywhere的工具在国内应该算首创。

Sybase IQ 15.1操作导致系统崩溃

最近项目上要用sybase IQ,抓紧时间研究一下。

在pc上安装了sybase IQ 15.1,版本号为:Sybase IQ/15.1.0.5027/090611/P/GA/MS/Windows 2003/ [32bit or 64bit]/2009-06-11 18:23:35

用sybase central连接iq服务器,在操作的时候遇到了一个致命的导致系统崩溃的错误。后来问题解决了,在此记录一下这个错误情况。

在sybase central的左边树形列表中定位到“过程和函数”列表上面,然后查找到过程“sa_get_user_status”,单击“sa_get_user_status”,就会出现一个严重警告的对话框。对话框的标题是:Microsoft Visual C++ Runtime Library ,内容为:Progarm D:\sybase\IQ-15_1\bin32\iqsrv15.exe
This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information.

这个时候点确定,有弹出一个严重错误对话框。标题:iqsrv15.exe - 应用程序错误 ,内容:应用程序发生异常 unknown software exception (0x40000015),位置为0x0d9812e5。
要终止程序,请单击“确定”。

要调试程序,请单击“取消”。

最后点完确定,任务栏右边的IQ的图标也消失了。这个时候IQ服务算是崩溃了。看来sybase central这个客户端的一个小小的错误也能导致一个IQ服务崩溃啊!

解决的方法:

打上最新的IQ的补丁。截止到2010年3月,最新的iq15.1 for windows的补丁是在2010.1release的 sybase IQ 15.1 ESD #2

我打完补丁后select @@version 查询结果为:

Sybase IQ/15.1.0.5034/091215/P/ESD 2/MS/Windows 2003/32bit/2009-12-15 07:10:40

到此问题解决。个人感觉,IQ的测试部门工作太差劲了。测试的时候挨着点一下就能发现的问题,还要补丁来解决。

Sybase电话面试经验

转自招聘网站上某位网友的Sybase公司电话面试的经验。希望对那些想应聘到Sybase公司的朋友有所帮助。目前,在招聘网站www.51job.comwww.zhaopin.comwww.chinahr.com

来源:http://sybase.dajie.com/discuss/topic/14149/detail

------------------------------------------------------------------------------------------------------------------

好象没人贴过美国电面的东西,我就随便写写啦。

星期二早上7点的时候一个印度人打过来,首先我简单的自我介绍,然后他问了一些基本
的操作系统,算法复杂度的问题,然后数据库相关的,我英语回答的很糟糕的,而且
一直听不明白他在讲什么,他可能也很失望,就问我平时上课是用中文还是英文的,平
时在什么情况下接触英文之类的问题,我还解释说这是我第一次英文面试……(因为我
只面过2家公司)。最后只好就转到我做过的项目上去问了,他说
这样我可以比较familiar,然后palapala……跟他解释一通,可能还没解释的完全清楚,
他说他interview的时间快到了,他要结束了,他要让我等下一个面试。然后结束了,看
了下时间7:40。

第二个面试的人没等后,后来中午接到上海这边office的电话,说第二个人那天有事,
他们接到通知的时候没来的及通知我,然后就重新约了时间再面试。

早上又6点多起来,等电话。上来跟我道歉一下,然后就说今天面试我在解释不清楚的时
候可以说中文,我就知道今天是中国人啦,暗喜一下。上来基本重复了前天的介绍,然
后他就开始问项目相关,给他解释用到的二个我专业的方法,一个比较简单,英文解释
清楚了,另一个比较复杂,我就换到中文给他解释了。然后就问我对数据库系统的熟悉 
程度,解释一通后,他就又问如果让我来设计一个dbms,我会怎么设计,palapala……
瞎侃一通,这一段又是用中文……,然后就是编程语言方面的几个基本问题。最后就是
问我为什么想来这里工作啊,然后个人优缺点,teamwork里面碰到的一些问题,这一段
我们竟然讨论了大概十五分钟。over……,让我问问题,我就问了两个,然后88。幸亏
是中国人,然后我感觉我在介绍我的项目和最后一部分,回答的还是比较好的。

虽然我没什么面试经验,但我面试的时候就是突出自己的精通的地方,不会的地方直接
说sorry。

http://sybase.dajie.com/discuss/topic/2640/2/list