二つのSQLServerのデータ同期ソリューション

使用したデータベースのデータ同期更新複製 
        複製概念の 
        複製が当複数のデータソースへのデータソースからコピーされたデータのセットであり、それが記憶複数のサイトにデータを公開するための有効な方法です。別のサーバーのユーザーが許可権限の範囲内で、このデータを共有できるように、レプリケーション・テクノロジーの使用は、ユーザーが、複数のサーバーにコピーデータを公開することができます。レプリケーション技術は、異なる場所のデータは自動的にデータの整合性を確保するために更新を同期することを保証します。

基本的な要素のSQLレプリケーションは、 
公開サーバー、サブスクリプションサーバー、分散サーバ、出版物、記事は、 
SQLレプリケーション機能し 
、SQL Serverを主に出版、複製を処理するためのサブスクリプションの道を。公開されたデータを担当するサーバが公開されたソース・データ・サーバー、。配信サーバーにデータを投稿する公開サーバーのすべての変更のコピー、配信サーバは、分散データベースが含まれ、データはすべての変更を受け、これらの変更を保存した後、これらの変更のの加入者に配布することができる 
SQL Serverレプリケーション・テクノロジー型 
SQL Serverの提供3レプリケーションテクノロジは次のとおりです: 
1、スナップショットレプリケーション(滞在は、我々はこれを使用します) 
2、トランザクションレプリケーション 
3、マージレプリケーションを 
上記のコピーのように、これらの概念を明確にし、ある程度のを持っています限り、理解。その後、我々は、レプリケーション・ステップを達成するためのステップバイステップ。 
サーバを構成するための最初の最初の出版 
(1)指定された[サーバ]ノードを選択し 
、[ツール]ドロップダウンメニュー[コピー]サブメニューから(2)を選択し、[、公開サーバに加入し、分散]コマンド 
(3)システムは、ダイアログボックスをポップアップ[次]をポイントしてから、操作を完了するためにプロンプトを見上げました。 
完了したとき(4)設定後、パブリケーションサーバシステムは、複製モニタサーバのツリー構造を追加します。しかし、また、ディストリビューションデータベース(分布)を生成 
セカンドパブリケーションを作成し 
(1)指定されたサーバーを選択し 
、(2)サブメニューを選択し、[コピー]、[ツール]メニューからコマンド[パブリケーションの作成と管理]。この時点で、システムは、ダイアログボックスをポップアップ表示されます 
(3)出版物のデータベースを作成することを選択し、[パブリケーションを作成]をクリックしてください 
(4)プロンプト]ダイアログボックス[パブリケーションの作成ウィザード]、[次へ]をクリックしますシステムでダイアログボックスをポップアップ表示されます。ボックスの内容は、レプリケーションの3種類があります。私たちは今、最初のスナップショットは、デフォルト(他の2つはあなたが行くとヘルプを見ることができる)で選択  
SQLSERVERは、異なるデータベースを可能にする、指定された要件は、データベース・サーバーのタイプのリリースを購読することができます(5)をクリックし、[次へ]システムORACLEまたはアクセスの間のデータのレプリケーション。しかし、ここで私たちは、「SQL Server 2000の」データベース・サーバを実行することを選択した 
(6)をクリックし、[次へ]システムは、選択するために、表に掲載された記事の定義であるダイアログボックスをポップアップ表示されます 
操作が完了するまで、[次へ]その後、(7) 。データベースを作成するの出版後にパブリケーションを作成するときには、共有データベースになります。 
第3の設計サブスクリプション 
(1)指定された加入者を選択し 
、[ツール]ドロップダウンメニュー[コピー]サブメニューから、(2)[サブスクリプション要求] 
に従って、(3)をクリックし、[次へ]オペレーティングシステムは、SQLをチェックするように指示されますまで、状態を実行しているサーバーエージェントサービスは、コピー操作の実施のための前提条件は、SQL Serverエージェントサービスが開始されている必要があります。 
(4)[終了]をクリックします。操作を完了するために購読。 
上記の手順の完了は、実際に成功してコピーします。しかし、どのようにそれの成功をコピーするかどうかを知るには?ここでは、すぐにこの方法の成功するかどうかを確認することができます。プロパティ- -ライブヒット-コンテンツを公開- -右コンテンツを公開出版物のコピー次のサーバーを展開状態と、その後すぐに、エージェントを実行し、その後毎分、ライブエージェントのプロパティが毎日発生する設定したスケジュールを派遣するポイントヒット夜12時00分00秒と23時59分59秒の間。次のステップは、オープンCの成功を複製するかどうかを決定することです:プログラムFilesMicrosoftのSQLは、彼らが生産するほとんど分でフォルダのファイル名としていくつかの時間を持っているかどうかを確認するには、以下のServerMSSQLREPLDATAuncXIAOWANGZI_database_database。-あなたは信じていない場合は、あなただけの指定されたサブスクリプションデータベース・サブスクリプション・サーバにパブリッシュされたテーブル見ているかどうかを確認するために、データベースの外観を開いて 
手動で同期プログラム 
-サーバー上の同期データのタイミング 
-例: 
- -テスト環境、SQLクライアントアクセス、遠隔サーバー名:XZ、ユーザー名:SA、パスワードなし、テスト・データベース:試験 
-サーバ上のテーブル(クエリアナライザを作成するサーバーに接続する) 
テーブルを作成し、[ユーザー](上記は、ID INTを挙げます(4)主要な一次、数VARCHAR、名前VARCHAR(10)) 
行く 
-以下のLAN(ローカル操作) 
-マシン・テーブル、状態の説明:nullは、新しいレコードを示す変更されたレコードを表し、0記録は変化がないことを示す 
存在する場合(dbo.sysobjects SELECT * FROM  ID = OBJECT_ID(N '[ユーザー]')およびOBJECTPROPERTY(ID、N'IsUserTable「)= 1)
テーブル降下[ユーザー] 
GO 
テーブルを作成する[ユーザー](INT IDアイデンティティ(1,1)、数VARCHAR(4)、名前VARCHAR(10)、状態「ビット) 
移動は、 
-状態フィールドの値を維持し、トリガを作成 
トリガーを作成t_state [ユーザー] ON 
を更新した後、 
AS 
。更新[ユーザー] SET =状態1 
[ユーザー] Aから=参加a.id b.id ON B挿入 
ヌルa.stateではありません 
行く 
便宜上の同期は、リンクサーバーを作成します-サーバーに同期させることが 
-ここに名前のリモートサーバ:XZ、ユーザー名:SA、パスワードが 
存在する場合(。SELECTない1をSRVNAMEからmaster..sysserversに=どこsrv_lnk ') 
Execのsp_dropserverを'srv_lnk'、 'droplogins' 
行く 
Execのにsp_addlinkedserverを'srv_lnk'、 ''、 'SQLOLEDB'、 '' XZ 
srv_lnk ' '偽'、NULL、 'SA' sp_addlinkedsrvloginがExecの' 
Go]を 
ストアドプロシージャの同期を作成するために- 
存在する場合(SELECT * dbo.sysobjects ID = OBJECT_ID(N '[DBO]。[p_synchro]')およびOBJECTPROPERTY(ID、N'IsProcedure「)= 1の場合) 
手順[DBO]をドロップ。[p_synchro] 
GOは、 
PROCを作成p_synchro 
AS 
ON --set XACT_ABORT 
リモートサーバMSDTCサービスを開始- 
--exec master..xp_cmdshell 'ISQL / S "XZ " / U "SA" / P "を" / Q「幹部master..xp_cmdshell' 'ネットスタートMSDTC「」、no_output "『 no_output 
-ネイティブMSDTCサービスを開始 
、no_output』MSDTC NET開始」master..xp_cmdshell --exec 
以下の方法で、テーブルにはマークの主キー列であれば、分散トランザクションを- 
分散トランザクションが--BEGIN 
-データ同期を削除 
から削除srv_lnk.test.dbo [ユーザー]。 
上記ではない(上記SELECT [ユーザー]からIDを述べ)にIDを言及WHERE 
-新しいデータ同期 
srv_lnk.test.dboの【にインサート。ユーザー] 
ID SELECT、番号、[ユーザー]状態のNULLであるから名前 
-データ同期変更 
。更新srv_lnk.test.dbo [ユーザー] SETは 
数= b.number、名前= b.name 
srv_lnk.test.dboの[から。ユーザ】 
a.id b.id ON参加[ユーザー] B = 
b.state 1 = 
-同期機存在フラグに応じて更新 
= 0 ISNULL状態(,. 1)アップデート[ユーザー] SET 1 = 
- TRANはCOMMIT 
ゴー 
-ジョブを作成、タイミングデータ、ストアドプロシージャを同期 
存在する場合(msdb..sysjobsから1を選択名=「 データ処理」) 
実行msdb.dbo.sp_delete_job JOB_NAME @ =「データ処理」 
ExecのMSDB .. sp_add_job @ JOB_NAME = 'データ処理' 
-ジョブステップの作成 
DECLAREの@sql VARCHAR(800)、DBNAME @ VARCHAR(250) 
SQL = 'Execのp_synchro' @ SELECT -データ処理コマンド 
、@ DBNAME = DB_NAME() -データ処理を実行するためのデータベースの名前 
EXEC msdb..sp_add_jobstepする@ JOB_NAME = 'データ処理'、 
@step_name = 'データ同期'、 
@subsystem = 'TSQL'、 
@ DBNAME =データベース名、@ 
@コマンド= @sql、 
@retry_attempts = 5、 - 。再試行の回数 
@retry_interval = 5 -再試行間隔 
-スケジュール作成する 
EXECをmsdb..sp_add_jobschedule @job_name = 'データ処理'、  
@name = 'スケジュール'、 
@freq_type 4 =、 -毎日 
@freq_interval = 1、 -日実行 
@active_start_timeを= 00000 --0小数点実行 
行きます

おすすめ

転載: www.cnblogs.com/SyncNavigator8-4-1/p/10974400.html