sybase资料

sybase资料
sybase资料

关于Sybase ASE数据库的license以及试用版过期的问题的解决方案

作者:佚名来源:中国自学编程网收集整理发布日期:2009-02-18

当用户从Sybase官网上下载了ASE15.0.2以后,如果选择了安装Express Edition或者Developer Edition,基本上不会碰到什么问题,除了有些功能受限以下。

但大多数可能选择了Enterprise Edition for Evaluation类型,即企业版试用。都会碰到这样的问题,即一个月以后,license过期,无法启动server。于是很郁闷,可能大部分人,会选择卸载再重新安装一遍,这样当然没问题,只是,太浪费时间了。

有一段时间,我自己甚至也以为只能这样去解决了。

实际上不是,通过在sybase论坛上与一些有经验的人交流以后,发现,是可以切换的。

首先,有三种安装类型:

1. Express Edition,完全免费,不用缀述。

2. Developer Edition,没有使用期限限制,用于开发和测试。似乎不能商用,无所谓了。我也是刚得知。以前好像是有60天的限制。

3. Enterprise Edition,它是有试用时间的限制的。是30天。

只要能找到切换就OK了。

你的解决方法就是,把企业版的license切到开发版或者Express版。怎么切?

先看看目录$SYBASE/SYSAM-2_0/licenses下边的三个文件:

SYBASE_ASE_DE.lic SYBASE_ASE_XE.lic

第一个文件里边有这样的内容:

PE=DE;LT=DT

第二个文件里有这样的内容:

PE=XE;LT=CP

在$SYBASE/$SYBASE_ASE/sysam/.properties文件里头,看到这样两行:

PE=EE

LT=EV(或是ET)什么的

将PE和LT后边的值,分别替换上边两个文件里的值。

替换成:

PE=XE

LT=CP

就变成express版

替换成:

PE=DE

LT=DT

就变成开发版。

于是,你又可以正常使用了,至少没有期限限制。

反过来也是可以的,即你开始一直使用开发版,后来,买到了合法的license,你把license 文件安装好以后,找到其中的PE和LT值,然后修改$SYBASE/$SYBASE_ASE/sysam/.properties里的对应值即可。就变成了你购买的license了。系统不用重装。

Sybase数据库乱码问题的解决方法

作者:来源:发布日期:2008-08-26

搭建测试数据库服务器时,遇到了乱码问题,之前没有遇到是因为开发数据库服务器是早就安装好并设置好字符集的,因此些问题在部署测试环境时才出现,当时已经将数据库配置完毕,并且所有的初始化脚本都已经执行完毕,工程也已经成功部署在

WebLogic上,打开IE,运行程序,却发现所有从数据库中读取出来的都是乱码,经过上网搜索的相关资料,需要设置字符集,但刚开始查找到的资料基本是都是支言片语,没有一个系统的讲解如何设置字符集,几乎将他们所有的方法都试过了,结果不但没有弄好,甚至连控制台和SQL平台都是乱码了,实在弄不明白了,就去问高人了,他给我发了一个专门讲解字符集的文档,讲的很全面,而且通过他的帮忙终于将解决了乱码问题。

下面我总结一下设置字符集的过程:1、安装完Sybase后,如果要想设置字符集为CP936,就必须先安装该字符集,因为Sybase默认的字符集表中并没有该字符集,安装步骤如下:(这里SYBASE的安装路径为c:\sybase) 1.c:\>;cd \sybase\charsets\cp936 2.c:\sybase\charsets\cp936>; charset -Usa -Psa_pass -Sserver_name binary.srt cp936通过上述命令就成功将CP936字符集安装表Sybase的系统字符集表中,但必须重启Sybase服务两次才能看到结果,可以通过查看master数据库中的syscharsets表查看是否已经安装成功,我们可以看到已经安装成功了:1002,171,0,1,'cp936','CP936 (Simplified Chinese).',?…?2、看到CP936的编号为171,我们需要在Sybase的属性中设置系统字符集为该ID,如下图所示:

如果设置完字符集成出现错误,是因为master数据库的表空间默认只分配几百K的空间,导入新的数据后已经没有足够的空间了,所以要对master数据库设置大一些的表

空间,点击master数据库右键属性,选择表空间的tab页,对原有的表空间编辑重新分配大小,将master所有的表空间都分配了就可以解决该问题。3、设置好字符集后就可以执行初始化脚本了。这其中还有几个小插曲,由于第二步的表空间不足的错误根本没有一个文档中有说明,所以我和郭立英根本谁也不知道,都以为Sybase被我们搞崩溃了呢,没办法只能重新安装,但安装后还是有该问题,后来请高人来帮我们看才知道是表空间的问题,还有就是虽然设置好字符集后,打开IE看还是乱码,不知道为什么,后来重新执行一遍脚本后就没有了,是因为之前默认的字符集为Cp850,所以用该字符集下执行的脚本再到CP936的环境中读取一定会乱码,所以在CP936的环境中再执行一遍脚本就没有问题了。

修复Sybase数据库及恢复sa口令的方法

作者:来源:发布日期:2008-08-01

Sybase数据库管理系统中数据库损坏后,重新建立数据库的时间比较长,这将给应用(特别是对时间要求特别严格的应用,如金融、证券等)造成很大的损失。而如果在应用中遗忘超级用户sa口令,更会给系统管理带来极大的不便,甚至很多操作都无法进行。本文介绍一种简便的修复SYBASE数据库及恢复sa口令的方法。以下假定server 能正常启动,server名为SYBASE,数据库名为demodb。

一、修复SYBASE数据库分为两种情况:

1.数据库所用的设备正常,而库demodb的状态为suspect。

(1)以sa注册

isql -u sa -P

1>

(2)修改server属性,置系统表为允许修改该状态。

1>sp_configure "allow updates",1

2>go

3>recofigure with override

4>go

(3)修改数据库的状态,置数据库状态为server启动时不检测。

1>update master.sysdatabases set status = -32768

2>where name = "demodb"

3>go

(4)重启server。

(5)修改数据库的状态,置数据库状态为正常。

1>update master.sysdatabases set status = 0

2>where name ="demodb"

3>go

(6)修改server属性,置系统表为不允许修改状态。

1>sp_configure "allowupdates",0

2>go

3>reconfigure with override

4>go

(7)再次重启server。

至此,如果数据库能够正常,则恢复完毕。

以上步骤中,也可以用单用户模式启动server,命令为startserver -m,而不必修改server的"allow updates"属性。SYBASE 11及以上版本的server只需重启,不需要执行reconfigure with override。如果上述方法仍不能恢复数据库,则只能使用dbcc命令删除该数据库,然后重新建立。

2.数据库所占用的设备不正常,库的状态为suspect 使用sp_helpdb和sp_helpdevice 命令查出数据库设备的逻辑名、物理名、设备号、大小等信息。如果上述命令无法查出数据库设备的信息,可使用select * from master.sydatabases和select * from

master.sysdevices。然后用disk reinit重建设备。最后,按照1的步骤恢复数据库。

上述第一种情况数据库损坏程度较轻,对数据库内容检查后即可使用。而在第二种情况下,如果数据库的日志建立在不同的设备上,只是数据库的日志设备损坏,数据库的损坏程度会较轻,只是有些交易无法恢复;如果数据库的设备损坏,整个数据库的内容会全部丢失,其中表、表的内容、存储过程都需要重建。所以建议数据库和数据库的日志建立在不同的设备上。

系统错误日志errorlog文件存有SYBASE数据库系统的错误信息,系统出错时应先检查此文件,据此判断错误原因,找出解决办法,以免误操作。

二、恢复sa口令

编辑RUN_SYBASE,在dataserver启动行尾加入参数-psa,然后存盘退出,执行startserver -f RUN_SYBASE重启server,系统会给超级用户sa一个随机的密码,以此密码注册进入server,然后使用sp_password命令修改密码即可。

修改Sybase数据库sa密码的方法

作者:来源:发布日期:2008-07-29

问题描述:

在UNIX及某些系统内不能启动Sybase Center,那么在这种情况下怎样修改sa密码呢,同时如果我们不需要密码时也可以使用该方法将sa密码置为空

解决方案:

$isql -Usa -P1222 -SSYBASE

1>sp_configure "upgrade version"

2>go

#记录打印的版本号,我的系统版本好是11920 (sybase 11.9.2)

1>sp_configure "upgrade version",492

2>go

#更改版本号为492

1>sp_password '123456',NULL,sa

2>go

#修改密码将123456密码置为空

1>sp_configure "upgrade version",11920

2>go

#更改版本号为原来的版本号

分数据结构和数据记录做两次备份

作者:来源:发布日期:2008-07-22

在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环境中以load命令恢复工作机的内容。所以,在工作实践中,我们摸索出了第二种全量备份方案。

1、数据结构备份:

在windows平台的Sybase SQL Server Manager(数据库管理)平台中选择

ServeràGenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl 则产生所选定数据库的信息,以master库为例,产生的文件主要包括:config.ddl(配置)、devices.ddl(设备)、database.ddl(数据库)、logins.ddl(用户)、remote.ddl(远程)、cache.ddl(缓冲)、segment.ddl()、group.ddl(用户组)、user.ddl(用户)、default.ddl(确省)、rule.ddl(规则)、udt.ddl、table.ddl(表)、view.ddl(视图)、proc.ddl(存储过程)、triger.ddl(触发器)。

2、数据记录备份:

将数据库各表以Sybase自代的bcp(bulk copy)工具的方式导成一定格式的文本文件,命令格式:

bcp 表名out 路径名文件名-c -t 分隔符-u (用户名)-p(密码)-S(服务器名)

如果将一个数据库中的所有表都做一个bcp备份,就需要针对每一个表都做一次bcp,在一般情况下,一个数据库有100多个表,工作量比较大。可以利用数据库中的系统表信息做一个bcp备份脚本。原理是每一个用户表在系统表中都有信息记载,可以通过isql语句查询得到。现举一例说明:

(1)先编辑一个名为mkbcpout.sql的文件,内容如下:

select "echo bc p '"+name+" out ……………………'

"+"bcp "+name+" out ./+"name+".table -c -t '|'

-Uuser -Ppassword -S SERVER" from sysobjects where type='U'

go

(2)执行isql命令,以此文件作为输入,执行结果输出到另外一个文件里:

isql -Uuser -Ppassword -S server -I mkbcpout.sql -O bcpout ;

(3)对bcppout文件稍微修改,增加可执行权限: chmod +x bcpout;

(4)执行bcpout,导出数据文本:./bcpout;

3、数据库恢复:

业务生产机可能为小型机,而实验开发环境的硬件环境为PC server,安装好win nt 或SCO unix下的Sybase服务器后,根据需要创建空间足够大的数据库和tempdb(系统临时数据库),创建数据库用户,并将其更改为此数据库的所有者,要注意两点:1)此数据库允许bcp拷贝,2)此数据库自动清除log。命令格式为:

1> sp_dboption databasedbname ,"select into/bulkcopy",true

2> go

1> sp_dboption databasename,"trunc log on chkpt",true

2> go

上述两个配置可能与生产机的配置不同。

然后以新创建的数据库用户登录,导入数据结构,注意要首先导入表结构,然后才是存储过程、触发器等等。命令格式:

1、isql -Uusername -Ppassword -I table.ddl -o error.log.table

2、isql -Uusername -Ppassword -I proc.ddl -o error.log.proc

为了提高bcp导入数据的速度,需要将比较大的表的索引和主键删除,否则的话,

每bcp进一条数据,数据库都自动写一条log日志,记载此数据的上一条和下一条记录,确定本记录在此表中的准确位置,一是影响bcp速度,二是数据库的log飞速膨胀。数

据库的自动清除log功能只有在一个事务结束后才起作用。

准备工作做完后,开始倒入数据记录。使用类似做bcpout的方法做一个bcpin的脚本,然后执行:./bcpin |tee error.bcpin ;

使用tee管道输出的目的是让计算机完整记录下倒入过程,自动存入error.bcpin文件中,待倒入结束后,我们只需要检查日志文件,不需要一直紧盯着计算机屏幕。

所有工作做完之后,不要忘记重新将删除的主键和索引建上。

如果有现成的数据库,只需要单纯地导入数据记录,则首先将数据库中所有用户表(也就是所有type=“U”的表)清空,命令格式:

1> truncate table tablename

2> go

当然最好也是利用做bcpout脚本的做一个truncate脚本,通过执行此脚本将所有用户表清空。然后的数据导入、处理索引和主键的过程与上面类似。

三、利用做bcp备份脚本的方法做数据库碎片整理。

Sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。具体表现为:业务繁忙时出现死锁(dead lock),数据库的输入/输出资源被大量占用,业务处理速度慢。其解决办法是:

1、清空数据库中的所有表,命令格式:

isql -Uusername -Ppassword -I truncate.sql -o error.truncate

2、删除所有表的索引和主键:

isql -Uusername -Ppassword -I dropindex.sql -o error.dropindex

3、导入数据:./bcpin

4、添加索引和主键:

isql -Uusername -Ppassword -I addindex.sql -o error.addindex

5、更新数据库状态:

1> update statistics tablename

2> go

上述操作都是针对数据库中的所有用户表进行的,利用做bcp备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易行,还克服了直接使用isql语句操作风险大、没有操作日志的毛病。

笔者在实际工作中,使用第一种方法对生产机做日常全量备份,日终通过unix的crontab 定时批量作业bcp出全部数据。使用高档PC server 搭建模拟运行环境,在需要的情况下导入生产机数据,处理运行中后台server的各种问题,待研究出解决办法后再在生产机上做相应调整,这样做风险小,效果好

Sybase IQ基础知识介绍

作者:来源:发布日期:2008-05-30

我们开始审视Sybase IQ时,我们正是从此点开始,我们发现,Sybase对其使用列方法的好处所作的论述“相当令人信服”。然而,通过对数据仓库不断增加需求、迅猛增长的来自Web的数据与用户所带来的分析和报表(更不必提即将到来的RFID应用),以及客户的经验等等,我们现在可以证明,Sybase IQ提供了一个远比那些传统的关系型供应商更优越的方法。

列存储

不同于传统的关系型数据库,其数据在表中是按行存储的,Sybase IQ是通过表中的列来存储与访问数据的。尽管这种方式很明显的不太适合于交易环境,在交易环境中,一个事务与一行数据有效对应,而在查询进程环境中,很显然,查询是基于特定的列来

选择的。

列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。事实上,情况并不象上述的这样简单,Sybase IQ有各种方法支持基于列的索引,我们将在下面就此讨论。

使用列方法的另一个结果就是,Sybase IQ在压缩方面比传统的关系型数据库更加有效(根据Sybase所称,效果可达5倍之好)。这个原因,无消说,是由于同一列中的所有数据域有相同的数据类型。因此,每一列都可以为优化的效率与检索进行压缩。相比来讲,基于行的存储,各个不同的域拥有各不相同的数据类型,这非常适合于交易进程。在这样的环境中,不断变换理想的压缩算法是不可行的,这意味着任何压缩都将可能是一种最低通用的规则。

基于列的方法的另一个重要优势完全基于所有读出的数据量。无论何时你从传统的数据库中访问数据,你需要读出完整的每一行,而不管你实际所感兴趣的是哪些域。实际上,这可能意味着读300个字节的数据仅仅检索20个字符的数据。但是,基于列来读取数据,你仅仅需要读出你想要了解的数据。当然,读取一条单独的记录时,性能上的不同可以忽略,但是许多查询需要进行全表扫描。当读取数百万行数据时,性能的不同就会非常显著。

Sybase认为,Sybase IQ的列存储天然的比普通的ROLAP方法提供更佳的性能,IQ 不需要象多数竞争对手或者Sybase Adaptive Server Enterprise(ASE)一样支持硬件的并行处理。尤其是,Sybase指出,与数据分区相关的问题就是需要支持硬件的并行机制。显而易见,不论如何进行分区,分区都会带来很多问题(更不必说额外的维护了),不过,它打开了性能改进的实质性途径。然而,Sybase进一步阐述道,这仅仅是对基于行的方法所与生俱来的糟糕性能的一种补偿机制。

Sybase有很多事实支持它的论断,但这并不意味着Sybase避免任何形式的数据分区。然而,不同于水平分区,Sybase IQ实施的是垂直分区,也就是说分区是按照列而不是按照行进行的。该方法的优势之一是分区从来不会变得不均衡,这是由于每个表中的每列都有相同数量的域。这大大降低了管理分区的维护需求,同时消除了数据库的重新组织,而在分区变得不均衡从而开始影响性能的时候,数据库重新组织是必需进行的。

最后,需要注意的是,Sybase IQ并没有避免使用OLAP。对于那些希望在聚合层次下以一个相对预先定义的方式进行查询的用户来讲,OLAP具有明显的优势。基于此,Sybase 支持OLAP功能属性如排列、百分比、平均。

数据压缩

传统的数据库引擎不能以一种通用的方式进行数据压缩,主要是由于存在以下三个问题:

1. 按行存储的数据存储方式不利于压缩。这是因为数据(大多为二进制数据)在以这种方式存储时重复并不多。我们发现,按行存储的数据,最多能有5-10%的压缩比例;

2. 对于许多2K 和4K 的二进制数据页来说,为压缩和解压缩而增加的开销太大;

3. 在OLTP 环境中,大量读取和更新混杂在一起。每一次更新需要进行压缩操作,而读取只需解压缩操作,大多数的数据压缩算法在压缩时比解压缩时慢4 倍。这一开销

将明显降低OLTP

数据库引擎的事务处理效率而使得数据压缩的代价昂贵到几乎不能

忍受。

在数据仓库应用中,数据压缩可以用小得多的代价换取更大好处。其中包括减少对于存储量的要求;增大数据吞吐量,这相当于减少查询响应时间。

Sybase IQ 使用了数据压缩。这是由于数据按列存储,相邻接的字段值具有相同的数据类型,其二进制值的范围通常也要小得多,所以压缩更容易,压缩比更高。Sybase IQ 对按列存储的数据通常能得到大于50%的压缩。更大的压缩比例,加上大页面I/O,使得Sybase IQ在获得查询的优良性能的同时,减少了对于存储空间的需求。

Sybase IQ基础知识介绍

作者:来源:发布日期:2008-05-30

在传统的数据库中,为提高查询性能所建的索引占用的磁盘空间往往需要比数据本身需要的磁盘空间多出3-10倍。而Sybase IQ 存储数据所占用的磁盘空间通常只是原数据文件的40%-60%,是传统数据库所占用空间的几分之一。

图:Sybase IQ与传统数据库在数据压缩方面的典型对比

智能压缩技术,与精巧的索引结构和列存储结合,给了IQ 比其他数据库引擎高的多的存储效果。这将获得更低的存储成本与更高的性能(因为系统仅需很少的磁盘I/O读取或写入任何给定的数据库块)。

索引

Sybase IQ的秘密在于其索引。随着Sybase 客户发现了新的分析需求,Sybase可以简捷地建立新的索引以满足这些需求。这种方法的奇妙之处在于为数据仓库增加新的索引几乎不会(即使有也是微乎其微)影响数据仓库的架构或使用仓库的分析型应用。在实时企业与闭环应用领域,Sybase将索引视为在TB数量级(将来)甚至PB数量级数据仓库中获得更高查询性能的关键。今天,Sybase实际上已使用了7种索引机制:

· Low Fast 索引——这些是低基数索引,它使用一个被称之为“代号化”的进程。使用该进程,数据被转换为代号,然后存储这些代号而不是数据。这对于减少冗余数据的数量尤其有用。例如,在整个英国拥有大量客户群的公司,将需要存储客户的地址。这将意味着巨大数量的重复的郡的名称。因此,不是保存大量的“班夫郡”的实例,例如,Sybase将会用一个数字代替每个郡的名称。因此,由于班夫郡按照拼音排列在英国是第5个郡(排在Aberdeen,Armagh,Avon与Ayrshire之后)因此,它可能就会被设值为5。如果一个列包含一个数字值,该值自身可以一用于代号化的基础。一旦建立了代号(这是一个自动进行的进程),一个位图索引将被建立以表示这些代号。代号化典型地应用于列数据存在有限数量的可能取值。这也是为什么Sybase称之为低基数索引的原因,典型的,它

仅用于不同的取值个数在1500以内的域。

· Bit-Wise索引——对于高基数的域,那些取值个数超过1500个(如金额值),Sybase 使用其专利的被称之为Bit-Wise索引的技术。这在你希望在范围搜索的时候同时进行计算的情况下,尤为有用,例如,查找销售价格低于50欧元的货品数量及总收入。如同位图的其他变量,该方法的优势之一就是计数(count)查询可以直接通过读取索引获得答案,而无需读取数据。

· High Group索引——实际上,它是B-树索引。然而,此处的原则是,用户仅仅在几个列有可能作为一个组来使用的情况下,尤其是高基数与低基数的联合搜索时,才定义这些索引。比如可能有这样的例子,按照商店(低基数)查询产品销售清单与价格(高基数)。

· Fast Projection 索引——该索引类型(缺省的)就是列存储本身。如果用户总是打算检索整个列的数据,则列存储事实上意味着列可以直接映射到表或查询中,而无需显式的定义任何索引。这非常有用,例如在“Where”从句中。

· Word 索引——这是一个文本索引。它基于关键词或短语字符串搜索。这种类型的索引,历史上一直没有用于数据仓库中。然而,它有着大量重要的市场,在这些市场上,能够联合定量与定性的分析非常重要。例如,在医疗横业,医生的诊断通常就是:笔记。为了获取信息,例如发病率,因此可能必须访问这种非结构化的数据。

· Compare索引——这个索引技术允许数据列的比较,从效果上讲,类似于“if…then…else”表达式。例如,“if支出大于收入,then…”。该类型的索引对于在Web

应用中实时比较尤其有用。

· Join 索引——正如索引的名称所示,它是为消除表连接的需要而设计的。正象大多支持索引的情况,它可能在预先已知的查询需求下更为有用。

· Time Analytic 索引——这为基于日期、时间、日期与时间建立索引提供了选项。需要注意的是,对于传统的关系型数据库,处理基于时间的查询尤为困难。

大量扩展工具用以支持在各种情况下使用这些索引。这包括为减少硬盘(或内存——位图可能存在缓冲中)需求的索引压缩,联合使用不同类型索引的能力,以及使用布尔操作如AND与OR过滤比特队列等。这些特性表明,Sybase IQ克服了传统的位图的缺陷,即不适合于表连接或数据聚合。Sybase IQ在最近发布的版本中增加了一个索引顾问(Index Advisor),这一点尤其令人欢欣:这将建议管理员何时应该增加新的索引以及增加那种类型的索引。

总结

上面我们对Sybase IQ的几个重要的技术特点进行了简单的描述。作为数据仓库领域革命性的产品,Sybase IQ最新版本12.7发展了更多创新的技术,这些技术正在被全球越来越多的企业所运用。Gartner2007年的报告认为,Sybase IQ的卓越表现使它已经展现出一个市场领导者的风采。

Sybase ASE15.0.2性能优化

作者:来源:发布日期:2008-04-24

/sbin/sysctl -w kernel.shmmax=3416386150

数据库的创建:

Go

Go

Go

Go

Go

go

go

Go

Go

Go

1、内存

sp_configure “allocate max shared mem”,1 (启动的时候自动分配max memory指定的最大内存)

sp_cacheconfig “default data cache”,”cache_partition=2″ (在SMP 的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon 观察到资源缓存螺旋锁争夺超过10%时就需要分区。) sp_configure “procedure cache size”,102400 (过程高速缓存,通常是Max mem20%,这里是200M)

sp_bindcache …tempdb_cache?,tempdb (将tempdb_cache 绑定到tempdb)

当服务器的CPU 个数多于一个时,可以考虑多CPU 进行并行处理。(并行查询、并行dbcc 、并行建立索引、并行bcp)

sp_configure “max online engines”,8

sp_configure “number of worker processes”,8 (并行度*并发连接数*1.5倍)

sp_configure “number of user connections”,600

4、锁

数据库空闲状态下运行:sp_countmetadata “open indexes”

来确定一个最佳值,增加10%左右。

sp_configure “number of open objects”,2000

此外,还有一个关于OLTP 的配置,大家有兴趣的可以试一试:

Sybase 基本操作

作者: 来源: 发布日期:2007-11-23

--Sybase IQ 创建数据库

create database \'d:\\SysbaseIQ_data\\iqdss.db\'

transaction log on

collation \'936zho\'

page size 4096

java on

jconnect on

case respect

password case respect

iq path \'d:\\SysbaseIQ_data\\iqdss.iq\'

iq size 1024

iq page size 131072

temporary path \'d:\\SysbaseIQ_data\\iqdss.iqtmp\'

temporary size 2048

*******************************************************

--创建DBSPACE

create dbspace IQ_SYSTEM_MAIN1 as \'D:\\SysbaseIQ_data\\iqdss1.iq\'

iq store size 512 reserve 128

sp_iqdbspace==>存储过程功能-->显示数据文件

*******************************************************

Sybase IQ 创建用户

Sybase有三种角色connect resource dba

grant connect to test_login1,test_login2 identified by aaaaaa,aaaaaa

*******************************************************

--删除DBSPACE

drop dbspace IQ_SYSTEM_MAIN1

*******************************************************

常用命令

select * from sysobjects--系统对象表where type=\'P\'

sp_iqstatus==>存储过程--现实系统信息~

select 11 from dummy-->伪表

执行存储过程打--> call 存储过程名

或者-->直接存储过程名

************中国自学编程网整理,https://www.360docs.net/doc/2113414532.html, ********************** ---Sybase备份---

backup database full to\'f:\\sybasebackup.dmp\'

backup database incremental since full to \'f:\\sybasebackupsincefull.dmp\'

D:\\>start_asiq -n lzc -x tcpip{port=2639}

D:\\>dbisql -c \"uid=DBA;pwd=SQL;eng=lzc;dbn=utility_db\"

restore database \'f:\\SysbaseIQ_data1\\lzc.db\'

from \'f:\\sybasebackupsincefull.dmp\'

rename IQ_SYSTEM_MAIN to \'f:\\SysbaseIQ_data1\\lzc.iq\'

rename IQ_SYSTEM_TEMP to \'f:\\SysbaseIQ_data1\\lzc.iqtmp\'

数据库日常维护

作者:来源:发布日期:2007-06-07

数据库日常维护(参考)

数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分:

一、备份系统数据

SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。

SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。

1、备份数据库

每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);

·每次用 sp_dboption 允许 select into/bulkcopy 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。

卸出数据库的命令为:

DUMP DATABASE database_name

TO dump_device

database_name 是要卸出的数据库名称,dump_device 是卸出设备的名称。用系统过

程 sp_helpdevice 可以获得设备的信息。

下面一条命令用来卸出数据库 my_db :

DUMP DATABASE my_db

TO db_bk_dev

2、备份事务日志

如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。

备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。

备份事务日志的命令格式为:

DUMP TRANsaction database_name

[TO dump_device]

[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]

其中 database_name 是要备份事务的数据库名称,dump_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。

注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。

对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运

行 DUMP TRANsaction 命令刷新日志。

下面一条命令备份数据库 db160 的事务日志到备份设备上:

DUMP TRANsaction db160

TO db_log_bk_dev

WITH TRUNCATE_ONLY

3、备份数据库及其日志间的相互作用

在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系

如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。

但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。

二、万一系统失败时恢复数据库系统

如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。要恢复数据库按如下步骤去做:

1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项

的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。

2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。

下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:

SELECT segmap,size FROM sysusages

WHERE dbid =

( SELECT dbid FROM sysdatabases WHERE name = “mydb”)

3、检查查询的输出。在 segmap 列的…3?代表数据分配,…4?代表日志分配。size 列代

表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:

segmapSize

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

310240//实际尺寸为:20M

35120//实际尺寸为:10M

45120//实际尺寸为:10M

Sybase数据库教程

系统维护员培训手册 1 第一章 Sybase概述 第一节 C/S简介 CS(Client/Server)结构是传统的网络集中共享式数据库的扩充。在CS结构中,应用程序(客户)在工作站上运行应用程序进行数据处理,服务器程序运行于服务器上以响应客户的请求并维护数据的一致性。CS结构可以显著减少不必要的网络数据传输。 一、CS和文件服务器的区别是: 文件服务器没有计算能力,它不了解数据本身的任何东西,它仅仅用于存储数据,文件服务器可以想象成一台用很长的电缆(网络)与用户计算机相连的硬 盘驱动器。CS的工作方式是客户端发出一个请求(命令),通过网络传送到服务 器,服务器根据这个命令进行计算,把计算后的结果传送给客户端。而文件服务 器的工作模式是工作站从服务器上取得应用程序运行,进行数据处理时到服务器 取数据,然后从所有的数据记录中找到要处理的内容,进行运算,最后才得出结 果。 二、客户/服务器模型的主要特点如下: ●客户进程和服务器进程可以由LAN或广域网(WAN)联结。它们都可以在同 一台计算机上运行。 ●用于在客户和数据库服务器之间通信的基本语言是通过结构化的查询语言 (Structured Query Language)实现的。 三、发展过程 C/S结构是数据库发展的一个过程,跟随计算机的计算机系统结构由集中式主机系统发展到客户/服务器系统以及现在分布式的多层网络系统,数据库系 统的体系结构也大体经历了三种发展形式: ●集中式的主机/终端结构 主机/终端系统中主机运行DBMS及数据库应用,终端仅提供数据显示。 ●两层的客户/服务器结构 在这种结构中,服务器执行数据库的存储逻辑和事务逻辑,客户端执行应用逻辑并提供用户界面。他们从系统上进行划分,均衡负载。 ●三层(或多层)体系结构 这种体系可以看作是客户/服务器结构和Internet(国际互联网络)以及Intranet应用体系结构相结合的产物,它是对客户/服务器的继承和发展。 Internet应用是浏览器/WEB服务器/数据库服务器的三层体系结构。 四、Client/Server模式概述

sybase replication使用技巧

SYBASE Replication Server高级使用指南 复制服务器技巧汇总__常用配置 1. 复制分区partition越大越好,大小应该为数据流量的6倍,一般可以设为2G. 2. 最大线程数应该大于连接数(数据库和复制服务器)乘以2加3。 3. 复制内存内存加大。 注意事项 1. ASE要建立专门用于复制的sa用户,而且账号密码要和复制服务器的一模一样。 2. _RSSD_prim账号缺少sa权限,导致RSM不能访问复制服务器的配置。 3. RSM客户端置需要配置ID_SERVER及它的数据库地址。 SYBASE复制服务器技巧汇总__常用操作 1. 迁移复制服务器 a) 将相关数据库(RSSD数据库及复制数据库)的复制代理断开sp_stop_rep_agent db_name(ASE) 或是suspend log transfer from {data_server.database|all} b) quiesce队列admin quiesce_force_rsi; 使用admin quiesce_check检查 c) 删除正在使用的复制分区drop partition partition_name; d) 停掉相关的复制服务器(或是挂起路由)suspend route to replication_server; e) 迁移复制数据库以及RSSD数据库,服务器名称要和以前的一致, 重新建立复制服务器的ASE用户,修改连接配置文件。 f) 对RSSD数据库以及复制数据库的第二截断点归零use db_name go sp_stop_rep_agent db_name go dbcc settrunc(‘ltm’,’ignore’) go use RSSD_db_name go rs_zeroltm data_server,database; go use db_name go dbcc settrunc(‘ltm’,’valid’) go g) 增加复制分区add partition partition_name on ‘device_name’with size size; h) 重建队列Rebuild queues go Igore loss from data_server.database [to data_server.database|replication_server]; i) 恢复复制代理sp_start_rep_agent db_name;(ASE) 2. 建立默认错误处理类。 SYBASE复制服务器技巧汇总__故障处理 1. 队列阻塞。 如果DSI线程DOWN掉的话,连续执行resume connection to data_server.database skip transactoin跳过阻塞事务,直至DSI线成能够正常工作。 否则,监测队列是否正常。使用admin who,sqt;察看info 列此数值形如******x:y,******x 即为此队列号,如果是负数,则说明此队列事务有问题, 需要破置队列。y=1,代表是处队列,y=2,代表是入队列。(???不确定???) 使用admin who,sqm;察看First Seg.block Last Seg.block 以及Next read, 三个列的数值打效应为fast SYBASE复制服务器技巧汇总__常用命令 1. 察看运行状态admin health; admin who; admin who_is_down; admin who_is_up; admin who,sqm; admin who ,sqt; 2. 察看复制服务器配置rs_config(ASE); rs_helpdb(ASE); rs_helperror(ASE); rs_helpdb(ASE);

sybase 系统表集合

sybase 系统表集合 systypes 一行纪录了每一个由系统提供的和用户定义的数据类型 sysusers 一行记录了一行记录了一个数据库的合法用户 sysconfigures 一行纪录了用户可以设置的配置参数 syscurconfigs 有关SQL Server当前正使用的配置参数情况 sysdatabases 一行纪录SQL Server中的一个数据库 sysdevices 一行纪录数据库每一个磁带转储设备,盘转储设备,数据库设备和磁盘分区syslocks 有关动态锁的情况 syslogins 一行纪录了每一个有效的SQL Server的用户 sysmessages 一行记录了每一个系统错误或者警告 sysprocesses 有关server进程的情况 sysremotelogins 一行记录了一个远程用户 sysservers 一行记录了一个远程server sysusages 一行记录了分配给每个数据库的每个磁盘分片 sysatterrates 一行记录了分配给SQL Server用户在当前数据库的标识 syscolumns 一行记录了一个表或视图的每一列,一个存储过程的每一个参数syscomments 一行或者多行记录了每一视图、规则、缺省值、触发器和存储过程sysdepends 一行记录了由一个过程、视图或者触发器所参照的每一个过程、视图或者表sysindexes 一行记录了每一个聚集或者非聚集索引,每一个不带索引的表,含有text或者image列的表 syskeys 一行记录了每一个主玛、外玛或者公用玛 syslogs 事务日志 sysobjects 纪录表、视图、存储过程、规则、缺省值、触发器和临时表(在tempdb中)sysprocedures 纪录视图、规则、缺省值、触发器和过程 sysprocts 纪录用户权限信息 syssegments 纪录每一个片段(命名的磁盘) SYBASE 使用技巧集锦FAQ(一) 2006-07-29 11:24 Q.如何解决数据库被标记为"suspect"的问题之一(一般解决方案)? A.现象:Error 926 Severity Level 14 Error Message Text Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation (1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果 你要使用这个数据库的数据, 必须改正这个错误. (2) 启动Backup Server, 后备master数据库

sybase基本操作

SYBASE基本操作 一、启动数据库 1、ps -ef | grep dataserver 查看sybase进程, Sybase有数据库进程和备份进程, 若都没看到则需要手动启动,进入sybase安装目录$sybase/ASE-15_0/install 启动数据库和备份进程 # ./startserver -f RUN_LINUXMZC --启动数据库RUN_”SYBASENAME”#./startserver -f RUN_LINUXMZC_BS --启动备份服务“RUN_backupserve” 启动后也可用#showserver查看 2、登录数据库 数据库启动后使用#isql -Usa -P -S 登录数据库, 注:sybase默认只有一个用户sa,默认密码NULL

二、sybase基本操作 1、查询数据库版本 >select @@version >go 注:isql中的命令都需要go来执行,如果发现写错了,可以用reset重新输入 2、查询数据库信息 >sp_helpdb 显示所有数据库和基本信息 3、查寻空间使用情况 >use basename >go >sp_spaceused >go

4、性能监控 使用指令sp_sysmon 格式:>sp_sysmon “hh:mm:ss”,model_name,表示监控指定时间指定模块,缺省为所有模块 1、内核管理(kernal ) 10、任务管理(taskmgmt) 2、应用管理(appmgmt) 11、监视器访问SQL的执行(monaccess) 3、数据缓存管理(dcache) 12、并行查询管理(parallel) 4、ESP管理(esp) 13、过程缓存管理(pcache) 5、索引管理(indexmgmt) 14、恢复管理(recovery) 6、锁管理(locks) 15、事务管理(xactmgmt) 7、内存管理(memory) 16、磁盘I/O管理(diskio) 8、元数据高速缓存管理(mdcache ) 17、工作进程管理(wpm) 9、事务概要(xactsum) 18、网络I/O管理(netio)

SQL常用命令汇总

SQL常用命令汇总 SQL是结果化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据定义、数据操纵和数据控制四个部分。SQL简洁、功能齐全,已成为目前应用最广的关系数据库语言。 一、SQL的发展及标准化 1.SQL的发展 SQL是当前最为成功、应用最为广泛的关系数据库语言,其发展主要经历了以下几个阶段; (1)1974年,由Chamberlin和Boyce提出,当时称为SEQUEL(Structured English Query Language); (2)1976年,IBM公司对SEQUEL进行了修改,并将其用于本公司的SYSTEM R关系数据库系统中; (3)1981年,推出了商用关系数据库SQL/DS,并将其名字改为SQL,由于SQL功能强大,简洁易用,因此得到了广泛的应用; (4)今天,SQL广泛应用于各种大型数据库,如Sybase,INFORMIX,SQL Server,Oracle,DB2,INGRES等,也用于各种小型数据库,如FoxPro,Access等。 2.SQL标准化 随着关系数据库系统和日益广泛,SQL的标准化工作也在紧张地进行着,二十多年来已制订了多个SQL标准:SQL-86,SQL-89,SQLL2和SQL-99。 二、SQL的基本概念 1.基本表——一个关系对应一个表。基本表是独立存在的表,不是由其他的表导出的 表。 2.视图——是一个或几个基本表导出的表,是一个虚拟的表。它本身不独立存在于数 据中,数据库中只存放视图对应的数据,这些数据仍存放在导出视图的基本表中。 当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。 三、SQL的主要特点 SQL有如下几个特点。 (1)SQL是类似于英语的自然语言,简洁易用。 (2)SQL是一种非过程语言。 (3)SQL是一种面向集合的语言。 (4)SQL既是自含式语言,又是嵌入式语言;可独立使用,也可以嵌入到宿主语言中。 (5)SQL是数据库查询(Query)、数据定义(Definition)、数据操纵(Manipulation)和数据控制(Control)四种功能。 创建数据表 语法格式:CREA TE TABLE<表名>(<列定义>[{,<列定义>|<表约束>}]) 例:create table s(xingm c(8),xueh c(8),chengj c(3)) 结果:

Sybase函数

Sybase函数 Sybase字符串函数 长度和语法分析 datalength(char_expr) 在char_expr中返回字符的长度值,忽略尾空substring(expression,start,length) 返回部分字符串 right(char_expr,int_expr) 返回char_expr右边的int_expr字符 基本字符串运算 upper(char_expr) 把char_expr转换成大写形式 lower(char_expr) 把char_expr转换成小写形式 space(int_expr) 生成有int_expr个空格的字符串 replicate(char_expr,int_expr) 重复char_expr,int_expr次 stuff(expr1,start,length,expr2) 用expr2代替epxr1中start起始长为length的字符串reverse(char_expr) 反写char_expr中的文本 ltrim(char_expr) 删除头空 rtrim(char_expr) 删除尾空 格式转换 ascii(char_expr) 返回char_expr中第一个字符的ASCII值 char(int_expr) 把ASCII码转换为字符 str(float_expr[,length[,decimal]]) 进行数值型到字符型转换 soundex(char_expr) 返回char_expr的soundex值 difference(char_expr1,char_expr2) 返回表达式soundex值之差 串内搜索

Sybase数据库管理手册

Sybase数据库管理手册

目录 Sybase 数据库安装说明 (3) 一、安装前准备工作 (3) 二、安装主程序 (3) 三、安装后打补丁 (6) 四、重启后创建Sybase服务 (6) 五、字符集设置 (11) 六、还原HIS数据库 (13) 七、Sybase服务不能启动时 (19) 八、配置参数 (21) 客户端安装说明 (29) 一、安装客户端 (29) 二、配置客户端 (29) Sybase 数据库的备份、恢复 (29) Sybase 数据库维护 (30) Sybase数据常用命令的使用 (31)

Sybase 数据库安装说明 一、安装前准备工作 ●先将Sybase安装文件夹(ASESERVER)拷贝到要安装的机器硬盘上。(此文件夹下文中都 用d:\Tooll\ASESERVER) ●将Sybase的补丁拷贝到要安装的机器硬盘上 ●处理安装时的字符集问题(防止安装时出现乱码) 对于不同的Windows版本的操作系统Sybase都要进行字符集文件的修改,下面是不同 二、安装主程序 ●进入安装程序 完成安装前的准备工作后就可以双击D:\TOOLS\ASESERVER\setup.exe文件进入Sybase安装程序。

●确定安装目录 选择安装目录是不要选择有磁盘阵列或做了Raid的盘,也不要选择操作系统所在的磁盘。 ●选择安装组件 ●安装总结

在总结处要注意所需空间是不是小于可用空间,如果不是则要将安装的磁盘清除一些文件来达到所需空间。单击“下一步”进行安装进行状态 ●安装进度 ●录入注册信息

●重启提示 完成安装后提示是否重新启动机器,按否不重启机器。然后将补丁拷贝到安装目录。 三、安装后打补丁 将\ASE补丁\ebf11574\Server目录下的所有文件拷贝到Sybase安装目录下例如安装目录为C:\Sybase 将C:\sybase\shared-1_0\jre1.2.2\lib\font.properties.zh.NT5.2文件名改名,操作系统与文件名的配对关系参考安装前准备工作的配对关系。 四、重启后创建Sybase服务 ●重启机器后进入Sybase安装程序确定提示按“否”后进行Windows操作系统 ●进行操作系统的运行窗口录入CMD进入Dos操作界面

sybase for linux

下面是linux下的一个makefile ,cpre 用的是SYBASE客户端,可以参考一下。 .SUFFIXES:.ccs .SUFFIXES:.cpre CC=cc -g USERDIR=/root WORKDIR=.. SYBASEDIR=${SYBASE}/${SYBASE_OCS} LIBDIR=-L$(USERDIR)/lib -L$(WORKDIR)/lib -L$(SYBASEDIR)/lib INCLDIR=-I$(USERDIR)/include -I$(WORKDIR)/include -I$(SYBASEDIR)/include CPRE=$(SYBASEDIR)/bin/cpre -d -l -y $(INCLDIR) CFLAGS=-O -DUNIX LIBS = -lct -lcs -lsybtcl -lcomn -lintl -rdynamic -ldl -lnsl -lm USERLIBS = EDF= help: @echo Please input filenames that will be make following make command @echo 'syntax: make ' #all: battst .c: @echo Compiling and link the program $@ $(CC) -o $@ $< $(CFLAGS) $(INCLDIR) $(LIBDIR) $(LIBS) $(USERLIBS) @echo "---$@ compiling and link done." mv $@ $(USERDIR)/bin .cpre: $(CPRE) $< /var/cics_bins/makefile/add.sh $*.c >$*.tmp mv $*.tmp $*.c $(CC) -o $@ $@.c $(CFLAGS) $(INCLDIR) $(LIBDIR) $(LIBS) $(USERLIBS) # rm $*.c mv $@ $(USERDIR)/bin @echo "---$@ compiling and link done." ~ ~

sybase资料

关于Sybase ASE数据库的license以及试用版过期的问题的解决方案 作者:佚名来源:中国自学编程网收集整理发布日期:2009-02-18 当用户从Sybase官网上下载了ASE15.0.2以后,如果选择了安装Express Edition或者Developer Edition,基本上不会碰到什么问题,除了有些功能受限以下。 但大多数可能选择了Enterprise Edition for Evaluation类型,即企业版试用。都会碰到这样的问题,即一个月以后,license过期,无法启动server。于是很郁闷,可能大部分人,会选择卸载再重新安装一遍,这样当然没问题,只是,太浪费时间了。 有一段时间,我自己甚至也以为只能这样去解决了。 实际上不是,通过在sybase论坛上与一些有经验的人交流以后,发现,是可以切换的。 首先,有三种安装类型: 1. Express Edition,完全免费,不用缀述。 2. Developer Edition,没有使用期限限制,用于开发和测试。似乎不能商用,无所谓了。我也是刚得知。以前好像是有60天的限制。 3. Enterprise Edition,它是有试用时间的限制的。是30天。 只要能找到切换就OK了。 你的解决方法就是,把企业版的license切到开发版或者Express版。怎么切? 先看看目录$SYBASE/SYSAM-2_0/licenses下边的三个文件: SYBASE_ASE_DE.lic SYBASE_ASE_XE.lic 第一个文件里边有这样的内容: PE=DE;LT=DT 第二个文件里有这样的内容: PE=XE;LT=CP

sybase sql语句参考

T-SQL简介 为了和SQL Server通信和操作存储在SQL Server中的对象,客户程序和存储过程要使用Transact-SQL或T-SQL的结构化查询语言。T-SQL提供了标准1989版本SQL(由美国国家标准机构作为ANSI SQL 89出版)的许多功能,并给出了允许在语言方面具有更大的可编程性的若干扩展功能。SQL组件包括: ●数据定义语言(DDL),它创建和放弃数据结构并管理对象级安全性。 ●数据修改语言(DML),它增加、修改和删除表中的数据。 ●数据控制语言(DCL),它负责表数据的安全。 T-SQL对标准SQL进行了扩展,增加了程序流控制结构(如if和while)、局部变量和允许DBA创建基于代码的对象,包括存储过程和触发器的其它功能。T-SQL语句是以批处理的形式提交给服务器的。

1.1 T-SQL一般性介绍 1.1.1T-SQL的发展历史简介 1.1.2操作对象,一般操作术语(selection, projection, join) 及使用的场所 1.1.3命名规则:字符集、排序方式、变量、对象引用方式1.1.4操作符(算术、字符、位) 1.1.5T-SQL对SQL-92标准的扩展一般性介绍:计算函数、 控制结构 1.1.6对null的介绍 1.1.7ISQL的使用简介 1.2 创建表等对象的语句 创建表、索引、存储过程等的简单语法介绍

1.3 查询SQL语句的介绍: 1.3.1什么是查询? 1.3.2如何去选列 1.3.3如何选出唯一结果集 1.3.4如何指定表 1.3.5如何指定查询条件 1.3.6select语句 简单语法: select from 详细语法: select [all | distinct] select_list [into [[database.]owner.]table_name] [from [[database.]owner.]{view_name|table_name [(index {index_name | table_name } [parallel [degree_of_parallelism]] [prefetch size ][lru|mru])]} [holdlock | noholdlock] [shared] [,[[database.]owner.]{view_name|table_name [(index {index_name | table_name } [parallel [degree_of_parallelism]] [prefetch size ][lru|mru])]} [holdlock | noholdlock] [shared]]... ] [where search_conditions] [group by [all] aggregate_free_expression [, aggregate_free_expression]... ] [having search_conditions] [order by

SQL教程(函数编)

SQL 教程(函数篇)
课程表
SQL 基础
? ? ? ? ? ? ? ? ? ? ?
SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SQL Top SQL Like SQL 通配符 SQL In SQL Between SQL Aliases SQL Join SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Create Index SQL Drop

? ? ? ? ? ? ? ?
SQL Alter SQL Increment SQL View SQL Date SQL Nulls SQL isnull() SQL 数据类型 SQL 服务器 SQL 函数
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SQL functions SQL avg() SQL count() SQL first() SQL last() SQL max() SQL min() SQL sum() SQL Group By SQL Having SQL ucase() SQL lcase() SQL mid() SQL len() SQL round() SQL now() SQL format()
SQL 总结
? ?
SQL 快速索引 SQL 总结 实例/测验 实例 测验
?
SQL 测验 建站手册
? ? ? ? ? ? ?
网站构建 万维网联盟 (W3C) 浏览器信息 网站品质 语义网 职业规划 网站主机

Sybase数据转成SqlServer数据库的步骤

Sybase数据转成Sql Server数据库的执行步骤: 目前我们采用Sql Server 的DTS工具实现数据的交换操作。 一、前期准备:在目标数据库形成跟原数据库完全相同的表结构。 1,需要将客户备份的sybase数据库恢复到我们sybase帐套中,形成原数据库。 2,在Sql Server数据库中建立目标数据帐套,利用帐套维护工具建立目标数据库,选择模块与原数据库所用模块相同即可,初始年度与原数据库的初始年度也要相同。 创建完数据库后,如果原数据库有历史年度数据,则在目的数据库上的相应模块也做年结操作形成相应的历史年度表。主要通过察看数据库中那些表带有历史年度后缀,那些模块需要年结需要根据具体数据库设置。 3,删除所有用户表中的记录。 删除步骤,登陆原数据库,根据下面语句形成删除表记录sql。 select 'truncate table '+name +' go' from sysobjects where type = 'U' order by name 把执行结果复制到EditPlus中去,在go前增加换行符,形成删除表记录的sql语句。 4,在目标数据库中执行这些删除记录的sql语句,将目标数据库的相应记录删除。 并注意查看出错语句,主要是表不存在的情况下报的错误。 并决定那些表可以不需要,记录下不需要的表。 针对原数据库: 5,利用报表优化工具做临时表清除工作,以便节省交换时间。 二、数据导入操作: 利用DTS工具做数据交换操作。 执行步骤如下: 1,运行DTS,按照下一步执行即可。 2,配置数据源,我们这里是sybase数据库做数据源。 数据库类型选择sybase ASE OLE DB Provider 3,点击属性,配置数据库连接。数据源中输入syboledb,一定确保之前利用备份恢复工具(DBGhost.exe)联接过sybase数据库一次。 4,配置目标数据库这里选择sql server数据库。 5,选择复制表和视图。 6,选择表和视图。把不需要交换的表前面不需要选择即可,另外视图也不需要选择。 7, 8,执行 9,最后看以下执行结果,找到出错原因。 10,针对每一条出错的表,定位错误原因,然后单独把出错的表再导入一次。 注意问题: 由于sybase数据库大小写区分,而sqlserver数据库默认不区分大小写,有可能会出现复制数据违反唯一索引的问题。 解决方式有二: 删除通过大小写区分不一致的记录。 创建的sql server 实例也选择区分大小写。

Sybase 错误代码

错误消息按Sybase 错误代码进行索引 Sybase 错误代码是一组错误代码集,用于所有Sybase 产品,包括Adaptive Server Enterprise。Adaptive Server Anywhere 所返回的每个Sybase 错误代码,都有与之匹配的Adaptive Server Anywhere 错误代码。在许多情况下,Adaptive Server Anywhere 错误代码比对应的Sybase 错误代码更详细,因此,下表中的某些Sybase 错误代码并不是唯一的。 Sybase 错误代码Adaptive Server Anywhere SQLCODE 错误消息 0 –631 RAISERROR 被执行:%1 102 –171 打开游标时出错 102 –199 在游标上的INSERT/_delete 只能修改一个表 102 –933 IQ 数据库需要日志 102 –275 在运行时服务器中不支持触发器和过程 102 –273 在触发器动作中不允许执行COMM IT/ROLLBACK 102 –131 '%1' 附近有语法错误%2 102 –687 语法错误,未指定IQ PATH 时不能指定IQ 特定选项102 –875 无法连接到'%1' 102 –145 未找到外键名'%1' 102 –271 触发器定义与现有触发器冲突 102 –272 触发器定义中的REFERENCES 子句无效 102 –635 不允许在视图上对列权限GRANT 102 –151 子查询只允许一个选择列表项 102 –269 不能删除或重命名触发器定义中引用的列 103 –250 标识符'%1' 过长 104 –854 ORDER BY 子句中对'%1' 的函数或列引用无效 108 –152 ORDER BY 说明无效 133 –262 未找到标签'%1' 134 –261 已有名为'%1' 的变量 137 –260 未找到变量'%1' 154 –623 过程或触发器中不允许数据定义语句 155 –200 无效的选项'%1' —不存在PUBLIC 设置 174 –154 函数'%1' 的参数数目错误 176 –611 不支持的Transact-SQL 功能 176 –148 未知函数'%1' 182 –159 无效的列号 201 –639 调用过程'%1' 时参数名遗失

Oracle的TRUNC、ROUND函数详解,Sybase中功能相同的函数

Oracle的TRUNC、ROUND函数,Sybase中功能相同的函数 Oracle的TRUNC函数,Sybase中相同功能的函数CONVERT(Decimal(22,4),数值字段) Oracle,Trunc函数用法: Trunc的意思的截平(truncate),在oracle中用来根据指定的方式截断日期或数字, 举例如下: 1、截断日期时间: 其具体的语法格式如下:TRUNC(date[,fmt]) 其中:date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去举例,Sql代码: 1.select to_char(trunc(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') 时间 from dual; 2.时间 3.------------------- 4.2012-10-28 00:00:00 select to_char(trunc(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') 时间from dual; 时间 ------------------- 2012-10-28 00:00:00 这里的dd可以是格式元素的任何一个如yyyy,mm,dd,hh24,mi,ss等。结果是截断指定的元素之后的所有数据并显示出最接近的日期或时间。多举几个例子来凑篇幅: 按月份截断,则显示月份的第一天。 Sql代码: 1.select to_char(trunc(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') 时间 from dual 2.时间 3.------------------- 4.2008-08-01 00:00:00 select to_char(trunc(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') 时间from dual 时间 ------------------- 2012-10-01 00:00:00 按分钟截断,则秒为0。 Sql代码: 1.select to_char(trunc(sysdate,'mi'),'yyyy-mm-dd hh24:mi:ss') 时间 from dual 2.时间

Sybase数据库与sql server的区别

Sybase数据库与sql server的区别 目前目前大型的数据库都采用oracle,中小型的用sqlServer,建议用sqlserver或者mysql。 sybase与sqlsrver的内在区别就是: 1.Sybase没有用户自定义函数。 2.判断fetch成功的全局变量是@@SQLstatus,而不是@@fetch_status。 3.没有set,赋值与查询通用select。 4.没有top,返回N行要使用set rowcount N / set rowcount 0 5.raiserror 22009 " "--> raiserror( ' ',16,1) 6.游标一定要在过程中使用,不能单独在查询中使用。 7.销毁游标要加cursor关键字.如:deallocate cursor cur_tmp 8.没有bigint类型。 9.create table #t(id numeric(12,0) identity not null),不支持int型,且不能设置起始值和步进值。 10.不能alter一个存储过程,要先drop掉再create。 11.没有len函数,使用char_length或datalength等效。 12.通过sysindexes中的doampg列可返回某表的行数,rowcnt(doampg) 。 13.convert函数没有120格式(yyyy-mm-dd hh:mm:ss),需要

使用 select convert(char(4),datepart(year,getdate()))+ '- '+right ('0'+convert(varchar(2),datepart(month,getdate())), 2)+'-'+right('0'+convert(varchar(2),datepart(day,ge tdate())),2)+ ' '+convert(char(10),getdate(),8) 14.charindex不能从被查找字符串中按指定位置查找某字符串。 15.不能使用rtrim函数将数值型转为字符型。 16.没有cast函数,数值型到字符型转移使用select convert(varchar(10),123) 17.没有replace函数。 18.没有left函数,只有right函数。 19.不支持在字段上加[]。 20.select语句中不支持变量累加,例如:select @SQL=@SQL+colname from tablename 21.在过程及视图中系统会自动将select * 变为select 列1,列2... 22.varchar最大支持16384个字节(SQLServer中是8000) 。 23.Sybase不支持表变量。 24.Sybase不支持instead of触发器。 25.Sybase没有调度(注:定时执行某个操作) 。

Sybase 常用命令介绍(chenyi)

1.1 常用命令介绍 1.1.1 数据库操纵命令 1.1.1.1 ISQL 语法举例:isql –Usa –P –SSYSMIS {> filename{< filename}} 说明:-U:用户名;-P:口令;-S:SERVER名。SERVER名必须在$HOME/interfaces中有定义,其作用相当于PC CLIENT端的sql.ini,其维护工具是$HOME/install/sybinit,相当于PC CLIENT端的sqledit.exe。注意在使用sybinit定义SERVER时,IP地址在/etc/hosts文件中须有定义(如“192.9.202.201 hb1”),否则在定义过程中会有警告信息,但不影响使用。 1.1.1.2 dbcc checkdb 作用:检查数据库状态。 语法举例:dbcc checkdb(DATABASE NAME)。 说明:一般情况下该命令与dbcc checkalloc、dbcc checktable 配合使用,以检查数据库的使用情况。根据命令显示结果进行维护操作,该命令的输出显示一般为以下文本:

…… Checking syslogs The total number of data pages in this table is 225. *** NOTICE: Space used on the log segment is 0.44 Mbytes, 0.88%. *** NOTICE: Space free on the log segment is 49.56 Mbytes, 99.12%. Table has 5168 data rows. …… Checking csszh_csdj The total number of data pages in this table is 1. Table has 16 data rows. …… DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. 若显示结果与上述有异,则结合其它dbcc命令确定具体是什么错误,报错时会显示Msg号,根据Msg号,采取相应的解决方法。(参见第错误!未定义书签。页“错误!未找到引用源。”。) 1.1.1.3 dbcc checkalloc 作用:检查数据库空间分配。 语法举例:dbcc checkalloc(DATABASE NAME{,fix})。 说明:一般情况下该命令与dbcc checkdb、dbcc checktable、dbcc tablealloc配合使用,以检查数据库的使用情况。根据命令显示结果进行维护操作,该命令的输出显示一般为以下文本: TABLE: sysindexes OBJID = 2 INDID=1 FIRST=24 ROOT=32 SORT=0 Data level: 1. 26 Data pages allocated and 4 Extents allocated. Indid : 1. 1 Index pages allocated and 1 Extents allocated. TOTAL # of extents = 5

sybase字符串函数

sybase字符串函数.txt只要你要,只要我有,你还外边转什么阿老实在我身边待着就行了。听我的就是,问那么多干嘛,我在你身边,你还走错路!跟着我!不能给你幸福是我的错,但谁让你不幸福,我TMD去砍了他sybase字符串函数 文章分类:Java编程 长度和语法分析 datalength(char_expr) 在char_expr中返回字符的长度值,忽略尾空 substring(expression,start,length) 返回部分字符串 right(char_expr,int_expr) 返回char_expr右边的int_expr字符 基本字符串运算 upper(char_expr) 把char_expr转换成大写形式 lower(char_expr) 把char_expr转换成小写形式 space(int_expr) 生成有int_expr个空格的字符串 replicate(char_expr,int_expr) 重复char_expr,int_expr次 stuff(expr1,start,length,expr2) 用expr2代替epxr1中start起始长为length的字符串 reverse(char_expr) 反写char_expr中的文本 ltrim(char_expr) 删除头空 rtrim(char_expr) 删除尾空 格式转换 ascii(char_expr) 返回char_expr中第一个字符的ASCII值 char(int_expr) 把ASCII码转换为字符 str(float_expr[,length[,decimal]]) 进行数值型到字符型转换 soundex(char_expr) 返回char_expr的soundex值 difference(char_expr1,char_expr2) 返回表达式soundex值之差 串内搜索 charindex(char_expr,expression) 返回指定char_expr的开始位置,否则为0 patindex("%pattern%",expression) 返回指定样式的开始位置,否则为0

SYBASE数据库日志详解

SYBASE数据库日志详解 开发者在线 https://www.360docs.net/doc/2113414532.html,更新时间:2007-09-13作者:https://www.360docs.net/doc/2113414532.html, 来 源:https://www.360docs.net/doc/2113414532.html, 本文关键词:Sybase数据库日志 我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。事务是SQL Server 的工作单元。一个事务包含一条或多条作为整体执行的 T-SQL语句。每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。事务日志自动记录每个用户发出的每个事务。日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。 一、SYBASE SQL Server 如何记录和读取日志信息 SYBASE SQL Server是先记Log的机制。每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。这样就保证了整个数据库系统的一致性和完整性。 二、日志设备 Log和数据库的Data一样,需要存放在数据库设备上,可以将Log和Data存放在同一设备上,也可以分开存放。一般来说,应该将一个数据库的Data和Log存放在不同的数据库设备上。这样做有如下好处:一是可以单独地备份 Backup 事务日志;二是防止数据库溢满;三是可以看到Log的空间使用情况。 所建Log设备的大小,没有十分精确的方法来确定。一般来说,对于新建的数据库,Log的大小应为数据库大小的30%左右。Log的大小还取决于数据库修改的频繁程度。如果数据库修改频繁,则Log 的增长十分迅速。所以说Log 空间大小依赖于用户是如何使用数据库的。此外,还有其它因素影响Log大小,我们应该根据实际操作情况估计Log大小,并间隔一段时间就对Log进行备份和清除。 三、日志的清除 随着数据库的使用,数据库的Log是不断增长的,必须在它占满空间之前将它们清除掉。清除Log 有两种方法: 1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log 而不做备份。

相关文档
最新文档