TIPTOP技术文档 2005/11/04
常用工具命令介绍
命令存放地
$TOP/ds4gl2/bin $TOP/ora/bin /u1/pub/bin
r.f2,r.l2,udm7等 unload,unloadx等 chenv
$TOP/ora/scripts
$TOP/ora/scripts下的常用sql脚本:
1) datatype.sql
作用:列出informix和oracle的数据类型的差异。
适用情形:有时要新增table时,需要我们编写维护sql档,有数据类型不清楚的,可参考此。 使用方法:不用执行,只需vi打开看即可,下面就是它的内容:
/* ---< 资料库栏位型态对照表 >--- ---< 范例 >--- Informix => Oracle Informix => Oracle --------------- ---------- --------- ---------- INTEGER SMALLINT CHAR DECIMAL SERIAL
NUMBER(10) NUMBER(5) VARCHAR2 NUMBER
CHAR(20) VARCHAR2(20) DECIMAL(15,3) NUMBER(15,3)
NUMBER(10,0) DATE DATE
DATE DATETIME YEAR TO SECOND
PS: Informix 的 ROWID 型态为 Integer, Oracle 的是 CHAR(18) */
2)q_index.sql
作用:列出指定table的所有索引(index)。
适用情形:想查看某些表的主键和索引。 使用方法:
SQL> @q_index 请输入欲查询之表格名称: ima_file Index Status Unique? ----------------- --------- -------------------- IMA_01 VALID UNIQUE IMA_03 VALID NONUNIQUE IMA_12 VALID NONUNIQUE Index Order Column ------------------ ------- ----------------------------------
第1页/共7页
TIPTOP技术文档 2005/11/04
IMA_01 1 IMA01 IMA_03 1 IMA75 IMA_03 2 IMA76 IMA_12 1 IMA12 说明:打下@q_index后,脚本会提示你输入表名,输入ima_file
输出分两段,第一段列出ima_file有几个索引,哪些是unique(主键)的,我们可以看出ima_file有ima_01,ima_03,ima_12三个索引;第二段列出每个索引有哪些字段组成,例如索引ima_03有ima75和ima76两个字段组成。
3)q_locktable.sql
作用:列出数据库中有哪些table被锁住。
适用情形:程序非法中断时,有些记录在数据库中还处于加锁状态,列出它们,并用命令释放锁 使用方法:执行此脚本时,需要以system用户身份进入sqlplus,system用户的密码一般为manager
sqlplus system/manager
SQL> @q_locktable
Locked Object Tiptop User Proc Terminal SID SERIAL# MACHINE ------------ ---------- ----- --------- ---- ------- -------- DS.AZB_FILE top 19491 pts/2 7 18447 top88
可见ds的azb_file被锁,要释放该锁,需另外下命令
alter system kill session 'sid,serial#' 在这里,即:
SQL> alter system kill session '7,18447' System altered
当看到system altered就表示成功解锁了
注意:当kill session后,数据会被回滚到lock之前的状态
最后不要忘了退出system用户的身份,因为system用户是不能正常访问ds库的 SQL> quit 或
SQL> conn ds/ds
4) q_session.sql
作用:列出当前有哪些用户和你一同在线。 适用情形:有时想查出谁在跟你捣乱(嘿嘿) 使用方法:
SQL> @q_session SID DB User Tiptop User Proc ID Terminal ------ ----------------- ------------------- ----------- ------------- 30 DS dido 2980 31 DS echo 3017 35 SYSTEM will 3729 例如dido以ds用户登录,will是以system用户登录的
注意:SID列很重要,它是唯一区别每个连接的标志,后面有用。
第2页/共7页
TIPTOP技术文档 2005/11/04
5) q_synonym.sql
作用:列出当前用户的所有同义词。
适用情形:想查出系统中有哪些table是同义词
使用方法:这支脚本只能查看当前用户的所有同义词,若是以ds登录的,一般是看不到同义词的,因 为ds用户不需要引用其它用户的table。
SQL> conn ds1/ds1 Connected. SQL> @q_synonym
Synonym Owner.Table
-------------------- ---------------------------------------- AZP_FILE DS.AZP_FILE 。。。。。 。。。。。。 DIC_FILE DS.DIC_FILE GAB_FILE DS.GAB_FILE GAE_FILE DS.GAE_FILE 。。。。。 。。。。。。 ZAA_FILE DS.ZAA_FILE ZE_FILE DS.ZE_FILE
。。。。。 。。。。。。
切换到ds1后,运行这支脚本,可以看出ds1下的gae_file,ze_file等都是借用ds用户的
6)q_syn.sql
作用:列出所有用户的所有同义词。
适用情形:想查出系统中有哪些table是同义词
使用方法:运行这支脚本需要是system用户,它会列出ds1,ds2,dstest等所有用户的同义词,由
于输出量很大,它的输出同时还会保存在q_syn.out中
7)q_tbsFREE.sql
作用:列出数据库表空间的使用情况。
适用情形:在imp、load整个库的时候还是看一下有多少剩余空间。 使用方法:运行这支脚本需要是system用户
SQL> conn system/manager Connected. SQL> @q_tbsFREE
Execute datetime ---------------- 2005/11/07 14:11
TABLESPACE_NAME BYTES_USED BYTES_FREE LARGEST PERCENT_USED --------------------------- ---------- ---------- ---------- ------------ SYSTEM 262144000 48168960 48168960 81.63 TEMPTABS 104857600 57409536 57344000 45.25
第3页/共7页
TIPTOP技术文档 2005/11/04
DBS1 2097152000 1410662400 1410269184 32.73 UNDOTBS1 209715200 208338944 200605696 .66 TOOLS 10485760 10420224 10420224 .63 INDX 26214400 26148864 26148864 .25 USERS 26214400 26148864 26148864 .25 我们最关心的就是DBS1表空间的使用率,我们的各个库(ds,ds1,ds2,dstest等)都存在这个表空间中,从上面可以看出DBS1已经使用了32.73%
8) q_tabPRI.sql
作用:列出数据库中所有table的访问权限。 适用情形:查看有哪些table少赋权限的
使用方法:运行这支脚本需要是system用户,输出保存在q_tabPRI.out中
9) q_tabPRIerr.sql
作用:列出数据库中不是开放所有权限 (insert,delete,update,index,select)的表。 适用情形:查看有哪些table少赋权限的
使用方法:运行这支脚本需要是system用户,输出保存在q_tabPRIerr.out中
10)q_users.sql
作用:列出数据库中有哪些用户(即我们常说的有哪些库)。 适用情形:查看建了哪些库
使用方法:运行这支脚本需要是system用户
SQL> conn system/manager SQL> @q_users
Execute datetime ---------------- 2005/11/07 15:11
USERNAME USER_ID DEFAULT_TABLESPACE
--------------------------- -------- ------------------------------ SYS 0 SYSTEM SYSTEM DBSNMP DS DS1
5 SYSTEM 19 SYSTEM 23 DBS1 25 DBS1 27 DBS1 28 DBS1 26 DBS1 24 DBS1 11 SYSTEM 21 SYSTEM
DS_REPORT DS_REPORT1 DS2 DSTEST OUTLN
WMSYS
11)q_sqlOPENCS
第4页/共7页
TIPTOP技术文档 2005/11/04
作用:列出数据库中已开了哪些游标。
适用情形:查看有哪些记录是否正在被他人使用
使用方法:运行这支脚本需要是system用户,它会列出open那些cursor的sql语句
SQL> conn system/manager Connected.
SQL> @q_sqlOPENCS
Execute datetime ---------------- 2005/11/07 15:11
USERNAME SQL_TEXT
------------------------------------------------------------------------- DS(30) select gaj03,gaj04,gaj05,gaj06 from gaj_file where gaj01 = DS(30) select gay01, gay03 from gay_file where gay02 = :p1
DS(31) select zaa09, zaa02,zaa03,zaa14,zaa05,zaa06,zaa15,zaa07,zaa0 SYSTEM(9) select nvl(USERNAME,'ORACLE PROC')||'('||s.SID||')' username USERNAME后括号里的数字是这个用户登录的SID,通过这个SID再结合q_session.sql这支脚本就可查出真正的OS用户,如30是dido用户
12) q_sqlRUNCS
作用:列出数据库中哪些游标正在运行。
适用情形:查看有哪些记录是否正在被他人使用
使用方法:运行这支脚本需要是system用户,它会列出running那些cursor的sql语句
SQL> conn system/manager Connected.
SQL> @q_sqlRUNCS
Execute datetime ----------------
2005/11/07 16:11
USERNAME SQL_TEXT
------------- ------------------------------------------------------ DS(17) select COUNT(*) from gav_file where gav01 = :p1 AND gav08 DS(17) select COUNT(*) from gav_file where gav01 = :p1 AND gav08 DS(19) select COUNT(*) from gav_file where gav01 = :p1 AND gav08 DS(19) select COUNT(*) from gav_file where gav01 = :p1 AND gav08 DS(22) select gae04 from gae_file where gae01 = 'cl_prt_m' AND g
$TOP/ora/bin下常用工具命令
convert
第5页/共7页