oracle运行情况总结.docx
- 文档编号:7319537
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:39
- 大小:108.09KB
oracle运行情况总结.docx
《oracle运行情况总结.docx》由会员分享,可在线阅读,更多相关《oracle运行情况总结.docx(39页珍藏版)》请在冰豆网上搜索。
oracle运行情况总结
oracle运行情况总结
netstat–an命令是windows查看端口使用情形
一、查看执行sql还剩多少时刻:
select
b.sql_text,--SQL内容
a.MACHINE,--哪台机器运行的SQL
a.USERNAME,--哪个用户运行的SQL
a.MODULE,--是哪运行方式
c.sofar/totalwork*100,--工作进行了百分之多少
c.elapsed_seconds,--己经用了多少时刻(秒)
c.time_remaining--还剩多少时刻(秒)
fromv$sessiona,v$sqlareab,v$session_longopsc
wherea.sql_hash_value=b.HASH_VALUE
anda.sid=c.sidanda.SERIAL#=c.SERIAL#
监控当前数据库谁在运行什么SQL语句
SELECTosuser,username,sql_text
fromv$sessiona,v$sqltextb
wherea.sql_address=b.address
orderbyaddress,piece;
二、查看数据库文件情形〔大小、是否扩展等〕
SELECTT.TABLESPACE_NAME,D.FILE_NAME,
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS
FROMDBA_TABLESPACEST,DBA_DATA_FILESD
WHERET.TABLESPACE_NAME=D.TABLESPACE_NAME
ORDERBYTABLESPACE_NAME,FILE_NAME;
修改数据库文件sql:
alterdatabasedatafile'D:
\ORACLE\ORA_DATA\DATACORE_0003.ORA'autoextendonnext100Mmaxsize6G;
alterdatabasedatafile'D:
\ORACLE\ORA_DATA\AMLM_0002.ORA'resize2048M;
增加数据库文件sqlL
altertablespacetablespace_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_used"
from(selecttablespace_name,sum(bytes)bytes,sum(maxbytes)maxbytes
fromdba_data_fileswheremaxbytes!
=0
groupbytablespace_name)a,
(selecttablespace_name,sum(bytes)bytes,max(bytes)largest
fromdba_free_space
groupbytablespace_name)b
wherea.tablespace_name=b.tablespace_name
orderby((a.bytes-b.bytes)/a.maxbytes)desc;
SelectSegment_Name,Sum(bytes)/1024/1024FromUser_ExtentsGroupBySegment_Name
那个命令能够查看当前用户下所有表占用的空间大小。
还有在命令行情形下如何将结果放到一个文件里。
1.查看所有表空间大小
SQL>selecttablespace_name,sum(bytes)/1024/1024fromdba_data_files
groupbytablespace_name;
2.差不多使用的表空间大小
SQL>selecttablespace_name,sum(bytes)/1024/1024fromdba_free_space
2groupbytablespace_name;
3.因此使用空间能够如此运算
selecta.tablespace_name,total,free,total-freeusedfrom
(selecttablespace_name,sum(bytes)/1024/1024totalfromdba_data_files
groupbytablespace_name)a,
(selecttablespace_name,sum(bytes)/1024/1024freefromdba_free_space
groupbytablespace_name)b
wherea.tablespace_name=b.tablespace_name;
4.下面这条语句查看所有segment的大小〔相当于查看表使用的大小〕。
SelectSegment_Name,Sum(bytes)/1024/1024FromUser_ExtentsGroupBySegment_Name
5.还有在命令行情形下如何将结果放到一个文件里。
SQL>spoolout.txt
SQL>select*fromv$database;
SQL>spooloff
6、查看表空间中分布的用户信息
select tablespace_name, owner,sum(bytes) from dba_segments
group by tablespace_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_name
havingcount(tablespace_name)>10;
六、em的地址查看及em和isqlplus启动及关闭:
查看地址:
/oracle/oracle10g/sysman/config/emd.properties
默认地址:
:
//$IP:
1158/em/console
Linux下启动、停止EM和isqlplus:
su-oracle
【oracle#】emctlstopdbconsole
【oracle#】emctlstartdbconsole
【oracle#】isqlplusctlsotp;
【oracle#】isqlplusctlstart;
附注:
Q:
在命令行方式下,如何查看CPU、内存的使用情形,网络流量和磁盘I/O?
A:
在命令行方式下,
1.查看CPU使用情形的命令
""每5秒刷新一次,最右侧有CPU的占用率的数据
$vmstat5
""top然后按ShiftP,按照进程处理器占用率排序
$top
2.查看内存使用情形的命令
""用free命令查看内存占用情形
$free
""top然后按ShiftM,按照进程内存占用率排序
$top
3.查看网络流量
""能够用工具iptraf工具
$iptraf-g
""针对某个Interface的网络流量能够通过比较两个时刻网络接口的RX和TX数据来获得
$date;ifconfigeth1
$date;ifconfigeth1
4.查看磁盘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)
SQL>showparametersga;
SQL>ALTERsystemSETsga_max_size=1504mscope=spfile;
SQL>ALTERsystemSETsga_target=1504mscope=spfile;
SQL>shutdownimmediate;
SQL>startup;
SQL>showparameterpga;
SQL>ALTERsystemSETpga_aggregate_target=256m;
内存参数的调整要紧是oracle的sga的调整,sea要紧由共享池、数据缓冲区、日志缓冲区三部分组成。
1、共享池有两部分组成:
共享sql区和数据字典缓冲区。
查看共享sql区得使用率,应该在90%以上,否那么需增加共享池的大小。
select(sum(pins-reloads))/sum(pins)"libcache"fromv$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)"rowcache"fromv$rowcache;
2、数据缓冲区的使用命中率=1-(physicalreads/(dbblockgets+consistentgets)),应该在90%以上,否那么需增加数据缓冲区大小。
selectname,valuefromv$sysstatwherenamein('dbblockgets','consistengets','physicalreads');
3、日志缓冲区失败率=requests/entries,应该接近0,否那么说明日志缓冲区太小,需增加。
selectname,valuefromv$sysstatwherenamein('redoentries','redologspacerequests')
4、刷共享池
altersystemflushshared_pool;---是小块的内存合并成大块的内存,临时复原性能
----------
5、临时表空间的调整技巧如下:
假如即使在稳固的状态下也存在专门多的排序扩展锁〔sortextentpoollatch〕的竞争,应该通过修改临时表空间的defaultstorage字句的next值来增大扩展块的大小。
假如存在专门多的排序扩展锁〔sortextentpoollatch〕的竞争同时这种等待是由于过多的并发的排序造成的,应该增大sort_area_size参数的大小,以便更多的派讯能储存在内存中,建议让扩展块的大小和sort_area_size参数相同
---------------------
6、查看sql语句的解析情形
select*fromv$sysstatwherenamein('parse_time_cpu','parse_time_elapsed','parse_count_hard')
'parse_time_cpu'------>系统服务时刻
'parse_time_elapsed'-------»响应时刻
等待时刻waite_time=parse_time_elapsed-parse_time_cpu
sql语句平均解析等待时刻=waite_time/parse_count_hard
--------------------
7、查看低效率的sql语句优化有助于提高cpu的利用率
selectbuffer_gets,executions,sql_textfromv$sqlarea;
-------------
8、通过v$system_event的latchfree查看数据库冲突情形,假如没有冲突那么latchfree无结果值。
假如冲突太大那么可降低spin_count参数值来排除高的cpu使用率。
八、索引、磁盘及表空间调整
将物理磁盘分多个盘,不同的数据文件放不同的磁盘上课提高速度。
将不同的表放不同的表空间里〔多建几个表空间〕可提高速度。
将索引和表分别放到不同的表空间里可提高速度。
〔事实上确实是I/O调优的一种方式。
〕
九、log_buffer、processes及session调整
SQL>showparameterspfile;--查看是否是spfile启动
SQL>createspfilefrompfile;--假如不是创建并重启数据库;
SQL>altersystemsetprocesses=1000scope=spfile;
SQL>showparameterprocesses;
SQL>shutdownimmediate;
SQL>startup
SQL>showparametersessions;
【注:
sessions是个派生值,由processes的值决定,公式sessions=1.1*process+5】
SQL>altersystemsetlog_buffer=16Mscope=spfile(默认4M)
SQL>showparameterlog_buffer;
问题:
ORA-02095:
无法修改指定的初始化参数
altersystemsetlog_buffer=16777216scope=spfile;〔不能用M直截了当用字节ok〕
环境:
11gR2
altersystemsetsessions=250scope=both。
提示无法修改制定的初始化参数。
altersystemsetsessions=250scope=spfile;
提示系统参数已修改。
这种情形下,重新启动数据库才会生效。
这涉及到oracle中有些参数能够动态修改,有些参数不能动态修改,如何具体哪些参数可动态修改,哪些参数不能够动态修改,通过v$parameter视图能够清晰查看。
SQL>descv$parameter;
名称 是否为空?
类型
---------------------------------------------------------------
NUM NUMBER
NAME VARCHAR2(80)
TYPE NUMBER
VALUE VARCHAR2(4000)
DISPLAY_VALUE VARCHAR2(4000)
ISDEFAULT VARCHAR2(9)
ISSES_MODIFIABLE VARCHAR2(5)
ISSYS_MODIFIABLE VARCHAR2(9)
ISINSTANCE_MODIFIABLE VARCHAR2(5)
ISMODIFIED VARCHAR2(10)
ISADJUSTED VARCHAR2(5)
ISDEPRECATED VARCHAR2(5)
ISBASIC VARCHAR2(5)
DESCRIPTION VARCHAR2(255)
UPDATE_COMMENT VARCHAR2(255)
HASH NUMBER
其中name标示参数名字,isses_modifiable标示是否能够会话级别修改,如何是false,那么不能够动态修改,true那么能够动态修改。
issys_modifiable标示是否系统级别修改,false那么不可修改,true那么可动态修改。
SQL>selectname,isses_modifiable,issys_modifiablefromv$parameterwherename='
sessions';
NAME ISSES ISSYS_MOD
-------------------- ----- ---------
sessions FALSE FALSE
问题:
ORA-12519:
TNS:
noappropriateservicehandlerfound的解决
有时候连得上数据库,有时候又连不上.
可能是数据库上当前的连接数目差不多超过了它能够处理的最大值.
SQL>selectcount(*)fromv$process;--当前连接数
COUNT(*)
63
SQL>selectvaluefromv$parameterwherename='processes'--数据库承诺的最大连接数
VALUE
500
修改最大连接数:
SQL>altersystemsetprocesses=1000scope=spfile;
重启数据库:
SQL>shutdownimmediate;
SQL>startup;
--查看当前有哪些用户正在使用数据
SELECTosuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine
fromv$sessiona,v$sqlareab
wherea.sql_address=b.addressorderbycpu_time/execu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 运行 情况 总结