oracle運(yùn)行情況總結(jié)_第1頁
oracle運(yùn)行情況總結(jié)_第2頁
oracle運(yùn)行情況總結(jié)_第3頁
oracle運(yùn)行情況總結(jié)_第4頁
oracle運(yùn)行情況總結(jié)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、netstat -tln 命令是Linux查看端口使用情況netstat an命令是windows查看端口使用情況一、查看執(zhí)行sql還剩多少時(shí)間:select b.sql_text, -SQL內(nèi)容a.MACHINE, -哪臺(tái)機(jī)器運(yùn)行的SQLa.USERNAME,-哪個(gè)用戶運(yùn)行的SQLa.MODULE,-是哪運(yùn)行方式c.sofar/totalwork*100,-工作進(jìn)行了百分之多少 c.elapsed_seconds, -己經(jīng)用了多少時(shí)間(秒)c.time_remaining -還剩多少時(shí)間(秒)from v$session a, v$sqlarea b,v$session_longops cw

2、here a.sql_hash_value=b.HASH_VALUEand a.sid=c.sid and a.SERIAL#=c.SERIAL#監(jiān)控當(dāng)前數(shù)據(jù)庫誰在運(yùn)行什么SQL語句 SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address = b.address order by address, piece;二、查看數(shù)據(jù)庫文件情況(大小、是否擴(kuò)展等)SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAX

3、BYTES,D.STATUSFROM DBA_TABLESPACES T,DBA_DATA_FILES DWHERE T.TABLESPACE_NAME =D.TABLESPACE_NAMEORDER BY TABLESPACE_NAME,FILE_NAME;修改數(shù)據(jù)庫文件sql:alter database datafile ' D:ORACLEORA_DATADATACORE_0003.ORA' autoextend on next 100M maxsize 6G;alter database datafile 'D:ORACLEORA_DATAAMLM_0002.

4、ORA' resize 2048M;增加數(shù)據(jù)庫文件sqlLalter tablespace tablespace_name add datafile 'D:ORACLEORA_DATAAMLM_0002.ORA' size 1024M;三、查看表空間使用情況及版本查看oracle版本:SELECT * FROM PRODUCT_COMPONENT_VERSION;查看Oracle數(shù)據(jù)庫表空間的占有率select a.tablespace_name,       round(a.maxbytes / 1024 /

5、 1024), 2) "sum MB",       round(a.bytes / 1024 / 1024), 2) "datafile MB",       round(a.bytes - b.bytes) / 1024 / 1024), 2) "used MB",       round( (a.maxbytes-a.bytes+b.bytes) /

6、1024 / 1024), 2) "free MB",       round(a.bytes - b.bytes) / a.maxbytes) * 100, 2) "percent_used"  from (select tablespace_name, sum(bytes) bytes,sum(maxbytes) maxbytes          from dba_data_files wh

7、ere maxbytes!=0         group by tablespace_name) a,       (select tablespace_name, sum(bytes) bytes, max(bytes) largest          from dba_free_space      

8、   group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by (a.bytes - b.bytes) / a.maxbytes) desc;Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name這個(gè)命令可以查看當(dāng)前用戶下所有表占用的空間大小。還有在命令行情況下如何將結(jié)果放到一個(gè)文件里。1. 查看所有表空間大小SQL> select tabl

9、espace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;2. 已經(jīng)使用的表空間大小SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space 2 group by tablespace_name;3. 所以使用空間可以這樣計(jì)算select a.tablespace_name,total,free,total-free used from ( select tablespace_name,sum(bytes)/10

10、24/1024 total from dba_data_files group by tablespace_name) a, ( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_name;4. 下面這條語句查看所有segment的大小(相當(dāng)于查看表使用的大?。?。Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents G

11、roup By Segment_Name5. 還有在命令行情況下如何將結(jié)果放到一個(gè)文件里。SQL> spool out.txtSQL> select * from v$database;SQL> spool off6、查看表空間中分布的用戶信息select tablespace_name, owner,sum(bytes) from dba_segments   group by tablespace_name, owner   四、查看redo log文件

12、及切換情況,通常切換時(shí)間為1530分鐘select * from v$logfile;select * from v$log;修改redo log文件大?。篴lter system checkpoint;alter system switch logfile;alter database drop logfile group 3;alter database add logfile group 3 ('D:ORACLEPRODUCT10.2.0ORADATAUPRRREDO03.LOG') size 200M reuse;五、碎片程度 select tablespace_nam

13、e,count(tablespace_name) from dba_free_space group by tablespace_name having count(tablespace_name)> 10; 六、em的地址查看及em和isqlplus啟動(dòng)及關(guān)閉:查看地址:/oracle/oracle10g/sysman/config/ perties默認(rèn)地址:http:/$IP:1158/em/consoleLinux下啟動(dòng)、停止EM和isqlplus:su - oracle【oracle# 】emctl stop dbconsole【oracle# 】emctl sta

14、rt dbconsole【oracle# 】isqlplusctl sotp;【oracle# 】isqlplusctl start;附注: Q: 在命令行方式下,如何查看CPU、內(nèi)存的使用情況,網(wǎng)絡(luò)流量和磁盤I/O? A: 在命令行方式下, 1. 查看CPU使用情況的命令 ""每5秒刷新一次,最右側(cè)有CPU的占用率的數(shù)據(jù) $ vmstat 5 ""top 然后按Shift P,按照進(jìn)程處理器占用率排序 $ top 2. 查看內(nèi)存使用情況的命令 ""用free命令查看內(nèi)存占用情況 $ free ""top 然后按S

15、hift M, 按照進(jìn)程內(nèi)存占用率排序 $ top 3. 查看網(wǎng)絡(luò)流量 ""能夠用工具iptraf工具 $ iptraf -g ""針對(duì)某個(gè)Interface的網(wǎng)絡(luò)流量能夠通過比較兩個(gè)時(shí)間網(wǎng)絡(luò)接口的RX和TX數(shù)據(jù)來獲得 $ date; ifconfig eth1 $ date; ifconfig eth1 4. 查看磁盤i/o ""用iostat查看磁盤/dev/sdc3的磁盤i/o情況,每兩秒刷新一次 $ iostat -d -x /dev/sdc3 2 ""用vmstat查看io部分的信息 $ vmstat 2

16、七、內(nèi)存參數(shù)調(diào)整64位linux,64位oracle10g,64位websphere6.1,;服務(wù)器內(nèi)存8G的情況下配置:ALTER SYSTEM SET open_cursors = 3000 SCOPE=SPFILE;ALTER SYSTEM SET pga_aggregate_target = 256M SCOPE=SPFILE;ALTER SYSTEM SET db_cache_size = 50M SCOPE=SPFILE;ALTER SYSTEM SET db_file_multiblock_read_count = 256 SCOPE=SPFILE;ALTER SYSTEM SE

17、T java_pool_size = 1024M SCOPE=SPFILE;ALTER SYSTEM SET large_pool_size = 768M SCOPE=SPFILE;ALTER SYSTEM SET sga_max_size = 3G COMMENT='internally adjusted' SCOPE=SPFILE;ALTER SYSTEM SET shared_pool_size = 1024M SCOPE=SPFILE;-ALTER SYSTEM SET sort_area_size = 1000M SCOPE=SPFILE;-ALTER SYSTEM

18、SET undo_retention = 10800 SCOPE=SPFILE;-在32位的操作系統(tǒng)中,Oracle最大可用內(nèi)存為1.75g,也就是說SGA+PGA<=1.75g,超過這一限制的內(nèi)存將不會(huì)被Oracle用到(測試及分配1400M、300M)SQL>show parameter sga;SQL>ALTER system SET sga_max_size=1504m scope=spfile;SQL>ALTER system SET sga_target=1504m scope=spfile;SQL>shutdown immediate;SQL>

19、startup;SQL>show parameter pga;SQL>ALTER system SET pga_aggregate_target=256m;內(nèi)存參數(shù)的調(diào)整主要是oracle的sga的調(diào)整,sea主要由共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)三部分組成。1、共享池有兩部分組成:共享sql區(qū)和數(shù)據(jù)字典緩沖區(qū)。查看共享sql區(qū)得使用率,應(yīng)該在90%以上,否則需增加共享池的大小。select (sum(pins-reloads)/sum(pins) "lib cache" from v$librarycache;select sum(pins) "請(qǐng)求存

20、取數(shù)",sum(reloads) "不命中數(shù)",sum(reloads)/sum(pins) from v$librarycache;其中,pins,顯示在庫高速緩存中執(zhí)行的次數(shù);reload,顯示在執(zhí)行階段庫高速緩存不命中的數(shù)目,一般sum(reloads)/sum(pins)的值應(yīng)接近于零.如果大于1%就應(yīng)該增加shared_pool_size的值, 來提高數(shù)據(jù)字典高速緩存可用的內(nèi)存數(shù)量,減少不命中數(shù).查看數(shù)據(jù)字典緩沖區(qū)的使用率,應(yīng)該在90%以上,否則需要增加共享池的大小。select (sum(gets-getmisses-usage-fixed)/sum(

21、gets) "row cache" from v$rowcache;2、數(shù)據(jù)緩沖區(qū)的使用命中率=1-(physical reads/(db block gets+consistent gets),應(yīng)該在90%以上,否則需增加數(shù)據(jù)緩沖區(qū)大小。select name, value from v$sysstat where name in('db block gets','consisten gets','physical reads');3、日志緩沖區(qū)失敗率=requests/entries,應(yīng)該接近0,否則說明日志緩沖區(qū)太小,需

22、增加。select name,value from v$sysstat where name in ('redo entries','redo log space requests')4、刷共享池alter system flush shared_pool;-是小塊的內(nèi)存合并成大塊的內(nèi)存,暫時(shí)恢復(fù)性能-5、臨時(shí)表空間的調(diào)整技巧如下:如果即使在穩(wěn)定的狀態(tài)下也存在很多的排序擴(kuò)展鎖(sort extent pool latch)的競爭,應(yīng)該通過修改臨時(shí)表空間的default storage 字句的next值來增大擴(kuò)展塊的大小。如果存在很多的排序擴(kuò)展鎖(sort ext

23、ent pool latch)的競爭并且這種等待是由于過多的并發(fā)的排序造成的,應(yīng)該增大 sort_area_size參數(shù)的大小,以便更多的派訊能保存在內(nèi)存中,建議讓擴(kuò)展塊的大小和sort_area_size參數(shù)相同-6、查看sql語句的解析情況select * from v$sysstat where name in ('parse_time_cpu','parse_time_elapsed','parse_count_hard')'parse_time_cpu'->系統(tǒng)服務(wù)時(shí)間,'parse_time_elapse

24、d'-響應(yīng)時(shí)間等待時(shí)間 waite_time=parse_time_elapsed-parse_time_cpusql語句平均解析等待時(shí)間=waite_time/parse_count_hard-7、查看低效率的sql語句 優(yōu)化有助于提高cpu的利用率select buffer_gets,executions,sql_text from v$sqlarea;-8、通過v$system_event的latch free查看數(shù)據(jù)庫沖突情況,如果沒有沖突則latch free無結(jié)果值。如果沖突太大則可降低spin_count參數(shù)值來消除高的cpu使用率。八、索引、磁盤及表空間調(diào)整將物理磁盤分

25、多個(gè)盤,不同的數(shù)據(jù)文件放不同的磁盤上課提高速度。將不同的表放不同的表空間里(多建幾個(gè)表空間)可提高速度。將索引和表分別放到不同的表空間里可提高速度。(其實(shí)就是I/O調(diào)優(yōu)的一種方式。)九、log_buffer 、processes及session調(diào)整SQL>show parameter spfile;-查看是否是spfile啟動(dòng)SQL> create spfile from pfile;-如果不是創(chuàng)建并重啟數(shù)據(jù)庫;SQL> alter system set processes=1000 scope = spfile;SQL> show parameter processe

26、s;SQL>shutdown immediate;SQL> startupSQL> show parameter sessions;【注:sessions是個(gè)派生值,由processes的值決定,公式sessions=1.1*process + 5】SQL>alter system set log_buffer= 16M scope=spfile(默認(rèn)4M)SQL>show parameter log_buffer;問題:ORA-02095: 無法修改指定的初始化參數(shù) alter system set log_buffer= 16777216 scope

27、=spfile;(不能用M直接用字節(jié)ok)環(huán)境 :11gR2  alter system set sessions=250 scope=both。提示無法修改制定的初始化參數(shù)。alter system set sessions=250 scope=spfile;提示系統(tǒng)參數(shù)已修改。這種情況下,重新啟動(dòng)數(shù)據(jù)庫才會(huì)生效。這涉及到oracle中有些參數(shù)可以動(dòng)態(tài)修改,有些參數(shù)不能動(dòng)態(tài)修改,如何具體哪些參數(shù)可動(dòng)態(tài)修改,哪些參數(shù)不可以動(dòng)態(tài)修改,通過v$parameter 視圖可以清晰查看。SQL> desc v$parameter; 名稱   

28、60;                                  是否為空? 類型 - - - NUM           

29、0;                                    NUMBER NAME            

30、;                                   VARCHAR2(80) TYPE            

31、                                   NUMBER VALUE             

32、                                 VARCHAR2(4000) DISPLAY_VALUE            &#

33、160;                         VARCHAR2(4000) ISDEFAULT                    &#

34、160;                     VARCHAR2(9) ISSES_MODIFIABLE                       

35、0;           VARCHAR2(5) ISSYS_MODIFIABLE                                  

36、 VARCHAR2(9) ISINSTANCE_MODIFIABLE                              VARCHAR2(5) ISMODIFIED          

37、;                               VARCHAR2(10) ISADJUSTED               

38、                          VARCHAR2(5) ISDEPRECATED                    

39、                   VARCHAR2(5) ISBASIC                            

40、;                VARCHAR2(5) DESCRIPTION                              

41、          VARCHAR2(255) UPDATE_COMMENT                                   &#

42、160; VARCHAR2(255) HASH                                             &#

43、160; NUMBER其中name 標(biāo)示參數(shù)名字,isses_modifiable標(biāo)示是否可以會(huì)話級(jí)別修改,如何是false,則不可以動(dòng)態(tài)修改,true則可以動(dòng)態(tài)修改。issys_modifiable標(biāo)示是否系統(tǒng)級(jí)別修改,false則不可修改,true則可動(dòng)態(tài)修改。SQL> select name,isses_modifiable,issys_modifiable from v$parameter where name='sessions'NAME          

44、60;      ISSES      ISSYS_MOD-  -           -sessions             FALSE      FALSE問題:ORA-12519: TNS:

45、no appropriate service handler found 的解決有時(shí)候連得上數(shù)據(jù)庫,有時(shí)候又連不上.可能是數(shù)據(jù)庫上當(dāng)前的連接數(shù)目已經(jīng)超過了它能夠處理的最大值.SQL> select count(*) from v$process;-當(dāng)前連接數(shù)     COUNT(*)     63SQL> select value from v$parameter where name = 'processes' -數(shù)據(jù)庫允許的最大連接數(shù)VALUE500修改最大連接數(shù):SQL> a

46、lter system set processes = 1000 scope = spfile;重啟數(shù)據(jù)庫:SQL> shutdown immediate;SQL> startup;-查看當(dāng)前有哪些用戶正在使用數(shù)據(jù)SELECT osuser, a.username,cpu_time/executions/1000000|'s', sql_fulltext,machine from v$session a, v$sqlarea bwhere a.sql_address =b.address order by cpu_time/executions desc;-快速刪除

47、不活動(dòng)進(jìn)程set heading offspool onselect p.SPID from v$session s,v$process p where s.paddr= p.addr and s.machine='woogle'spool offset serveroutput on ;declarev_sid number;v_serial number;v_sql varchar2(200) ;CURSOR cur_session is   select sid, serial# from v$session where machine='wo

48、ogle'beginopen cur_session ;fetch cur_session into v_sid , v_serial ;while cur_session%foundloopdbms_output.put_line(v_sid|' killed!') ;v_sql:= 'alter system kill session '|''''|v_sid|','|v_serial|''''execute immediate v_sql ;fetch cur_sess

49、ion into v_sid , v_serial ;end loop ;close cur_session ;end ;/Linux 下快速刪除不活動(dòng)進(jìn)程#!/bin/bashtmpfile=/tmp/tmp.$sqlplus ' / as sysdba' << EOFset heading offspool onspool $tmpfileselect p.SPID from v$session s,v$process p where s.paddr= p.addr and s.STATUS='SNIPED'spool offset server

50、output on ;declarev_sid number;v_serial number;v_sql varchar2(200) ;CURSOR cur_session is   select sid, serial# from v$session where STATUS='SNIPED'beginopen cur_session ;fetch cur_session into v_sid , v_serial ;while cur_session%foundloopdbms_output.put_line(v_sid|' killed!

51、9;) ;v_sql:= 'alter system kill session '|''''|v_sid|','|v_serial|''''execute immediate v_sql ;fetch cur_session into v_sid , v_serial ;end loop ;close cur_session ;end ;/問題:ORA-01552: cannot use system rollback segment for non-system tablespace 'A

52、MLM的解決那就新建一個(gè)undo表空間,并棄用原先的:SQL> create undo tablespace UNDOTBS2 datafile '/opt/oracle/db02/app/oracle/oradata/ORCL/undotbs02.dbf' size 3000m;SQL> show parameter undoundo_management                 

53、0;    string      MANUALundo_retention                       integer     3600undo_suppress_errors     

54、60;           boolean     FALSEundo_tablespace                      string      UNDOTBS1SQL> alte

55、r system set undo_management=auto scope=spfile;SQL> alter system set undo_tablespace=UNDOTBS2 scope=spfile;SQL> show user -用dba以上用戶SQL> shutdown immediateSQL> startupSQL> drop tablespace undotbs1;5. 查看回滾段的使用情況,哪個(gè)用戶正在使用回滾段的資源,如果有用戶最好更換時(shí)間(特別是生產(chǎn)環(huán)境)。SQL> select s.username, from

56、v$transaction t,v$rollstat r,ITPUB個(gè)人空間 Ok"L15rxl    v$rollname u,v$session s where s.taddr=t.addr and)x&8H+Gw_9i0    t.xidusn=r.usn and r.usn=u.usn order by s.username;6. 檢查UNDO Segment狀態(tài);SQL> select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks1Co(V#

57、tP ea0    from v$rollstat order by rssize;7. SQL> create undo tablespace undotbs1 datafile '/opt/oracle/oradata/uprr/undotbs01.dbf' size 3072M reuse autoextend on next 800m maxsize 16G;8. 動(dòng)態(tài)更改spfile配置文件;SQL> alter system set undo_tablespace=undotbs1 scope=both;System altered.

58、9. 等待原UNDO表空間所有UNDO SEGMENT OFFLINE;SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinksITPUB個(gè)人空間bXG?y'  from v$rollstat order by rssize;10. 再執(zhí)行看UNDO表空間所有UNDO SEGMENT ONLINE;SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinksG

59、 cCt"44 hr0ez0  from v$rollstat order by rssize;11. 刪除原有的UNDO表空間;SQL> drop tablespace undotbs2 including contents;Tablespace dropped.12. 確認(rèn)刪除是否成功;SQL> select name from v$tablespace;十、調(diào)整參數(shù)sort_area_size常常遇到這樣的問題:某某參數(shù)應(yīng)改怎么設(shè),設(shè)置多大合適?其實(shí)很多情況下只能給出個(gè)大概的估計(jì)值。例如參數(shù)sort_area_size,太小,排序時(shí)是會(huì)訪問磁盤,影響性能,

60、太大,浪費(fèi)內(nèi)存空間。那么設(shè)多大合適呢? 使用如下腳本:SQL> select A.Value Disk_Sorts,          B.Value Memory_Sorts,           ROUND(100*A.Value/           DECODE(A.Value+B.Value),0,1,(A.Value+B

61、.Value),2)                Pct_Disk_Sorts      from V$SYSSTAT A, V$SYSSTAT B     where A.Name = 'sorts (disk)'       and B.Name = 'sorts (memory)'DISK_SORTS MEM

62、ORY_SORTS PCT_DISK_SORTS- - -         1         1200            .08當(dāng)然我的只是一個(gè)例子,你應(yīng)改從你自己的在用數(shù)據(jù)庫查詢,例如設(shè)置一個(gè)限值,例如10,如果磁盤排序占總排序的10,則應(yīng)改增大sort_area_size, 如果1占的比例太小,是否應(yīng)改考慮減小sort

63、_area_size。ps: 一直以為sort_area_size的空間在會(huì)話連接時(shí)就會(huì)分配,但看一些資料,各不相同。還得細(xì)心琢磨。我覺得對(duì)于這個(gè)建議,在Oracle9i可以借鑒為調(diào)整pga大小。9i以上用pga_aggregate_target參數(shù)控制,sort_area_size參數(shù)無效。十一、TEMP表空間調(diào)整在優(yōu)化SQL語句的基礎(chǔ)上,加大內(nèi)存,適當(dāng)調(diào)整Sort_area_size的大小,因?yàn)镺racle優(yōu)先使用內(nèi)存排序,內(nèi)存不夠才使用磁盤中的臨時(shí)表空間,對(duì)于超大臨時(shí)表空間可以刪除這個(gè)超大臨時(shí)表空間,重新創(chuàng)建一個(gè)合適大小的,不可自動(dòng)擴(kuò)展。一般初始的臨時(shí)表空間都很小,當(dāng)系統(tǒng)運(yùn)行的時(shí)候,臨時(shí)

64、表空間會(huì)自動(dòng)擴(kuò)展,但是使用率一直都會(huì)非常高,所以,主要看一下 dba_temp_files 里面 autoextensible(是否字段擴(kuò)展)和 maxbytes以及磁盤空間是否足夠,只要臨時(shí)表空間支持?jǐn)U展,且磁盤空間足夠,一般都不會(huì)出問題的。如果你希望使用率降低,那就 resize 臨時(shí)表空間的文件,將文件修改大一點(diǎn),比如 20G 以上。1、 查看臨時(shí)表空間信息select * from dba_temp_files;-查看臨時(shí)表空間使用率select tablespace_name,user_bytes,bytes,round(user_bytes/bytes,6) as pct from

65、 dba_temp_files;-查看臨時(shí)表空間數(shù)據(jù)文件的大小select file_name,bytes/1024/1024/1024 "MB",autoextensible,tablespace_name from dba_temp_files;或者select tablespace_name, bytes/power(1024,3) as pct from dba_temp_files;(單位G)2、檢查過程(1) 我們可以查查數(shù)據(jù)庫alert日志例如:/u0/admin/sm/bdump/alert_sm.log數(shù)據(jù)庫中并沒有報(bào)temp表空間的錯(cuò),一般來說不報(bào)錯(cuò),可

66、以先不管,因?yàn)闆]有temp表空間可能由于沒有需要用到而不釋放空間。(2) 我們可以用這個(gè)語句查一下SELECT se.username,sid,serial#,sql_address,machine,program,tablespace,segtype,contentsFROM v$session se,v$sort_usage suWHERE se.saddr=su.session_addr;其實(shí)v$session是會(huì)話信息,v$sort_usage是正在使用排序段的會(huì)話??梢詸z查當(dāng)前數(shù)據(jù)庫有沒有語句正在用排序段,如果有的話可以使用一下語句刪除尋找出的相關(guān)語句:SQL>alter sy

67、stem kill session 'sid,serial#'(3) 檢查temp表空間是不是自動(dòng)擴(kuò)展的SQL>select file_name,bytes/1024/1024 "MB",autoextensible,tablespace_name from dba_temp_files;(4) 查詢目前數(shù)據(jù)庫中默認(rèn)的臨時(shí)表空間SQL>select * from database_properties where property_name like 'DEFAULT%'或SQL>select username,tempor

68、ary_tablespace from dba_users;3處理過程(1) 重起數(shù)據(jù)庫,看看有沒有釋放臨時(shí)表空間Smon進(jìn)程會(huì)完成臨時(shí)段釋放,TEMP表空間的清理操作,不過很多的時(shí)侯我們的庫是不允許down的,所以這種方法缺少了一點(diǎn)的應(yīng)用機(jī)會(huì),不過這種方法還是很好用的。(2) 如果檢查出temp表空間是自動(dòng)擴(kuò)展的,建議先修改成非自動(dòng)擴(kuò)展由于數(shù)據(jù)庫temp表空間是自動(dòng)擴(kuò)展,有可能它不斷使用新的空間,建議先把它變成非自動(dòng)擴(kuò)展。例如:alter database tempfile 'E:ORACLEPRODUCT10.2.0ORADATAUPRRTEMP01.DBF' autoex

69、tend off;(3) 如果temp表空間不是自動(dòng)擴(kuò)展,而且空間比較小例如:數(shù)據(jù)庫的temp表空間只有1.6G,覺得可以擴(kuò)大一點(diǎn),擴(kuò)大3G左右(上千萬的數(shù)據(jù)可以擴(kuò)大到810G)SQL> alter system temp add tempfile '/u0/oradata/sm/temp02.dbf' size 3096M;(4) 如果temp表空間由于自動(dòng)擴(kuò)展變得太大,可以新建一個(gè)temp表空間把它取代詳細(xì)可參看eygle大師的"Oracle9i中如何重建與切換臨時(shí)表空間"例如:用temp2表空間取代temp表空間 SQL> create t

70、emporary tablespace temp2 tempfile 'E:ORACLEPRODUCT10.2.0ORADATAUPRRTEMP02.DBF' size 200M autoextend off;SQL> alter database default temporary tablespace temp2;SQL> drop tablespace temp;最后在操作系統(tǒng)上把temp的文件刪除,就可以釋放空間。如果為了更美觀可以重新建temp表空間,刪除temp2:SQL> create temporary tablespace temp temp

71、file 'E:ORACLEPRODUCT10.2.0ORADATAUPRRTEMP01.DBF' size 10240M autoextend off;SQL> alter database tempfile 'E:ORACLEPRODUCT10.2.0ORADATAUPRRTEMP01.DBF' autoextend on;SQL> alter database default temporary tablespace temp;SQL> drop tablespace temp2 including contents and datafi

72、les; (5) 如果使用的版本是oracle 10g以上,可以收縮表空間SELECT se.username,sid,serial#,sql_address,machine,program,tablespace,segtype,contentsFROM v$session se,v$sort_usage suWHERE se.saddr=su.session_addr;其實(shí)v$session是會(huì)話信息,v$sort_usage是正在使用排序段的會(huì)話。可以檢查當(dāng)前數(shù)據(jù)庫有沒有語句正在用排序段,如果有的話可以使用一下語句刪除尋找出的相關(guān)語句:SQL>alter system kill se

73、ssion 'sid,serial#'SQL>Alter tablespace TEMP coalesce;(6) 網(wǎng)上Metalink給出的一個(gè)方法修改一下TEMP表空間的storage參數(shù),讓Smon進(jìn)程觀注一下臨時(shí)段,從而達(dá)到清理和TEMP表空間的目的。SQL>alter tablespace temp increase 1; SQL>alter tablespace temp increase 0;(7) 網(wǎng)上給出診斷事件的一種方法確定TEMP表空間的ts#SQL> select ts#, name from sys.ts$ ; 

74、60;     TS# NAME- -         0 SYSTEM         1 UNDOTBS1         2 TEMP         3 INDX         4 TOOLS         5 US

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論