资源描述
Sybase常用命令总结
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 pubdata
Checking sysobjects
显示每张表所占数据页个数和记录条数。
The total number of data pages in this table is 28.
Table has 311 data rows.
Checking sysindexes
The total number of data pages in this table is 26.
Table has 264 data rows.
……
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号,采取相应的解决方法。(参见第18页“Error! Reference source not found.”。)
1.1.1.3 dbcc checkalloc
作用:检查数据库空间分配。
语法举例:dbcc checkalloc(DATABASE NAME{,fix})。
说明:一般情况下该命令与dbcc checkdb、dbcc checktable、dbcc tablealloc配合使用,以检查数据库的使用情况。根据命令显示结果进行维护操作,该命令的输出显示一般为以下文本:
Checking pubdata
Database 'pubdata' is not in single user mode - may find spurious allocation problems due to transactions in progress.
***************************************************************
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
***************************************************************
TABLE: sysobjects OBJID = 1
INDID=1 FIRST=1 ROOT=8 SORT=0
Data level: 1. 28 Data pages allocated and 4 Extents allocated.
Indid : 1. 1 Index pages allocated and 1 Extents allocated.
INDID=2 FIRST=18 ROOT=16 SORT=0
Indid : 2. 9 Index pages allocated and 2 Extents allocated.
TOTAL # of extents = 7
……
Processed 263 entries in the sysindexes for dbid 5.
Alloc page 0 (# of extent=32 used pages=109 ref pages=101)
Alloc page 256 (# of extent=32 used pages=91 ref pages=89)
Alloc page 512 (# of extent=32 used pages=95 ref pages=95)
Alloc page 768 (# of extent=32 used pages=118 ref pages=118)
Alloc page 1024 (# of extent=32 used pages=116 ref pages=116)
……
Total (# of extent=850 used pages=3040 ref pages=3014) in this database DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role.
该命令的fix选项的作用是让数据库进行自动修复,但有一条件:必须将要修复的数据库状态设置为Single User(单用户模式),具体用法如下:
isql –Usa –P –SSYSMIS
1> sp_dboption pubdata,’single user’,true
2> go
1> use pubdata
2> go
1> checkpoint
2> go
1> dbcc checkalloc(pubdata,fix)
2> go
使用该命令时首先要确认没有进程连着pubdata库。
1.1.1.4 dbcc checktable
作用:检查表状态。
语法举例:dbcc checktable(TABLENAME)。
说明:一般情况下该命令与dbcc checkdb、dbcc checkalloc、dbcc tablealloc配合使用,该命令的输出显示一般为以下文本:
Checking cssfz_sysinfo
The total number of data pages in this table is 1.
Table has 29 data rows.
DBCC execution completed. If DBCC printed error messages, contact a user with
System Administrator (SA) role.
1.1.1.5 dbcc tablealloc
作用:检查表空间分配。
语法举例:dbcc tablealloc(TABLENAME{,fix})
说明:一般情况下该命令与dbcc checkdb、dbcc checkalloc、dbcc checktable配合使用,该命令的输出显示一般为以下文本:
The default report option of OPTIMIZED is used for this run.
The default fix option of FIX is used for this run.
缺省选项为fix
***************************************************************
TABLE: cssfz_sysinfo OBJID = 532196946
INDID=0 FIRST=457 ROOT=457 SORT=0
Data level: 0. 1 Data pages allocated and 1 Extents allocated.
INDID=2 FIRST=1217 ROOT=1217 SORT=1
Indid : 2. 1 Index pages allocated and 1 Extents allocated.
TOTAL # of extents = 2
Alloc page 256 (# of extent=1 used pages=2 ref pages=2)
Alloc page 1024 (# of extent=1 used pages=2 ref pages=2)
Total (# of extent=2 used pages=4 ref pages=4) in this database
DBCC execution completed. If DBCC printed error messages, contact a user with
System Administrator (SA) role.
1.1.1.6 sp_who
作用:查看进程。
语法举例:sp_who {login name|’id’}
说明:一般情况下与sp_lock结合使用,该命令的显示结果如下:
spid status loginame hostname blk dbname cmd
------ ------------ ------------ ---------- ----- ---------- ---------- ---------------------------- ---------
1 sleeping NULL 0 master NETWORK HANDLER
2 sleeping NULL 0 master MIRROR HANDLER
系统进程
3 sleeping NULL 0 master CHECKPOINT SLEEP
4 recv sleep NULL SYSPOS 0 master SITE HANDLER
5 recv sleep jt pc164_0910 0 jt AWAITING COMMAND
6 recv sleep sc10 pc185_1321 0 sc10 AWAITING COMMAND
7 recv sleep sc10 pc173_1583 0 sc10 update
与8号进程相对应
8 recv sleep sc06 pc166_1121 0 sc06 AWAITING COMMAND
9 recv sleep sc12 pc175_2207 7 sc12 AWAITING COMMAND
10 recv sleep sc16 pc155_0751 0 sc16 AWAITING COMMAND
14 recv sleep jt pc161_2430 0 jt AWAITING COMMAND
15 recv sleep office pc165 0 office AWAITING COMMAND
16 recv sleep pubdata pc173_???? 0 pubdata AWAITING COMMAND
19 recv sleep pubdata *pc166_112 0 pubdata AWAITING COMMAND
当前进程(本进程)
21 recv sleep pubdata *pc155_075 0 pubdata AWAITING COMMAND
25 running sa RD98 0 master SELECT
(16 rows affected, return status = 0)
spid:进程号;
status:状态,一般为“recv sleep”、“sleeping”、“running”、
“runnable”等。
Loginname:登录名。
Hostname:主机名,此项目的显示分几种类型:若不是通过应用程
序联接数据库,则显示机器名(如25号进程“RD98”);
若是通过应用程序联接数据库的,则显示如下字符串:
“机器名_工号”(如8号进程“pc166_1121”,像16号进
程显示????,说明应用程序版本不对,需要从服务器上下
载新程序),这样能直观的知道哪个用户在哪台机器上操
作;前面有“*”号的,说明某一个操作需要2个数据库
联接。
Blk:堵塞进程,若显示非0值,则说明该进程被其它进程堵塞,直到
那个进程释放资源后才能继续进行,如9号进程被7号进程堵塞。
Dbname:正在使用的数据库名
Cmd:执行的命令名,一般为“AWAITING COMMAND”、“INSERT”、
“DELETE”、“UPDATE”、“OPEN CURSOR”、“FETCH
CURSOR”、等
可以加参数指定查询进程,如sp_who pubdata表示查询所有以pubdata作为loginname的进程;sp_who 8指定查询8号进程。
1.1.1.7 sp_lock
作用:查看进程加锁情况。
语法举例:sp_lock {id}
说明:该命令的显示结果如下:
The class column will display the cursor name for locks associated with a cursor
for the current user and the cursor id for other users.
spid locktype table_id page dbname
class
------ ---------------------------- ----------- ----------- ---------------
------------------------------
25 Sh_intent 432004570 0 master
Non Cursor Lock
(1 row affected, return status = 0)
spid:进程号。
Locktype:锁类型,请参阅《SYBASE-System Administration Guide》。
Table_id:表号。若要知道表名,可以使用Sybase提供的函数:
Object_name(tableid),反之根据表名得到表号则使用另
一函数:Object_id(tablename)。
Page:数据页。
Dbname:数据库名。
Class:请参阅《SYBASE-System Administration Guide》。
1.1.1.8 sp_monitor
作用:查看系统运行情况。
语法举例:sp_monitor
说明:该命令的显示结果如下:
last_run current_run seconds
-------------------------- -------------------------- -----------
Dec 15 1999 3:37PM Dec 15 1999 3:38PM 30
cpu_busy io_busy idle
------------------------- ------------------------- -------------------------
3652(0)-0% 2775(0)-0% 48725(29)-96%
packets_received packets_sent packet_errors
------------------------- ------------------------- -------------------------
154617(167) 830344(175) 17(0)
total_read total_write total_errors connections
------------------- ------------------- ------------------- ------------------
1022887(39) 173533(23) 0(0) 3706(1)
(return status = 0)
请注意最重要的三个指标cpu_busy、io_busy、idle,idle所占比例越大,系统越空闲,运行比较正常,否则需注意cpu和io的情况。
1.1.1.9 sp_helpdb
作用:查看数据库信息。
语法举例:sp_helpdb pubdata;POS-MIS V2.0以前为baida。
说明:该命令的显示结果如下:
name db_size owner dbid created status
-------------------- ------------- ------------------------ ------ ---------------------------------
pubdata 700.0 MB pubdata 5 Oct 08, 1999 select into/bulkcopy
device_fragments size usage free kbytes
------------------------------ ------------- -------------------------- -----------
pubdata 600.0 MB data only 344720
publog 100.0 MB log only 77472
(return status = 0)
几点说明:
1、 便于重建数据库,在重建数据库前应养成习惯,先用该命令检查所有数据库的结构情况。
2、 size的值是由create database命令确定的。
3、 status的值是由sp_dboption命令确定的。
1.1.1.10 sp_help
作用:查看表结构。
语法举例:sp_help TABLENAME
说明:该命令可以查看表的SQL定义,其产生的文本可以用于建表。如sp_help cssyw_spjbxx的显示结果如下:
Name Owner Type
------------------------------ ------------------------------ ----------
cssyw_spjbxx dbo user table
Data_located_on_segment When_created
------------------------------ --------------------------
default Oct 9 1999 4:26AM
Column_name
Type
Length
Prec
Scale
Nulls
Default_
name
Rule_
name
Spbm
Char
13
NULL
NULL
0
NULL
NULL
Spmc
Varchar
40
NULL
NULL
1
NULL
NULL
Ggxh
Varchar
40
NULL
NULL
1
NULL
NULL
Spjldw
Varchar
8
NULL
NULL
0
NULL
NULL
Spdj
Varchar
10
NULL
NULL
1
NULL
NULL
Spcd
Varchar
20
NULL
NULL
0
NULL
NULL
Sccjbm
Char
6
NULL
NULL
1
NULL
NULL
Mjxs
Numeric
6
12
4
1
NULL
NULL
Blxs
Numeric
6
12
4
1
NULL
NULL
Jycsrq
Datetime
8
NULL
NULL
1
NULL
NULL
Plu
Char
13
NULL
NULL
0
NULL
NULL
Jyfs
Char
1
NULL
NULL
0
NULL
NULL
Lsj
Numeric
6
12
2
1
NULL
NULL
Zdlsj
Numeric
6
12
2
0
NULL
NULL
Csbm
Char
6
NULL
NULL
0
NULL
NULL
Bmbm
Char
10
NULL
NULL
0
NULL
NULL
Bhsjj
Numeric
6
12
4
0
NULL
NULL
Sl
Numeric
3
4
2
0
NULL
NULL
Hdbz
Char
1
NULL
NULL
0
NULL
NULL
Hjh
Varchar
6
NULL
NULL
1
NULL
NULL
Pp
Varchar
40
NULL
NULL
1
NULL
NULL
Zjm
Varchar
10
NULL
NULL
1
NULL
NULL
Bzqts
Int
4
NULL
NULL
0
cssyw_spjb_bzqts_1241055457
NULL
Bzw
Int
4
NULL
NULL
0
cssyw_spjb_bzw_1273055571
NULL
Lbbm
Char
6
NULL
NULL
1
NULL
NULL
Hh
Varchar
20
NULL
NULL
1
NULL
NULL
index_name index_description index_keys
-------------------- -----------------------------------------------------------------------------------------
spjbxx_spbm clustered, unique located on default spbm
spjbxx_plu nonclustered located on default plu
spjbxx_bmbm nonclustered located on default bmbm
No defined keys for this object.
(3 rows affected, return status = 0)
1.1.1.11 sp_helptext
作用:查看对象的SQL描述。
语法举例:sp_helptext OBJECTNAME。
说明:OBJECT可以是视图或存储过程,如sp_helptext cssyw_spjbxx的显示结果如下:
create view cssyw_spjbxx
as
select * from pubdata..cssyw_spjbxx where bmbm like '51%'
当SQL文本资料丢失或不全时,该命令非常有用,它可以帮助用户从数据库中将所有OBJECT的SQL描述整理成文本。
1.1.1.12 sp_depends
作用:查看与表相关的Objects。
语法举例:sp_depends TABLENAME。
说明:如sp_depends cssyw_spjbxx显示结果如下:
Things inside the current database that reference the object.
Object
Type
dbo.p_fx_dpxsqk
stored procedure
dbo.p_fx_lbxsphb
stored procedure
dbo.p_fx_rysd
stored procedure
dbo.p_fx_splbphb
stored procedure
dbo.p_fx_spsjdxsqk
stored procedure
dbo.p_fx_spxsml
stored procedure
dbo.p_fx_spxsphb
stored procedure
dbo.p_fx_spxsphb_xxqk
stored procedure
dbo.p_fx_xstj
stored procedure
dbo.p_fz_getspjbxx
stored procedure
dbo.p_xs_gen_bmrljb
stored procedure
dbo.p_xs_gen_sprljb
stored procedure
dbo.p_xs_gen_wtdxrljb
stored procedure
dbo.p_xs_lscx
stored procedure
dbo.tr_spcxb_d
Trigger
dbo.tr_spcxb_I
Trigger
dbo.tr_spjbxx_delete
Trigger
dbo.tr_spjbxx_insert
Trigger
dbo.tr_spjbxx_update
Trigger
dbo.tr_spjldw_d
Trigger
dbo.tr_spjldw_I
Trigger
(return status = 0)
1.1.1.13 kill
作用:终止进程。
语法举例:kill [id]。
说明:当发现某进程工作不正常,可以人为将其终止。一般用sp_who命令检查有问题的进程,当发现进程是空闲或独占资源而影响其它进程的,则应执行kill命令。
1.1.1.14 sp_dboption
作用:设置数据库选项。
语法举例:sp_dboption [action],[true | false]
说明:可以根据实际需要,对数据库进行设置,以达到某些功能。该命令可以不带任何参数,此时显示数据库所有可设的选项,如下所示:
1> sp_dboption
2> go
Settable database options.
database_options
---------------------------------------------
abort tran on log full
allow nulls by default
auto identity
dbo use only
ddl in tran
identity in nonunique index
no chkpt on recovery
no free space acctg
read only
select into/bulkcopy
single user
trunc log on chkpt
trunc. log on chkpt.
1.1.1.15 sp_syntax
作用:语法帮助。
语法举例:sp_syntax [command]
说明:当SQL命令记不住时,可以用该命令得到帮助。
1.1.1.16 dump tranaction
作用:清理日志。
语法举例:dump tran{action} DBNAME [with truncate_only|no_log] 。
说明:当用sp_helpdb检查数据库日志的使用情况,发现空间不够用或用sp_who发现有cmd显示“log suspend”的进程时,需要用该命令清理日志,以释放空间,使数据库正常运行。一般情况下请使用truncate_only选项,它将不活动的日志清除,no_log选项将清除所有的日志,除非是SYBASE数据库系统提示使用no_log选项,否则请不要使用该选项。如果出现”log suspend”,一般情况下用该命令无法清除日志,只能重启SQL SERVER后再执行该命令才会有效。
更严重的问题请参阅第20页“Error! Reference source not found.”。
1.1.1.17 dump database
作用:数据库备份。
语法举例:dump database DBNAME to ‘FILENAME’。
说明:FILENAME 是带全路径的文件名,如想将数据库pubdata做一个备份,则可以写如下命令:
1> dump database pubdata to ‘/u/dump/pubdata.dmp’
2> go
文件名中
展开阅读全文