sybase常用命令
- 格式:doc
- 大小:71.00 KB
- 文档页数:11
常用的命令集合一、配置命令1、检查CPU使用情况:sp_sysmon "internal","model"internal是监视时间。
例如:"00:01:00"Model 是模块的名称。
包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp','housekeeper','monaccess','xa ctsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','reco very','diskio','netio'2、检查使用的最大的引擎数(CPU)sp_configure "max online engines"此命令还可以改变sybase系统使用CPU的数量。
注意:改变后需要重新启动sybase才可以使培植生效。
引擎的数量是总的CPU数量减一3、显示引擎号、状态、相关任务数以及引擎启动的时间:select engine, status, affinitied, starttime from sysengines4、显示每个用户的繁忙程度sp_reportstats5、监视配置参数的运行情况sp_monitorconfig "open objects"参数见sp_monitorconfig中的值二、权限命令1、给一个用户授所有的权限grant all to user_name2、给一个用户授对某张表的所有权限grant all on table_name to user_name3、添加一个登录(login)sp_addlogin三、TSQL使用1、统计信息更新select "print '"+name+"'"+char(10)+"update statistics "+name+ char(10) + "go"from sysobjectswhere (type='U' or type='S')order by name2、显示所有触发器的名称、建立时间SELECT USER_NAME(A.uid) 'T able Owner', 'T able Name', 'Trigger Name',CONVERT(char(10),A.crdate,101)+SUBSTRING(CONVERT(char(20),A.c rdate,0),13,7) 'Create Date'FROM sysobjects A,sysobjects BWHERE A.type='TR'AND (A.id=B.instrig OR A.id=B.updtrig OR A.id=B.deltrig)3、关于参照--生成建立已有参照的SQL语句select distinct result_sql='alter table '+rtrim(object_name(tableid))+' add constraint '+rtrim(object_name(constrid))+' foreign key('++col_name(sysreferences.tableid,sysreferences.fokey1)+substring(',',1,sysre ferences.fokey2)+col_name(sysreferences.tableid,sysreferences.fokey2)+substring(',',1,sysre ferences.fokey3)+col_name(sysreferences.tableid,sysreferences.fokey3)+substring(',',1,sysre ferences.fokey4)+col_name(sysreferences.tableid,sysreferences.fokey4)+substring(',',1,sysre ferences.fokey5)+col_name(sysreferences.tableid,sysreferences.fokey5)+substring(',',1,sysre ferences.fokey6)+col_name(sysreferences.tableid,sysreferences.fokey6)+substring(',',1,sysre ferences.fokey7)+col_name(sysreferences.tableid,sysreferences.fokey7)+') '+'references '+rtrim(object_name(reftabid))+'('+col_name(sysreferences.reftabid,sysreferences.refkey1)+substring(',',1,sys references.refkey2)+col_name(sysreferences.reftabid,sysreferences.refkey2)+substring(',',1,sys references.refkey3)+col_name(sysreferences.reftabid,sysreferences.refkey3)+substring(',',1,sys references.refkey4)+col_name(sysreferences.reftabid,sysreferences.refkey4)+substring(',',1,sys references.refkey5)+col_name(sysreferences.reftabid,sysreferences.refkey5)+substring(',',1,sys references.refkey6)+col_name(sysreferences.reftabid,sysreferences.refkey6)+substring(',',1,sys references.refkey7)+col_name(sysreferences.reftabid,sysreferences.refkey7)+')'+char(10)+"go"from sysreferences,syscolumns,sysobjectswhere sysreferences.tableid=sysobjects.idand sysobjects.id=syscolumns.idand sysobjects.type='U'order by go--生成删除参照的SQL语句select distinct result_sql='alter table '+rtrim(object_name(sysreferences.tableid))+' drop constraint '+rtrim(object_name(sysreferences.constrid))+char(10)+"go"from sysreferences,syscolumns,sysobjectswhere sysreferences.tableid=sysobjects.idand sysobjects.id=syscolumns.idand sysobjects.type='U'order by object_name(sysreferences.tableid)go4、关于表级锁--列出所有锁类型为行锁的表select name from sysobjects where type='U' and sysstat2 & 57344 = 32768 and name not like "XT% order by name--调优的方法有:调整锁类型,调整表的聚簇索引--调整表锁类型为行锁,可以提高对表的并发访问性能,但是同时也会占用更多的系统资源--修改行锁的SQL语句:alter table [table_name] lock [datarows|allpages]----调整表的聚簇索引在数据插入时,降低对表的最后一页的争用--Sybase规定一张表只能有一个聚簇索引,所以在调整聚簇索引时,要先删除原有的聚簇索引,然后再建立新的--例如将SB_ZSXX表的在ZSXH上聚簇索引修改为在NSRSBH上的聚簇索引.--删除原聚簇索引PK_SB_ZSXXdrop index SB_ZSXX.PK_SB_ZSXXgocreate nonclustered index PK_SB_ZSXX on SB_ZSXX(ZSXH)go-- 建立IDX_SB_ZSXX_NSRSBH的聚簇索引drop index SB_ZSXX.IDX_SB_ZSXX_NSRSBHgocreate clustered index IDX_SB_ZSXX_NSRSBH on SB_ZSXX(NSRSBH)go--以上的索引信息可以用sp_help命令列出5、求出指定字段等于指定值的记录数declare @lc_colname varchar(30)--declare @lc_colvalue /*定义欲求值的变量,随着变量的类型定义不同的值*/--取包含指定列名的表select distinct name=object_name(id) into #AA from syscolumns where name = @lc_colname--生成SQL,求出指定字段等于指定值的记录数select "insert into #BB select tname='"+name+"',cnt=count(*) from "+name+" where " + @lc_colname + "='" + @lc_colvalue + "'"+char(10)+"go"from #AA--运行SQL--检查记录不为零的表,既为求出的表select * from #BB where cnt>06、列出所有无主键的表select name from sysobjectswhere name not in (SELECT object_name(id)FROM sysindexesWHERE indid > 0AND status2 & 2 = 2and status & 2048 = 2048)and type="U"order by name7、关于用户登录--锁定用户select "sp_locklogin "+name+",'lock'"+char(10)+"go"from sysloginswhere name not like "%prim%"and name not like "%maint%"and name not like "sa"order by name--解除锁定的用户select "sp_locklogin "+name+",'unlock'"+char(10)+"go"from sysloginswhere name not like "%prim%"and name not like "%maint%"and name not like "sa"order by name8、为ctais_maint授权select "grant all on "+name+" to ctais_maint"+char(10)+"go" from sysobjects where type="U"9、整理出字段类型有text和image的表--text类型select distinct name=object_name(id)from syscolumnswhere type=35and id in (select id from sysobjects where type="U") order by object_name(id)--image类型select distinct name=object_name(id)from syscolumnswhere type=34and id in (select id from sysobjects where type="U") order by object_name(id)10、修改identity列的最大值--设置包含identity列的表为可直接插入记录set identity_insert [table] [on|off]--插入一个比较大的值insert into [table] values([value])。
70年代,随着大型共享数据库应用的普及,美国SYBASE公司基于当时的关系代数理论所提出的数据库关系模型,开发了Sybase数据库系统;Sybase是基于SQL(Structured Query Language)的著名关系模型数据库系统,是世界上最流行的DBMS软件之一;它能在多种计算机硬件平台上运行,并能通过连网形成分布式数据库环境;SQL Server是指运行在主机上,能提供SQL语言查询、修改或控制数据库中内容等操作的一个服务进程,形象地把它理解为一个数据库服务器;一般地数据库服务器有Data Server 和 Backup Server两个服务进程组成。
数据库就是一系列表格(关系)所描述的客观世界中事实的集合;Sybase中的系统数据库基本包括有:master、model、sysprocs、 tempdb,其它为用户库。
Sybase Adaptive Server Enterprise 12.5是Sybase公司开发的智能型数据库。
现场Sybase数据库系统结构1.1 参考资料《SYBASE 数据库维护快速参考手册 Version 1.1》,SYBASE公司出版2 基础操作、配置和维护2.1 安装Sybase 12.5包括安装前环境配置、安装过程说明、安装成功测试、卸载等。
(详细请参考V1.00》)2.2 访问SQL Server在安装配置好的Sybase服务器,可以通过以下操作开始访问SQL Server进行数据的查询和控制等操作:? % isql –U用户名–S服务名password: //该处输入该明户的密码2.3 Sybase的启动和关闭2.3.1 启动Sybase数据库在$SYBASE/ASE-12_5/install目录下执行startserver命令启动Sybase数据库,如:%$SYBASE/ASE-12_5/install/startserver -f RUN_服务名%$SYBASE/ASE-12_5/install/Startserver –f RUN_服务名_BAKUP2.3.2 关闭Sybase数据库使用isql命令登录Sybase数据库系统,在查询sysservers表查看可关闭的服务,如isql –Usa -SjoliPassword:1> select * from sysservers一般需要关闭的服务有:系统备份服务、系统主服务在isql提示里先关闭系统备份服务(默认为SYB_BACKUP),再关闭主服务(默认可以不输入主服务名),如:1>shutdown SYB_BACKUP2>go1>shutdown2>go2.4 Sybase用户管理2.4.1 创建登录用户(login)sp_addlogin login_name,passwd[,defaultdb[,deflanguage[,fullname]]] 例子:1> sp_addlogin joli,joli,joli_db2> go2.4.2 删除登录用户(login)例子:1> sp_droplogin test2> go2.4.3 创建数据库用户(user)sp_adduser login_name[,name_in_db[,grpname]]例子:1> sp_adduser joli,joli2> go2.4.4 删除数据库用户(user)例子:1> sp_dropuser test2> go2.4.5 修改该用户为该数据库dbo例子:1>use joli_db3> sp_changedbowner joli2.4.6 查看数据库用户信息sp_displaylogin [login_name]sp_helpuser例子:1> sp_helpuser2> go1> sp_displaylog joli2> go1> sp_who2.4.7 修改用户口令如果是修改sa口令,可用sa用户登录,然后执行以下命令修改1>sp_password “旧命令| null”,”new_password”2>go如果不是sa用户,则使用希望修改口令的user登录数据库,然后执行1> sp_password 旧命令,新命令2> go2.4.8 修改系统缺省设备? 关闭创建数据库master缺省设备:? 1>exec sp_diskdefault "master","defaultoff"? 指定user_db_dev为缺省设备:? 1>exec sp_diskdefault "user_db_dev","defaulton"2.5 创建、删除、修改Sybase设备、数据库2.5.1 创建设备例子:1> disk init2> name="joli_dev",3> physname="/opt/sybase/joli/joli_dev.dat",4> vdevno=9,5> size=512006> go说明:物理设备名称为:joli_dev物理设备文件路径为:/opt/Sybase/joli/joli_dev.dat设备编号(该号不能重复)为:9大小(单位为2K)为:100M(一般为用户数据库创建一个数字设备后,再单独为用户数据库创建一个日志设备)2.5.2 镜像设备例子:1> disk mirror2> name="joli_dev",3> mirror="/opt/sybase/joli/joli_dev_mirror.dat"4> go说明:创建设备joli_dev的镜像,镜像后的镜像设备为/opt/sybase/joli/joli_dev_mirror.dat。
sybase常⽤命令⼀、SQL Advantage使⽤先点击server,⾥⾯点击connect连接到sybase服务端,开⼀个新窗⼝,写⼀些sql执⾏即可(ctrl+e)⼆、启动和关闭数据库,查看表结构1.看所有的库sp_helpdb2.使⽤⼀个库use 库名(注意⼤⼩写)3.查看⽤户下所有表名select name from sysobjects where type='U'或sp_tables4.查看表结构sp_help 表名(注意⼤⼩写)5.显⽰结果只显⽰⼀⾏set rowcount 1go输⼊你想查询的sql语句,记得最后要set rowcount 0go6.启动数据库[sybase@rosan128main install]$ pwd/opt/sybase/ASE-12_5/install[sybase@rosan128main install]$ startserver -f RUN_rosantech7.关闭数据库先要看启动了什么服务1> select srvname from sysservers2> gosrvname------------------------------SYB_BACKUPloopbackrosanljw_BSrosantech(4 rows affected)关闭备份服务1> shutdown SYB_BACKUP2> go关闭1> shutdown2> go如果关不上1> sp_lock2> goThe class column will display the cursor name for locks associated with a cursorfor the current user and the cursor id for other users.fid spid loid locktype table_id pagerow dbname classcontext------ ------ ----------- ---------------------------- ----------- ----------------- --------------- ----------------------------------------------------------0 57 114 Sh_intent 32000114 00 master Non Cursor Lock(1 row affected)(return status = 0)1> kill 57(spid只可以杀除⾃⼰会话以外的会话)杀掉再shutdown就好了如果关不动,可以⽤以下命令,慎⽤shutdown with nowait三、dml和ddl1.建表use testgocreate table table1(test varchar(10))go--仿照table1建⽴table2select * from table1 into table2go----------------------------------------------------------------------------------------如果不能仿照需要修改⼀些参数sp_helpdb db_name --查看SELECT into选项是否开启,没开需要⼿动开启gouse mastergosp_dboption test,'select into',true --(test为db_name)gocheckpointgouse testgoselect * from table1 into table2go四、⽤户管理1.创建登陆⽤户(login)1> sp_addlogin ljw1911,rosantech,test --依次为⽤户名,密码,默认数据库2> goPassword correctly set.Account unlocked.New login created.(return status = 0)2.删除登陆⽤户(login)1> sp_droplogin ljw19112> go3.创建数据库⽤户(user)1> sp_adduser ljw19112> goNew user added.(return status = 0)4.删除数据库⽤户(user)1> sp_dropuser ljw19112> go2.4.5 第六页了五、sybase ASE参数配置(1)服务器级配置使⽤存储过程sp_configure配置ASE (和oracle的show parameter很像)1. 语法sp_configure [configname[, configvalue] | group_name | non_unique_parameter_fragment]2. 作⽤查询服务器运⾏的当前值设置服务器运⾏参数⽤ "sp_configure mem" 可以查看带有mem关键字的参数的具体配置,然后⽤ "sp_configure 参数, 值" 来配置新例1. 配置内存1)数据库使⽤内存指定ASE拥有的总的共享内存⼤⼩sp_configure“max memory”,nnn(单位为2K)( HP平台推荐物理内存的75%,其他平台80%)sp_configure‘allocate max shared mem’,1(数据库服务启动时就分配内存)(推荐为1)2)配置缺省数据缓存的⼤⼩和分区sp_cacheconfig‘default data cache’,’xxxM’sp_cacheconfig‘default data cache’,’cache_partition=n’(根据CPU个数以及内存⼤⼩确定,需为2的N次⽅)3)配置存储过程的缓存⼤⼩sp_configure“procedure cache size”,nnn(单位为2K)例2. 配置CPUsp_configure‘max online engines’,n(cpu个数> 2时推荐CPU数⽬减1)sp_configure‘number of engines at startup’,n3. 其他1). number of devices (⽤户⾃⼰确定)指定ASE的可创建和打开的数据库设备的最⼤号数2). number of locks (⽤户⾃⼰确定)指定ASE可同时打开的锁的最⼤数⽬3). number of open objects (推荐8000-20000)ASE的对象描述的缓存数4)number of open indexes (推荐2000-5000)ASE的索引描述的缓存数5) stack size (如果有超长SQL和多层嵌套,推荐*2)数据库堆栈的⼤⼩6). default character set id(推荐使⽤cp936 –id 171)数据库服务器使⽤的字符集7). allow updates to system tables指定系统管理员是否可以更改系统表中的数据8)row lock promotion HWM,row lock promotion LWM⾏锁升级为表锁的阀值9)page lock promotion HWM,page lock promotion LWM页锁升级为表锁的阀值10) lock scheme缺省的对表加的锁类型(缺省为页锁)(2)数据库级配置使⽤存储过程sp_dboption更改数据库的数据库选项1. 语法sp_dboption[dbname, optname, {true | false}]2. 作⽤罗列出所有的数据库选项更改某个数据库的数据库选项3. 常见的数据库选项trunclog on chkpt⾃动清⽇志(不能再做增量备份)select into/bulkcopy允许快速BCP,selectintoddlin tran允许事务中创建对象修改完成以后可以通过sp_helpdb查看到例⼦:1> use master2> go1> sp_dboptionuserdb, "trunclog on chkpt", true2> go数据库‘userdb'的数据库选项'trunclog on chkpt'被打开。
Sybase数据库系统常用操作目录附录D Sybase数据库系统常用操作D-1D.1 Sybase数据库系统常用操作 D-1D.1.1 isql D-1D.1.2 bcp D-3D.1.3 showserver D-4D.1.4 startserver D-5D.1.5 shutdown D-5D.2 T-SQL语言D-6D.2.1 数据定义语句(DDL)D-6D.2.2 数据操作语句(DML)D-7D.2.3 数据控制语言(DCL)D-8D.3 Sybase数据库的备份与恢复 D-12D.3.1 系统软件故障恢复D-12D.3.2 备份数据库及其事务日志 D-12D.3.3 恢复数据库D-13D.3.4 监控事务日志空间大小方法D-14附录 D Sybase数据库系统常用操作本附录介绍Sybase系统常用操作、T-SQL语言、Sybase数据库的备份与恢复,方便用户在维护过程中进行查询。
D.1 Sybase数据库系统常用操作Sybase数据库系统为用户的管理、维护和访问SQL Server提供了下面几种常用的操作:●isql Sybase数据库提供的标准接口,也常用于批处理程序的执行●bcp用于SQL Server表和操作系统文件之间的数据的引入和引出●showserver查看SQL Server是否启动(若没有启动,可以用下面的命令startserver来启动SQL Server;若想关闭,可以用命令shutdown来关闭SQL Server)●startserver启动SQL Server●shutdown关闭SQL ServerD.1.1 isqlisql是Sybase数据库系统的一个前台工具,是基于字符的最基本的访问SQL Server数据库服务器的实用程序。
能够实现与服务器的连接,向服务器发送T-SQL命令。
所有的SQL查询语言和系统存储过程都必须在isql下执行,并可在屏幕上显示返回的结果信息。
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<password> -S<servername> 登录数据库,注:sybase默认只有一个用户sa,默认密码NULL二、sybase基本操作1、查询数据库版本>select @@version>go注:isql中的命令都需要go来执行,如果发现写错了,可以用reset重新输入2、查询数据库信息>sp_helpdb 显示所有数据库和基本信息3、查寻空间使用情况>use basename>go>sp_spaceused>go4、性能监控使用指令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)5、日志查看(1)数据库运行日志位置$sybase/ASE-15.0/install/SYBNAME.LOG记录数据库服务启动、关闭、运行、初始化等信息,可以查看error发现异常(2)事务日志每个数据库都对应一个事务日志,创建数据库时使事务日志和数据分离存放在不通设备,这样有利于备份。
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 syslogsThe 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_csdjThe 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号,采取相应的解决⽅法。
附录六:SYBASE常用命令 一、UNIX命令工具 bcp [[database_name.]owner.]table_name {in | out} datafile[-c] [-t field_terminator] [-r row_terminator] [-U username] [-P password]用途:数据加载工具说明:database_name 数据库名称owner 数据库所有者table_name 数据表名in | out 数据从文件加载到数据库用in,数据从数据库拷到文件用out-c 以缺省方式载数据-t field_terminator 字段间的分隔符-r row_terminator 记录间的分隔符-U username 登录数据库用户名-P password 登录数据库密码例子:bcp info..highexam in highexam.txt -c -t : -r \\n -Uinfouser -P infotest把文件highexam.txt的内容加载到info数据库highexam表中,文件格式为字段以“:”分隔,记录以回车符分隔。
isql [-H hostname] [-i inputfile] [-P password] [-S server][-U username] [-y sybase_directory]用途:数据加载工具说明:-H hostname sybase server 主机名-i inputfile 输入命令批处理文件名-P password 登录用户密码-S server sybase server 名-U username 登录用户名-y sybase_directory sybase目录二、T-SQL语句 ALTER DATABASE database_name [ON {DEFAULT | database_device} [=size][,database_device} [=size]]...][LOG ON {DEFAULT | database_device} [=size][,database_device} [=size]]...]用途:扩充数据库大小。
sybase备份与恢复及sybase常⽤语句sybase备份有两种⽅式,⼀种是对单表进⾏备份,⼀种是对整个数据库进⾏备份1、单表备份与恢复只需要使⽤sybase提⾼的bcp命令就可以了:bcp的命令格式:bcp 数据库名..表名 in/out ⽂件名字 -Usa –Ppassword -S SERVERNAME –c解释:数据库名为要备份的数据库名字表名为要备份的表的名字in/out 备份⽤out,恢复⽤in⽂件名字:备份形成的⽂件或恢复需要的数据⽂件,要求包含⽂件的路径信息password:sa的⼝令servername:如本机器连接多个数据库服务器,则需要指定相应的数据库服务器2、整个数据库的备份与恢复这种⽅式相对⽐较复杂⼀点,需要在备份前启动sybase的备份服务,启动⽅式如下:startserver -f RUN_SYBASE //启动SYBASE服务RUN_SYBASE:#!/bin/sh## Master device path: /home/sybase/data/master# Error log path: /home/sybase/install/SYBASE.log# Directory for shared memory files: /home/sybase# Adaptive Server name: SYBASE#/home/sybase/bin/dataserver \-d/home/sybase/data/master \-e/home/sybase/install/SYBASE.log \-M/home/sybase \-sSYBASE \startserver -f RUN_SYBASE_BAK //启动sybase备份服务RUN_SYBASE_BAK:#!/bin/sh## Error log path: /home/sybase/install/SYB_BACKUP.log# Maximum number of network connections: 25# Maximum number of server connections: 20# Backup Server name: SYB_BACKUP#/home/sybase/bin/backupserver \-e/home/sybase/install/SYB_BACKUP.log \-N25 \-C20 \-SSYB_BACKUP \备份数据库⽅法:dump database 数据库名 to 路径恢复数据库⽅法:load database 数据库名 from 路径在恢复数据库前需要确保已经存在空的数据库了:disk initname="物理设备名",physname="/home/sybase/data/aa.dat",vdevno=8, //⽤sp_helpdevice察看那些no还没有使⽤size=5120 (每个单位是2K)建⽴物理设备时要关注磁盘空间是否够⽤:df -kcreate database 数据库名 on 数据名=5120数据库恢复后,是离线状态,需要⼿⼯online: online database 数据库名然后就是添加sybase的注册名和数据库的⽤户名:sp_addlogin "user","password" //添加注册 gouse 数据库名gosp_adduser "user"go察看数据库中所有表的⽅法:Select name from sysobjects where type='U'要执⾏sybase的命令需要先登录sybaseisql -Usa -P。
sybaseisql命令1、关闭sybase主服务 shutdown with nowait go2、关闭sybase某一服务shutdown SYB_BACKUP(服务名) go3、查看服务名 sp_helpserver go4、查看sybase版本 select @@version go5、查看sybase的数据设备信息sp_helpdevice/select *from master..sysdevices go6、设备管理(1)创建use master godisk initname = 'test',physname='/opt/sybase/data/test.dat',vdevno=2,size='10 24m',vstart=0,cntrltype=0,dsync=truego(2)删除use master goexec sp_dropdevice 'test'go(3)修改最大的虚拟设备号sp_configure 'number of devices',25 go7、数据库管理(1)创建use master gocreate database test on test='1024M' gouse test goexec sp_changedbowner 'sa' go(2)查看当前数据库 select db_name() go(3)查看数据库信息 sp_helpdb syk go(4)删除 drop database syk go(5)空间使用情况use syk gosp_spaceused go8、默认排序方式、字符集等信息 sp_helpsort9、执行数据库脚本isql -Usa -P -SABC -i /opt/sybase/test.sql -o /opt/sybase/test.logisql -Usa(用户名) -P(密码) -SABC(服务名)isql参数详解usage: isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q][-a display_charset] [-A packet_size] [-c cmdend] [-D database][-E editor [-h header [-H hostname [-i inputfile][-I interfaces_file] [-J client_charset] [-K keytab_file][-l login_timeout] [-m errorlevel] [-M labelname labelvalue] [-o outputfile] [-P password] [-R remote_server_principal][-s col_separator] [-S server_name] [-t timeout] [-U username] [-V [security_options]] [-w column_width] [-z localename][-Z security_mechanism](2)执行isql –Usa –Ppasswd –Sservername –i bcpout.sh –o bcpout.txt10、查看用户信息 sp_helpuser11、用户锁定操作sp_locklogin /sp_locklogin username,’lock/unlock’12、查看登录用户sp_displaylogin [loginname]/sp_who13、bcpbcp dbname..tablename out /opt/sybase/test.bcp –Usa –P –Sservername –c ————数据备份bcp dbname..tablename in /opt/sybase/test.bcp –Usa –P –Sservername –c ————数据还原一次性导出所有表(1)建立导出脚本文件(bcpout.sh):use test goselect ‘bcp test..’+name+’out /opt/sybase/test.txt’+’-Usa –P –Sservername -c’from sysobjects where type=’U’U表示为用户表。
sybase 基本语法2009-04-07 12:36:06| 分类:默认分类| 标签:|字号大中小订阅资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。
1、建表格:create table table_name(column1 datatype [not null] [not null primary key],column2 datatype [not null],...)说明:datatype --是资料的格式,详见表。
nut null --可不可以允许资料有空的(尚未有资料填入)。
primary key --是本表的主键。
2、更改表格alter table table_nameadd column column_name datatype说明:增加一个栏位(没有删除某个栏位的语法。
alter table table_nameadd primary key (column_name)说明:更改表得的定义把某个栏位设为主键。
alter table table_namedrop primary key (column_name)说明:把主键的定义删除。
3、建立索引create index index_name on table_name (column_name)说明:对某个表格的栏位建立索引以增加查询时的速度。
4、删除drop table_namedrop index_name二、的资料形态datatypessmallint16 位元的整数。
interger32 位元的整数。
decimal(p,s)p 精确值和s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。
如果没有特别指定,则系统会设为p=5; s=0 。
sybase limit用法
在Sybase数据库中,LIMIT用于控制查询结果的返回行数。
LIMIT 子句通常与SELECT语句一起使用,并指定要返回的行数范围。
语法如下:
```sql
SELECT列名FROM表名WHERE条件ORDER BY列名LIMIT offset, row_count;
```
其中,`offset`指定要跳过的行数,`row_count`指定要返回的行数。
举个例子:
```sql
SELECT * FROM Orders LIMIT 10;
```
上述查询语句将返回Orders表中的前10行数据。
拓展:
在Sybase数据库中,除了LIMIT,还可以使用TOP关键字来实现类似的功能。
TOP关键字将指定要返回的行数。
语法如下:
```sql
SELECT TOP(n)列名FROM表名WHERE条件ORDER BY列名;
```
其中,`n`指定要返回的行数。
举个例子:
```sql
SELECT TOP 10 * FROM Orders;
```
上述查询语句与之前的例子相同,将返回Orders表中的前10行数据。
sybase数据库常用命令及函数数据库常用命令及函数1. bcp lottery_data..c_template_sql out c_template_sql -Usa [-T3276800] -P654321 -Slottery_query [-r/n] [-eerr_c_template_sql ] -t"[@]" -c//此语句是数据表导出语句,中括号表示可以省略的部分。
2. select 'bcp lottery_data..'+name+' out '+name+' -Usdfc -Psdadmini -Slottery_query -c -t"[@]" -eerr_'+namefrom sysobjectswhere type = "U"and name not like "z_bk%"order by name//此语句是在PB中生成语句,这些语句可以导出数据库中的表名。
3. ddlgen -Ujxfc -Pjxadmini -Slottery_sell -Dlottery_data -Osell.sql//此语句生成数据库对象。
详细参数参看第4项,如下:4. Sybase ASE 下用ddlgen导出表结构由 tedabc 在周六, 2009-12-19 21:55 提交脚本内容#exportTable.shexport SYBROOT=/syb64bitexport SYBASE_JRE=/syb64bit/shared/jre142_015>table.ddlcat table.list|while read tabdoddlgen -Usa -P -SSYB_SERV -Duserdb -TU -N${tab} -O tmp.ddlcat tmp.ddl|sed '/^create/,/^go/!d' >>table.ddldonerm tmp.ddlddlgen的其他用法:存储过程ddlgen -Usa -P -SSYB_SERV -Duserdb -TP -N% -O proc.ddl 数据库ddlgen -Usa -P -SSYB_SERV -Duserdb -TDB -Nuserdb -O db.ddl表结构ddlgen -Usa -P -SSYB_SERV -Duserdb -TU -N% -O table.ddl 视图ddlgen -Usa -P -SSYB_SERV -Duserdb -TV -N% -O view.ddl5. exec sp_rename c_st_station_day_tmp , c_st_station_d ay_2006;//修改表名.6. select getdate();//获取数据库日期。
以前的文档,整理时发现,贴出常用的命令集合一、配置命令1、检查CPU使用情况:sp_sysmon "internal","model"internal是监视时间。
例如:"00:01:00"model是模块的名称。
包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp','housekeeper','monaccess','xa ctsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','reco very','diskio','netio'2、检查使用的最大的引擎数(CPU)sp_configure "max online engines"此命令还可以改变sybase系统使用CPU的数量。
注意:改变后需要重新启动sybase才可以使培植生效。
引擎的数量是总的CPU数量减一3、显示引擎号、状态、相关任务数以及引擎启动的时间:select engine, status, affinitied, starttime from sysengines4、显示每个用户的繁忙程度sp_reportstats5、监视配置参数的运行情况sp_monitorconfig "open objects"参数见sp_monitorconfig中的值二、权限命令1、给一个用户授所有的权限grant all to user_name2、给一个用户授对某张表的所有权限grant all on table_name to user_name3、添加一个登录(login)sp_addlogin三、TSQL使用1、统计信息更新select "print '"+name+"'"+char(10)+"update statistics "+name+ char(10) + "go"from sysobjectswhere (type='U' or type='S')order by name2、显示所有触发器的名称、建立时间SELECT USER_NAME(A.uid) 'Table Owner', 'Table Name', 'Trigger Name',CONVERT(char(10),A.crdate,101)+SUBSTRING(CONVERT(char(20),A.c rdate,0),13,7) 'Create Date'FROM sysobjects A,sysobjects BWHERE A.type='TR'AND (A.id=B.instrig OR A.id=B.updtrig OR A.id=B.deltrig)3、关于参照--生成建立已有参照的SQL语句select distinct result_sql='alter table '+rtrim(object_name(tableid))+' add constraint '+rtrim(object_name(constrid))+' foreign key('++col_name(sysreferences.tableid,sysreferences.fokey1)+substring(',',1,sysre ferences.fokey2)+col_name(sysreferences.tableid,sysreferences.fokey2)+substring(',',1,sysre ferences.fokey3)+col_name(sysreferences.tableid,sysreferences.fokey3)+substring(',',1,sysre ferences.fokey4)+col_name(sysreferences.tableid,sysreferences.fokey4)+substring(',',1,sysre ferences.fokey5)+col_name(sysreferences.tableid,sysreferences.fokey5)+substring(',',1,sysre ferences.fokey6)+col_name(sysreferences.tableid,sysreferences.fokey6)+substring(',',1,sysre ferences.fokey7)+col_name(sysreferences.tableid,sysreferences.fokey7)+') '+'references '+rtrim(object_name(reftabid))+'('+col_name(sysreferences.reftabid,sysreferences.refkey1)+substring(',',1,sys references.refkey2)+col_name(sysreferences.reftabid,sysreferences.refkey2)+substring(',',1,sys references.refkey3)+col_name(sysreferences.reftabid,sysreferences.refkey3)+substring(',',1,sys references.refkey4)+col_name(sysreferences.reftabid,sysreferences.refkey4)+substring(',',1,sys references.refkey5)+col_name(sysreferences.reftabid,sysreferences.refkey5)+substring(',',1,sys references.refkey6)+col_name(sysreferences.reftabid,sysreferences.refkey6)+substring(',',1,sys references.refkey7)+col_name(sysreferences.reftabid,sysreferences.refkey7)+')'+char(10)+"go"from sysreferences,syscolumns,sysobjectswhere sysreferences.tableid=sysobjects.idand sysobjects.id=syscolumns.idand sysobjects.type='U'order by go--生成删除参照的SQL语句select distinct result_sql='alter table'+rtrim(object_name(sysreferences.tableid))+' drop constraint'+rtrim(object_name(sysreferences.constrid))+char(10)+"go"from sysreferences,syscolumns,sysobjectswhere sysreferences.tableid=sysobjects.idand sysobjects.id=syscolumns.idand sysobjects.type='U'order by object_name(sysreferences.tableid)go4、关于表级锁--列出所有锁类型为行锁的表select namefrom sysobjectswhere type='U'and sysstat2 & 57344 = 32768and name not like "XT%"order by name--调优的方法有:调整锁类型,调整表的聚簇索引--调整表锁类型为行锁,可以提高对表的并发访问性能,但是同时也会占用更多的系统资源--修改行锁的SQL语句:alter table [table_name] lock [datarows|allpages] ----调整表的聚簇索引在数据插入时,降低对表的最后一页的争用--Sybase规定一张表只能有一个聚簇索引,所以在调整聚簇索引时,要先删除原有的聚簇索引,然后再建立新的--例如将SB_ZSXX表的在ZSXH上聚簇索引修改为在NSRSBH上的聚簇索引.--删除原聚簇索引PK_SB_ZSXXdrop index SB_ZSXX.PK_SB_ZSXXgocreate nonclustered index PK_SB_ZSXX on SB_ZSXX(ZSXH)go-- 建立IDX_SB_ZSXX_NSRSBH的聚簇索引drop index SB_ZSXX.IDX_SB_ZSXX_NSRSBHgocreate clustered index IDX_SB_ZSXX_NSRSBH on SB_ZSXX(NSRSBH)go--以上的索引信息可以用sp_help命令列出5、求出指定字段等于指定值的记录数declare @lc_colname varchar(30)--declare @lc_colvalue /*定义欲求值的变量,随着变量的类型定义不同的值*/--取包含指定列名的表select distinct name=object_name(id) into #AA from syscolumns where name = @lc_colname--生成SQL,求出指定字段等于指定值的记录数select "insert into #BB select tname='"+name+"',cnt=count(*) from"+name+" where " + @lc_colname + "='" + @lc_colvalue + "'"+char(10)+"go"from #AA--运行SQL--检查记录不为零的表,既为求出的表select * from #BB where cnt>06、列出所有无主键的表select name from sysobjectswhere name not in (SELECT object_name(id)FROM sysindexesWHERE indid > 0AND status2 & 2 = 2and status & 2048 = 2048)and type="U"order by name7、关于用户登录--锁定用户select "sp_locklogin "+name+",'lock'"+char(10)+"go"from sysloginswhere name not like "%prim%"and name not like "%maint%"and name not like "sa"order by name--解除锁定的用户select "sp_locklogin "+name+",'unlock'"+char(10)+"go"from sysloginswhere name not like "%prim%"and name not like "%maint%"and name not like "sa"order by name8、为ctais_maint授权select "grant all on "+name+" to ctais_maint"+char(10)+"go" from sysobjects where type="U"9、整理出字段类型有text和image的表--text类型select distinct name=object_name(id)from syscolumnswhere type=35and id in (select id from sysobjects where type="U")order by object_name(id)--image类型select distinct name=object_name(id)from syscolumnswhere type=34and id in (select id from sysobjects where type="U")order by object_name(id)10、修改identity列的最大值--设置包含identity列的表为可直接插入记录set identity_insert [table] [on|off]--插入一个比较大的值insert into [table] values([value])[本帖最后由echoaix 于2006-4-8 22:25 编辑]命令行登录isql -Sservername -Usa -P1.安装字符集charset -Usa -Ppassword -Sservername binary.srt utf8charset -Usa -Ppassword -Sservername nocase.srt utf82.设置字符集sp_configure 'default charac',1733.设置排序sp_helpsortsp_configure 'default sortorder_id',1014.Sybase数据库数据和日志空间不能自动扩展,需要手工管理。