远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

通过ASE认证考试Sybase Certified Adaptive Server Administrator Associate (Version 15.0)

12 月11日,在Prometric的一个考试中心参加了Sybase Certified Adaptive Server Administrator Associate (Version 15.0),Exam Code:510-025这门考试,通过了!下一步继续参加Sybase Certified Adaptive Server Administrator Professional这个。Professional这门考试有关于datastorage internals的内容,好在我以前研究过ASE的内部物理数据存储,并且我还自己编写一个工具来实现从sybase ASE的设备文件中提取数据。请参见:简单介绍一下我自己编写的Sybase恢复工具

加油,争取明年上半年拿到ASE administrator Professional。 呵呵!

 

 

ASE安装语法数据库提供在线帮助信息支持

ASE有个可选数据库:sybsyntax,此数据库是帮助信息数据库,数据库不大。安装完该数据库sybsyntax后,可以在isql或其它客户端工具上在线查看T-SQL以及命令、dbcc等命令的语法。

如:

1> sp_syntax "update statistics"
2> go
 Syntax Help
 ------------------------------------------------------------------------------
 Transact-SQL

   update statistics table_name
              [ [index_name] | [( column_list ) ] ]
              [using step values]
              [with consumers = consumers ]
      update index statistics table_name [index_name]
              [using step values]
              [with consumers = consumers ]

(return status = 0)

 

安装步骤如下:

第一步:为数据库sybsyntax初始化设备:sybsyntaxdev

该数据库不大,并且以后几乎为”只读“数据库,除非你自己往里面添加帮助信息

跨平台数据库的数据设备文件迁移linux > windows

linux x86 平台上的 ASE15.5 的 dat文件,拷贝到windows x86 平台上的ASE15.5中,是可以使用的。

只需要简单的修改master.dat中的device路径即可。 通过更改sysdevices的phyname来实现。

将sysdatabases系统表中status - 64 

之后, 利用dbcc checkdb,dbcc checkalloc,dbcc checkcatalog 检查各个数据库。 没有错误。

说明: linux平台和windows平台的dat文件是通用的。  迁移时只拷贝数据库设备文件就能完成。

因为linux x86/x64以及windows都是小字节序(little endian)的,理论上linux x86及windows平台上的设备文件是可以通用的。

上面说的方法建议通过Sybase官方的做法:

quiesce database
mount database

参考:sybase设备级别的数据库移植

Sybae ASE中支持简体中文的字符集

  目前在ASE 15中支持简体中文字符的字符集有四种:CP936,EUCGB,UTF-8和GB18030。

  其中EUCGB字符集是基于GB2312-80编码规范的,它的EUC (Extended Unix Code)编码范围是第一字节0xA1~0xFE(实际只用到0xF7),第二字节0xA1~0xFE。

  CP936字符集是基于GBK编码规范(实际上的国家标准是GB13000-90),是对GB2312进行的扩展,第一字节为0x81~0xFE,第二字节分两部分,一是0x40~0x7E,二是0x80~0xFE。其中和GB2312相 同的区域,字完全相同。

  GB18030字符集(国家标准号是GB18030-2000)是2000年3月17日发布的新的中文编码标准。它是GB2312的扩充,采用单/双 /四字节编码体系结构,收录了27000多个汉字以及臧文、蒙文、维吾尔文等主要的少数民族文字。Sybase 从ASE 12.5.0.3之后开始支持 GB18030字符集。

  UTF-8字符集是现有ASCII系统向Unicode转换的一个过渡方案。它使用1-3字节表示一个字符。简体中文的每个字符在utf8中的长度基本上都是3个字节。它的最主要的优点是可以同时支持超过650种语言的字符。缺点是针对中文字符来说,需要增加50%的空间用来存储。还有一个问题是执行sp_helptext显示存储过程体的时候,有可能出现半个汉字。

  一般来说,由于 EUCGB不支持国标一、二级字库以外的汉字,所以我们推荐用户在服务器端和客户端都使用CP936字符集,或者在ASE 12.5.0.3之后还可以使用GB18030字符集,它可以支持一些比较生僻的汉字。它的不足是只有一种排序方式,即区分大小写的Binary方式。所以,如果需要使用支持中文字符集且不区分大小写的数据库时,就只能使用UTF-8作为服务器端字符集,而客户端使用CP936或GB18030字符集。
  eucgb、cp836、gb18030仅支持区分大小写的排序顺序,utf-8支持不区分大小写的排序。

迁移ASE数据库的表之间存在引用时脚本执行情况

迁移ASE数据库的表结构时,需要注意表DDL的顺序,否则有些对象会因为其所引用的对象不存在而导致创建不成功。

解决的方法:将同样的脚本执行两次。

据我所知,sybase central或者ddlgen导出的语法中是没有很好的处理好对象之间的引用先后顺序的,所以,很有可能你的脚本需要执行两次才能保证所有的对象都成功创建上。

下面举个简单的例子,两张表,一张外键引用另一张。

sybase ASE中要求被外键引用的表的被引用列上有唯一约束。

在移植对象DDL的时候,举个例子:表A外键引用表B,如果导出的DLL语句中表A的定义语句在前面,而表B的DDL在后面。那么在创建表A的时候会因为外键引用的表B不存在而导致表A创建不成功。表B是能够成功创建的。

第二次执行上面相同的脚本时,首先会成功创建表A,因为其所引用的表B已经创建上了。而表B不会再次创建因为上次执行的时候已建上,会给出一个错误信息。这在isql是个错误信息,可能在sybase central中会是一个让人讨厌的弹出窗口。

windows cmd下的date,time格式的提取

纠结了很久了。最近在研究7z的时候,才知道如何使用cmd下的date和time

例如我要生成一个D盘下的200909文件夹,

代码:

MD D:\%date:~0,4%%date:~,2%

time和date的用法类似。。。。。就不列举了。给大家一个参考

境变量替换已如下增强:  

%PATH:str1=str2%  

  会扩展   PATH   环境变量,用   "str2"   代替扩展结果中的每个   "str1"。要有效地从扩展结果中删除所有的   "str1","str2"   可以是空的。"str1"   可以以星号打头;在这种情况下,"str1"   会从扩展结果的开始到   str1   剩余部分第一次出现的地方,都一直保持相配。也可以为扩展名指定子字符串。  

%PATH:~10,5%  

  会扩展   PATH   环境变量,然后只使用在扩展结果中从第   11   个(偏移量10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。  

%PATH:~-10%  

  会提取   PATH   变量的最后十个字符。  

%PATH:~0,-2%  

     会提取   PATH   变量的所有字符,除了最后两个。但是需要注意window 2000和xp有一定的区别,自己去体会!

转自:http://blog.csdn.net/gltianwen/archive/2009/09/07/4527420.aspx

Linux 5下安装oracle开始遇见的错误 缺少包libXp-1.0.0-8.i386.rpm

在运行./runInstaller时出现的错误

错误一:

/tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open  shared object file: No such file or directory occurred.

原因是:缺少支持打印的图形化动态链接库libXp.so.6

这个错误是由于缺少系统安装包,在RHEL5以前的版本,可以安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于redhat as4.2以前,redhat as4.4是在第四张安装光盘)

我下载的文件如下:

xorg-x11-deprecated-libs-6.8.2-31.i386.rpm

 

我用的是redhat 5,在5中 被libXp-1.0.0-8.i386.rpm替代了,所以从安装盘中找到这个文件,

rpm  -Uvh   libXp-1.0.0-8.i386.rpm

再./runInstaller就没有问题,可以启动图形界面了。

转自:http://shuhui018125.blog.163.com/blog/static/7711050201062203346193/

SQL Server 2005系统数据库master重建、修复

在用SQL Server 2005进行一项测试:如何一次删除所有用户数据库时,没注意到当前数据库是master,结果,把这里的一些表都给删除了,从而,数据库引擎可以正常使 用,但如果右击任一数据库,都会出现查找master里的一个表的操作(对象名 master.dbo.spt_values' 无效。 (Microsoft SQL Server,错误: 208)),而这个表被我删除了,所以就运行不成功了,想压缩数据库还行用SQL语句,很麻烦。

在网上找的大都是SQL Server 2000 master数据库重建帖子,关于SQL Server 2005 重建master的帖子基本上都是只有提问的,没有回答的,于是在国外网站上搜索了下,发现一个,但也很不好使,后来顺着他的关键词:rebuid sql Server 2005 master找到了微软的网站,没想到微软早就解决这问题了,按他说的做了一遍,OK,成功,在写这文章时又把他的MSDN地址改了下,看看有没有中文版 的,没想到还真有,可怜的搜索引擎呀,这么好的东西我怎么在baidu及google里都找不到呢。

虽然问题是解决了,不过还有一个问题,就是:重建后相当于数据库重新安装了一次,所有的登录用户,数据库都没了(听说数据都在master里,master被重建了里面的数据库相关信息当然没了。数据库文件还在,没被删除。),所以重建或者说修复好后,你还得把每个数据库都附加进来,并建相关用户。

微软官方解决方法:
start /wait <CD or DVD Drive>\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword>
举例:
start /wait L:\Servers\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=www_yongfa365_com

如果重装、重建或修复其它服务,详情参见:
英文版:http://msdn.microsoft.com/en-us/library/ms144259(SQL.90).aspx
中文版:http://msdn.microsoft.com/zh-cn/library/ms144259(SQL.90).aspx
引用本页地址:http://www.yongfa365.com/item/SQL-Server-2005-Rebuild-System-Databases.html