一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

oracle UNDO表空間不足解決方法

 攜手共濟 2015-07-02
undo表空間是Oracle特有的概念。undo表空間中會自動分配undo段,這些undo段用來保存事務(wù)中的DML語句的undo信息,也就是來保存數(shù)據(jù)在被修改之前的值。在rollback,實例恢復(fù)(前滾),一致性讀CR塊的構(gòu)造時會使用到undo信息。由于undo的引入,從而Oracle的select語句實現(xiàn)一致性讀時,不需要任何鎖。

undo表空間和其它表空間有很多類似的地方:undo數(shù)據(jù)塊也會被讀到buffer cache緩存起來,修改時也會產(chǎn)生redo log,數(shù)據(jù)也會寫回到undo表空間的磁盤上。所以崩潰后,undo塊的buffer cache也會恢復(fù)過來。

我們看一下undo表空間:
SQL> show parameter undo_tablespace;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace                      string      UNDOTBS1

SQL> select file_name,bytes/1024/1024 size_M from dba_data_files where tablespace_name='UNDOTBS1';
FILE_NAME                                          SIZE_M
---------------------------------------------- ----------
/u01/app/oracle/oradata/jiagulun/undotbs01.dbf         60


 

undo表空間的作用:
Oracle開始一個事務(wù),當(dāng)要修改數(shù)據(jù)時,會先將修改前的數(shù)據(jù)保存到undo表空間的undo段中。保存這些修改前的數(shù)據(jù)的原因下面這些場合需要undo數(shù)據(jù):1)事務(wù)的回滾;2)實例恢復(fù)(回滾);3)一致性讀時需要構(gòu)造CR塊;

UNDO表空間不夠用,有兩種處理方法,1,擴大表空間大?。?SPAN lang=EN-US>2,創(chuàng)建新的UNDO表空間,刪除原來的

 

一、擴大UNDO表空間

alter   database  UNDOTBS1 datafile   '/opt/oracle/oradata/inms/undotbs02.dbf'   resize   4000M;

 

二、創(chuàng)建新的UNDO表空間,刪除原來的

1、創(chuàng)建新的UNDO表空間,并設(shè)置自動擴展參數(shù);

create undo tablespace undotbs2 datafile '/oradata/oradata/ddptest/UNDOTBS1.dbf' size    2 1000m reuse autoextend on next 800m maxsize unlimited;

 

2、動態(tài)更改spfile配置文件;

alter system set undo_tablespace=undotbs2 scope=both;

 

3、刪除原有的UNDO表空間;

drop tablespace undotbs1 including contents;

 

4、確認(rèn)刪除是否成功;

select name from v$tablespace;

 

5、確定$ORACLE_HOME/dbs/spfileoinms.ora內(nèi)容是否發(fā)生變更:

 

$more spfileoinms.ora

 

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS2'

 

如果沒有發(fā)生變更請執(zhí)行如下語句:

 

SQL> create pfile from spfile;

如何處理OracleUNDO表空間所對應(yīng)的數(shù)據(jù)文件過大

google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad); 1 查看undo的表空間大小和最大值  
select   t.file_name,t.tablespace_name,  
t.bytes/1024/1024/1024 "GB",  t.maxbytes/1024/1024/1024   "Max GB" 
 from     dba_data_files     t     where    t.tablespace_name='UNDOTBS1' 

 


   
數(shù)據(jù)文件為:/oracle/oradata/undo/undotbs01.dbf  
   
2
創(chuàng)建一個新的undo表空間,用來替換原來的undo表空間  
create      undo     tablespace    UNDOTBS2  
datafile     '/oracle/oradata/log/undotbs02.dbf' 
size    10M    autoextend     on    maxsize    unlimited;  
3
把新的undo表空間設(shè)置成數(shù)據(jù)庫的undo表空間  
alter     system     set undo_tablespace=UNDOTBS2     scope=both;  
4
再次驗證數(shù)據(jù)庫的undo表空間  
 show     parameter     undo_tablespace  
5
等待原UNDO表空間UNDOTBS1 is OFFLINE;  
   
 SELECT    r.status    "Status",  
r.segment_name    "Name",  
r.tablespace_name     "Tablespace",  
s.extents     "Extents",  
TO_CHAR((s.bytes/1024/1024),'99999990.000')     "Size" 
FROM     sys.dba_rollback_segs      r, sys.dba_segments    s  
WHERE        r.segment_name = s.segment_name  
AND       s.segment_type IN ('ROLLBACK', 'TYPE2 UNDO')  
and       r.tablespace_name='UNDOTBS1'      and       status='ONLINE' 
如果上面有狀態(tài)online的對象,可以查詢具體對象的sid,serial#  
5.1
查看當(dāng)前是什么在使用這個回滾段  
 SELECT     r.NAME,s.sid,s.serial# Serial,  
s.username ,s.machine ,  
t.start_time,t.status ,  
t.used_ublk ,  
substr(s.program, 1, 15)    "operate" 
FROM      v$session    s, v$transaction    t, v$rollname    r,v$rollstat    g  
WHERE      t.addr = s.taddr  
AND      t.xidusn = r.usn  
AND     r.usn = g.usn  
ORDER     BY     t.used_ublk desc;  
--
比如:對象為:sid  474,serial  6794 
5.2
根據(jù)sid查出具體的sql  
select     sql_text    from     v$session a,v$sqltext_with_newlines     b  
  where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value  
  and      a.sid=&sid    order     by     piece  
如果該sql不重要,可以直接kill該會話。  
   
5.3  kill session  
alter system kill session '474,6794';  
5.4 
刪除原undo表空間及其系統(tǒng)的數(shù)據(jù)問題  
drop tablespace UNDOTBS1 including contents and datafiles;  
(在AIX系統(tǒng)中,雖然已經(jīng)刪除了系統(tǒng)所對應(yīng)的undo表空間的數(shù)據(jù)文件,但用df -g查看,該系統(tǒng)空間不能釋放。  
主要是由于Oracle的一個進(jìn)程在訪問該文件??梢?/FONT>kill Oracle訪問進(jìn)程,或者重啟數(shù)據(jù)庫后,即可釋放系統(tǒng)的空間。)  
   
   
6
新建立UNDOTBS1表空間  
create     undo     tablespace    UNDOTBS1  
datafile    '/oracle/oradata/undo/undotbs01.dbf' 
size    10M    autoextend   on    maxsize 12G;  
   
7
切換回UNTOTBS1  
alter system set undo_tablespace=UNDOTBS1 scope=both;  
8
等待UNDO表空間UNDOTBS2 is OFFLINE;  
 SELECT r.status "Status",  
r.segment_name "Name",  
r.tablespace_name "Tablespace",  
s.extents "Extents",  
TO_CHAR((s.bytes/1024/1024),'99999990.000') "Size" 
FROM sys.dba_rollback_segs r, sys.dba_segments s  
WHERE r.segment_name = s.segment_name  
AND s.segment_type IN ('ROLLBACK', 'TYPE2 UNDO')  
and r.tablespace_name='UNDOTBS2' 
ORDER BY 5 DESC;  
9
刪除  
drop    tablespace     UNDOTBS2    including    contents    and     datafiles; 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产成人精品午夜福利| 中日韩美一级特黄大片| 精品一区二区三区三级视频| 日韩高清一区二区三区四区| 国产精品免费福利在线| 久久这里只精品免费福利| 五月婷婷六月丁香狠狠| 精品亚洲一区二区三区w竹菊| 中国黄色色片色哟哟哟哟哟哟| 高潮日韩福利在线观看| 麻豆91成人国产在线观看| 日韩综合国产欧美一区| 99精品国产自在现线观看| 伊人久久青草地婷婷综合| 国产精品超碰在线观看| 国产又爽又猛又粗又色对黄| 国产精品午夜福利在线观看| 亚洲男人的天堂就去爱| 99少妇偷拍视频在线| 在线视频免费看你懂的| 日韩欧美一区二区不卡看片| 邻居人妻人公侵犯人妻视频| 又色又爽又无遮挡的视频| 亚洲欧美日产综合在线网| 欧美一区二区黑人在线| 大尺度剧情国产在线视频| 亚洲午夜福利不卡片在线| 91熟女大屁股偷偷对白| 亚洲夫妻性生活免费视频| 国产精品一区二区高潮| 99久只有精品免费视频播放| 国产亚洲神马午夜福利| 亚洲国产精品久久琪琪| 日本免费一级黄色录像| 日韩偷拍精品一区二区三区| 精品欧美日韩一区二区三区| 日韩人妻av中文字幕| 五月婷婷综合缴情六月| 亚洲男人的天堂就去爱| 偷拍美女洗澡免费视频| 午夜福利直播在线视频|