999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實際工作場景中oracle數(shù)據(jù)庫數(shù)據(jù)快速倒換方法

2015-11-07 05:32:29應(yīng)天職業(yè)技術(shù)學(xué)院
電子世界 2015年14期
關(guān)鍵詞:數(shù)據(jù)庫用戶

應(yīng)天職業(yè)技術(shù)學(xué)院 謝 芳

實際工作場景中oracle數(shù)據(jù)庫數(shù)據(jù)快速倒換方法

應(yīng)天職業(yè)技術(shù)學(xué)院 謝 芳

本文通過設(shè)立實際工作場景,提出一種切實可行的將oracle數(shù)據(jù)庫中數(shù)據(jù)按照某種原則搬到新的數(shù)據(jù)庫中,通過此種方法實現(xiàn)的數(shù)據(jù)倒換可在主機(jī)上形成一個腳本,啟動腳本后數(shù)據(jù)自動倒換。在實際應(yīng)用中,有利于提高工作效率。

oracle數(shù)據(jù)庫;數(shù)據(jù)倒換

1 引言

一個比較大的實時系統(tǒng),經(jīng)過調(diào)研、立項、設(shè)計、開發(fā)、測試、驗收之后,往往會面臨更大的挑戰(zhàn):割接上線。割接上線中,一個非常重要的準(zhǔn)備就是數(shù)據(jù)倒換。數(shù)據(jù)倒換,簡而言之,就是將生產(chǎn)庫中的數(shù)據(jù)按照某種原則搬到新的數(shù)據(jù)庫中,是系統(tǒng)正確運(yùn)行的基礎(chǔ),其重要性不言而喻。而且非常特別的是,它的數(shù)據(jù)量很大,時間緊張,有必要進(jìn)行經(jīng)過充分的準(zhǔn)備。

在本文中,我們將設(shè)立一個場景,并基于這個場景進(jìn)行討論倒換的方法,之后對于性能進(jìn)行一些更細(xì)致的研究。通過研究,能達(dá)到在主機(jī)上有一個腳本,啟動腳本,那么數(shù)據(jù)就可以實現(xiàn)這樣的倒換。將具有一定的普適性。

2 場景介紹

oracle數(shù)據(jù)庫之間數(shù)據(jù)倒換在此利用存儲過程(procedure)來實現(xiàn)數(shù)據(jù)倒換。情景如圖1:

圖1 工作場景示意圖

生產(chǎn)庫有2個庫,4個節(jié)點,4個用戶;而新庫有2個庫,2個節(jié)點,13個用戶。

新庫之所以會做出這樣的變動,是因為隨著在線用戶的變多,數(shù)據(jù)量變大,所以需要將數(shù)據(jù)進(jìn)行拆分。

3 實現(xiàn)方法

為了實現(xiàn)這樣的目標(biāo),我們需要考慮如下技術(shù)的可能性:

(1)啟動腳本,腳本來執(zhí)行存儲過程,并帶入存儲過程所需要的參數(shù);

(2)存儲過程能夠從生產(chǎn)庫取數(shù)據(jù),并根據(jù)拆分原則,拆分到新庫中;

3.1 腳本

對于第(1)點,首先構(gòu)建一個執(zhí)行存儲過程的函數(shù),保存為腳本,執(zhí)行的時候直接進(jìn)行調(diào)用。

executeProcedure()

{

DB_USER=$1 #參數(shù)1

shift

DB_PASSWD=$1 #參數(shù)2

shift

DB_SERVER=$1 #參數(shù)3

shift

PROCEDURE_NAME=$1 #參數(shù)4

shift

PROCEDURE=${PROCEDURE_NAME}"("

while [ "$#" -ne "0" ]

do

PROCEDURE=${PROCEDURE}$1"," #存儲過程本身的參數(shù)

shift

done

PROCEDURE=${PROCEDURE}":v_resultcode,:v_errinfo)"

${ORACLE_HOME}/bin/sqlplus ${DB_USER}/ ${DB_PASSWD}@${DB_SERVER} << !!!

WHENEVER sqlerror EXIT sql.sqlcode

SET SERVEROUTPUT ON

VARIABLE v_resultcode NUMBER;

VARIABLE v_errinfo VARCHAR2(2000);

BEGIN

:v_resultcode := 0;

BEGIN

DBMS_OUTPUT.enable;

${PROCEDURE}; #執(zhí)行存儲過程

DBMS_OUTPUT.put_line('v_res:='||:v_resultcode);

DBMS_OUTPUT.put_line('v_err:='||:v_errinfo);

EXCEPTION

WHEN OTHERS THEN

:v_resultcode := -1;

:v_errinfo := SQLERRM;

return;

END;

COMMIT;

END;

/

exit;

!!!

return 0

}

通過以上代碼己完成,腳本來執(zhí)行存儲過程,并帶入存儲過程所需要的參數(shù)。如果想加以利用,還需要考慮輸出日志等問題。

有了這個函數(shù),就可以在主機(jī)上通過輸入數(shù)據(jù)庫的用戶名、密碼、server、存儲過程名、存儲過程參數(shù),來調(diào)用數(shù)據(jù)庫某用戶下的存儲過程了。如果將這樣的命令整合在一起,就可以用一個腳本調(diào)用不同數(shù)據(jù)庫上、不同用戶下的不同存儲過程了,通過這樣的處理,工作效率就會大大提高。

3.2 過程

如果不需要拆分可用Insert …select…語句就可以實現(xiàn)這個功能。需要拆分時將ucr_dtb4下的用戶根據(jù)路由表tf_f_user_cataloG表拆分到ucr_dtb25、ucr_dtb26、ucr_dtb27三個用戶下。可以將上述語句進(jìn)行改造達(dá)到功能:

Insert

When n_channel_no>0 and n_channel_no<=3333 into ucr_dtb25.tablename values(…)

When n_channel_no>=3334 and n_channel_no<=6666 into ucr_dtb26.tablename values(…)

When n_channel_no>=6667 and n_channel_no<=9999 into ucr_dtb27.tablename values(…)

Select …

Decode(select channel_no from tf_f_user_cataloG b where b.user_id=a.user_id,null,mod(user_id,10000) , select channel_no from tf_f_user_cataloG b where b.user_id=a.user_id) as n_channel_no

From ucr_dtb4.tablename@dblink4 a;

這段語句中的幾點解釋:(1)如果when語句比較長,在調(diào)試存儲過程時,會看不到這個語句,所以可以將各個when語句依次放入數(shù)組元素中,select語句也放入一個數(shù)組元素中,最后將它們拼接起來執(zhí)行。這樣的話將對調(diào)試非常有利。(2)如果路由表tf_f_user_cataloG表中的數(shù)據(jù)量非常大,例如超過1億,那么全表掃描將是一個災(zāi)難。這里提供兩個思路,首先,將這個表進(jìn)行拆分,建多張表,語句中調(diào)用哪個表,可以通過存儲過程的入?yún)頉Q定。其次,在這張表上建立關(guān)聯(lián)索引。這樣一來速度可以提高幾百倍。

如果存儲過程和腳本都己經(jīng)具備,接下來要考慮的問題就是執(zhí)行的問題了。可能需要頻繁的關(guān)注主機(jī)上的各種資源,尤其是CPU、Network等。

可以關(guān)注上圖中的數(shù)據(jù)吞吐量,來確定存儲過程的執(zhí)行是否正確。也可以在oracle數(shù)據(jù)庫上通過如下語句來確認(rèn),存儲過程的啟動與否,該語句的執(zhí)行效率通常來講是可以接受的:

select Name

from v$db_object_cache

where locks>0 and pins>0 and type=’PROCEDURE’;

4 結(jié)論

通過本文提供的oracle數(shù)據(jù)庫的數(shù)據(jù)倒換方法可以將大量的數(shù)據(jù)快速的倒換到新的數(shù)據(jù)庫中,為上線割接做好充分的數(shù)據(jù)準(zhǔn)備,具有普適性,有一定的實用價值。

[1]楊九菊.Oracle數(shù)據(jù)庫流復(fù)制技術(shù)研究[J].信息與電腦(理論版),2011(03).

[2]王新偉.基于Oracle數(shù)據(jù)庫的邏輯數(shù)據(jù)同步技術(shù)在實踐中的應(yīng)用研究[J].電子技術(shù)與軟件工程,2015(08).

[3]陳惠敏,李曉玲.Oracle實例剖析[J].軟件導(dǎo)刊,2010(05).

[4]史小玲.Oracle動態(tài)SQL之本地動態(tài)SQL的使用[J].科技信息,2010(10).

[5]王海翔.Oracle數(shù)據(jù)庫軟件研究[J].現(xiàn)代商貿(mào)工業(yè),2010(11).

猜你喜歡
數(shù)據(jù)庫用戶
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 无码中文字幕乱码免费2| 亚洲欧美极品| 性做久久久久久久免费看| 欧美亚洲另类在线观看| 四虎国产在线观看| 玩两个丰满老熟女久久网| 日韩精品免费一线在线观看| 色有码无码视频| 狠狠亚洲五月天| 97精品伊人久久大香线蕉| 玩两个丰满老熟女久久网| 亚洲欧州色色免费AV| 久久天天躁狠狠躁夜夜2020一| 免费a级毛片18以上观看精品| www.youjizz.com久久| 久久综合久久鬼| 无码免费的亚洲视频| 日韩无码视频专区| 亚洲第一天堂无码专区| 亚洲黄色成人| 国产成人啪视频一区二区三区| 欧美一区二区福利视频| 老司机精品久久| 国内精品久久久久久久久久影视| 潮喷在线无码白浆| 视频二区欧美| 国产91小视频在线观看| 亚洲爱婷婷色69堂| 国产美女91呻吟求| 美女一区二区在线观看| 美女国内精品自产拍在线播放| 日韩第一页在线| 91视频日本| 99精品久久精品| 最新国产你懂的在线网址| 欧美日韩在线国产| 嫩草在线视频| 精品无码专区亚洲| 色偷偷男人的天堂亚洲av| 99精品在线看| 夜夜操国产| 国产伦片中文免费观看| 亚洲天堂免费观看| 免费一级毛片在线播放傲雪网| 中文字幕欧美日韩高清| 色天天综合久久久久综合片| 国产成人无码Av在线播放无广告| 午夜在线不卡| 日韩精品一区二区三区中文无码| 国内精品一区二区在线观看| 26uuu国产精品视频| 亚洲精品爱草草视频在线| 色婷婷视频在线| 亚洲另类国产欧美一区二区| 精品亚洲国产成人AV| 四虎影视8848永久精品| 99热精品久久| 丁香婷婷久久| 2022国产无码在线| 欧美日韩精品在线播放| 五月激情婷婷综合| 欧美日在线观看| 永久毛片在线播| 国产网站在线看| 九九精品在线观看| 无码有码中文字幕| 国产一区二区三区视频| 啪啪国产视频| 国产在线视频福利资源站| 国产午夜不卡| 国产欧美日韩在线在线不卡视频| 久久久久无码精品| 91精品人妻互换| 欧美成人一级| 9966国产精品视频| 超碰色了色| 亚洲成aⅴ人在线观看| 91成人免费观看| 98超碰在线观看| 成人亚洲国产| 国产福利在线免费| 国产菊爆视频在线观看|