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

實際工作場景中oracle數據庫數據快速倒換方法

2015-11-07 05:32:29應天職業技術學院
電子世界 2015年14期
關鍵詞:數據庫用戶

應天職業技術學院 謝 芳

實際工作場景中oracle數據庫數據快速倒換方法

應天職業技術學院 謝 芳

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

oracle數據庫;數據倒換

1 引言

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

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

2 場景介紹

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

圖1 工作場景示意圖

生產庫有2個庫,4個節點,4個用戶;而新庫有2個庫,2個節點,13個用戶。

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

3 實現方法

為了實現這樣的目標,我們需要考慮如下技術的可能性:

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

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

3.1 腳本

對于第(1)點,首先構建一個執行存儲過程的函數,保存為腳本,執行的時候直接進行調用。

executeProcedure()

{

DB_USER=$1 #參數1

shift

DB_PASSWD=$1 #參數2

shift

DB_SERVER=$1 #參數3

shift

PROCEDURE_NAME=$1 #參數4

shift

PROCEDURE=${PROCEDURE_NAME}"("

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

do

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

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}; #執行存儲過程

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

}

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

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

3.2 過程

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

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語句比較長,在調試存儲過程時,會看不到這個語句,所以可以將各個when語句依次放入數組元素中,select語句也放入一個數組元素中,最后將它們拼接起來執行。這樣的話將對調試非常有利。(2)如果路由表tf_f_user_cataloG表中的數據量非常大,例如超過1億,那么全表掃描將是一個災難。這里提供兩個思路,首先,將這個表進行拆分,建多張表,語句中調用哪個表,可以通過存儲過程的入參來決定。其次,在這張表上建立關聯索引。這樣一來速度可以提高幾百倍。

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

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

select Name

from v$db_object_cache

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

4 結論

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

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

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

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

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

[5]王海翔.Oracle數據庫軟件研究[J].現代商貿工業,2010(11).

猜你喜歡
數據庫用戶
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 亚洲天堂.com| 国产91九色在线播放| 小蝌蚪亚洲精品国产| 亚洲最猛黑人xxxx黑人猛交| 亚洲最新在线| 国产福利免费观看| 色播五月婷婷| 国产男女免费完整版视频| 久久国产成人精品国产成人亚洲 | 日本尹人综合香蕉在线观看| 欧美成人午夜在线全部免费| 成人福利在线视频| 国产成人三级| 无码啪啪精品天堂浪潮av| 国产91视频免费| 日本a级免费| 日韩精品无码免费一区二区三区| 成年免费在线观看| 少妇被粗大的猛烈进出免费视频| 亚洲最新地址| 91青青草视频| 老司机久久99久久精品播放| 国产女人在线观看| 亚洲精品另类| 理论片一区| 色妺妺在线视频喷水| 性视频一区| 波多野结衣视频一区二区| 亚洲天堂在线免费| 久久国产毛片| 亚洲欧美国产高清va在线播放| 中文字幕日韩丝袜一区| 高清乱码精品福利在线视频| 久久综合九色综合97婷婷| 亚洲第一区欧美国产综合| 亚洲人成网18禁| 欧美区国产区| 亚洲水蜜桃久久综合网站 | 亚洲国产欧美国产综合久久| 欧美成人午夜影院| 欧美日韩在线第一页| 天天爽免费视频| 一本二本三本不卡无码| 日韩不卡免费视频| 伊人激情综合| 精品视频一区二区观看| 国产亚洲现在一区二区中文| 国产成人三级| 日本高清免费不卡视频| 日本午夜精品一本在线观看| 亚洲专区一区二区在线观看| 在线观看91精品国产剧情免费| 露脸真实国语乱在线观看| 国产麻豆另类AV| 国产麻豆精品久久一二三| 天天摸夜夜操| 九九热精品在线视频| 国产亚洲男人的天堂在线观看| 蜜芽一区二区国产精品| 亚洲综合婷婷激情| 日本三级精品| 亚洲精品卡2卡3卡4卡5卡区| 天堂成人av| 无码AV日韩一二三区| 亚洲精品国产成人7777| V一区无码内射国产| 蜜桃视频一区二区| 久久永久精品免费视频| 亚洲午夜片| 黄色三级毛片网站| 欧美一区日韩一区中文字幕页| 国产理论一区| 国产精品lululu在线观看 | 久久五月天国产自| 欧美精品三级在线| 亚洲色欲色欲www在线观看| 国产一区二区人大臿蕉香蕉| 久久夜色精品国产嚕嚕亚洲av| 国产成人精品日本亚洲77美色| 嫩草在线视频| 亚洲一级毛片免费看| 午夜一级做a爰片久久毛片|