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号,采取相应的解决方法。
(参见第错误!未定义书签。
页“错误!未找到引用源。
”。
)1.1.1.3 dbcc checkalloc作用:检查数据库空间分配。
语法举例:dbcc checkalloc(DATABASE NAME{,fix})。
说明:一般情况下该命令与dbcc checkdb、dbcc checktable、dbcc tablealloc配合使用,以检查数据库的使用情况。
根据命令显示结果进行维护操作,该命令的输出显示一般为以下文本:TABLE: sysindexes OBJID = 2INDID=1 FIRST=24 ROOT=32 SORT=0Data 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 = 1INDID=1 FIRST=1 ROOT=8 SORT=0Data 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=0Indid : 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 –SSYSMIS1> sp_dboption pubdata,’single user’,true2> go1> use pubdata2> go1> checkpoint2> go1> dbcc checkalloc(pubdata,fix)2> go使用该命令时首先要确认没有进程连着pubdata库。
1.1.1.4 dbcc checktable作用:检查表状态。
语法举例:dbcc checktable(TABLENAME)。
说明:一般情况下该命令与dbcc checkdb、dbcc checkalloc、dbcc tablealloc配合使用,该命令的输出显示一般为以下文本:Checking cssfz_sysinfoThe 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 withSystem Administrator (SA) role.1.1.1.5 dbcc tablealloc作用:检查表空间分配。
语法举例:dbcc tablealloc(TABLENAME{,fix})说明:一般情况下该命令与dbcc checkdb、dbcc checkalloc、dbcc checktable配合使用,该命令的输出显示一般为以下文本:INDID=0 FIRST=457 ROOT=457 SORT=0Data level: 0. 1 Data pages allocated and 1 Extents allocated.INDID=2 FIRST=1217 ROOT=1217 SORT=1Indid : 2. 1 Index pages allocated and 1 Extents allocated.TOTAL # of extents = 2Alloc 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 databaseDBCCexecution completed. If DBCC printed error messages, contacta user withSystem Administrator (SA) role.1.1.1.6 sp_who作用:查看进程。
语法举例:sp_who {login name|’id’}说明:一般情况下与sp_lock 结合使用,该命令的显示结果如下:spid status loginame hostname blk dbname cmd6 recv sleep sc10 pc185_1321 0 sc10 AWAITING COMMAND7 recv sleep sc10 pc173_1583 0 sc10 update8 recv sleep sc06 pc166_1121 0 sc06 AWAITING COMMAND 9 recv sleep sc12 pc175_2207 7 sc12 10 recv sleep sc16 pc155_0751 0 sc16 14 recv sleep jt pc161_2430 0 jt AWAITING COMMAND 15 recv sleep office pc165 0 office AWAITING COMMAND (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”、“FETCHCURSOR”、等可以加参数指定查询进程,如sp_who pubdata表示查询所有以pubdata作为loginname的进程;sp_who 8指定查询8号进程。