精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解C#完成Oracle數據庫鏡像與還原

開發 后端
本文將介紹的是利用C#完成Oracle數據庫鏡像與還原工作,這些也屬于DBA們經常要完成的工作。希望本文能對大家有所幫助。

對于C#相關開發技巧,51CTO向您推薦《C#實用基礎教程》和《體驗Visual Studio 2008展望2010》專題來更深入的理解。

開發工具:Visual Studio 2008 C#,Oracle管理工具

對操作系統進行備份和還原也許是最常用的。實際業務環境升級后,因多方面原因存在嚴重問題,這時很可能需要還原到升級前的狀態。因此數據庫建立備份并能進行還原就很有意義。本文是一個使用C#(Visual Studio 2008)結合Oracle客戶端完成還原點的建立與恢復的完整例子。

明確還原目標

在建立還原點時,首先要明確還原對象,我們所提及的還原并不是簡單地對數據庫某個時間點整個數據庫的備份與還原,因為在升級后發生的實際業務數據是不能進行還原的。

會引起重要問題的主要是程序,在數據庫中體現在包、函數和存儲過程以及與流程相關的參數、方案等核心字典數據與界面層的一致性。而具體業務中產生的數據如收費項目、收費明細等,是不能進行還原的,明確還原目標后,問題的解決就有方向性了。

要建立還原點,首先要了解數據庫中關鍵對象的存放位置,對于包、函數等可以在Oracle的數據庫視圖user_source中找到。

備份:建立還原對象列表

在建立C#的工程之后,今天我們利用配置文件app.config.xml,設定了相應的“導出對象”,“Oracle連接”等內容,如圖001:

 建立還原對象列表

這樣參數就可以在CONFIG中進行調整了。在進行備份時,我們首先要取得相關的程序列表,下面的語句可以找到我們需要的導出對象:

  1. selectdistinctus.name,us.typefromuser_sourceuswhereus.typein('PROCEDURE','FUNCTION','PACKAGE','PACKAGEBODY'); 

可以使用configurationAppSettings來取得配置文件中的設置,如導出對象、數據庫連接、回滾目錄,如:

  1. ls_configs=(string)(configurationAppSettings.GetValue("導出對象",typeof(string))); 

首先針對“導出對象”所定義的串進行拆分,ls_typeinfo存放需要導出的類型,并建立Oracle的數據庫連接,再根據需要取得數據查詢結果:

  1. ls_querysql="SelectdistinctUs.Name,us.typeFromUser_SourceUswhereus.typein("+ls_typeinfo+")orderbyus.Name,us.Type";  
  2. OracleCommand1.CommandText=ls_querysql;  
  3. OracleCommand1.CommandType=CommandType.Text;//如何解析commandText的值  
  4. OracleDataReadermyReader=OracleCommand1.ExecuteReader(CommandBehavior.CloseConnection);  
  5. while(myReader.Read())//使用OracleDateReader前進到下一條記錄 

通過循環,獲得信息列表存放到對象列表listPrcInfo中,它包括兩個項目,分別就是:對象名strName,對象類別strType。

備份:有進度地產生各個對象體

生成了對象列表后,再根據每個對象名和對象類別來讀取內容,相對來說就比較簡單,只要使用以下方法:

  1. ls_querysql = " Select us.line, us.text From User_Source Us 
  2. where us.name = '" + listPrcInfo[i].strName +"' 
  3. and us.type='"+listPrcInfo[i].strType+"' 
  4. order by us.line ";  
  5. OracleCommand1.CommandText = ls_querysql;  
  6. OracleCommand1.CommandType = CommandType.Text;//如何解析commandText的值 

來讀取對象的程序內容,并按照我們在CONFIG中所對應的各種文件擴展名來保存文件:

 各種文件擴展名來保存文件

注意,由于我們數據庫程序需要使用SQLPLUS來進行導入,因此***一行我們需要寫入結束標志符,即“/”符號,它的***內容是這樣的:

 寫入結束標志符

由于表的導出我們依賴數據庫的導出功能,只要使用exp命令導出指定的字典表即可。即與具體業務無關的核心字典表,如功能列表、參數列表、菜單項目等,基本上使用類似于以下的命令結構即可完成 :

  1. exp.exe his3/his3@mytest file=d:\roll\roll.dat tables=(%1) 

其中的%1所對應的項目,是我們需要導出的表項目,由于導入功能的特殊性,會在導入功能中著重介紹。

還原:還原的流程

前文可以看出,創建還原點的重點在于如何把所有數據庫中的程序進行導出,對于關鍵字典的備份反而比較簡單。接下來對數據進行還原,即關鍵字典數據處理要加以注意。還原的處理流程是:

1、 對于當前數據庫中的字典數據再次創建備份,不過本次備份是在數據庫中以表的方式進行備份(因為還原時關鍵字典表中的數據仍可能會有用到的數據,所以需要備份),同時DROP掉相應的字典表;

2、 利用Oracle的IMP命令,將數據備份的字典數據進入導入(對于表上的觸發器,其實是表的附加屬性,在導出時會自動備份,導入時也會自動加上)。

3、 對于數據庫中的程序,則利用SQLPLUS執行腳本的方法來完成,即建立相應的執行腳本(由于程序都是升級工具升級上來的,還原要再升級,其程序部分的升級可在升級工具腳本中找到);

還原:創建還原腳本

還原腳本分為表的腳本和程序還原腳本,表處理部分,首先使用:

  1. ls_querysql = " Select to_char(sysdate,'yyyymmddhh24miss') from dual "

取得時間戳,表示當前進行還原操作的時間點,再利用:

  1. ls_tables = (string)(configurationAppSettings.GetValue("導出表", typeof(string))); 

取得還原時的表,最終生成類似于以下的腳本(tabbak.sql):

  1. Create table R20100213110513gy_canshu as select * from gy_canshu;  
  2. drop table gy_canshu;  
  3. Create table R20100213110513xt_selectsql1 as select * from xt_selectsql1;  
  4. drop table xt_selectsql1;  
  5. …… 

通過 sqlplus his3/his3@mytest @tabbak.sql就可以執行上述腳本。對于數據庫的程序體,也需建立相應腳本,考慮到我們建立的還原點數據可能會備份至新目錄,所以我們利用在建立還原點時的列表文件prc.lst,結合配置中設定的目錄,重新生成新的執行腳本myprc.sql

  1. swImp.WriteLine("rem 執行導入所有的存儲過程");  
  2. swImp.WriteLine(ls_sqlplus + " " + ls_database + " @" + ls_path + "\\myPrc.sql"); //執行導入所有的存儲過程  
  3. swProc.WriteLine( "set define off");  
  4. swProc.WriteLine("spool " + ls_path + "\\update_log.txt");  
  5. while ( (ls_read = srList.ReadLine() ) != null ){  
  6. swProc.WriteLine("prompt "+ls_read );  
  7. swProc.WriteLine("@"+ls_path+"\\"+ls_read);  
  8. }  
  9. swProc.WriteLine("exit"); 

生成腳本目的就是把還原點的程序重新導入,因此生成的結果主要是以下的內容:

  1. set define off  
  2. spool d:\roll\update_log.txt  
  3. prompt COMPILE_ERROR.prc  
  4. @d:\roll\COMPILE_ERROR.prc  
  5. ......  
  6. exit 

核心內容生成以后,再生成一個運行的批處理即可:

  1. …\sqlplus.exe his3/his3@mytest @d:\roll\tabbak.sql  
  2. …\imp.exe his3/his3@mytest file=d:\roll\roll.dat full=y 
  3. …\sqlplus.exe his3/his3@mytest @d:\roll\myPrc.sql  
  4. del d:\roll\imptmp.file 

并使用Process來完成它的調度:

  1. Process pro = new Process();  
  2. pro.StartInfo.FileName = ls_path + "\\myImp.bat";  
  3. pro.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; 

在調度前生成臨時文件imptmp.file,批處理中完成后刪除此文件,這樣程序只要查看文件是否存在,來探知進程是否完成。

  1. while(File.Exists(ls_tmpfile)){  
  2. ldt_end=DateTime.Now;  
  3. lb_name.Text=(ldt_end-ldt_start).ToString();  
  4. Application.DoEvents();  

一個完整樣例我們就做成了,通過建立還原點處理數據備份、程序備份,然后再到還原時,備份字典表、刪除表、表導入和數據庫程序的導入(如圖004):

 數據庫程序的導入

更進一步

還原工具完成了我們單次的備份與還原,實際上還有一些工作可以加強深入:

1、 可以利用數據庫時間作為還原點標記建立目錄,方便建立多個還原點;

2、 還原時,建立相應的日志,標記還原時間點,便于查看還原狀況;

3、 如果數據庫中的程序如包、函數等可以查看***的時間戳,查看是否在建立還原點之后發生變化,還原時只要還原時間戳有變化的程序,提高還原效率。

由于我們是以還原點為概念,因此可以忽略升級過程中對數據處理的記錄。因為要把升級過程的變化記錄下來再進行逆操作,實際上是非常困難的。因此在解決實際問題時,有時候找到合適的突破點,理解處理問題的核心要素非常重要,這樣就有助于事半功倍的效果。

原文標題:C#打造數據庫鏡像與還原:還原無處不在,數據庫也不例外

鏈接:http://www.cnblogs.com/hzspa/archive/2010/05/13/1735007.html

 

【編輯推薦】

  1. C#模式窗體中的按鈕操作
  2. C#模式窗體操作詳解
  3. C#窗體繼承原理以及實現淺析
  4. C#窗體關閉事件的重載實現淺析
  5. C#窗體位置與大小設置詳解
責任編輯:彭凡 來源: 博客園
相關推薦

2009-08-24 18:09:13

C#調用Oracle數

2010-10-26 15:21:11

連接Oracle數據庫

2010-05-31 10:56:48

MySQL數據庫

2009-08-07 16:19:00

C#下數據庫編程

2009-08-07 16:19:00

C#下數據庫編程

2011-05-26 14:07:11

SQL ServerOracle數據庫鏡像對比

2009-03-27 13:15:20

OracleSQL Server鏡像

2011-05-19 13:25:14

Oracle數據庫

2009-08-10 18:00:30

C#數據庫備份及還原

2009-08-20 17:55:43

C#連接Oracle數

2010-04-02 17:11:45

Oracle數據庫

2010-02-01 10:10:41

Oracle數據庫優化

2010-04-14 15:14:11

Oracle數據庫

2010-04-02 13:59:08

Oracle數據庫

2010-10-26 15:30:12

連接Oracle數據庫

2011-03-29 10:47:49

ORACLE數據庫

2011-07-12 14:08:48

OracleODAC

2011-08-18 13:44:42

Oracle悲觀鎖樂觀鎖

2010-09-13 09:03:49

Access數據庫

2024-04-03 00:06:03

點贊
收藏

51CTO技術棧公眾號

黄色成人影院| 亚洲天堂日韩av| 久久久久毛片免费观看| 亚洲一区二区av在线| 国产嫩草一区二区三区在线观看| 久久久成人免费视频| 91精品电影| 国产午夜精品久久久 | av不卡在线| 伊人激情综合网| 久久精品无码专区| 日本综合视频| 精品日韩中文字幕| 一区二区成人国产精品| 手机看片福利在线| 国产一区二区三区免费观看| 日本一欧美一欧美一亚洲视频| 成人高潮免费视频| 国内精品久久久久久久影视简单| 欧美成人猛片aaaaaaa| 我要看一级黄色大片| 成人免费网站观看| 亚洲欧美激情插| 天堂社区 天堂综合网 天堂资源最新版| jlzzjlzzjlzz亚洲人| 日本麻豆一区二区三区视频| 午夜精品久久久久久久99热浪潮 | 亚洲国产成人av好男人在线观看| 亚洲v日韩v欧美v综合| 天天干免费视频| 国产成a人亚洲| 91精品国产综合久久久久久蜜臀| 久久久精品福利| 亚洲黄色免费| 九九热精品视频在线播放| av在线播放中文字幕| 妖精视频一区二区三区免费观看 | 国产免费成人av| 精品人妻无码一区二区性色| 欧美三级特黄| 美乳少妇欧美精品| 欧美色视频一区二区三区在线观看| 亚洲综合图色| 亚洲免费成人av电影| 日本黄色免费观看| 国产一区二区三区不卡av| 日韩欧美中文字幕精品| 亚洲精品国产久| 日本成人在线网站| 欧美日韩国产精品成人| 国产免费又粗又猛又爽| 99久久er| 欧美人与z0zoxxxx视频| 欧美一级二级三级区| 日韩精品免费视频人成| 欧美一级电影免费在线观看| 国产网友自拍视频| 亚洲精华国产欧美| 91国偷自产一区二区三区的观看方式| 国产一级一片免费播放| 激情欧美一区二区三区| 午夜美女久久久久爽久久| 日韩精品一区二区在线播放| 亚洲欧美久久久| 国产999精品久久久影片官网| 免费看毛片网站| 日韩精品一卡二卡三卡四卡无卡| 国产精品v片在线观看不卡| 久久久久久久亚洲| 蜜桃久久精品一区二区| 成人精品视频99在线观看免费| 国产精品怡红院| 懂色中文一区二区在线播放| 久久99精品久久久久久三级| 极品美乳网红视频免费在线观看| 国产日韩欧美综合在线| 综合视频在线观看| 久草免费在线色站| 欧美午夜影院在线视频| 一区二区三区入口| 日韩一区二区三区在线看| 精品处破学生在线二十三| 日韩成人av一区二区| 精品久久久久中文字幕小说 | 欧美探花视频资源| 免费不卡av网站| 欧美理伦片在线播放| 国产一区二区三区毛片| 日本a级片视频| 午夜在线精品偷拍| 91精品在线国产| 天天干天天插天天操| 中文字幕不卡一区| 亚洲色欲久久久综合网东京热| 自拍一区在线观看| 91麻豆精品91久久久久同性| 午夜不卡久久精品无码免费| 精品久久久久久久久久久aⅴ| 欧美大片网站在线观看| 中文字幕黄色片| 国产不卡高清在线观看视频| 欧美日韩国产高清视频| 免费播放片a高清在线观看| 国产伦理一区| 国产欧亚日韩视频| 日韩一卡二卡在线| 欧美综合精品| 久久精品99久久香蕉国产色戒| 国产精彩视频在线| 欧美96一区二区免费视频| 国产亚洲情侣一区二区无| 91在线视频| 精品国产1区2区| 国产sm在线观看| 99九九热只有国产精品| 欧美亚洲成人免费| 亚洲AV无码一区二区三区性| 国产精品久久久久影院亚瑟| 伊人成色综合网| 亚洲小说春色综合另类电影| 色婷婷av一区二区三区久久| 特级毛片www| 风间由美性色一区二区三区 | 欧美日韩亚洲一区三区 | www.国产精品一区| 俺也去精品视频在线观看| 中文字幕亚洲乱码熟女1区2区| 懂色av一区二区三区免费看| 亚洲在线观看一区| 婷婷激情一区| 国产视频久久久久| www日韩精品| 成人毛片视频在线观看| 草草草视频在线观看| 日韩午夜视频在线| 色阁综合伊人av| 在线观看毛片视频| 国产精品麻豆一区二区| 美女网站免费观看视频| 蜜臀91精品国产高清在线观看| 久久青草福利网站| 亚洲精品久久久久久无码色欲四季| 国产精品久久久久久久久免费樱桃| 日本新janpanese乱熟| 欧美人与物videos另类xxxxx| 68精品久久久久久欧美| 日本高清视频在线| 亚洲成人手机在线| 美女爽到高潮91| 国产精品电影久久久久电影网| 日本黄色不卡视频| 亚洲成人av中文| 中国极品少妇videossexhd| 韩国在线一区| 国产免费一区| 亚洲一级少妇| 亚洲视频axxx| 国产成人a v| 国产精品女同互慰在线看| 日本在线观看免费视频| 欧美xxxx中国| 亚洲一区国产精品| 国产日产一区二区三区| 日韩亚洲欧美在线| 国产无套粉嫩白浆内谢| 99久久伊人精品| 日韩精品一区二区三区久久| 免费视频国产一区| 国产精品午夜国产小视频| 国产在线高清视频| 精品国产一二三区| 黄色大片网站在线观看| 国产网红主播福利一区二区| 日本xxxx黄色| 综合在线视频| 久久66热这里只有精品| 国产69精品久久| 伦伦影院午夜日韩欧美限制| 狠狠综合久久av一区二区| 欧美性生交xxxxxdddd| 国产黄色片在线| 国产风韵犹存在线视精品| 日本xxxxxxxxxx75| 国产一区二区三区91| 91久久精品国产91久久| 高清毛片在线观看| 中文字幕国产精品久久| 国产高清在线观看视频| 欧美日韩激情美女| 青青青手机在线视频| 国产99一区视频免费| 中文字幕无码不卡免费视频| 亚洲经典一区| 欧美lavv| 欧美欧美在线| 国产精品成人va在线观看| 欧美日韩经典丝袜| 在线丨暗呦小u女国产精品| 精品国产亚洲av麻豆| 色婷婷av一区二区三区大白胸| 永久久久久久久| 国产婷婷色一区二区三区四区| 波多野结衣电影免费观看| 香蕉久久夜色精品| 国产精品啪啪啪视频| 国产日产精品_国产精品毛片| 9a蜜桃久久久久久免费| 日韩不卡免费高清视频| 色综合男人天堂| 色影院视频在线| 精品亚洲一区二区三区四区五区| av高清一区二区| 欧美亚洲日本国产| 日韩精品一区二区av| 亚洲欧美日韩国产手机在线| 日韩欧美黄色网址| 91欧美激情一区二区三区成人| 九九久久久久久| 日本午夜精品视频在线观看 | 欧美性猛交xxxxx水多| 欧美日韩在线国产| 最近中文字幕一区二区三区| 人妻视频一区二区| 91视频免费看| 亚洲 欧美 日韩在线| 国产91精品一区二区麻豆网站| 小泽玛利亚视频在线观看| 亚洲欧美网站| 久久综合九色综合88i| 国产综合视频| 日本久久久网站| 欧美精品91| 久久久久久久久网| 中文字幕日韩欧美精品高清在线| 亚洲成人在线视频网站| 精品视频免费| 日韩欧美亚洲日产国| 啪啪亚洲精品| 日韩理论片在线观看| 国产一区网站| 久久久久久亚洲精品不卡| 日本激情视频在线观看| 亚洲小视频在线观看| 亚洲人午夜射精精品日韩| 欧美精品一区二区在线播放| www.日韩高清| 日韩欧美国产1| av网站免费播放| 日韩欧美电影一二三| 精品国产乱码一区二区三| 欧美一区中文字幕| 国产免费av电影| 欧美一区二区三区精品| 国产熟女一区二区三区五月婷| 在线播放国产精品二区一二区四区 | 水蜜桃久久夜色精品一区| 神马影院一区二区三区| 天天插综合网| av动漫在线免费观看| 亚洲小说欧美另类婷婷| 欧美日韩成人免费视频| 国产精品亚洲综合色区韩国| 蜜臀久久99精品久久久酒店新书 | 欧美日韩一区二区精品| 国产嫩bbwbbw高潮| 欧美午夜精品一区二区蜜桃| 亚洲视频一区在线播放| 欧美一区二区在线视频| 蜜臀久久99精品久久久| 亚洲男人的天堂网站| gogogo高清在线观看免费完整版| 色婷婷av一区二区三区久久| 成人免费视屏| 91po在线观看91精品国产性色 | 一级成人国产| 手机看片福利日韩| 国产精品2024| 一级片视频免费看| 亚洲欧美一区二区三区国产精品 | 亚洲丝袜自拍清纯另类| www.99re7| 教室别恋欧美无删减版| 久久青青草原| 91青青国产在线观看精品| 欧美黄网在线观看| 亚洲欧美网站| 亚洲成人手机在线观看| www.在线成人| 亚洲色图27p| 亚洲国产乱码最新视频 | 人与动物性xxxx| 亚洲综合一二三区| 波多野结衣视频观看| 日韩午夜精品电影| 国产一区二区影视| 欧美激情免费看| 亚洲91在线| 老司机精品福利在线观看| 亚洲一级淫片| 午夜视频在线瓜伦| 99国产精品99久久久久久| 战狼4完整免费观看在线播放版| 亚洲成人精品一区二区| 在线观看国产黄| 亚洲人成网站在线播| 欧美人与性动交α欧美精品济南到| 国产精品九九九| 久久精品国产亚洲5555| 一区二区免费在线观看| 国产日韩欧美三区| 中文字幕在线视频一区二区| 99久久免费国产| 成人在线观看小视频| 欧美综合一区二区三区| 午夜视频免费看| 欧美精品免费在线| 亚洲综合视频| 日韩精品久久久毛片一区二区| 亚洲麻豆一区| 在线观看视频你懂得| 一区在线观看免费| 波多野结衣毛片| 亚洲天堂av综合网| 欧产日产国产精品视频 | 天天干天天操av| 欧美激情网友自拍| 日韩中文字幕| 特级西西444| 国产米奇在线777精品观看| 日韩福利在线视频| 在线亚洲高清视频| 国产小视频在线| 欧美最顶级的aⅴ艳星| 全球av集中精品导航福利| 国产毛片视频网站| 99久久99久久精品免费看蜜桃| 久草资源在线视频| 日韩欧美成人激情| 五月花成人网| 国产精品久久久久久久久久久久午夜片 | 精品人妻一区二区三区日产乱码| 中文字幕在线国产精品| 日韩av电影资源网| 日本一区二区在线| 日韩高清一区在线| 日本美女xxx| 欧美日韩国产高清一区二区 | 午夜精品福利在线观看| 农村少妇一区二区三区四区五区 | 成人免费毛片视频| 亚洲人成在线观看| 成人国产精品| 在线观看亚洲视频啊啊啊啊| 精品一区二区三区在线视频| 欧美一区免费观看| 精品少妇一区二区三区免费观看 | 国产wwwwxxxx| 欧美一级夜夜爽| 91超碰在线| 欧美精品一区二区三区四区五区| 日韩av在线免费观看不卡| 后入内射无码人妻一区| 日韩一区和二区| www.综合| 午夜一区二区三区| 国产精品亚洲一区二区三区在线| 久久一级黄色片| 亚洲免费福利视频| 日本免费一区二区三区等视频| 国产成人三级视频| 成人美女视频在线观看18| 中文字幕免费观看| 色婷婷久久一区二区| 一区二区视频| 黄色a级片免费| 综合在线观看色| 无套内谢的新婚少妇国语播放| 国产盗摄xxxx视频xxx69| 欧美成人激情| 97人妻精品一区二区三区免费| 色综合久久久久综合99| 黄色在线观看网站| 蜜桃麻豆www久久国产精品| 久久99日本精品| 亚洲免费激情视频| xxx一区二区| 色哟哟精品丝袜一区二区| 久久99爱视频| 欧美日韩免费在线| 国产福利视频在线| 久久久久资源| 国产精品亚洲午夜一区二区三区 | 好吊色在线视频| www.国产一区| 任你弄精品视频免费观看| 在线观看国产一级片| 午夜婷婷国产麻豆精品| 欧美激情午夜| 欧美日韩喷水| 福利一区福利二区|