powersybedit-hobbylu
  首页 帮助 退出
最新日志
历史档案
最新评论
中博网友/2008-07-18
请教一个问题,我用....
访客/2008-07-15
请问一下博主
偶下载....
访客/2008-07-14
请问在那里下载,我....
访客/2008-07-02
您好,我使用的是s....
访客/2008-06-30
在哪里可以下载啊》
我的相册
我的网摘
友情链接
我的LOGO
 

本人学习研究sybase已经n多年了,从刚开始什么都不会,到现在自诩为的"专家",感受也颇深。我都会sybase什么东西呢?sybase是一个软件公司,其中包括...查看全文

心情日记
我的软件
relication server
ASE数据库

 
2008.08.20 08:22:00 
 有关关键字作为列名的处理  
很多开发人员或者某些系统喜欢使用关键字作为表的列名,比如jar,key,except等等。但是在具体使用过程中却不知道如何使用。下面我讲讲如何使用。
其实也很简单,在使用的过程中,只要使用上square brackets也就是方括号[]将关键字包含起来就可以了。事例如下:
1、如何建带关键字列名的表
   create table a([key] char(10))
2、插入操作
   insert into a ([key]) values('value')
当然你也可以这样
   insert into a values('value')
标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2008.06.16 08:37:00 
 在recovery的时候发生692错误故障处理  
有一个客户,在系统发生异常掉电之后,启动数据库,发生了以下错误,导致数据库无法正常recovery。00:00000:00018:2008/06/11 16:00:08.45 server  Error: 692, Severity: 20, State: 1
00:00000:00018:2008/06/11 16:00:08.45 server  Uninitialized logical page '28114' was read while accessing object '3' in database '18'. Please contact Sybase Technical Support.
这种故障在正常操作下,已经无法恢复数据库,里面的数据需要通过使用恢复工具进行恢复了(建议使用powersybedit)。用poweredit读取裸设备方式,对改页面进行了分析,发现该页面确实是一个空页,所有的字节全部是0000 0000。那么如何避免这个故障,并将这个页面变成一个有效的页面呢?可以做如下处理:
首先读取该对象的其他页,然后将该页的页号修改为这个空页所在的页号,如上实例为 28114,回写磁盘后,关闭改文件,重新启动数据库。但过程中有可能会多次出现这个故障,需要重复操作,较为麻烦。
经过一系列的处理,该数据库可以正常启动,某些数据就可以通过正常的bcp出来。
标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2008.06.02 08:29:00 
 15.0.2的新特性  
 
New feature: application tracing
Set options in another session
Display executing SQL in another session
Capture output from that other session into a file
set tracefile '/tmp/spid36.out' for 36
go
-- 'set' commands apply to session 36 from now on
set showplan on
set show_sqltext on
go
-- disable tracing again
set tracefile off
set tracefile off for 36
标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2008.05.19 09:46:00 
 心情沉重-心挂四川  

悼念所有汶川地震死难人士,同情所有受灾群众!

标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2008.05.18 22:13:00 
 关于AUL for sybase版本的开发  

AUL FOR SYBASE版本开发已经初具雏形。原先的powersybedit开发是基于MS MFC,只能运行于windows平台,因此要运行于其他操作系统,需要进行较大的移植工作,很多MFC的库都得替换成标准c++,c,工作量还是较大。
本来以为自己会vc,就懂c++了,事实上却非如此,因为vc在整体上来说,开发东西还是挺方便的,特别是很多类库,但在c++上却区别挺大,比如CString类,还好在c++中有std::string可以替换。

哎,明天再写,儿子又要我陪了!

标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2008.04.26 18:16:00 
 无题  

好久好久没有上自己的博客了,每个时间段都有自己感兴趣的地方,前一段时间钟情于股票,试着自己去分析一些股票信息,于是弄了一些股票的源代码,并取出数据进行分析。可惜大行情实在事不好,大大的套牢啊。

AUL跟我联系上,希望推出AUL FOR SYBASE版本,因此已经推出了AUL FOR SYBASE的测试版本,大家感兴趣可以下载。这个工具可以完全脱离出sybase的环境,有一定的数据恢复功能,但肯定有很多bug,在接下来的日子中,可能想推出其他平台的版本,比如linux、unix等,工作量还是比较大。

我一直都有一个域名和空间,叫www.db-expert.com,可惜自己不会弄网站,还没有推出来,如果能够推出,或许对自己的市场化会有很大的帮助。思考再三,还是决定去弄,争取在五月份能够跟大家见面。

另外最近有很多公司想跟我合作项目,可惜本人时间实在是有限制,毕竟现在还是在国有企业中工作的员工。不过,如果做些咨询服务或者不要脱身的工作,我想我还是会给大家提供帮助的。

还有开始着手培训和使用sybase的产品ma,并在实验环境中测试通过,但总觉得缺少点东西。如果大家感兴趣,我可以为大家介绍一下,MA的工作原理,和简单环境的建立。

对了,今天还是儿子三周岁生日,日子过的好快。给宝宝祝福一下吧,健康快乐永远伴随你。

标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.08.07 09:54:00 
 扩展文件系统访问  

扩展文件系统访问

一、什么是扩展文件系统访问(XFS)?

ASE 12.5之后的版本包含了很多个新的特性和功能。其中有一个非常有用的就是扩展文件系统访问。

在目前的商业系统中,很多情况下数据可能并不会所有的都存入到数据库中,而有可能是以文件的方式存在,因此引入了XFS这个概念,可以让ASE管理好需要管理的文件,并能够通过sql语句来进行操作。

要能够访问操作系统文件,需要在数据库中建立对应的代理表。代理表的功能就是在文件和数据库要操作的表直接建立一个映射关系。代理表的一些特性本文中就不再赘述。建立了代理表之后,就可以使用标准的T-SQL命令来对文件进行创建、删除、写和查询了。当然这其中也包括了权限,组,属主等属性。

    扩展文件访问提供了两个不同的方式。

1、            使用文件访问,你可以使用将代理表映射到单独的一个ASCII文本文件。

2、           使用扩展文件目录访问,你可以将代理表映射到一个目录,和它的所有的子目录和文件。

二、XFS配置过程

      1XFS的授权

       XFS的功能,只有在你的ASE_XFS许可证生效之后,才能够在你的系统中使用。至于如何配置许可证,这里就不多描述,具体可以参考SYSAM相关文档。

      2、激活文件访问

       将配置参数enable cis设置为1

              sp_configure ‘enable cis’,1

三、使用文件系统访问

     1访问文件

         本例中,我们将建立一个名叫Xerrors的代理表,直接映射到%SYBASE_ASE%\install目录下的errorlog文件

create proxy_table Xerrors external file at 'c:\sybase\ASE-12_5\install\errorlog'

这条命令创建了一个只有一个名为’record’列的表,类型是varchar(255)。现在我们可以查询错误日志文件中的内容了。比如:

select record from Xerrors where record like "%ASE_XFS%"

record
------
00:00000:00000:2007/07/30 22:46:57.67 kernel  Checked out license ASE_XFS

对于代理表映射到一个文件,需要以下条件

1、           文件比如是ASCII文本格式的。

2、           ASE引擎必须有权限访问相应文件。

3、           如果文件是要被创建的,那么在创建目录需要有写权限。

2 访问行长超过255字节的文本

在这种情况下,我们需要对代理表显示指定列名以及长度,如:

create existing table Xtext (record varchar(512) null)
external file at 'c:\sybase\ASE-12_5\install\errorlog'

4、        如何定义文件中的列

对于一些格式化的文本文件,比如bcp文件等,我们可以在代理表中指定改文件的列名,就如同原始的表一样,如:

create [existing] table Xpublishers
(
 pub_id  char(4),
 pub_name varchar(40),
 city  varchar(20),
 state char(2)
)
external file at 'full file path' [
列分隔符 "<string>"]

3.4 文件访问支持的命令

支持的命令如下:

  • insert
  • select
  • truncate
  • drop

四、使用目录访问

 

1 访问一个目录

访问目录主要包括以下几个功能:

  • 操作目录,子目录还有文件efficiently insert new files with content.
  • 新建目录
  • 拷贝目录
  • 删除文件

2 目录访问规则

目录必须被ase可以访问得到。在创建代理表的时候,路径上加上’;R’可以让代理表访问子目录。

以下是创建代理表命令:

create proxy_table Xdirect
external directory at '/home/sybase/dir1;R'

3 目录访问支持的命令

  • select
  • select into
  • insert
  • delete
  • update
  • writetext
  • readtext

例子如下

select

select filename, filetype from Xdirect
where filetype = 'REG'

select into

select * into local_table
from Xdirect

select * into Xdirect
from local_table

insert

insert into Xdirect (filename, content)
values('dir2/inventory', 'canned soup, magazines,

insert into Xdirect (filename, filetype)
values ("subdir1", "DIR")

delete

delete from Xdirect
where filename = "dir2/dir3/farm_supplies"

update

update Xdirect
set filename = 'just_cupcakes'
where filename = 'dir2/dir3/baked_goods'

writetext

declare @value varbinary(16)
select @value = textptr(content) from Xdirect
where filename = "batteries"
writetext Xdirect.content @value "solar calculators"

readtext

select content from Xdirect
where filename = "batteries"

declare @val varbinary(16)
select @val = textptr(content) from Xdirect
where filename = "batteries"
 readtext Xdirect.content @val 1 5 using chars

五、结束语

本文对扩展文件访问从概念上、操作上做了一些简单的介绍,其中会有不足之处,请大家多多指正。也希望本文对大家有一定的帮助。

标签:
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.07.29 15:38:00 
 powersybedit之数据误删恢复  

数据库某个表被误删的情况下如何进行恢复。(不考虑有备份的情况)
一般情况下,1、可以通过扫描整个数据库的设备进行恢复;2、扫描日志。
第二种办法需要保证日志没有被截断的情况下.当然就算truncate log on checkpoint选项打开,如果马上对数据库做一个dump,在某种程度上还是可以对日志进行恢复的。powersybedit对于日志表syslogs有一个原始操作语句的功能。也就是可以把日志中delete掉的数据变成一条sql语句。因此,可以有针对性的对所有的页中的页的表id为8的也进行扫描和分析,得出被删除表的数据。powersybedit目前没有很方便的可以输入参数的方式进行扫描,目前只能修改代码进行控制,不过我想不久的将来,我会将这个功能实现的。

标签:powersybedt , 灾难恢复,sybase,误删表
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.07.26 11:20:00 
 powersybedit推出新功能  
powersybedit是一个非常强大的sybase数据恢复软件
最近有一个客户,系统硬盘损坏,经过抢救之后,得到了一些破损的备份文件,由于破损,无法正常的load数据库当中。因此要恢复里面所有的表。该破损文件有2G大小,表有一百多个,在原来的版本中只能够一个一个进行扫描,进度相当缓慢,因此进行了修改和优化,使系统支持扫描一次文件,对所有的需要扫描的表进行分析。此项工作已经基本完成,效率提高将近50倍。算是一个创举吧。最后从文件中恢复出近一千万的数据,所化的时间,也仅为2-3小时
标签:sybase 灾难恢复 powersybedit
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.07.10 23:57:00 
 无题  
好久没有写日志了,想想应该把自己最擅长的东西推销出去,sybase灾难恢复。有这方面需要的,可以跟我联系
标签:数据库,灾难恢复,sybase
作者 hobbylu 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
  powered by blogcn.com