netstat-tln命令是Linux查看端口使用情况netstat–an命令是windows查看端口使用情况一、查看执行sql还剩多少时间:selectb.sql_text,--SQL内容a.MACHINE,--哪台机器运行的SQLa.USERNAME,--哪个用户运行的SQLa.MODULE,--是哪运行方式c.sofar/totalwork*100,--工作进行了百分之多少c.elapsed_seconds,--己经用了多少时间(秒)c.time_remaining--还剩多少时间(秒)fromv$sessiona,v$sqlareab,v$session_longopscwherea.sql_hash_value=b.HASH_VALUEanda.sid=c.sidanda.SERIAL#=c.SERIAL#监控当前数据库谁在运行什么SQL语句SELECTosuser,username,sql_textfromv$sessiona,v$sqltextbwherea.sql_address=b.addressorderbyaddress,piece;二、查看数据库文件情况(大小、是否扩展等)SELECTT.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUSFROMDBA_TABLESPACEST,DBA_DATA_FILESDWHERET.TABLESPACE_NAME=D.TABLESPACE_NAMEORDERBYTABLESPACE_NAME,FILE_NAME;修改数据库文件sql:alterdatabasedatafile'D:\ORACLE\ORA_DATA\DATACORE_0003.ORA'autoextendonnext100Mmaxsize6G;alterdatabasedatafile'D:\ORACLE\ORA_DATA\AMLM_0002.ORA'resize2048M;增加数据库文件sqlLaltertablespacetablespace_nameadddatafile'D:\ORACLE\ORA_DATA\AMLM_0002.ORA'size1024M;三、查看表空间使用情况及版本查看oracle版本:SELECT*FROMPRODUCT_COMPONENT_VERSION;查看Oracle数据库表空间的占有率selecta.tablespace_name,round((a.maxbytes/1024/1024),2)sumMB,round((a.bytes/1024/1024),2)datafileMB,round(((a.bytes-b.bytes)/1024/1024),2)usedMB,round(((a.maxbytes-a.bytes+b.bytes)/1024/1024),2)freeMB,round(((a.bytes-b.bytes)/a.maxbytes)*100,2)percent_usedfrom(selecttablespace_name,sum(bytes)bytes,sum(maxbytes)maxbytesfromdba_data_fileswheremaxbytes!=0groupbytablespace_name)a,(selecttablespace_name,sum(bytes)bytes,max(bytes)largestfromdba_free_spacegroupbytablespace_name)bwherea.tablespace_name=b.tablespace_nameorderby((a.bytes-b.bytes)/a.maxbytes)desc;SelectSegment_Name,Sum(bytes)/1024/1024FromUser_ExtentsGroupBySegment_Name这个命令可以查看当前用户下所有表占用的空间大小。还有在命令行情况下如何将结果放到一个文件里。1.查看所有表空间大小SQLselecttablespace_name,sum(bytes)/1024/1024fromdba_data_filesgroupbytablespace_name;2.已经使用的表空间大小SQLselecttablespace_name,sum(bytes)/1024/1024fromdba_free_space2groupbytablespace_name;3.所以使用空间可以这样计算selecta.tablespace_name,total,free,total-freeusedfrom(selecttablespace_name,sum(bytes)/1024/1024totalfromdba_data_filesgroupbytablespace_name)a,(selecttablespace_name,sum(bytes)/1024/1024freefromdba_free_spacegroupbytablespace_name)bwherea.tablespace_name=b.tablespace_name;4.下面这条语句查看所有segment的大小(相当于查看表使用的大小)。SelectSegment_Name,Sum(bytes)/1024/1024FromUser_ExtentsGroupBySegment_Name5.还有在命令行情况下如何将结果放到一个文件里。SQLspoolout.txtSQLselect*fromv$database;SQLspooloff6、查看表空间中分布的用户信息selecttablespace_name,owner,sum(bytes)fromdba_segmentsgroupbytablespace_name,owner四、查看redolog文件及切换情况,通常切换时间为15~30分钟select*fromv$logfile;select*fromv$log;修改redolog文件大小:altersystemcheckpoint;altersystemswitchlogfile;alterdatabasedroplogfilegroup3;alterdatabaseaddlogfilegroup3('D:\ORACLE\PRODUCT\10.2.0\ORADATA\UPRR\REDO03.LOG')size200Mreuse;五、碎片程度selecttablespace_name,count(tablespace_name)fromdba_free_spacegroupbytablespace_namehavingcount(tablespace_name)10;六、em的地址查看及em和isqlplus启动及关闭:查看地址:/oracle/oracle10g/sysman/config/emd.properties默认地址:http://$IP:1158/em/consoleLinux下启动、停止EM和isqlplus:su-oracle【oracle#】emctlstopdbconsole【oracle#】emctlstartdbconsole【oracle#】isqlplusctlsotp;【oracle#】isqlplusctlstart;附注:Q:在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?A:在命令行方式下,1.查看CPU使用情况的命令每5秒刷新一次,最右侧有CPU的占用率的数据$vmstat5top然后按ShiftP,按照进程处理器占用率排序$top2.查看内存使用情况的命令用free命令查看内存占用情况$freetop然后按ShiftM,按照进程内存占用率排序$top3.查看网络流量能够用工具iptraf工具$iptraf-g针对某个Interface的网络流量能够通过比较两个时间网络接口的RX和TX数据来获得$date;ifconfigeth1$date;ifconfigeth14.查看磁盘i/o用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次$iostat-d-x/dev/sdc32用vmstat查看io部分的信息$vmstat2七、内存参数调整64位linux,64位oracle10g,64位websphere6.1,;服务器内存8G的情况下配置:ALTERSYSTEMSETopen_cursors=3000SCOPE=SPFILE;ALTERSYSTEMSETpga_aggregate_target=256MSCOPE=SPFILE;ALTERSYSTEMSETdb_cache_size=50MSCOPE=SPFILE;ALTERSYSTEMSETdb_file_multiblock_read_count=256SCOPE=SPFILE;ALTERSYSTEMSETjava_pool_size=1024MSCOPE=SPFILE;ALTERSYSTEMSETlarge_pool_size=768MSCOPE=SPFILE;ALTERSYSTEMSETsga_max_size=3GCOMMENT='internallyadjusted'SCOPE=SPFILE;ALTERSYSTEMSETshared_pool_size=1024MSCOPE=SPFILE;--ALTERSYSTEMSETsort_area_size=1000MSCOPE=SPFILE;--ALTERSYSTEMSETundo_retention=10800SCOPE=SPFILE;------------------------------------------------------------------------------------------------------------------------------在32位的操作系统中,Oracle最大可用内存为1.75g,也就是说SGA+PGA=1.75g,超过这一限制的内存将不会被Oracle用到(测试及分配1400M、300M)SQLshowparametersga;SQLALTERsystemSETsga_max_size=1504mscope=spfile;SQLALTERsystemSETsga_target=1504mscope=spfile;SQLshutdownimmediate;SQLstartup;SQLshowparameterpga;SQLALTERsystemSETpga_aggregate_target=256m;内存参数的调整主要是oracle的sga的调整,sea主要由共享池、数据缓冲区、日志缓冲区三部分组成。1、共享池有两部分组成:共享sql区和数据字典缓冲区。查看共享sql区得使用率,应该在90%以上,否则需增加共享池的大小。select(sum(pins-reloads))/sum(pins)libcachefromv$librarycache;selectsum(pins)请求存取数,sum(reloads)不命中数,sum(reloads)/sum(pins)fromv$librarycache;其中,pins,显示在库高速缓存中执行的次数;reload,显示在执行阶段库高速缓存不命中的数目,一般sum(reloads)/sum(pins)的值应接近于零.如果大于1%就应该增加shared_pool_size的值,来提高数据字典高速缓存可用的内存数量,减少不命中数.查看数据字典缓冲区的使用率,应该在90%以上,否则需要增加共享池的大小。select(sum(gets-getmisses-usage-fixed))/sum(gets)rowcachefromv$rowcache;2、数