今天就跟大家聊聊有關(guān)Oracle可恢復(fù)空間分配技術(shù)是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于沭陽企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),購物商城網(wǎng)站建設(shè)。沭陽網(wǎng)站建設(shè)公司,為沭陽等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
許多操作因?yàn)榭臻g不夠而失敗,如果啟用了可恢復(fù)空間分配,當(dāng)操作遇到空間問題而不是因?yàn)殄e(cuò)誤而失敗時(shí),操作將暫停,顯示為會(huì)話掛起。當(dāng)錯(cuò)誤得到解決時(shí),它將繼續(xù)。所有掛起的會(huì)話(當(dāng)前掛起的和之前掛起但現(xiàn)在再次運(yùn)行的)列在視圖dba_resumable中。會(huì)話關(guān)閉后,視圖中的記錄將消除。
要在會(huì)話級(jí)別啟用可恢復(fù)空間分配,命令如下:
alter session enable resumable [timeout <seconds>] [name <opname>];
timeout選項(xiàng)指定語句將掛起多長(zhǎng)時(shí)間。如果到達(dá)這個(gè)時(shí)間,但問題沒有解決,語句失敗,返回錯(cuò)誤。如果沒有指定timeout,會(huì)話將無限期掛起。name選項(xiàng)指定在視圖dba_resumable中顯示的名稱,幫助確定在多語句進(jìn)程的哪個(gè)點(diǎn)出現(xiàn)空間問題。
執(zhí)行該命令需要授予會(huì)話用戶相應(yīng)的權(quán)限:
grant resumable to <username>;
也可以通過設(shè)置實(shí)例參數(shù)resumable_timeout為所有會(huì)話啟用可恢復(fù)空間。這是一個(gè)動(dòng)態(tài)參數(shù),如要設(shè)置一分鐘的超時(shí):
alter system set resumable_timeout=60;
這將導(dǎo)致所有會(huì)話在遇到空間問題時(shí)掛起一分鐘。
Data Pump實(shí)用程序expdp和impdp有一個(gè)命令行開關(guān)resumable=y(默認(rèn)為n),允許Data Pump作業(yè)如果遇到空間問題就掛起。
當(dāng)會(huì)話掛起時(shí),它將保持對(duì)使用的所有資源的控制,包括撤銷空間、臨時(shí)空間、PGA內(nèi)存和記錄鎖定。
在遇到問題時(shí),可以通過另一個(gè)會(huì)話交互式的進(jìn)行修復(fù)。或者可以創(chuàng)建一個(gè)在會(huì)話掛起時(shí)將運(yùn)行的after suspend on database觸發(fā)器。這個(gè)觸發(fā)器可以報(bào)告問題,如通過電子郵件,或包括檢查并自動(dòng)修復(fù)問題的代碼,這就意味著可以在一些操作如插入數(shù)據(jù)導(dǎo)致表空間容量不夠時(shí),通過觸發(fā)器程序確認(rèn)后自動(dòng)給表空間分配容量。
以下實(shí)驗(yàn)測(cè)試可恢復(fù)空間分配功能的使用:
1、創(chuàng)建表空間和表
create tablespacetest datafile 'd:\oradata\mes\test01.dbf' size 2m;
create tablescott.t1(c1 char(1000)) tablespacetest;
2、授予會(huì)話可恢復(fù)空間分配的權(quán)限
grant resumable to scott;
3、在會(huì)話級(jí)別設(shè)定可恢復(fù)空間分配
conn scott/tiger
alter session enable resumable name 't1_insert';
4、向表中插入數(shù)據(jù),因空間不足會(huì)話將被掛起
begin
for i in 1 .. 2000 loop
insert into scott.t1 values ('a row');
end loop;
commit;
end;
/
5、查看因空間分配問題掛起的會(huì)話
col name for a10
col sql_text for a30
col error_parameter1 for a10
col error_parameter2 for a10
col error_parameter3 for a10
col error_parameter4 for a10
col error_parameter5 for a10
col error_msg for a30
select user_id,
session_id,
instance_id,
status,
timeout,
start_time,
suspend_time,
resume_time,
name,
sql_text,
error_number,
error_parameter1,
error_parameter2,
error_parameter3,
error_parameter4,
error_parameter5,
error_msg
from dba_resumable;
USER_ID SESSION_ID INSTANCE_ID STATUS TIMEOUT START_TIME SUSPEND_TIME RESUME_TIME NAME SQL_TEXT ERROR_NUMBER ERROR_PARA ERROR_PARA ERROR_PARA ERROR_PARA ERROR_PARA ERROR_MSG
---------- ---------- ----------- --------- ---------- -------------------- -------------------- -------------------- ---------- ------------------------------ ------------ ---------- ---------- ---------- ---------- ---------- ------------------------------
84 74 1 SUSPENDED 7200 01/25/18 09:42:18 01/25/18 09:42:18 t1_insert INSERT INTO SCOTT.T1 VALUES (' 1653 SCOTT T1 128 TEST ORA-01653: 表 SCOTT.T1 無法通過 128
a row') (在表空間 TEST 中) 擴(kuò)展
6、修復(fù)問題,會(huì)話將繼續(xù)執(zhí)行
alter database datafile 'd:\oradata\mes\test01.dbf' resize 4m;
7、再次查看因空間分配問題掛起的會(huì)話,顯示會(huì)話已經(jīng)恢復(fù)
select user_id,
session_id,
instance_id,
status,
timeout,
start_time,
suspend_time,
resume_time,
name,
sql_text,
error_number,
error_parameter1,
error_parameter2,
error_parameter3,
error_parameter4,
error_parameter5,
error_msg
from dba_resumable;
USER_ID SESSION_ID INSTANCE_ID STATUS TIMEOUT START_TIME SUSPEND_TIME RESUME_TIME NAME SQL_TEXT ERROR_NUMBER ERROR_PARA ERROR_PARA ERROR_PARA ERROR_PARA ERROR_PARA ERROR_MSG
---------- ---------- ----------- --------- ---------- -------------------- -------------------- -------------------- ---------- ------------------------------ ------------ ---------- ---------- ---------- ---------- ---------- ------------------------------
84 74 1 NORMAL 7200 01/25/18 10:00:39 t1_insert 0
8、刪除表并清理表空間
drop tablescott.t1;
drop tablespace test including contents and datafiles;
看完上述內(nèi)容,你們對(duì)Oracle可恢復(fù)空間分配技術(shù)是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
本文名稱:Oracle可恢復(fù)空間分配技術(shù)是怎樣的
網(wǎng)頁地址:http://aaarwkj.com/article38/pcsdpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化、定制開發(fā)、域名注冊(cè)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)