相剋軍ORACLE講座深度剖析UNDO段筆記

2023-01-02 02:15:05 字數 2765 閱讀 2680

undo表空間用來存放改變前的舊值。裡面也有段區塊,oracle自動建立生成、自動使用undo段。

作為高階別的dba是需要知道oracle如何使用undo段的。

1 undo表空間及管理方式

oracle開始乙個事務的時候,會用到表空間。將修改前的資料儲存在undo段裡。

undo的三個作用

讀的一致性,構造cr塊

回滾例項恢復(時的回滾)

--查詢undo表空間的名字

sql> show parameter undo_tablespace;

nametype value

undo_tablespacestring undotbs1

--查詢undo表空間的資料檔案

sql>select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like '%undotbs1%'

file_name

bytes/1024/1024

/opt/oracle/oradata/orcl/

--查詢undo表空間的段

sql> select * from v$rollname;

usn name

0 system

1 _syssmu1$

10 _syssmu10$

--查詢其中='_syssmu1$'這個段的占有多個塊多少個區

sql>select segment_name,blocks,extents from dba_segments where segment_name='_syssmu1$';

segment_nameblocks extents

_syssmu11936 17

--查詢'_syssmu1$'這個段分配區的具體情

sql>select segment_name,tablespace_name,extent_id,file_id,block_id,blocks from dba_extents where segment_name='_syssmu1$';

segment_nametablespace_nameextent_id file_id block_id blocks

_syssmu1undotbs10298

_syssmu1undotbs11288498

_syssmu1undotbs1162905128

由上面這個結果,可以得出結果:undo表空間中的段中的區中的塊兒是連續的,但是區與區之不是連續的

show parameter undo;

nametype value

undo_managementstring auto

undo_retentioninteger 900

undo_tablespacestring undotbs1

show parameter undo;

nametype value

undo_managementstring auto

undo_retentioninteger 900 --oracle不希望已經提交的事務,對應的undo段中的區,立即就被覆蓋,而設定這個引數undo_retention 900表示事務已經提交之後,undo段中的區還可以在undo段中存活900秒,過期之後,才可以被覆蓋

undo_tablespacestring undotbs1

select name from v$parameter where name like '%undo%';

undo_management

undo_tablespace

undo_retention

alter tablespace undotbs1 retention guarantee; --表示undo_retention至少900秒以後,過期之後,才可以被覆蓋

select tablespace_name,retention from dba_tablespaces;--查詢設定結果

alter tablespace undotbs1 retention noguarantee;

select tablespace_name,retention from dba_tablespaces;--查詢設定結果

undo段中區的狀態

free 空閒

expired 過期:超undo段中的區在提交之後,存活的時間超過了undo_retention900鈔

inactive 已經提交

active 活動

oracle在自動使用undo段中區時,先用「free」空間,實在不行,才用「expired」過期的空間。

如果空間還不夠,使用者「inactive」,如果還是空間不夠,這時就要報錯了。程序就要掛起了。

oracle 使用undo段空間的順序:

「free」空間--->「expired」過期的空間---->「inactive」空間---如果空間還不夠---->報錯

檢查undo segment狀態

select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks

from v$rollstat order by rssize;

顯示undo

select extent_id,bytes,status from dba_undo_extents where segment_name='_syssmu1$';

食物相剋清單

1 蝦 維c 中毒 2 感冒藥 可樂 中毒 3 雞蛋忌糖精 同食中毒 死亡 4 豆腐忌蜂蜜 同食耳聾 5 海帶忌豬血 同食便秘 6 土豆忌香蕉 同食生雀斑 7 牛肉忌紅糖 同食脹死人 8 狗肉忌黃鱔 同食則死 9 羊肉忌田螺 同食積食腹脹 10 芹菜忌兔肉 同食脫頭髮 11 番茄忌綠豆 同食傷元氣 ...

食物相剋大全

1 蝦 維c 中毒 2 感冒藥 可樂 中毒 3 雞蛋忌糖精 同食中毒 死亡 4 豆腐忌蜂蜜 同食耳聾 5 海帶忌豬血 同食便秘 6 土豆忌香蕉 同食生雀斑 7 牛肉忌紅糖 同食脹死人 8 狗肉忌黃鱔 同食則死 9 羊肉忌田螺 同食積食腹脹 10 芹菜忌兔肉 同食脫頭髮 11 番茄忌綠豆 同食傷元氣 ...

食物相剋表

食物相剋終於找齊了 1 蝦 維c 中毒 2 感冒藥 可樂 中毒 3 雞蛋忌糖精 同食中毒 死亡 4 豆腐忌蜂蜜 同食耳聾 5 海帶忌豬血 同食便秘 6 土豆忌香蕉 同食生雀斑 7 牛肉忌紅糖 同食脹死人 8 狗肉忌黃鱔 同食則死 9 羊肉忌田螺 同食積食腹脹 10 芹菜忌兔肉 同食脫頭髮 11 番茄...