1. 程式人生 > >利用SQL2005資料庫複製技術 實現資料同步更新

利用SQL2005資料庫複製技術 實現資料同步更新

一個手工同步的方案
--定時同步伺服器上的資料
--例子:
--測試環境,SQL Server2000,遠端伺服器名:xz,使用者名稱為:sa,無密碼,測試資料庫:test
--伺服器上的表(查詢分析器連線到伺服器上建立)
create table [user](id int primary key,number varchar(4),name varchar(10))
go
--以下在區域網(本機操作)
--本機的表,state說明:null 表示新增記錄,1 表示修改過的記錄,0 表示無變化的記錄
if exists (select * from dbo.sysobjects where id = object_id(N'[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [user]
GO
create table [user](id int identity(1,1),number varchar(4),name varchar(10),state bit)
go
--建立觸發器,維護state欄位的值
create trigger t_state on [user]
after update
as
update [user] set state=1
from [user] a join inserted b on a.id=b.id
where a.state is not null
go
--為了方便同步處理,建立連結伺服器到要同步的伺服器
--這裡的遠端伺服器名為:xz,使用者名稱為:sa,無密碼
if exists(select 1 from master..sysservers where srvname='srv_lnk')
exec sp_dropserver 'srv_lnk','droplogins'
go
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','xz'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa'
go
--建立同步處理的儲存過程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_synchro]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_synchro]
GO
create proc p_synchro
as
--set XACT_ABORT on
--啟動遠端伺服器的MSDTC服務
--exec master..xp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output
--啟動本機的MSDTC服務
--exec master..xp_cmdshell 'net start msdtc',no_output
--進行分佈事務處理,如果表用標識列做主鍵,用下面的方法
--BEGIN DISTRIBUTED TRANSACTION
--同步刪除的資料
delete from srv_lnk.test.dbo.[user]
where id not in(select id from [user])
--同步新增的資料
insert into srv_lnk.test.dbo.[user]
select id,number,name from [user] where state is null
--同步修改的資料
update srv_lnk.test.dbo.[user] set
number=b.number,name=b.name
from srv_lnk.test.dbo.[user] a
join [user] b on a.id=b.id
where b.state=1
--同步後更新本機的標誌
update [user] set state=0 where isnull(state,1)=1
--COMMIT TRAN
go
--建立作業,定時執行資料同步的儲存過程
if exists(SELECT 1 from msdb..sysjobs where name='資料處理')
EXECUTE msdb.dbo.sp_delete_job @job_name='資料處理'
exec msdb..sp_add_job @job_name='資料處理'
--建立作業步驟
declare @sql varchar(800),@dbname varchar(250)
select @sql='exec p_synchro' --資料處理的命令
,@dbname=db_name() --執行資料處理的資料庫名
exec msdb..sp_add_jobstep @job_name='資料處理',
@step_name = '資料同步',
@subsystem = 'TSQL',
@
[email protected]
,
@command = @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點執行
go  

相關推薦

利用SQL2005資料庫複製技術 實現資料同步更新

一個手工同步的方案 --定時同步伺服器上的資料 --例子: --測試環境,SQL Server2000,遠端伺服器名:xz,使用者名稱為:sa,無密碼,測試資料庫:test --伺服器上的表(查詢分析器連線到伺服器上建立) create table [user](id int primary key,numb

利用資料庫複製技術 實現資料同步更新[摘]

相關連結: 複製的概念 Microsoft? SQL Server? 2000 的複製是在資料庫之間對資料和資料庫物件進行復制和分發並進行同步以確保其一致性的一組技術。 使用複製可以將資料分發到不同位置,通過區域網、使用撥號連線、通過 Internet 分發給遠端或移動使用

利用資料庫複製技術 實現資料同步更新(轉)

複製的概念複製是將一組資料從一個數據源拷貝到多個數據源的技術,是將一份資料釋出到多個儲存站點上的有效方式。使用複製技術,使用者可以將一份資料釋出到多臺伺服器上,從而使不同的伺服器使用者都可以在許可權的許可的範圍內共享這份資料。複製技術可以確保分佈在不同地點的資料自動同步更新,

MySQL組複製技術實現資料庫效能測試工具

測試環境 本文件是在 99Cloud Lab OpenStack 平臺虛機上面測試,僅供參考。 系統: CentOS 7.3 虛機: 2 核 4G 版本: MySQL 5.7 技術架構 MySQL Group Replication(簡稱 MGR)是官方推出的高可用解決方案,原生複製技術,基於外掛

SQLServer2000同步複製技術實現操作步驟

一、 預備工作 1.釋出伺服器,訂閱伺服器都建立一個同名的windows使用者,並設定相同的密碼,做為釋出快照資料夾的有效訪問使用者 --管理工具 --計算機管理 --使用者和組 --右鍵使用者 --新建使用者 --建立一個隸屬於administrator組的登陸wi

redis主從複製之新增節點實現資料同步原理

在Slave啟動並連線到Master後,將主動傳送SYNC命令。此後Master將啟動後臺存檔程序,將資料庫快照儲存到檔案中,同時收集新的寫命令(增、刪、改)並快取起來,在後臺程序執行寫檔案。完畢後,Master將傳送整個資料庫檔案到Slave,以完成一次完全同步。而Slave伺服器在接收到資料庫檔

資料庫複製技術在Internet上的實現

1. 引言在開發跨地域進銷存管理系統時,如何實現不同地區的資料同步,如何保持資料的一致性、及時性成為系統成敗的關鍵。我們成功地解決了這個問題,現介紹如下。系統環境資料庫系統:SQL Server 2000作業系統:WINDOWS 2000 Advance Server ,II

利用ajax和JSP技術實現網頁中表單的區域性重新整理(只重新整理表單資料,而不重新整理整個頁面)

在web開發中有時有區域性重新整理的需求,這樣做的好處是克服了頁面整體重新整理對網路速度受限的情況。 1.MySQL資料表如下(簡單舉例): 表名:stu_info stuId                 int                    PK    NN

使用人工智慧和區塊鏈技術實現資料的多樣化

人工智慧(AI)的一個令人印象深刻的特點是,該技術能夠提供計算能力,在機器中創造認知。然而,人工智慧評論家如今開始擔心,許多人工智慧專案都是集中控制的,因此會產生“狹義人工智”。 與人類的認知不同,狹義人工智慧不是有意識的,也不是由情感驅動的。更確切地說,狹義人工智是在一個預先確定的、預先定義的

使用Sqlserver事務釋出實現資料同步

下載網站:www.SyncNavigator.CN   客服QQ1793040 ----------------------------------------------------------     關於HKROnline

實現資料同步 -----將post, get 碼雲私有倉庫

# -*- coding: utf-8 -*- import requests import sqlite3 import time from demo_handle import sql_handle from bs4 import BeautifulSoup class post: d

面試題(redis master和slave是怎麼實現資料同步的)

Redis的主從同步機制可以確保redis的master和slave之間的資料同步。按照同步內容的多少可以分為全同步和部分同步;按照同步的時機可以分為slave剛啟動時的初始化同步和正常執行過程中的資料修改同步;本文將對這兩種機制的流程進行分析。 全備份過程中,在sla

Python連線單機版資料庫(Postgresql資料庫)並實現資料提取

import pandas as pd import psycopg2 conn=psycopg2.connect(database="****", user="postgres", password

Oracle分割槽表的分割槽互動技術實現資料快速轉移

有一個需求,將某業務表的某個時間點之前的記錄轉移到它的歷史表中。如果當前業務表不是基於這個業務時間點的分割槽表設定,那隻能insert再delete操作。這種轉移資料的方法非常非常低基礎。經常在初級的資料庫管理人員和開發人員的程式中出現。不是說這個方法不好,對於轉移的記錄數量

python3 使用pymysql連線資料庫並用Matplotlib實現資料視覺化

    在python的資料視覺化中常用到Matplotlib庫,通過Matplotlib展示一些資料是十分方便的事情,但我們並不滿足處理一些“死資料”,如何將資料庫中的資料取出來並用好看的圖表展示呢!python提供了 MySQLdb ,Pymysql等庫給我們使用。   

[譯] 利用 Python中的 Bokeh 實現資料視覺化,第三部分:製作一個完整的儀表盤

原文地址:Data Visualization with Bokeh in Python, Part III: Making a Complete Dashboard 原文作者:Will Koehrsen 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/g

怎麼通過web伺服器訪問MYSQL資料庫,使其資料同步到android SQLite資料庫

      通過web伺服器訪問MYSQL資料庫有以下幾個過程: 2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這

利用命令模式(ElasticSearch+RabbitMq)實現資料非同步儲存

寫在前面 —— 本文原始碼 在使用ElasticSearch(下文簡稱es)經常會遇到將本地庫的資料傳入的es中進行索引.我們在完成批量同步的時候可以使用官方提供的logstash來進行同步,也可以自己編寫java api 利用es的blak進行批量同步.

利用崑崙通態觸控式螢幕實現資料採集和邏輯判斷的例子

      別小瞧國產觸控式螢幕,用得好,可以實現複雜功能,比如說資料計算、簡單邏輯、資料轉發、裝置控制,甚至能在簡單應用中省掉一套PLC。     某裝置需求:通過崑崙通態觸控式螢幕實現力值資料採集,標定,最大值計算,到位報警,後續資料計算,並列印試驗結果,初始值儲存、資料

資料庫複製技術全面瞭解

資料庫複製技術是目前資料庫熱備、資料庫容災、資料庫同步以及建立重要資料實時安全查詢系統(VIDRSQS)的關鍵技術,通過複製技術可以分擔主資料庫的查詢壓力,並對資料倉庫無法實時查詢資料的缺點進行有力補充 資料庫複製技術 - 市場需求    隨著應用系統的不斷髮展,系統