• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      災(zāi)后異地重建數(shù)字化校園SQL數(shù)據(jù)庫同步研究

      2012-04-29 00:44:03李煥玲
      電腦知識與技術(shù) 2012年2期
      關(guān)鍵詞:數(shù)字化校園數(shù)據(jù)庫

      李煥玲

      摘要:針對存在的業(yè)務(wù)邏輯不同,數(shù)據(jù)庫建設(shè)沒有統(tǒng)一標準的眾多業(yè)務(wù)子系統(tǒng),以SQL Server數(shù)據(jù)庫為主,從兩層混合同步和N層混合同步體系出發(fā),通過設(shè)置節(jié)點、描述作用域和表、設(shè)置服務(wù)器、設(shè)置客戶端、設(shè)置同步選項等方法進行SQL數(shù)據(jù)庫同步研究,通過數(shù)據(jù)庫同步,建立統(tǒng)一的數(shù)據(jù)中心,搭建了信息資源共享平臺,形成了比較完整的數(shù)據(jù)鏈,優(yōu)化了業(yè)務(wù)流程,并實現(xiàn)了可定制的綜合查詢。

      關(guān)鍵詞:數(shù)字化校園;數(shù)據(jù)庫;同步體系;SQL

      中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)02-0252-03

      Post-disaster Reconstruction of Digital Campus off-site Synchronization of SQL Database

      LI Huan-ling

      (Sichuan Information Technology College, Guangyuan 628017, China)

      Abstract: Different for the existing business logic, database development is no uniform standard of the many business subsystem to the SQL Server database, and from two composite sync and N-tier system sync of the starting mixture, by setting the node, and tables describe the? scope, set up the server, set the client, set the synchronization options and other methodsto study SQL database synchronization, database synchronization through the establishment of a unified data center, set up an information sharing platform, forming arelatively complete da? ta chain, optimize business processes, and achieve a customizableintegrated query.

      Key words: digital campus; database; synchronization system; SQL

      5.12汶川大地震給四川信息職業(yè)技術(shù)學院造成了重大損失,學院《災(zāi)后恢復(fù)重建規(guī)劃》已經(jīng)國家發(fā)改委等11部委(局)以《汶川地震災(zāi)后恢復(fù)重建公共服務(wù)設(shè)施建設(shè)專項規(guī)劃》(發(fā)改廳(2008)2667號)文正式批準下達。學院災(zāi)后重建項目在廣元教育發(fā)展規(guī)劃園區(qū)征地403畝,概算總投資3.2億元,其中中央重建基金投入26681萬元,規(guī)劃建筑面積106150平方米。

      學院老校區(qū)經(jīng)過長時間的信息化建設(shè),內(nèi)部己形成多個業(yè)務(wù)子系統(tǒng),但各系統(tǒng)的業(yè)務(wù)邏輯不同,在數(shù)據(jù)庫的建設(shè)上沒有遵循統(tǒng)一的標準,而且這些系統(tǒng)之間又常常需要進行數(shù)據(jù)交換和同步。

      1數(shù)據(jù)庫同步的體系結(jié)構(gòu)

      同步會話的所有組件都駐留在本地計算機上,并且沒有從本地計算機到遠程計算機上的數(shù)據(jù)庫的直接連接。在同步會話過程中,本地計算機是發(fā)起同步的計算機[1]。如果要從多臺計算機發(fā)起同步,每臺計算機必須包含圖中顯示的所有組件。兩層混合同步拓撲圖如圖1示。

      圖1兩層混合同步拓撲圖

      N層體系結(jié)構(gòu):需要附加的組件,包括遠程計算機上的組件;并且與遠程數(shù)據(jù)庫的連接現(xiàn)在由本地計算機上的代理和遠程計算機上的服務(wù)處理。該代理和服務(wù)必須由應(yīng)用程序開發(fā)人員實現(xiàn)。N層混合同步拓撲圖如圖2示。

      2 SQL數(shù)據(jù)庫同步

      2.1設(shè)置節(jié)點和執(zhí)行同步

      圖2 N層混合同步拓撲圖

      在拓撲中同步節(jié)點可劃分為兩個階段:設(shè)置要同步的節(jié)點,以及在一對節(jié)點之間實際執(zhí)行同步。對于SqlSyncProvider和SqlCe? SyncProvider,設(shè)置節(jié)點由兩個任務(wù)構(gòu)成:

      2.1.1定義要同步的內(nèi)容

      通過描述一個或多個“作用域”來定義要同步的內(nèi)容。作用域是表的集合,其中某些表或全部表可以篩選[2]。表可以已存在于數(shù)據(jù)庫中,也可以通過使用Sync Framework對象描述表,然后在同步基礎(chǔ)存儲區(qū)時在運行時生成它們。在首次同步某一作用域時,如果需要變更某一作用域,則與現(xiàn)有作用域相關(guān)聯(lián)的元數(shù)據(jù)應(yīng)刪除后重新創(chuàng)建。

      2.1.2為Sync Framework變更跟蹤設(shè)置數(shù)據(jù)庫

      在描述了表和作用域后,使用Sync Framework對象將設(shè)置腳本應(yīng)用于各節(jié)點。這些腳本創(chuàng)建變更跟蹤和變更應(yīng)用基礎(chǔ)結(jié)構(gòu),該基礎(chǔ)結(jié)構(gòu)由元數(shù)據(jù)表、觸發(fā)器和存儲過程構(gòu)成。

      在設(shè)置節(jié)點后,可以同步這些節(jié)點。在后臺,Sync Framework使用指定的作用域和表說明信息為每個作用域和每個同步適配器(每個表一個)生成配置對象[3-4]。這使得Sync Framework可以利用在各個數(shù)據(jù)庫中持久保留的信息并為一對節(jié)點之間的每個同步會話生成它所需的信息。SqlSyncProvider和SqlCeSyncProvider都知道在設(shè)置過程中創(chuàng)建的變更跟蹤表和其他對象,并且它們自動生成所需的DbSyncAdapter對象。這將大為減少使用這些提供程序同步數(shù)據(jù)所需的代碼。

      2.2描述作用域和表

      描述名為filtered_customer的一個作用域,并且將兩個表添加到該作用域:Customer和CustomerContact。這兩個表已存在于服務(wù)器數(shù)據(jù)庫中,因此,使用GetDescriptionForTable方法從服務(wù)器數(shù)據(jù)庫中檢索架構(gòu),將包括來自Customer表的所有列,但只包括來自CustomerContact表的兩列。代碼如下:

      Dim scopeDesc As New DbSyncScopeDescription("filtered_customer")

      Definition for Customer.

      Dim customerDescription As DbSyncTableDescription = _

      SqlSyncDescriptionBuilder.GetDescriptionForTable("Sales.Customer", serverConn)

      scopeDesc.Tables.Add(customerDescription)

      Definition for CustomerContact, including the list of columns to include.

      Dim columnsToInclude As New Collection(Of String)()

      columnsToInclude.Add("CustomerId")

      columnsToInclude.Add("PhoneType")

      Dim customerContactDescription As DbSyncTableDescription = _

      SqlSyncDescriptionBuilder.GetDescriptionForTable("Sales.CustomerContact", columnsToInclude, serverConn)

      scopeDesc.Tables.Add(customerContactDescription)

      2.3設(shè)置服務(wù)器

      為filtered_customer作用域創(chuàng)建一個設(shè)置對象,并且指定與同步相關(guān)的所有對象都應(yīng)在名為"Sync"的數(shù)據(jù)庫架構(gòu)中創(chuàng)建。作為作用域設(shè)置的一部分,將對Customer表定義一個篩選器。將只同步與該篩選器匹配的行[5]。用于定義篩選器的代碼要求兩個部分。對AddFilterColumn的調(diào)用指定CustomerType列用于篩選并且它必須添加到用于跟蹤對Customer表的變更的跟蹤表中。對Fil? terClause的調(diào)用指定該篩選器本身。篩選子句是不帶WHERE關(guān)鍵字的WHERE子句。[side]別名是該跟蹤表的別名。沒有對Cus? tomerContact表定義任何篩選器;因此,將同步來自該表的所有行。在定義設(shè)置選項后,調(diào)用Apply方法以便在服務(wù)器數(shù)據(jù)庫中創(chuàng)建變更跟蹤基礎(chǔ)結(jié)構(gòu);并且設(shè)置腳本將寫入某一文件。代碼如下:

      Dim serverConfig As New SqlSyncScopeProvisioning(serverConn, scopeDesc)

      serverConfig.ObjectSchema = "Sync"

      Specify which column(s) in the Customer table to use for filtering data,

      and the filtering clause to use against the tracking table.

      "[side]" is an alias for the tracking table.

      serverConfig.Tables("Sales.Customer").AddFilterColumn("CustomerType")

      serverConfig.Tables("Sales.Customer").FilterClause = "[side].[CustomerType] = Retail"

      Configure the scope and change-tracking infrastructure.

      serverConfig.Apply()

      Write the configuration script to a file. You can modify

      this script if necessary and run it against the server

      to customize behavior.

      File.WriteAllText("SampleConfigScript.txt", serverConfig.Script())

      2.4設(shè)置客戶端

      可以用兩種不同的方法設(shè)置客戶端:

      基于從服務(wù)器或其他客戶端數(shù)據(jù)庫檢索的作用域信息的SQL Server或SQL Server Compact客戶端數(shù)據(jù)庫的完全初始化[6]。

      基于SqlSyncDescriptionBuilder和SqlCeSyncDescriptionBuilder對象提供的架構(gòu)信息在客戶端數(shù)據(jù)庫中創(chuàng)建用戶對象和同步對象。作為第一個同步會話的一部分,為同步準備客戶端數(shù)據(jù)庫,并且所有行都作為增量插入下載到該客戶端數(shù)據(jù)庫。

      通過使用預(yù)先存在的客戶端數(shù)據(jù)庫對SQL Server Compact客戶端數(shù)據(jù)庫執(zhí)行快照初始化??煺粘跏蓟荚跍p少初始化客戶端數(shù)據(jù)庫所需的時間[7]。在通過使用完全初始化來初始化一個客戶端數(shù)據(jù)庫后,可以通過使用這個第一個客戶端數(shù)據(jù)庫的“快照”初始化后續(xù)數(shù)據(jù)庫??煺帐菍iT準備的SQL Server Compact數(shù)據(jù)庫,包含表架構(gòu)、數(shù)據(jù)(可選)和變更跟蹤基礎(chǔ)結(jié)構(gòu)[8-9]。將此快照復(fù)制到要求它的每個客戶端。在客戶端的第一個同步會話期間,將更新特定于客戶端的元數(shù)據(jù),并且自創(chuàng)建快照后發(fā)生的任何變更都將下載到客戶端數(shù)據(jù)庫。

      先從服務(wù)器檢索作用域信息,并且使用檢索的基表和變更跟蹤架構(gòu)設(shè)置一個SQL Server Compact客戶端數(shù)據(jù)庫。然后基于來自SQL Server Compact客戶端數(shù)據(jù)庫的作用域信息設(shè)置一個SQL Server客戶端數(shù)據(jù)庫。代碼如下:

      Create a SQL Server Compact database and provision it based on scope

      information that is retrieved from the server. Compact databases

      do not support separate schemas, so we prefix the name of all

      synchronization-related objects with "Sync" so that they are easy to

      identify.

      Utility.DeleteAndRecreateCompactDatabase(Utility.ConnStr_SqlCeSync1, True)

      Utility.DeleteAndRecreateCompactDatabase(Utility.ConnStr_SqlCeSync2, False)

      Dim clientSqlCe1Desc As DbSyncScopeDescription = _

      SqlSyncDescriptionBuilder.GetDescriptionForScope("filtered_customer", Nothing, "Sync", serverConn)

      Dim clientSqlCe1Config As New SqlCeSyncScopeProvisioning(clientSqlCe1Conn, clientSqlCe1Desc)

      clientSqlCe1Config.ObjectPrefix = "Sync"

      clientSqlCe1Config.Apply()

      Provision the existing database SyncSamplesDb_SqlPeer2 based on scope

      information that is retrieved from the SQL Server Compact database. We could

      have also retrieved this information from the server.

      Dim clientSqlDesc As DbSyncScopeDescription = _

      SqlCeSyncDescriptionBuilder.GetDescriptionForScope("filtered_customer", "Sync", clientSqlCe1Conn)

      Dim clientSqlConfig As New SqlSyncScopeProvisioning(clientSqlConn, clientSqlDesc)

      clientSqlConfig.ObjectSchema = "Sync"

      clientSqlConfig.Apply()

      也可以從SyncSampleClient1.sdf數(shù)據(jù)庫生成一個名為SyncSampleClient2.sdf的快照。然后將SyncSampleClient2.sdf與服務(wù)器數(shù)據(jù)庫同步。

      2.5設(shè)置同步選項

      應(yīng)用程序中的SampleSyncOrchestrator類的構(gòu)造函數(shù),采用兩個RelationalSyncProvider對象[10]。SqlSyncProvider和SqlCeSyncPro? vider都是從RelationalSyncProvider派生的。先指定那一提供程序是本地提供程序以及那一提供程序是遠程提供程序。然后,指定變更首先從遠程數(shù)據(jù)庫上載到本地數(shù)據(jù)庫,然后按反向下載。代碼如下:

      Public Sub New(ByVal localProvider As RelationalSyncProvider, ByVal remoteProvider As RelationalSyncProvider)

      Me.LocalProvider = localProvider

      Me.RemoteProvid

      3結(jié)論

      SQL數(shù)據(jù)庫要求實時同步,就有可能影響系統(tǒng)的性能;如果要求定時同步,機器配置完全相同,最好的方法就是卷復(fù)制,如果配置不同,則只能采用備份-復(fù)制-恢復(fù)的方式來實現(xiàn)同步。數(shù)據(jù)庫整合前,各系統(tǒng)數(shù)據(jù)庫只能服務(wù)于單獨的信息系統(tǒng),通過數(shù)據(jù)庫同步,建立統(tǒng)一的數(shù)據(jù)中心,搭建了信息資源共享平臺。通過系統(tǒng)整合,形成了比較完整的數(shù)據(jù)鏈,優(yōu)化了業(yè)務(wù)流程。實現(xiàn)了可定制的綜合查詢。

      參考文獻:

      [1]李亞寧.基于SQL Server的數(shù)據(jù)庫同步原理研究[J].科技廣場,2009(7).

      [2]謝輝.嵌入式數(shù)據(jù)庫同步系統(tǒng)的研究與實現(xiàn)[D].北京:北京交通大學,2011.

      [3]沈敏,許華虎,季永華,等.基于XML的分布式異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步系統(tǒng)的研究[J].計算機工程與應(yīng)用, 2005(5).

      [4]杜經(jīng)緯,楊光年.SQL數(shù)據(jù)庫同步技術(shù)的應(yīng)用[J].文教資料,2006(2).

      [5]蔣春曦.MS SQL Server復(fù)制技術(shù)及實現(xiàn)[J]電腦知識與技術(shù),2004(20).

      [6]趙彩云,周蘭江,胡草華,等.嵌入式數(shù)據(jù)庫JDBC接口技術(shù)研究[J].貴州大學學報:自然科學版,2010(4).

      [7]曹科,鐘錫昌,張倪.多版本中央數(shù)據(jù)庫的移動數(shù)據(jù)庫系統(tǒng)并發(fā)控制方案[J].計算機應(yīng)用研究,2006(2).

      [8]蔣敏.基于網(wǎng)絡(luò)隔離的異構(gòu)數(shù)據(jù)庫同步技術(shù)的研究與實現(xiàn)[D].杭州:浙江大學,2005.

      [9]杜娟.移動數(shù)據(jù)庫系統(tǒng)同步復(fù)制技術(shù)的研究與實現(xiàn)[D].武漢:武漢理工大學,2009.

      [10]黎娜,張慶吉.移動數(shù)據(jù)庫同步技術(shù)及其應(yīng)用[J].現(xiàn)代計算機:專業(yè)版,2011(10).

      猜你喜歡
      數(shù)字化校園數(shù)據(jù)庫
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      淺析高校一卡通系統(tǒng)財務(wù)管理
      時代金融(2016年27期)2016-11-25 17:57:41
      基于大數(shù)據(jù)的數(shù)字化校園中學生學籍管理系統(tǒng)
      數(shù)字化校園的整體構(gòu)架及技術(shù)分析
      基于防火墻和WAF安全設(shè)備的高校信息安全設(shè)計與應(yīng)用
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      丰原市| 西和县| 时尚| 鸡东县| 顺昌县| 新建县| 长治县| 黎平县| 彭山县| 肥西县| 奈曼旗| 南郑县| 郧西县| 栾城县| 潼南县| 闵行区| 天柱县| 东源县| 武乡县| 呼图壁县| 将乐县| 雷山县| 竹山县| 化德县| 贵阳市| 陵水| 安西县| 浮山县| 莱州市| 凌云县| 共和县| 得荣县| 陆丰市| 安多县| 英吉沙县| 罗源县| 登封市| 定西市| 武宁县| 民权县| 塔河县|