• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tbwshc

            tbw

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)共享
            想請(qǐng)教如何讓多臺(tái)機(jī)器使用同一個(gè)程序,訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù),進(jìn)行比如增刪改查之類的操作
            網(wǎng)上說(shuō)要建立服務(wù)器什么的,能有大神說(shuō)的具體一點(diǎn)么,剛開始實(shí)習(xí),這方面還不是很懂,求指導(dǎo)

            ------解決方案--------------------------------------------------------
            c/s模式,可以看看數(shù)據(jù)庫(kù)相關(guān)的書
            ------解決方案--------------------------------------------------------
            一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,安裝數(shù)據(jù)庫(kù)
            N個(gè)客戶端,運(yùn)行你寫的程序,連到數(shù)據(jù)庫(kù)服務(wù)器上,對(duì)數(shù)據(jù)進(jìn)行操作

            這其實(shí)就是單機(jī)版程序和網(wǎng)絡(luò)版程序的區(qū)別

            網(wǎng)絡(luò)版程序要注意對(duì)數(shù)據(jù)事務(wù)的控制,注意并發(fā)操作
            ------解決方案--------------------------------------------------------
            用一臺(tái)電腦安裝上數(shù)據(jù)庫(kù)作為服務(wù)器,然后在客戶端運(yùn)行你寫的程序就可以了,TB進(jìn)程序時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接就可以操作數(shù)據(jù)了,注意對(duì)事務(wù)的控制,及時(shí)提交或回滾。
            posted @ 2012-08-25 12:17 tbwshc| 編輯 收藏

            【51CTO精選譯文】對(duì)于09年9月發(fā)布的Oracle 11g R2,51CTO之前已經(jīng)對(duì)其新特性進(jìn)行了一番概述。之前我們介紹了Oracle 11g R2的數(shù)據(jù)倉(cāng)庫(kù)性能的增強(qiáng),下面我們將介紹Oracle 11g R2中數(shù)據(jù)衛(wèi)士的增強(qiáng)特性:

            備用數(shù)據(jù)庫(kù)管理得到改善。數(shù)據(jù)衛(wèi)士專門為數(shù)據(jù)倉(cāng)庫(kù)業(yè)務(wù)進(jìn)行了改進(jìn),Oracle 11g R2為備用數(shù)據(jù)庫(kù)提供了許多管理功能,包括物理備用,邏輯備用和快照備用數(shù)據(jù)庫(kù)。

            集成應(yīng)用程序故障轉(zhuǎn)移。早期的數(shù)據(jù)衛(wèi)士提供了相對(duì)快速的應(yīng)用程序會(huì)話故障轉(zhuǎn)移,tb在切換和故障轉(zhuǎn)移期間使用了透明應(yīng)用程序故障轉(zhuǎn)移(Transparent Application Failover,TAF)功能,但Oracle 11g R2現(xiàn)在提供了快速應(yīng)用程序通知(Fast Application Notification ,F(xiàn)AN)功能,使得應(yīng)用程序故障轉(zhuǎn)移更快了。

            實(shí)時(shí)應(yīng)用和滯后應(yīng)用限制。作為獨(dú)立許可活動(dòng)數(shù)據(jù)衛(wèi)士選項(xiàng)的一部分,Oracle 11g R1提供了實(shí)時(shí)實(shí)時(shí)應(yīng)用功能(實(shí)時(shí)應(yīng)用重做日志到物理備用數(shù)據(jù)庫(kù),即使它處于只讀打開狀態(tài)),和實(shí)時(shí)查詢(當(dāng)重做日志正在應(yīng)用時(shí),查詢只讀備用數(shù)據(jù)庫(kù)的功能)功能遙相呼應(yīng),它為只讀數(shù)據(jù)倉(cāng)庫(kù)使用基本的復(fù)制提供了一個(gè)可選方案,但有一個(gè)重要的異常:沒有辦法應(yīng)對(duì)物理備用數(shù)據(jù)庫(kù)上的重做日志的任何重大延遲。Oracle 11gR2提供了一個(gè)新的會(huì)話級(jí)參數(shù)STANDBY_MAX_DATA_DELAY,它指定一個(gè)可接受的延遲時(shí)間(單位:秒),如果數(shù)據(jù)因超時(shí)變得無(wú)效,Oracle 11g R2會(huì)簡(jiǎn)單地拒絕執(zhí)行查詢,直接拋出一個(gè)異常(ORA-03172)。

            支持壓縮表和SecureFiles。Oracle 11g R2現(xiàn)在完整支持應(yīng)用程序的重做和邏輯備用數(shù)據(jù)庫(kù),主數(shù)據(jù)庫(kù)要么使用基本的表壓縮(DSS),要么使用高級(jí)表壓縮(OLTP),因?yàn)長(zhǎng)ogMiner也支持重做條目的轉(zhuǎn)換,此外,LogMiner和SQL應(yīng)用現(xiàn)在支持含有SecureFile LOB的邏輯備用數(shù)據(jù)庫(kù)上的應(yīng)用程序重做。

            【51CTO.com譯稿,非經(jīng)授權(quán)請(qǐng)勿轉(zhuǎn)載。合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com,且不得修改原文內(nèi)容。】

            posted @ 2012-08-18 13:07 tbwshc| 編輯 收藏

            自動(dòng)化塊恢復(fù)。依筆者之淺見,Oracle 10gR1的引入的塊級(jí)介質(zhì)恢復(fù)(MBR)已經(jīng)讓人們非常信服,至少人們開始考慮使用RMAN代替過(guò)時(shí)的ALTER TABLESPACE … BEGIN BACKUP方法備份數(shù)據(jù)庫(kù)。MBR意味著當(dāng)只需要恢復(fù)一小部分?jǐn)?shù)據(jù)塊時(shí),人們不再需要還原和恢復(fù)一個(gè)完整的數(shù)據(jù)文件了。Oracle 11g R2現(xiàn)在讓MBR自動(dòng)化了,如果數(shù)據(jù)文件檢查出有一個(gè)或多個(gè)損壞的數(shù)據(jù)塊,RMAN將會(huì)自動(dòng)還原和恢復(fù)這些數(shù)據(jù)塊,DBA不用做任何事情。如果數(shù)據(jù)衛(wèi)士的實(shí)時(shí)查詢模式是開啟的,Oracle 11g R2可以檢查對(duì)應(yīng)的物理備用數(shù)據(jù)庫(kù),查找最近的未遭受破壞的數(shù)據(jù)塊版本,并將這個(gè)完好的數(shù)據(jù)塊傳輸?shù)街鲾?shù)據(jù)庫(kù)。

            靈活的SET NEWNAME指令。如果你還沒有數(shù)據(jù)文件的名單,在使用RAMN,DUPLICATE DATABASE或表空間指定時(shí)間點(diǎn)恢復(fù)還原一個(gè)數(shù)據(jù)庫(kù)到一個(gè)不同的平臺(tái)或文件系統(tǒng)時(shí),你就知道多么歡迎這些新特性了,Oracle 11g R2現(xiàn)在可為數(shù)據(jù)文件名接受表空間級(jí)或數(shù)據(jù)庫(kù)級(jí)的FORMAT規(guī)范,此外,現(xiàn)在可以列出一個(gè)唯一標(biāo)識(shí)符(%U)或基礎(chǔ)名字(%b),然新的數(shù)據(jù)文件名更加規(guī)范。

            無(wú)目標(biāo)數(shù)據(jù)庫(kù)復(fù)制。在早先的數(shù)據(jù)庫(kù)版本上克隆一個(gè)數(shù)據(jù)庫(kù)需要連接到目標(biāo)數(shù)據(jù)庫(kù),tb總是有點(diǎn)不方便,因?yàn)槟繕?biāo)數(shù)據(jù)庫(kù)可能不可用,Oracle 11g R2現(xiàn)在通過(guò)DUPLICATE DATABASE命令可以對(duì)任何選定的數(shù)據(jù)庫(kù)執(zhí)行無(wú)目標(biāo)的復(fù)制,但它仍然會(huì)產(chǎn)品一個(gè)AUXILIARY連接到最終復(fù)制的數(shù)據(jù)庫(kù),當(dāng)然,現(xiàn)在恢復(fù)一個(gè)目錄數(shù)據(jù)庫(kù)也需要一個(gè)CATALOG連接。無(wú)目標(biāo)復(fù)制也需要指定NOREDO和UNDO TABLESPACE指令,因?yàn)闆]有辦法檢查源數(shù)據(jù)庫(kù)是否處于ARCHIVELOG模式,以及哪個(gè)源數(shù)據(jù)庫(kù)的表空間是UNDO表空間。

            增強(qiáng)的TSPITR。Oracle 11g R2移除了表空間指定時(shí)間點(diǎn)恢復(fù)(Tablespace Point-In-Time Recovery,TSPITR)的某些限制,提供了一個(gè)非常有用的工具恢復(fù)表空間,可以恢復(fù)到表空間之前的某個(gè)時(shí)間點(diǎn)的狀態(tài),不管恢復(fù)目錄是否可用,TSPITR現(xiàn)在恢復(fù)任意多個(gè)時(shí)間點(diǎn),對(duì)于刪除的表空間,TSPITR一樣可以恢復(fù)。

            備份到云。毫無(wú)疑問(wèn),未來(lái)最火熱的技術(shù)將是云計(jì)算,Oracle 11g R2現(xiàn)在可以將數(shù)據(jù)庫(kù)備份到亞馬遜的簡(jiǎn)單存儲(chǔ)服務(wù)(Simple Storage Service,S3)上,需要使用Oracle提供的安全備份介質(zhì)管理層軟件。

            【51CTO.com譯稿,非經(jīng)授權(quán)請(qǐng)勿轉(zhuǎn)載。合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com,且不得修改原文內(nèi)容。】

            posted @ 2012-08-18 13:06 tbwshc| 編輯 收藏

            2009年9月Oracle公司發(fā)布了期待已久的Oracle 11g R2,本系列文章將給讀者一一揭開新版本中的新特性,并會(huì)介紹企業(yè)如何利用這些新特性將現(xiàn)有的Oracle 9i,10g,11g R1升級(jí)到Oracle 11g R2.

            經(jīng)歷了難以忍受的長(zhǎng)時(shí)間等待,Oracle公司突然在9月1發(fā)布了Oracle 11g R2,我不得不承認(rèn)Oracle的保密工作做得多么好,我相信Oracle公司選擇這個(gè)時(shí)候發(fā)布時(shí)為了刺激參加Oracle OpenWorld 2009大會(huì)的人興奮和期待。

            經(jīng)過(guò)四處搜索Oracle 11g R2新特性文檔,并體驗(yàn)了新的OUI(Oracle通用安裝程序),創(chuàng)建了我的第一個(gè)單實(shí)例RAC后,我總結(jié)一下Oracle 11g R2中我最喜歡的五大新特性。在后面的文章中我將陸續(xù)介紹其它新特性,請(qǐng)鎖定本系列文章。

            NO.1 隨處可見的集群

            在以前的版本中,Oracle Clusterware必須要獨(dú)立地安裝在它自己的ORACLE HOME中,并且也只能在RAC環(huán)境下使用,這一切在Oracle 11g R2得到徹底顛覆,因?yàn)樵谶@個(gè)版本中支持安裝Oracle網(wǎng)格基礎(chǔ)架構(gòu),而且只需要一個(gè)獨(dú)立的ORACLE HOME,它包括了Oracle Clusterware和Oracle自動(dòng)存儲(chǔ)管理(ASM)。通過(guò)升級(jí)后的Oracle通用安裝程序安裝了網(wǎng)格基礎(chǔ)架構(gòu)后,你將會(huì)看到一個(gè)全新的功能和服務(wù)矩陣,我簡(jiǎn)單地列舉幾個(gè)吧:

            單實(shí)例RAC(Oracle重啟):聽起來(lái)似乎自相矛盾,但Oracle 11g R2擴(kuò)展了Oracle Clusterware的功能,為任何單實(shí)例提供了高可用特性,本質(zhì)上是將數(shù)據(jù)庫(kù)變成了單實(shí)例RAC數(shù)據(jù)庫(kù)。Oracle 11g R2中的Oracle重啟特性幫助Oracle網(wǎng)格基礎(chǔ)架構(gòu)的高可用服務(wù)控制服務(wù)器重啟時(shí)哪一個(gè)監(jiān)聽器,ASM實(shí)例和數(shù)據(jù)庫(kù)應(yīng)該啟動(dòng),它完全取代了過(guò)去DBA們經(jīng)常用到的DBSTART腳本。同樣,當(dāng)單個(gè)數(shù)據(jù)庫(kù)實(shí)例崩潰或其它異常終止時(shí),Oracle重啟功能會(huì)自動(dòng)監(jiān)測(cè)失效的實(shí)例,并自動(dòng)重啟它,就好像是在一個(gè)真實(shí)的RAC環(huán)境中一樣。

            SRVCTL升級(jí):如果你管理過(guò)舊版本的RAC環(huán)境,你可能已經(jīng)熟悉了RAC環(huán)境中的維護(hù)工具SRVCTL,在11g R2中,該工具被擴(kuò)展了,現(xiàn)在可以管理單實(shí)例RAC,以及監(jiān)聽器和ASM實(shí)例。

            集群時(shí)間同步服務(wù):Oracle 11g R2現(xiàn)在需要在所有RAC節(jié)點(diǎn)上配置時(shí)間同步,如果你曾經(jīng)經(jīng)歷過(guò)某個(gè)節(jié)點(diǎn)被驅(qū)逐出RAC集群配置,你一定知道其難度有多大,特別是兩個(gè)服務(wù)器的時(shí)間不同步和日志文件的時(shí)間戳不同步時(shí),Oracle之前的版本借助系統(tǒng)提供的網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)同步所有節(jié)點(diǎn)時(shí)間,但這需要連接到互聯(lián)網(wǎng)上的標(biāo)準(zhǔn)時(shí)間服務(wù)器,作為NTP的替代者,Oracle 11g R2提供了一個(gè)新的集群時(shí)間同步服務(wù),確保集群中的所有節(jié)點(diǎn)的時(shí)間都保持一致。

            網(wǎng)格即插即用:在以前的版本中,配置RAC最復(fù)雜的部分是確定和設(shè)置所有節(jié)點(diǎn)都需要用到的公共ip地址,私有ip地址和虛擬ip地址。為了簡(jiǎn)化RAC的安裝,Oracle 11g R2提供了一個(gè)全新的網(wǎng)格名稱服務(wù)(GNS),它和域名服務(wù)器協(xié)作,處理每個(gè)網(wǎng)格組件的ip地址分配,當(dāng)集群環(huán)境跨越多個(gè)數(shù)據(jù)庫(kù)時(shí)這個(gè)新特性極其有用。

            干凈地卸載RAC組件:如果你曾經(jīng)嘗試過(guò)刪除多個(gè)節(jié)點(diǎn)上的所有RAC痕跡,那一定會(huì)鐘情于這項(xiàng)新特性,在Oracle 11g R2中,所有安裝和配置助手,特別是Oracle通用安裝程序(OUI),數(shù)據(jù)庫(kù)配置助手(DBCA)和網(wǎng)絡(luò)配置助手(NETCA),都得到了增強(qiáng),當(dāng)需要卸載RAC組件時(shí),可以保證卸得干干凈凈。

            NO.2 ASM加入了集群

            Oracle 11g R2 ASM充滿了許多吸引人的新特性,對(duì)于初學(xué)者來(lái)說(shuō),ASM和Oracle 11g R2 Clusterware安裝在同一個(gè)Oracle Home下,因此消除了之前推薦的冗余Oracle Home安裝方法,并且ASM也從DBCA脫離出來(lái)了,有了專門的自動(dòng)存儲(chǔ)管理配置助手(ASMCA)。下面是我認(rèn)為最有趣的ASM新特性:

            智能化數(shù)據(jù)布局:在之前的版本中,要配置ASM磁盤可能需要存儲(chǔ)管理員的參與,需要配置磁盤I/O子系統(tǒng),Oracle 11g R2提供了ASM分配單元,可以直接受益于磁盤外緣柱面,獲得更快的速度,可以將數(shù)據(jù)文件,重做日志文件和控制放在磁盤外緣獲得更好的性能。

            EM支持工作臺(tái)擴(kuò)展:在這個(gè)版本中對(duì)Oracle 11g R1引入到企業(yè)管理控制臺(tái)中的自動(dòng)診斷倉(cāng)庫(kù)(ADR)進(jìn)行了擴(kuò)展,包括支持ASM診斷,將所有診斷信息打包直接發(fā)送給Oracle技術(shù)支持,以便獲得更快速的ASM性能問(wèn)題解決方案。

            ASMCMD增強(qiáng):自動(dòng)存儲(chǔ)管理命令行實(shí)用工具(ASMCMD)也獲得了不少增強(qiáng),包括:

            1)啟動(dòng)和停止ASM實(shí)例;

            2)備份,恢復(fù)和維護(hù)ASM實(shí)例的服務(wù)器參數(shù)文件(spfile);

            3)實(shí)用iostat監(jiān)控ASM磁盤組的性能;

            4)維護(hù)新的ASM集群文件系統(tǒng)(ACFS)中的磁盤卷,目錄和文件存儲(chǔ),我的下一個(gè)話題就是它。

            NO.3 ACFS – 一個(gè)強(qiáng)健的集群文件系統(tǒng)

            Oracle之前也發(fā)布過(guò)集群文件系統(tǒng)(OCFS),之后又發(fā)布了增強(qiáng)版OCFS2,它讓Oracle RAC實(shí)例可以通過(guò)共享存儲(chǔ)讀寫數(shù)據(jù)庫(kù)文件,重做日志文件和控制文件。

            此外,OCFS也允許RAC數(shù)據(jù)庫(kù)的Oracle集群注冊(cè)文件(OCR)和表決磁盤存儲(chǔ)在集群文件系統(tǒng)中,在Oracle 10g R2中,這個(gè)需求被取消了,OCR文件和表決磁盤可以存儲(chǔ)在裸設(shè)備或裸塊設(shè)備中,如果你曾經(jīng)在原始設(shè)備上丟失過(guò)這些文件的所有副本,你一定了解要恢復(fù)它們是多么繁瑣,因此,在Oracle 11g R2中,將不再支持將這些文件存儲(chǔ)在裸設(shè)備上。

            為了提高這些關(guān)鍵文件的存活能力,Oracle 11g R2正式引入了一種新的集群文件系統(tǒng),稱之為ASM集群文件系統(tǒng)(ACFS),在RAC環(huán)境中,ACFS可以為OCR文件和表決磁盤提供更好的保護(hù),它允許創(chuàng)建五份OCR文件副本,之前的集群文件系統(tǒng)僅允許保存兩份OCR文件,一個(gè)主OCR,一個(gè)鏡像OCR,但ACFS不適合單獨(dú)的RAC環(huán)境,除此之外,幾乎所有與操作系統(tǒng)和數(shù)據(jù)相關(guān)的文件都可以從ACFS的安全性和文件共享特性受益。

            動(dòng)態(tài)卷管理器:Oracle 11g R2提供了一個(gè)新的ASM動(dòng)態(tài)卷管理器(ADVM)來(lái)配置和維護(hù)存儲(chǔ)在ACFS文件系統(tǒng)中的文件,使用ADVM可以在ASM磁盤組內(nèi)構(gòu)建一個(gè)ADVM卷設(shè)備,管理存儲(chǔ)在ADVM卷設(shè)備中的文件,以及按需調(diào)整ADVM卷設(shè)備空間大小,最重要的是,因?yàn)锳DVM是構(gòu)建在ASM文件系統(tǒng)架構(gòu)之上的,可以保證存儲(chǔ)在這些卷中的文件受到良好的保護(hù),不會(huì)出現(xiàn)意外丟失,因?yàn)锳SM提供了類似RAID的磁盤陣列的功能。

            文件訪問(wèn)控制:使用傳統(tǒng)的Windows風(fēng)格訪問(wèn)控制列表(ACL)或Unix/Linux下的用戶/組/其它訪問(wèn)權(quán)限風(fēng)格為ACFS目錄和文件授予讀,寫和執(zhí)行權(quán)限,可以通過(guò)圖形化的企業(yè)管理控制臺(tái)或命令行程序ASMCMD管理ACFS目錄和文件安全。

            文件系統(tǒng)快照(FSS):Oracle 11g R2通過(guò)它的文件系統(tǒng)快照(FSS)功能可以對(duì)ACFS文件系統(tǒng)執(zhí)行快照,一個(gè)快照是所選ACFS文件系統(tǒng)的一個(gè)只讀副本,對(duì)相同的ACFS,它會(huì)自動(dòng)保留63個(gè)獨(dú)立的ACFS快照,當(dāng)某個(gè)ACFS文件被不經(jīng)意地更新,刪除或其它危險(xiǎn)操作時(shí),這個(gè)特性非常有用,利用11g R2企業(yè)管理控制臺(tái)或ACFS acfsutil命令行工具可以找出該文件合適的版本并執(zhí)行恢復(fù)。

            NO.4 改善的軟件安裝和打補(bǔ)丁過(guò)程

            我發(fā)現(xiàn)作為一名DBA壓力最大的活就是給Oracle數(shù)據(jù)庫(kù)打補(bǔ)丁了,如果補(bǔ)丁可能會(huì)引入對(duì)數(shù)據(jù)庫(kù)有害的行為,我不得不花費(fèi)大量的時(shí)間和精力來(lái)確定和審核,因此我對(duì)Oracle 11g R2中提供的新功能感到很歡喜。

            集群驗(yàn)證實(shí)用程序集成:從Oracle 10g開始引入了集群驗(yàn)證實(shí)用程序(CVU),現(xiàn)在已經(jīng)完全集成到Oracle通用安裝程序(OUI)和其它配置助手(如DBCA,DBUA)中了。

            零停機(jī)修補(bǔ)的集群:當(dāng)為Oracle集群打補(bǔ)丁時(shí),Oracle 11g R2在一個(gè)不合適的位置升級(jí)方式應(yīng)用補(bǔ)丁,這意味著會(huì)有兩個(gè)Oracle Home,其中一個(gè)專門用來(lái)存放補(bǔ)丁的,但一次只能激活一個(gè)Oracle Home,在Oracle 11g R2中不用再為升級(jí)全部關(guān)閉Oracle集群了,tb實(shí)現(xiàn)真正的零停機(jī)打補(bǔ)丁。

            NO.5 DBMS_SCHEDULER升級(jí)

            古老的DBMS_SCHEDULER包得到了徹底的更新,DBA經(jīng)常使用這個(gè)包來(lái)調(diào)度作業(yè)。

            文件監(jiān)視器:以前的版本無(wú)法在批處理過(guò)程中檢測(cè)大多數(shù)觸發(fā)事件,如檢測(cè)一個(gè)文件抵達(dá)某個(gè)目錄,在Oracle 11g R2中,使用新的文件監(jiān)視器可以緩解這個(gè)問(wèn)題,一旦預(yù)期的文件抵達(dá)目錄,DBMS_SCHEDULER現(xiàn)在就可以檢測(cè)到了,并在新的對(duì)象類型SCHEDULER_FILEWATCHER_RESULT中注冊(cè)它的到來(lái),它通過(guò)新的CREATE_FILE_WATCHER存儲(chǔ)過(guò)程向DBMS_SCHEDULER發(fā)送一個(gè)信號(hào)觸發(fā)作業(yè)。

            內(nèi)置的email通知:無(wú)論何時(shí),DBMS_SCHEDULER調(diào)度任務(wù)啟動(dòng)、失敗或完成時(shí),任務(wù)的狀態(tài)可以立即通過(guò)email發(fā)送出去,雖然在以前的版本中也能實(shí)現(xiàn)這個(gè)功能,但要么調(diào)用DBMS_MAIL存儲(chǔ)過(guò)程,要么調(diào)用DBMS_SMTP存儲(chǔ)過(guò)程,現(xiàn)在這個(gè)功能合并到DBMS_SCHEDULER中了。

            遠(yuǎn)程作業(yè):DBMS_SCHEDULER現(xiàn)在允許DBA在遠(yuǎn)程數(shù)據(jù)庫(kù)上創(chuàng)建和調(diào)度作業(yè),現(xiàn)在我終于可以在生產(chǎn)庫(kù)PROD03上通過(guò)DBMS_SCHEDULER調(diào)用生產(chǎn)庫(kù)DBMS_SCHEDULER上的存儲(chǔ)過(guò)程執(zhí)行任務(wù)了,這意味著我現(xiàn)在可以在tb一臺(tái)數(shù)據(jù)庫(kù)上集中創(chuàng)建和維護(hù)調(diào)度任務(wù)了。

            多作業(yè)目標(biāo):最后,現(xiàn)在可以在多個(gè)數(shù)據(jù)庫(kù)實(shí)例上同時(shí)調(diào)度DBMS_SCHEDULER任務(wù)了,在RAC環(huán)境中,這個(gè)特性非常有用,因?yàn)槲铱梢岳枚鄠€(gè)數(shù)據(jù)庫(kù)實(shí)例將長(zhǎng)時(shí)間運(yùn)行任務(wù)分成幾部分,分別在不同的數(shù)據(jù)庫(kù)實(shí)例上執(zhí)行更小的任務(wù)。

            posted @ 2012-08-18 13:05 tbwshc| 編輯 收藏

            【51CTO精選譯文】在之前幾篇文章中,51CTO對(duì)Oracle 11g R2的幾大新特性進(jìn)行了簡(jiǎn)略的描述(參考Oracle 11g專題)。最后,我們來(lái)進(jìn)行一些總結(jié),介紹Oracle 11g R2當(dāng)中新增的幾個(gè)不是很大,但是也相當(dāng)不錯(cuò)的特性。

            基于版本的重定義

            Oracle 11g R2增加了一個(gè)強(qiáng)大的新工具,它可以檢出應(yīng)用程序數(shù)據(jù)庫(kù)對(duì)象的任一版本,不是所有數(shù)據(jù)庫(kù)對(duì)象都支持版本化管理,但私有的同義詞,視圖和幾乎所有的PL/SQL對(duì)象,包括存儲(chǔ)過(guò)程、函數(shù)、類型、類型主體、包、包主體和觸發(fā)器,版本化管理的真正好處是簡(jiǎn)化了部署一個(gè)修改版本的應(yīng)用程序代碼到生產(chǎn)數(shù)據(jù)庫(kù),如果部署時(shí)遇到一系列的錯(cuò)誤,可以很容易地將所有影響的對(duì)象回滾到上一個(gè)版本。

            消除了閃回?cái)?shù)據(jù)歸檔上的DDL限制

            在前一篇文章中,我深入研究了Oracle 11g R1的新特性“閃回?cái)?shù)據(jù)歸檔(Flashback Data Archive,F(xiàn)BDA)”,它也被稱為“全部召回(Total Recall)”,它只捕獲變化的數(shù)據(jù),將這些數(shù)據(jù)放在一套特殊的對(duì)象中,它們構(gòu)成了FBDA,當(dāng)用戶通過(guò)閃回版本查詢(Flashback Versions query)查詢表的歷史記錄時(shí),Oracle將會(huì)直接從數(shù)據(jù)庫(kù)的UNDO表空間返回最近變化的數(shù)據(jù),從FBDA返回更舊的數(shù)據(jù)。

            雖然這個(gè)特性很好,但在早期版本中也有很多限制,包括增加、修改、重命名、刪除表的列、truncate表、修改表的約束、以及修改分區(qū)表的分區(qū)規(guī)范,在Oracle 11g R2中,這些限制全部沒有了,對(duì)于更復(fù)雜的DDL操作,如使用DBMS_REDEFINITION包重定義已經(jīng)存儲(chǔ)到FBDA的基礎(chǔ)表,Oracle 11g R2提供了新的DBMS_FLASHBACK_ARCHIVE包,存儲(chǔ)過(guò)程DISASSOCIATE_FBA將會(huì)把基礎(chǔ)表從FBDA中分離出來(lái),一旦請(qǐng)求的改變完成,存儲(chǔ)過(guò)程REASSOCIATE_FBA會(huì)被用來(lái)重新關(guān)聯(lián)修改的表和基礎(chǔ)表。

            按需創(chuàng)建分段

            在之前的版本中,使用CREATE TABLE語(yǔ)句創(chuàng)建表時(shí),會(huì)同時(shí)自動(dòng)創(chuàng)建表的初始段,從Oracle 11gR2開始,這個(gè)默認(rèn)的行為有所變化,創(chuàng)建表時(shí)不會(huì)創(chuàng)建初始段,直到有數(shù)據(jù)插入到這個(gè)表。此外,任何依賴于該表的索引或LOB段也不會(huì)創(chuàng)建,tb直到有數(shù)據(jù)插入才會(huì)創(chuàng)建,表的SEGMENT CREATION DEFERRED存儲(chǔ)屬性指定了這個(gè)默認(rèn)行為,但可以使用SEGMENT CREATION IMMEDIATE屬性覆蓋它。

            不可用索引大小歸零

            在重新載入大表時(shí),比如一個(gè)有上百萬(wàn)行的數(shù)據(jù)倉(cāng)庫(kù)事實(shí)表,要提高這種表的加載速度,最簡(jiǎn)單的辦法是將該表上的所有索引置為不可用,在數(shù)據(jù)加載完畢后,在重建這些索引,Oracle 11g R2認(rèn)可了這一做法,并采取了實(shí)質(zhì)性的措施,當(dāng)索引被標(biāo)記為不可用時(shí),它會(huì)自動(dòng)刪除所有索引段。

            小結(jié)

            Oracle 11g R2延續(xù)了自O(shè)racle 10g以來(lái)令人稱道的自我管理,自我調(diào)整,自我治愈的特性,這個(gè)新版本提供了太多的新特性,有些是遲來(lái)的功能,有些是革新,Oracle DBA可以借助這些新特性提高工作效率,成為一名真正的“信息工程師”。

            posted @ 2012-08-18 13:04 tbwshc 閱讀(1102) | 評(píng)論 (0)編輯 收藏

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com

            這是一個(gè)C++單件模式板類的一種實(shí)現(xiàn),這個(gè)類的實(shí)現(xiàn)有別于傳統(tǒng)的用繼承或者宏的方式來(lái)實(shí)現(xiàn)。
            這里的singleton_holder實(shí)際上是類的包裝器。

            template <typename T>
            class singleton_holder
            {
            public:
                typedef T obj_type;
                static T& instance()
                {
                    static T obj;
                    return obj;
                   
                }
               
            private:
                singleton_holder();
                singleton_holder(const singleton_holder& s);
                singleton_holder& operator=(const singleton_holder& s);
                ~singleton_holder();
                     
            };

             

            class application_impl
            {
            public:
                void run()    
                {
                    std::cout<<this is a testb<<std::endl;
                }
                    
            }

            typedef singleton_holder<application_impl> application;
            void main()
            {
                application::obj_type& app = application::instance();
                app.run();
            }

            posted @ 2012-08-12 12:48 tbwshc| 編輯 收藏

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com

            面向?qū)ο蟮某绦蛟O(shè)計(jì)方法要求語(yǔ)言必須具備抽象、封裝、繼承和多態(tài)性這幾個(gè)關(guān)鍵要素。

            面向?qū)ο蟪绦蛟O(shè)計(jì),是通過(guò)為數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對(duì)程序進(jìn)行模塊化的一種程序設(shè)計(jì)方法。對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,通過(guò)將內(nèi)存分塊,每個(gè)模塊(即對(duì)象)在功能上相互之間保持相對(duì)獨(dú)立。

            這些內(nèi)存模塊中不但存儲(chǔ)數(shù)據(jù),而且也存儲(chǔ)代碼,這對(duì)保證對(duì)象是受保護(hù)的這一點(diǎn)很重要,只有對(duì)象中的代碼才可以訪問(wèn)存儲(chǔ)于這個(gè)對(duì)象中的數(shù)據(jù),這清楚地限定了對(duì)象所具有的功能(即一個(gè)對(duì)象在一個(gè)軟件中所能起到的作用),并使對(duì)象保護(hù)它自己不受未知的外部其它的事件的影響,從而使自己的數(shù)據(jù)和功能不會(huì)因此遭到破壞。

            在面向?qū)ο蟮某绦蛑校瑢?duì)象之間可以通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)相互通信。一個(gè)對(duì)象可以調(diào)用另一個(gè)對(duì)象的函數(shù),處于對(duì)象外部的代碼就沒有機(jī)會(huì)通過(guò)直接修改對(duì)象的內(nèi)存區(qū)域。當(dāng)對(duì)象的一個(gè)函數(shù)被調(diào)用時(shí),對(duì)象執(zhí)行其內(nèi)部代碼來(lái)響應(yīng)這個(gè)調(diào)用,這使tb對(duì)象呈現(xiàn)出一定的行為。行為及其結(jié)果就是該對(duì)象的功能。對(duì)象被視為能做出動(dòng)作的實(shí)體,動(dòng)作在對(duì)象相互作用時(shí)被激發(fā),換句話說(shuō),對(duì)象就像在宿主計(jì)算機(jī)上擁有數(shù)據(jù)和代碼,并能相互通信的具有特定功能的一臺(tái)較小的計(jì)算機(jī)。

            抽象

            面向?qū)ο蠊膭?lì)程序員以抽象的觀點(diǎn)看待程序,即程序是由一組抽象的對(duì)象組成的。另一方面,我們又可以將一組對(duì)象的共同特征進(jìn)一步抽象出來(lái),從面形成“類”的概念。

            抽象是一種從一般的觀點(diǎn)看待事物的方法,它要求程序員集中于事物的本質(zhì)特征,而不是具體細(xì)節(jié)或具體實(shí)現(xiàn)。面向?qū)ο蠊膭?lì)程序員以抽象的觀點(diǎn)看待程序,也就是說(shuō)程序是一組抽象的對(duì)象-類組成的(嚴(yán)格講,C++程序不是純面向?qū)ο蟮模驗(yàn)槌绦蛑羞€有像main這樣的全局函數(shù))。程序從一組對(duì)象為起來(lái),抽取公共的行為放入到一個(gè)類中,這是抽象分類的觀點(diǎn),不同類的對(duì)象具有不同的行為。

            類的概念來(lái)源于人們認(rèn)識(shí)自然、認(rèn)識(shí)社會(huì)的過(guò)程。在這一過(guò)程中,人們主要使用兩種方法:由特殊到一般的歸納法和由一般到特殊的演繹法。在歸納的過(guò)程中,我們從一個(gè)個(gè)具體的事物中把共同的特征抽取出來(lái),形成一個(gè)一般的概念,這就是“歸類”;在演繹的過(guò)程中,我們又把同類的事物,根據(jù)不同的特征分成不同的小類,這又是“分類”。對(duì)于一個(gè)具體的類,它有許多具體的個(gè)體,我們就管這些個(gè)體叫做“對(duì)象”。

            舉個(gè)例子,“人”是一個(gè)類,具有“直立行走、會(huì)使用工具”等一些區(qū)別于其它事物的共同特征;而張三、李四、王五等一個(gè)個(gè)具體的人,就是“人”這個(gè)類的一個(gè)個(gè)“對(duì)象”。

            封裝

            所謂數(shù)據(jù)封裝,就是將一組數(shù)據(jù)和與這組數(shù)據(jù)相關(guān)的操作集合組裝在一起,形成一個(gè)能動(dòng)的實(shí)體,也就是對(duì)象。在這種情況下,用戶是不可以直接操作數(shù)據(jù)的,他必須通過(guò)和數(shù)據(jù)相關(guān)的操作來(lái)訪問(wèn)數(shù)據(jù)。換句話說(shuō),數(shù)據(jù)封裝就是給數(shù)據(jù)提供了與外界聯(lián)系的標(biāo)準(zhǔn)接口,無(wú)論是誰(shuí),只有通過(guò)這些接口,使用規(guī)范的方式,才能訪問(wèn)這些數(shù)據(jù)。同時(shí),由于客戶端總是和接口打交道,他也就不必要了解數(shù)據(jù)的具體細(xì)節(jié)。

            由此可見,封裝要求一個(gè)對(duì)象應(yīng)具備明確的功能,并具有接口以便和其它對(duì)象相互作用。同時(shí),對(duì)象的內(nèi)部實(shí)現(xiàn)(代碼和數(shù)據(jù))是受保護(hù)的,外界不能訪問(wèn)它們,只有局部于對(duì)象的代碼才可以訪問(wèn)對(duì)象的內(nèi)部數(shù)據(jù)。對(duì)象的內(nèi)部數(shù)據(jù)結(jié)構(gòu)的不可訪問(wèn)性稱為數(shù)據(jù)隱藏。封裝使得一個(gè)對(duì)象可以像一個(gè)部件一樣用在各種程序中,而不用擔(dān)心對(duì)象的功能受到影響。

            早期的軟件設(shè)計(jì)方法,把數(shù)據(jù)和程序混在一起,結(jié)構(gòu)化很差,被細(xì)稱為“一碗面條”的編程方法。在這一階段程序的可讀性與可維護(hù)性都很差,于是產(chǎn)生了“軟件危機(jī)”,為了解除這種危機(jī)便提出了結(jié)構(gòu)化程序設(shè)計(jì)。在結(jié)構(gòu)化程序設(shè)計(jì)里,雖然程序被分為不同的模塊,以便大大減少不同模塊之間的相互作用,但數(shù)據(jù)仍然屬于整個(gè)程序的。這就又存在著這樣一個(gè)問(wèn)題:一方面,程序員在設(shè)計(jì)每一個(gè)模塊的時(shí)候,都要或多或少地作全局考慮,模塊與模塊之間的耦合度相對(duì)太高了,勢(shì)必增加不同模塊的程序員之間溝通所帶來(lái)的工作量;另一方面,在某地方對(duì)數(shù)據(jù)的改動(dòng),有可能又對(duì)整個(gè)程序產(chǎn)生難以預(yù)料的影響。隨著軟件工程的進(jìn)一步發(fā)展,軟件越來(lái)越大,數(shù)據(jù)越來(lái)越多,這個(gè)問(wèn)題也越來(lái)越突出。

            數(shù)據(jù)封裝的提出,就是為了解決這一問(wèn)題。它一方面使得程序員在設(shè)計(jì)程序時(shí)可以專注于自己的對(duì)象,“各人自掃門前雪,莫管他人瓦上霜”,同時(shí)也切斷了不同模塊之間數(shù)據(jù)的非法使用,減少了出錯(cuò)的可能性。

            繼承

            所謂繼承是指一個(gè)對(duì)象可以獲得另一個(gè)對(duì)象的特性的機(jī)制,它支持層次類這一概念。例如:紅蘋果屬于蘋果類,而蘋果類又屬于水果類。通過(guò)繼承,低層的類只需定義特定于它的特征,而共享高層類中的特征。

            多態(tài)

            不同的對(duì)象可以調(diào)用相同名稱的函數(shù),并可導(dǎo)致完全不同的行為的現(xiàn)象稱為多態(tài)性。利用多態(tài)性,程序中只需進(jìn)行一般形式的函數(shù)調(diào)用,函數(shù)的實(shí)現(xiàn)細(xì)節(jié)留給接受函數(shù)調(diào)用的對(duì)象。這大大提高了我們解決復(fù)雜問(wèn)題的能力。例如繪制三角形與繪制正方形所調(diào)用的繪制函數(shù)其效果肯定是不同的,但我們可以設(shè)計(jì)一個(gè)公共的Draw()函數(shù)代表繪制,而不同對(duì)象的繪制圖形的具體細(xì)節(jié)則分別由具體對(duì)象負(fù)責(zé)實(shí)現(xiàn)。

            posted @ 2012-08-12 12:47 tbwshc| 編輯 收藏

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com

            第一種方法:

            a = a + b;

            b = a – b;

            a = a – b;

            第二種方法:

            a=a^b;

            b=a^b;

            a=a^b;

            或者

            a^=b^=a^=b;

            原理是:相同的兩數(shù)相異為0,任何數(shù)與0相異保留不變

            但不推薦這么使用,c FAQs里有說(shuō)明,用異或準(zhǔn)確來(lái)講是undefined,Not portbably
            Q: Here’s a slick expression:

            a ^= b ^= a ^= b
            It swaps a and b without using a temporary.
            A: Not portably, it doesn’t. It attempts to modify the variable a twice between sequence points, so its behavior is undefined.

            For example, it has been reported that when given the code

             int a = 123, b = 7654;
             a ^= b ^= a ^= b;

            the SCO Optimizing C compiler (icc) sets b to 123 and a to 0.

            posted @ 2012-08-12 12:46 tbwshc| 編輯 收藏

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com


            何時(shí)用虛析構(gòu)函數(shù)

            class Base
            {
            public:
                Base();
                ~Base();
                …
            };

            class Derived : public Base
            {
                …
            };

            Base *p = new Derived;
            delete p;

            這個(gè)例子中,基類指針p指向派生類對(duì)象,那么經(jīng)由基類指針來(lái)釋放該派生類對(duì)象,會(huì)導(dǎo)致資源泄漏。因?yàn)榛惖奈鰳?gòu)函數(shù)不是虛的,delete p只會(huì)調(diào)用基類的析構(gòu)函數(shù),派生類的析造函數(shù)不會(huì)被調(diào)用。解決方法是將基類的析構(gòu)函數(shù)改成虛析構(gòu)函數(shù)。

            那么什么時(shí)候該用虛析構(gòu)函數(shù)呢?任何一個(gè)類只要帶有virtbual函數(shù),這意味著該類被設(shè)計(jì)為多態(tài)用途的基類,那么基本上這個(gè)類也應(yīng)該有一個(gè)virtual析構(gòu)函數(shù)。如果一個(gè)類不含virtual函數(shù),通常表示它的設(shè)計(jì)意圖是不被用作多態(tài)基類。當(dāng)類不被當(dāng)作基類或者不被用作多態(tài)性,令其析構(gòu)函數(shù)為virtual是不好的做法。因?yàn)橐粋€(gè)類有虛函數(shù),類對(duì)象會(huì)增加一個(gè)虛表指針(virtual table pointer)來(lái)決定運(yùn)行期間哪個(gè)虛函數(shù)該被調(diào)用。

            另外析構(gòu)函數(shù)還可以是純虛析構(gòu)函數(shù)。具有純虛函數(shù)的為表示抽象類,如果某個(gè)類沒有任何一個(gè)成員函數(shù),又想將它設(shè)計(jì)成抽象類,就只能將析構(gòu)函數(shù)作為純虛的。如:
            class Test
            {
            public:
                virtual ~Test() = 0;
            }

            // 虛析構(gòu)函數(shù)的定義
            virtual ~Test()
            {
            }
            通常純虛函數(shù)不需要提供定義,但是這邊有個(gè)例外,純虛析構(gòu)函數(shù)必需給出實(shí)現(xiàn)體才能通過(guò)編譯鏈接。析構(gòu)函數(shù)析構(gòu)函數(shù)析構(gòu)的次序是最深層的派生類的析構(gòu)函數(shù)先被調(diào)用,然后依次調(diào)用每一層的析構(gòu)函數(shù)。所以編譯器會(huì)在析構(gòu)Test類的派生類的析構(gòu)函數(shù)中創(chuàng)建一個(gè)對(duì)~Test()的調(diào)用動(dòng)作,所以必須提供這個(gè)析構(gòu)函數(shù)的定義。

            posted @ 2012-08-12 12:45 tbwshc| 編輯 收藏

            (轉(zhuǎn)載)C++教程網(wǎng)www.cppcourse.com

            new有三種用法:new operator、operator new、placement new

            new operator

            new operator是最常見的用法,如 Emp* e1 = new Emp;(Emp是一個(gè)類) 這里new有兩種作用:分配空間、初始化對(duì)象(調(diào)用了構(gòu)造函數(shù))

            operator new

            operator new作用是只分配空間,不調(diào)用構(gòu)造函數(shù),如:Emp* e2 = (Emp*)operator new(sizeof(Emp));

            placement new

            placement new作用是在已分配好的空間上初始化對(duì)象,不分配空間,調(diào)用拷貝構(gòu)造函數(shù),如:new ((void *)e2) Emp(*tb1);

            示例代碼如下:

            // Emp.h
            #ifndef _EMP_H_
            #define _EMP_H_

             

            class Emp
            {
            public:
            Emp();
            Emp(const Emp& other);
            ~Emp();
            };

            #endif // _EMP_H_

            // Emp.cpp

            #include “Emp.h”
            #include <iostream>
            using namespace std;

            Emp::Emp()
            {
            cout<<“Emp…”<<endl;
            }

            Emp::Emp(const Emp& other)
            {
            cout<<“Copy Emp…”<<endl;
            }

            Emp::~Emp()
            {
            cout<<“~Emp…”<<endl;
            }

            // main.cpp
            #include “Emp.h”
            #include <iostream>
            void main()
            {
            using namespace std;
            // new operator 分配空間,調(diào)用構(gòu)造函數(shù)
            Emp* e1 = new Emp;
            // operator new 只分配空間
            Emp* e2 = (Emp*)operator new(sizeof(Emp));
            // placement new 不分配空間,調(diào)用拷貝構(gòu)造函數(shù)
            new ((void *)e2) Emp(*e1);
            // 顯示調(diào)用析構(gòu)函數(shù)
            e2->~Emp();
            // 僅釋放空間,不調(diào)用析構(gòu)函數(shù)
            operator delete(e2);
            // 調(diào)用析構(gòu)函數(shù),釋放空間
            delete e1;

            }

            posted @ 2012-08-12 12:44 tbwshc| 編輯 收藏

            僅列出標(biāo)題
            共10頁(yè): 1 2 3 4 5 6 7 8 9 Last 
            久久免费国产精品一区二区| 伊人久久大香线蕉综合网站| 日日噜噜夜夜狠狠久久丁香五月| 久久综合给久久狠狠97色| 精品熟女少妇av免费久久| 久久久精品一区二区三区| 天天影视色香欲综合久久| 国产精品对白刺激久久久| 久久国产精品免费一区二区三区 | 欧美伊人久久大香线蕉综合| 18岁日韩内射颜射午夜久久成人| 99久久国语露脸精品国产| 亚洲午夜精品久久久久久浪潮| 97精品依人久久久大香线蕉97| 国产午夜福利精品久久| 中文字幕无码免费久久| 国产亚洲美女精品久久久| 精品人妻伦九区久久AAA片69| 国产ww久久久久久久久久| 亚洲中文字幕久久精品无码喷水| 精品久久久久中文字幕一区| 久久综合噜噜激激的五月天| 久久精品综合网| 无码任你躁久久久久久久| 四虎国产永久免费久久| 国产高潮国产高潮久久久| 久久无码高潮喷水| 久久久精品久久久久特色影视| 国产综合久久久久| 日产精品久久久一区二区| 99久久精品免费看国产一区二区三区| 国内精品欧美久久精品| 亚洲国产成人久久精品动漫| 97久久国产亚洲精品超碰热| 久久综合给合久久狠狠狠97色 | 无码任你躁久久久久久老妇| 国产AV影片久久久久久| AAA级久久久精品无码区| 亚洲国产精品久久久久| 久久婷婷国产麻豆91天堂| 久久99精品国产一区二区三区|