存档

2010年4月 的存档,文章数:9

在ASE12.x版本中Sybase没有提供类似replace的函数。在ASE15.x版本中添加了替换某个字符串中指定的字符为另一个字符的函数:str_replace。 使用方法为: 1> select str_replace('aaaa|bbb|ccc|','|',';') 2> go  ————-  aaaa;bbb;ccc; 上面的例子为将字符串aaaa|bbb|ccc|中的|替换为; 但是,在ASE12.x中需要上面上面的功能,就稍微一点麻烦了。需要结合两个函数:charindex,stuff来循环替换。 两个函数的用法分别为:  charindex – Returns an integer representing the starting position of an expression.     charindex(expression1, expression2)     stuff – Returns the string formed by deleting a specified number of characters from one string and replacing them with another string.     stuff(char_expr1|uchar_expr1, start, length,char_expr2|uchar_expr2) 实现的算法为: [...]

在Sybase ASE中isql是个小巧而灵活的命令行实用工具。本人非常喜欢用这个工具,无论备份恢复、创建大到数据库小到表索引、配置参数、查看数据库的监控信息、 分析dbcc的命令结果等等我都喜欢用isql来实现。有些用图形界面工具能够实现的功能,我都揣摩如何用命令来实现的,因为在ASE中所有用图形界面能 够实现的功能操作都是可以用命令来完成的(当然图形工具还不能实现的地方太多)。我几乎不用sybase central,感觉这个工具既难用还低级简单。 下面介绍isql工具的使用方法。 呵呵,一些简单的命令参数我就不在这赘述了。我想每个sybase DBA对isql应该再熟悉不过了。今天我仅仅介绍几个本人自认为不太常用但是又比较实用的命令参数。 首先,查看一下isql这个工具都有哪些参数。 可能大家都知道在windows下用程序文件名称后面加空格再加上/? 来查看命令帮助。但是,对isql不能这么用。需要输入isql –help,如下图显示结果(有省略) C:\Documents and Settings\Administrator>isql –help usage: isql [option1] [option2] … where [options] are …   -b                   Disables the display of the table headers output.   -e                   Echoes input.   -F                   Enables the FIPS flagger.   -p                   Prints performance statistics.   -n                   Removes numbering and [...]

Sybase 在ASE v15.0.2 中新增了“应用程序”跟踪这个特性。 您可以利用“应用程序”跟踪功能收集一个正在运行中的客户会话的有用诊断信息,包括:执行查询、IO 消耗等;并且ASE 会自动把收集到的跟踪信息写到一个文本文件中。可以很方便得用这个特性来诊断一些系统性能瓶颈。 您只需要知道想要跟踪的会话的SPID(Server Process ID) 就可以对那个会话进行跟踪监控。应用系统的用户只需要被授予“set tracing ”权限就可以利用“应用程序”跟踪对自己的会话信息进行跟踪。 执行“应用程序”跟踪需要具有 set tracing 的权限。主要有两类用户:第一:具有sa或者sso角色的用户(默认具有set tracing权限);第二:被赋予了set tracing 执行权限的用户。下面会分别予以介绍。   (1) 具有管理员特权的用户(属于 sa 或者 sso 角色) 对其他用户连接会话启用“应用程序”跟踪,执行: set tracefile "<file-path>" for <spid>   关闭刚才打开的针对其他用户连接会话的跟踪,需要执行: set tracefile off for <spid>   备注: (1) 针对某个用户会话启用跟踪时,需要知道它的SPID 并填写跟踪结果文件保存的路径。如果没有指定跟踪结果文件保存的路径,那么ASE 会自动保存到$SYBASE 目录下。 (2) 在一个会话中,只能有一个set tracefile 为启用状态;并且,某一个SPID 不能被多个会话同时跟踪。 (3) 当被跟踪的会话自己退出,或者跟踪被手动关闭时,ASE 会生成跟踪结果文件。 [...]

在ASE中为对象命名的时候,要避免使用系统保留关键字,以防止带来不必要的麻烦。如果是对象名称必须使用系统的自留字,请用 quoted_identifer将该名称引起来。在ASE15.x中可以使用中括号[]来强制使用自留字作为对象名称。(这点功能和sqlserver 相似!) 演示一下在ASE15.x中使用中括号引起来保留字作为列名来创建一张表。 1> select @@version 2> go  —————————————————————————————————————————— ———————————————————————————————–  Adaptive Server Enterprise/15.0.3/EBF 16738 ESD#2/P/NT (IX86)/Windows 2003/ase1503/2708/32-bit/OPT/Mon Jul 27 20:19:56 2009 (1 row affected) 1> create table testa ([create] int ,[alter] int) 2> go 1> sp_help testa 2> go  Name  Owner Object_type Create_date  —– —– ———– ——————-  testa dbo   user table  Apr 24 2010  [...]

Sybase ASE自12.5.0.3以来引入了一组监控表,称为:MonTables后者MDA tables。可以利用MDA表实现对sybase ASE的监控和诊断。监控表里面存储着对于ASE状态的统计、汇总信息的快照snapshot。我们可以像查询其他系统表(比如sysobjects、 sysindexes、syscolumns等)一样来查询这些监控表MonTables。 在12.x版本中MDA表默认是没有安装的,需要我们手动进行安装。在ASE15.x中新建数据库服务器的时候就默认装上了。 下面开始详细得介绍安装以及配置MDA的过程。  (1) 检查参数:enable cis是否启用?如果没有启用,打开该参数 sp_configure "enable cis" go  Parameter Name                 Default     Memory Used Config Value Run Value    Unit                 Type  —————————— ———– ———– ———— ———— ——————– ———-  enable cis                               1           0            1            1 switch               static (1 row affected)   (2) 查看sysservers系统表中是否有loopback这一条记录,如果没有,手动添加一个指向自己的远程服务器 (注:在ASE12.5.4以及之后的版本中在创建数据库服务器的时候默认会添加一个loopback服务器。) use master go sp_helpserver go  name        network_name   class        [...]

在Sybase ASE中查看或者修改配置参数有多种方法,比如:利用系统存储过程sp_configure;Sybase Central;Embarcadero DBArtisan等。 我比较喜欢用系统过程sp_configure来修改和查看参数。不管用那种方式,ASE的配置参数信息都是存储在两张系统表:sysconfigures和syscurconfigs上的。其中,表sysconfigures存储所有参数已生效 的详细信息;表syscurconfigs存储所有参数的当前 配置信息。 另外,Sybase ASE各个版本中都会备份曾经修改过的配置参数文件。在$SYBASE目录下servername .cfg是系统的配置参数文件,每次修改系统的参数内容时,ASE都会为servername .cfg做一次备份,备份文件名称用servername 加上依次递增的数字。servername .cfg中每个参数值后面的DEFAULT表示该参数没有被改变,仍然使用默认值。我们可以利用这些配置备份文件servername .001,servername .002 … servername .040 等,来追踪参数的修改过程。如果某个参数修改后对性能反而没有提升,那么我们就可以利用之前备份的参数文件来恢复到修改之前的参数值。 参数文件比较重要的一点功能是:在master系统库崩溃的时候,可以利用cfg或者顺序参数备份文件来恢复之前的ASE的配置信息。 说了这么多,现在回到标题上的主题。如何知道ASE中哪些参数被修改过了呢?或者说:如何查看哪些参数使用了非缺省呢? 我想起来两种方法:     第一种:查看配置文件servername .cfg的所有参数,并找出取值不等于DEFAULT的所有参数。     第二种:利用sp_configure存储过程。 可能还有别的办法,比如用Sybase Central或者其它的第三方工具。我没有在这些工具上寻找查看的方法,您要是知道也可以共享一下方法。 先来看看系统存储过程sp_configure的参数内容。我利用联机的帮助信息来查看sp_configure的参数,详细的使用方法请查看sybase官方文档中的存储过程这一本。 1> sp_syntax "sp_configure" 2> go  Syntax Help  ——————————————————————————  System Procedure  sp_configure – Displays or changes configuration parameters.    sp_configure [configname [, configvalue] | group_name       [...]

在新的电脑上安装完Vmware Server2.0.2后,导入以前的虚拟机文件。在左边的虚拟机列表中选中虚拟机后,右边的窗口空白一片, 无法查看虚拟机的配置信息也无法启动虚拟机。 在系统日志看,看到如下内容: 然后到目录:C:\Documents and Settings\All Users\Application Data\VMware\VMware Server下查看虚拟机的日志信息。依次查看hostd-0.log到hostd-9.log日志文件的内容。 发现如下比较重要的信息: [2011-04-17 00:46:37.859 'Solo' 1264 info] VM inventory configuration: C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\hostd\vmInventory.xml [2011-04-17 00:46:37.875 'VmMisc' 1264 info] Max supported virtual machines: 512 [2011-04-17 00:46:37.890 'Vmsvc' 1264 info] Foundry_CreateEx failed: Error: (4000) The virtual machine cannot be found [2011-04-17 00:46:37.890 'vm:I:\virtual-systems\RedHat5.4\Red Hat Enterprise [...]

演示一次sybase ASE15.0.3跨平台备份恢复的过程。 源数据库版本为: 1> select @@version 2> go  —————————————————————————————– —————————————————————————————— —————————————————————————-  Adaptive Server Enterprise/15.0.3/EBF 16738 ESD#2/P/NT (IX86)/Windows 2003/ase1          503/2708/32-bit/OPT/Mon Jul 27 20:19:56 2009   目的数据库版本为: 1> select @@version 2> go  —————————————————————————————– —————————————————————————————— —————————————————————————-  Adaptive Server Enterprise/15.0.3/EBF 16548 ESD#1/P/Sun_svr4/OS 5.8/ase1503/268          0/64-bit/FBO/Thu Mar  5 09:39:28 2009   跨平台恢复的详细过程如下: (1). 检查欲备份的数据库testdb的完整性,利用checkdb和checkalloc 1> dbcc traceon(3604) 2> go [...]