亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2015-11-07 05:32:29應(yīng)天職業(yè)技術(shù)學(xué)院
        電子世界 2015年14期
        關(guān)鍵詞:腳本調(diào)用語(yǔ)句

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

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

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

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

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

        1 引言

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

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

        2 場(chǎng)景介紹

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

        圖1 工作場(chǎng)景示意圖

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

        新庫(kù)之所以會(huì)做出這樣的變動(dòng),是因?yàn)殡S著在線用戶的變多,數(shù)據(jù)量變大,所以需要將數(shù)據(jù)進(jìn)行拆分。

        3 實(shí)現(xiàn)方法

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

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

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

        3.1 腳本

        對(duì)于第(1)點(diǎn),首先構(gòu)建一個(gè)執(zhí)行存儲(chǔ)過程的函數(shù),保存為腳本,執(zhí)行的時(shí)候直接進(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"," #存儲(chǔ)過程本身的參數(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í)行存儲(chǔ)過程

        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í)行存儲(chǔ)過程,并帶入存儲(chǔ)過程所需要的參數(shù)。如果想加以利用,還需要考慮輸出日志等問題。

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

        3.2 過程

        如果不需要拆分可用Insert …select…語(yǔ)句就可以實(shí)現(xiàn)這個(gè)功能。需要拆分時(shí)將ucr_dtb4下的用戶根據(jù)路由表tf_f_user_cataloG表拆分到ucr_dtb25、ucr_dtb26、ucr_dtb27三個(gè)用戶下。可以將上述語(yǔ)句進(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;

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

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

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

        select Name

        from v$db_object_cache

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

        4 結(jié)論

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

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

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

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

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

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

        猜你喜歡
        腳本調(diào)用語(yǔ)句
        酒駕
        安奇奇與小cool 龍(第二回)
        重點(diǎn):語(yǔ)句銜接
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
        精彩語(yǔ)句
        快樂假期
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        如何搞定語(yǔ)句銜接題
        一区二区免费电影| 波多野结衣的av一区二区三区 | 人人添人人澡人人澡人人人人| 国产亚洲精品国产福利在线观看| 国产一级黄片久久免费看| 蜜桃视频在线观看免费亚洲| 又黄又硬又湿又刺激视频免费| 一区二区国产在线观看| 天堂av在线一区二区| 在线观看亚洲av每日更新影片 | 中文字幕精品久久天堂一区| 92自拍视频爽啪在线观看| 免费毛儿一区二区十八岁| 精品日韩欧美一区二区在线播放| 二区久久国产乱子伦免费精品| 日本一区人妻蜜桃臀中文字幕| 亚洲国产精品成人天堂| 中文人妻av久久人妻18| 亚洲先锋影院一区二区| 亚洲专区路线一路线二网| 亚洲中文字幕无码不卡电影| 亚洲成在人线av| 日韩精品极品免费观看| 美女下蹲露大唇无遮挡| 亚洲精品美女久久久久99| 亚洲欧洲日产国码久在线观看| 国产精品后入内射日本在线观看 | 91一区二区三区在线观看视频| 一边做一边喷17p亚洲乱妇50p| 自拍偷自拍亚洲精品播放| 日韩av在线不卡一二三区| 国产白浆一区二区三区性色| 97精品国产手机| 国产亚洲精品不卡在线| 国产的自拍av免费的在线观看| 国模无码一区二区三区不卡| 2021国产精品视频| 久久精品国产亚洲av专区| 99无码精品二区在线视频| 蜜臀av免费一区二区三区| 激情五月婷婷六月俺也去|