定期備份SQL資料庫是必須的。我們已經覆蓋的方式就可以輕松備份您的所有SQL Server資料庫到本地硬碟中,但這並不能防止驅動器和/或系統故障。作為針對此類災難的額外保護層,您可以在網路共享上復制或直接創建備份。
在本地備份,然後復制到網路共享
完成此任務的首選和最直接的方法是簡單地創建資料庫的本地備份,然後將相應的備份文件復制到網路共享。您可以通過創建如下所示的批處理腳本來完成此操作:
SET LocalFolder = C:Program Files Microsoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q「備份資料庫MyDB到磁碟=%LocalFolder%MyDB.bak」
XCopy「%LocalFolder%MyDB.bak」「 192.168.16.55BackupDatabases」/ Z / V
DEL「%LocalFolder%MyDB.bak」
此腳本執行以下操作(逐行):
將變數設置為本地SQL備份目錄。
創建MyDB的SQL備份(使用Windows身份驗證)到本地SQL備份目錄。
將本地備份文件復制到網路共享。
刪除本地備份文件。
- 如果您使用備用帳戶運行SQL Server實例,請務必記住這些要點。如果採取適當的預防措施,則這些不顯示阻止程序,則應考慮添加額外的硬碟驅動器空間,然後實施本地備份和復制,以便可以使用本地帳戶運行SQL服務。
同樣,這是首選方法,因為它的工作原理和備份失敗的可能性是最小的,因為備份是在本地磁碟上創建。但是,如果沒有足夠的磁碟空間來存儲備份文件的本地副本,則此操作將失敗。在這種情況下,您需要添加額外的磁碟空間或直接備份到網路共享。
直接備份到網路共享
通常,當您嘗試使用以下命令直接創建備份到網路共享時:
SqlCmd -E -Q「備份資料庫MyDB到磁碟= 192.168.16.55BackupDatabasesMyDB.bak」
你很可能會得到一個錯誤的行:
消息3201,級別16,狀態1,伺服器JF,行1
無法打開備份設備 192.168.16.55BackupDatabasesMyDB.bak。操作系統錯誤5(訪問被拒絕。)。
消息3013,級別16,狀態1,伺服器JF,第1行
BACKUP DATABASE異常終止。
盡管使用Windows身份驗證(-E開關)和Windows帳戶作為通過Windows資源管理器訪問和復制文件到共享的能力運行SQL備份命令,仍會出現此錯誤。
此操作失敗的原因是SQL命令在SQL Server服務運行的帳戶的邊界內執行。當您在計算機上查看服務列表時,很可能您將看到運行為(登錄為)列的SQL Server服務本地系統或網路服務,它們是沒有網路訪問許可權的系統帳戶。
在我們的系統上,網路共享命令的備份失敗,因為我們有SQL Server服務作為本地系統運行,再也無法獲得任何網路資源。
為了允許SQL直接備份到網路共享,我們必須將SQL Server服務作為可訪問網路資源的本地帳戶運行。
編輯SQL Server服務的屬性,並在「登錄」選項卡上將服務配置為作為具有網路訪問許可權的備用帳戶運行。
單擊「確定」後,您將收到一條提示,指示在重新啟動服務之後,設置才會生效。
重新啟動服務。
服務列表現在應顯示SQL Server服務正在作為您配置的帳戶運行。
現在當您運行命令直接備份到網路共享:
SqlCmd -E -Q「備份資料庫MyDB到磁碟= 192.168.16.55BackupDatabasesMyDB.bak」
您應該會看到一個成功消息:
處理資料庫MyDB的152頁,文件1上的文件MyDB。
為資料庫MyDB處理2頁,文件1上的文件MyDB_log。
BACKUP DATABASE在0.503秒(2.493 MB /秒)中成功處理了154頁。
使用備份文件現在在網路共享目錄:
網路共享注意事項請務必注意,備份命令希望能夠直接連接到網路共享,而不會提示您輸入憑據。您配置要運行的SQL Server服務的帳戶必須與網路共享具有可信連接,其中相應的憑據允許訪問,否則可能會發生以下錯誤:
消息3201,級別16,狀態1,伺服器JF,行1
無法打開備份設備 192.168.16.55BackupDatabasesMyDB.bak。操作系統錯誤1326(登錄失敗:未知用戶名或密碼錯誤。)。
消息3013,級別16,狀態1,伺服器JF,第1行
BACKUP DATABASE異常終止。
此錯誤表示網路共享不接受帳戶的用戶名和密碼,並且命令失敗。
另一個要記住的問題是備份直接執行到網路資源,因此網路連接中的任何打嗝可能會導致您的備份失敗。因此,您只應該備份到穩定的網路位置(即可能不是VPN)。
安全隱患
如前所述,使用在本地備份然後復制到網路共享的方法是首選,因為它允許您將SQL服務作為僅具有本地系統訪問許可權的帳戶運行。
通過將服務作為備用帳戶運行,您打開了潛在的安全問題的大門。例如,惡意SQL腳本可以在備用帳戶下執行並攻擊網路資源。此外,對相應帳戶(密碼更改/到期或帳戶的刪除/禁用)的任何更改將導致SQL Server服務無法啟動。
『貳』 SQL資料庫區域網共享
可以用ODBC來解決。
ODBC(Open Database Connectivity,開放資料庫互連)是微軟公司開發的一套開放資料庫系統應用程序介面規范,目前它已成為一種工業標准,它提供了統一的資料庫應用程序編程介面(API)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
SQL語言提供了兩種不同的使用方式。一種是在終端互動式方式下使用,另一種是將SQL語言嵌入到某種高級語言如PL/1、COBOL、FORTRAN、C中使用,利用高級語言的過程性結構來彌補SQL語言在實現復雜應用方面的不足,這種方式下使用的SQL語言稱為嵌入式SQL(Embedded SQL),而嵌入SQL的高級語言稱為主語言或宿主語言。
對宿主型資料庫語言SQL,DBMS可採用兩種方法處理,一種是預編譯,另一種是修改和擴充主語言使之能處理SQL語句。目前採用較多的是預編譯的方法。即由DBMS的預處理程序對源程序進行掃描,識別出SQL語句,把它們轉換成主語言調用語句,以使主語言編譯程序能識別它,最後由主語言的編譯程序將整個源程序編譯成目標碼。
三、 實驗內容:
一個基於ODBC的應用程序對資料庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的資料庫操作由對應的DBMS的ODBC驅動程序完成。
一個完整的ODBC由下列幾個部件組成:應用程序、ODBC管理器、驅動程序管理器(Driver Manager)、ODBC API、ODBC 驅動程序、數據源。
下面我們在前面實驗建立的資料庫的基礎上,配置相應的ODBC數據源。具體步驟如下:
1、通過程序—>設置—>控制面板—>管理工具—>點擊數據源圖標,出現ODBC數據源管理器對話框,點擊系統DSN選項卡,添加系統數據源。
2、選擇SQL SERVER的驅動
3、建立一個數據源名為ds,伺服器:HP或(202.201.224.123)的數據源。
4、SQL SERVER登錄驗證方式採用輸入登錄ID和密碼的SQL SERVER驗證
登錄ID和密碼均為:你的登錄名和密碼
5、默認資料庫指定為你所在班級的資料庫名
6、如下圖,這里使用默認選項,不做改動
7、出現如下圖所示:點擊測試數據源,驗證是否成功。
8、測試結果會出現在下圖所示的對話框中:
如測試成功,點擊確定,名為ds的數據源就建立好了。
這里將結合配置好的數據源,給出一個用Visual Basic連接SQL SERVER2000的實例:即創建一個客戶或前端資料庫應用程序,並在窗體中添加 ADO Data 控制項,以及其它所需要的任何 Visual Basic 控制項。可以根據您的需要在窗體中放置多個 ADO Data 控制項。
這里先介紹一下有關ADO Data 控制項的內容:
ADO Data 控制項使用 Microsoft ActiveX 數據對象(ADO) 來快速建立數據綁定的控制項和數據提供者之間的連接。數據綁定控制項是任何具有「數據源」屬性的控制項。數據提供者可以是任何符合 OLE DB 規范的數據源。使用Visual Basic 的類模塊也可以很方便地創建子集的數據提供者。盡管可以在應用程序中直接使用 ActiveX 數據對象,但 ADO Data 控制項有作為一個圖形控制項的優勢(具有「向前」和「向後」按鈕),以及一個易於使用的界面,使您可以用最少的代碼創建資料庫應用程序。在 Visual Basic 的「工具箱」中,不少控制項都可以作為數據綁定的控制項,包括復選框、組合框、圖像、標簽、列表框、圖片框以及文本框控制項等。此外,Visual Basic 還包括了若干種數據綁定的 ActiveX 控制項,諸如DataGrid、DataCombo、Chart以及 DataList 控制項等。用戶也可以創建自己的數據綁定的 ActiveX 控制項,或從其他開發商購買控制項。
Visual Basic以前的版本提供了內在的 Data 控制項和 Remote Data 控制項(RDC) 來進行數據訪問。這兩種控制項仍包括在 Visual Basic 中,以提供向後兼容。不過,因為 ADO 的適應性更廣,因此建議用戶使用 ADO Data 控制項來創建新的資料庫應用程序。
ADO DATA可能的用法
l 連接一個本地資料庫或遠程資料庫。
l 打開一個指定的資料庫表,或定義一個基於結構化查詢語言 (SQL) 的查詢、或存儲過程、或該資料庫中的表的視圖的記錄集合。
l 將數據欄位的數值傳遞給數據綁定的控制項,可以在這些控制項中顯示或更改這些數值。
l 添加新的記錄,或根據對顯示在綁定的控制項中的數據的任何更改來更新一個資料庫。
創建一個簡單的前端資料庫應用程序:
1、打開Visual Basic,創建一個標准工程(standard exe)。
2、在窗體上放置一個 ADO Data 控制項 (該圖標的工具提示為 "ADODC"),如果該控制項不在「工具箱」中,請按 CTRL+T 鍵,顯示「部件」對話框。在這個「部件」對話框中,單擊「Microsoft ADO Data Control」,再單擊「應用」。
2. 在「工具箱」中,單擊選定「ADO Data控制項」。就建立了一個名為Adodc1的ADO Data控制項,然後按 F4 鍵顯示「屬性」窗口。
3. 在「屬性」窗口中,單擊「ConnectionString」,在它的有側將顯示 圖標。
4. 在「屬性」窗口中,將「RecordSource」屬性設置為一個 SQL 語句。例如:SELECT * FROM Departemnt .
ADO Data控制項屬性設置:
屬性
屬性值
ConnectionString
DSN=ds
CommandType
8-adCmdUnknown
RecordSource
SELECT * FROM Department
5.在窗體上放置一個「標簽」控制項,顯示說明內容。
6.在窗體上再放置一個「文本框」控制項,用來顯示資料庫信息。
7. 在其「屬性」窗口中,將 Text1 的「DataSource」屬性設為 ADO Data 控制項的名稱 (ADODC1)。這樣就將這個文本框和 ADO Data 控制項綁定在一起。
8. 在其「屬性」窗口中,單擊「DataField」將下拉得到一個可用的欄位列表。單擊所要顯示的欄位的名稱。
控制項名
屬性
屬性值
Text1
DataSource
Adodc1
DataField
要顯示的欄位名
9. 對希望訪問的其它每個欄位重復第 5、6、7、8 步。
10.按 F5 鍵運行該應用程序。用戶可以在 ADO Data 控制項中使用四個箭頭按鈕,從而允許用戶到達數據的開始、記錄的末尾或在數據內從一個記錄移動到另一個記錄。
SQL語言與主語言具有不同數據處理方式。SQL語言是面向集合的,一條SQL語句原則上可以產生或處理多條記錄。而主語言是面向記錄的,一組主變數一次只能存放一條記錄。所以僅使用主變數並不能完全滿足SQL語句向應用程序輸出數據的要求,為此嵌入式SQL引入了游標的概念,用游標來協調這兩種不同的處理方式。游標是系統為用戶開設的一個數據緩沖區,存放SQL語句的執行結果。每個游標區都有一個名字。用戶可以用SQL語句逐一從游標中獲取記錄,並賦給主變數,交由主語言進一步處理。
使用游標在需要一行一行處理時,游標十分有用。游標可以打開一個結果集合,並提供在結果集中一行一行處理的功能。下面的例子給出了一個利用游標來查詢指定學號的學生所選修的課程成績。
引自:http://www.nx5127.com/863.html
『叄』 資料庫共享數據處理辦法
只需要安裝sqlserver客戶端就可以了。 安裝完成後新建sqlserver注冊,連上去就可以了
『肆』 兩個資料庫怎樣進行數據共享
你的意思是兩個資料庫裡面同一張表的數據要進行合並?
可以考慮進行數據的發布訂閱,以一定的頻率進行兩張表的數據合並;
這樣可以試想兩店的會員信息能夠進行共享。不過由於是定時數據合並,因此會存在一定的時間差。
不過考慮到應用是酒店會員,因此應該沒有問題。
在實施過程中必須要注意選擇發布訂閱的類型。
具體的設置可以網路「數據對拷」、「發布訂閱」。
『伍』 SQL資料庫區域網共享,在一台電腦上安裝了sqlserver,怎樣讓別的4台電腦連接到這台電腦的sql
sql2000可以直連,輸入sql
資料庫安裝電腦的IP地址.然後輸入用戶名和密碼
這里的用戶名和密碼是你安裝sql的時候設置的,一般默認是用戶名:sa
密碼是你自己填的,可以為空
如果SQL2005或者2008
方法同上,但是需要通過SQL外圍設置工具
把鏈接設置為非本地鏈接
『陸』 SQL SERVER到底是如何實現數據共享在區域網中如何來實現資源共享
安裝sql server客戶端,每個人分配用戶名密碼就可以了,它的共享和windows共享不是一個概念,它就像個倉庫,可以給讀、寫、改的許可權。
『柒』 本地sql資料庫怎麼與遠程sql資料庫同步
MySQL
MySQL數據同步主要有三種方式:
1.利用MySQL自身的資料庫同步功能
2.利用MySQL資料庫的特性(資料庫存在固頂目錄,並且以文件形式存儲),進行資料庫目錄同步以達到數據同步目的
3.利用專用的MySQL資料庫同步軟體
1.利用MySQL自身的資料庫同步功能(下面參考自網上的文章,寫的非常詳細了)
MySQL從3.23.15版本以後提供資料庫復制功能。利用該功能可以實現兩個資料庫同步,主從模式,互相備份模式的功能.
資料庫同步復制功能的設置都在mysql的設置文件中體現。mysql的配置文件(一般是my.cnf),在unix環境下在/etc/mysql/my.cnf或者在mysql用戶的home目錄下的my.cnf。
windows環境中,如果c:根目錄下有my.cnf文件則取該配置文件。當運行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf命名為mycnf.bak。並在winnt目錄下創建my.ini。mysql伺服器啟動時候會讀該配置文件。所以可以把my.cnf中的內容拷貝到my.ini文件中,用my.ini文件作為mysql伺服器的配置文件。
設置方法:
設置範例環境:
操作系統:window2000professional
mysql:4.0.4-beta-max-nt-log
Aip:10.10.10.22
Bip:10.10.10.53
A:設置
1.增加一個用戶最為同步的用戶帳號:
GRANTFILEON*.*TObackup@'10.10.10.53'IDENTIFIEDBY『1234』
2.增加一個資料庫作為同步資料庫:
createdatabasebackup
B:設置
1.增加一個用戶最為同步的用戶帳號:
GRANTFILEON*.*TObackup@'10.10.10.22'IDENTIFIEDBY『1234』
2.增加一個資料庫作為同步資料庫:
createdatabasebackup
主從模式:A->B
A為master
修改Amysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=1
log-bin
#設置需要記錄log可以設置log-bin=c:mysqlbakmysqllog設置日誌文件的目錄,
#其中mysqllog是日誌文件的名稱,mysql將建立不同擴展名,文件名為mysqllog的幾個日誌文件。
binlog-do-db=backup#指定需要日誌的資料庫
重起資料庫服務。
用showmasterstatus命令看日誌情況。
B為slave
修改Bmysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup#同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60預設重試間隔60秒
replicate-do-db=backup告訴slave只做backup資料庫的更新
重起資料庫
用showslavestatus看同步配置情況。
注意:由於設置了slave的配置信息,mysql在資料庫目錄下生成master.info
所以如有要修改相關slave的配置要先刪除該文件。否則修改的配置不能生效。
雙機互備模式。
如果在A加入slave設置,在B加入master設置,則可以做B->A的同步。
在A的配置文件中mysqld配置項加入以下設置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中mysqld配置項加入以下設置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產生時*.err日誌文件。同步的線程退出,當糾正錯誤後要讓同步機制進行工作,運行slavestart
重起AB機器,則可以實現雙向的熱備。
測試:
向B批量插入大數據量表AA(1872000)條
A資料庫每秒鍾可以更新2500條數據。
2.資料庫目錄同步,方法和文件同步一樣,設置好需要同步的兩個資料庫目錄就可以了!
缺點很明顯,數據同步只能單向進行,可以作為備份方案
3.用專用的MySQL同步軟體進行同步
這方面的軟體有SQLBalance和MyReplicator,優點是方便直觀,還有很多爭強功能!
缺點和2一樣,只能單項同步!
當然你也可以修改鏡像網站的程序為提交數據到母資料庫,讀取則在當前鏡像下的數據,不過,修改起來麻煩!普通用戶修改也非常難!呵呵,大家了解一下就可以!給大家一個思路!有能力的朋友可以試試阿!
4.關於MySQL論壇的數據同步
由於數據來源的不可控制(不好表達),論壇數據是實時的,而且還要考慮來自鏡像論壇的數據,如何實現鏡像論壇與母論壇數據同步呢?
用1中介紹的MySQL自帶的資料庫同步功能互相備份模式就可以實現的!
不過,具體的應用我沒有測試!穩定性不敢保證!
有能力的朋友推薦用下面這種思路來同步,相對來說減少點效率,但能減少發生的錯誤!
比如鏡像論壇數據同步:
1.母論壇和鏡像論壇的數據全寫在母論壇資料庫里,主從模式,讀取只在本地讀取,這個需要修改程序!
2.每次寫數據,都同時提交到兩個資料庫中,安全,但是效率很差,也得修改程序!
MSSQL
MSSQL數據同步利用資料庫復制技術實現數據同步更新(來自網路,也是非常完美的教程)
復制的概念
復制是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發布到多個存儲站點上的有效方式。使用復制技術,用戶可以將一份數據發布到多台伺服器上,從而使不同的伺服器用戶都可以在許可權的許可的范圍內共享這份數據。復制技術可以確保分布在不同地點的數據自動同步更新,從而保證數據的一致性。
SQL復制的基本元素包括
出版伺服器、訂閱伺服器、分發伺服器、出版物、文章
SQL復制的工作原理
SQLSERVER主要採用出版物、訂閱的方式來處理復制。源數據所在的伺服器是出版伺服器,負責發表數據。出版伺服器把要發表的數據的所有改變情況的拷貝復制到分發伺服器,分發伺服器包含有一個分發資料庫,可接收數據的所有改變,並保存這些改變,再把這些改變分發給訂閱伺服器
SQLSERVER復制技術類型
SQLSERVER提供了三種復制技術,分別是:
1、快照復制(呆會我們就使用這個)
2、事務復制
3、合並復制
只要把上面這些概念弄清楚了那麼對復制也就有了一定的理解。接下來我們就一步一步來實現復制的步驟。
第一先來配置出版伺服器
(1)選中指定[伺服器]節點
(2)從[工具]下拉菜單的[復制]子菜單中選擇[發布、訂閱伺服器和分發]命令
(3)系統彈出一個對話框點[下一步]然後看著提示一直操作到完成。
(4)當完成了出版伺服器的設置以後系統會為該伺服器的樹形結構中添加一個復制監視器。同時也生成一個分發資料庫(distribution)
第二創建出版物
(1)選中指定的伺服器
(2)從[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令。此時系統會彈出一個對話框
(3)選擇要創建出版物的資料庫,然後單擊[創建發布]
(4)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)
(5)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型,SQLSERVER允許在不同的資料庫如ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQLSERVER2000"的資料庫伺服器
(6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表
(7)然後[下一步]直到操作完成。當完成出版物的創建後創建出版物的資料庫也就變成了一個共享資料庫。
第三設計訂閱
(1)選中指定的訂閱伺服器
(2)從[工具]下拉菜單中選擇[復制]子菜單的[請求訂閱]
(3)按照單擊[下一步]操作直到系統會提示檢查SQLSERVER代理服務的運行狀態,執行復制操作的前提條件是SQLSERVER代理服務必須已經啟動。
(4)單擊[完成]。完成訂閱操作。
完成上面的步驟其實復制也就是成功了。但是如何來知道復制是否成功了呢?這里可以通過這種方法來快速看是否成功。展開出版伺服器下面的復制——發布內容——右鍵發布內容——屬性——擊活——狀態然後點立即運行代理程序接著點代理程序屬性擊活調度把調度設置為每一天發生,每一分鍾,在0:00:00和23:59:59之間。接下來就是判斷復制是否成功了打開C:/ProgramFiles/MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以時間做為文件名的文件夾差不多一分中就產生一個。要是你還不信的話就打開你的資料庫看在訂閱的伺服器的指定訂閱資料庫下看是不是看到了你剛才所發布的表—
一個手工同步的方案
--定時同步伺服器上的數據
--例子:
--測試環境,SQLServer2000,遠程伺服器名:xz,用戶名為:sa,無密碼,測試資料庫:test
--伺服器上的表(查詢分析器連接到伺服器上創建)
createtable[user](idintprimarykey,numbervarchar(4),namevarchar(10))
go
--以下在區域網(本機操作)
--本機的表,state說明:null表示新增記錄,1表示修改過的記錄,0表示無變化的記錄
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[user]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[user]
GO
createtable[user](idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)
go
--創建觸發器,維護state欄位的值
createtriggert_stateon[user]
afterupdate
as
update[user]setstate=1
from[user]ajoininsertedbona.id=b.id
wherea.stateisnotnull
go
--為了方便同步處理,創建鏈接伺服器到要同步的伺服器
--這里的遠程伺服器名為:xz,用戶名為:sa,無密碼
ifexists(select1frommaster..sysserverswheresrvname='srv_lnk')
execsp_dropserver'srv_lnk','droplogins'
go
execsp_addlinkedserver'srv_lnk','','SQLOLEDB','xz'
execsp_addlinkedsrvlogin'srv_lnk','false',null,'sa'
go
--創建同步處理的存儲過程
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_synchro]')andOBJECTPROPERTY(id,N'IsProcere')=1)
dropprocere[dbo].[p_synchro]
GO
createprocp_synchro
as
--setXACT_ABORTon
--啟動遠程伺服器的MSDTC服務
--execmaster..xp_cmdshell'isql/S"xz"/U"sa"/P""/q"execmaster..xp_cmdshell''netstartmsdtc'',no_output"',no_output
--啟動本機的MSDTC服務
--execmaster..xp_cmdshell'netstartmsdtc',no_output
--進行分布事務處理,如果表用標識列做主鍵,用下面的方法
--BEGINDISTRIBUTEDTRANSACTION
--同步刪除的數據
deletefromsrv_lnk.test.dbo.[user]
whereidnotin(selectidfrom[user])
--同步新增的數據
insertintosrv_lnk.test.dbo.[user]
selectid,number,namefrom[user]wherestateisnull
--同步修改的數據
updatesrv_lnk.test.dbo.[user]set
number=b.number,name=b.name
fromsrv_lnk.test.dbo.[user]a
join[user]bona.id=b.id
whereb.state=1
--同步後更新本機的標志
update[user]setstate=0whereisnull(state,1)=1
--COMMITTRAN
go
--創建作業,定時執行數據同步的存儲過程
ifexists(SELECT1frommsdb..sysjobswherename='數據處理')
EXECUTEmsdb.dbo.sp_delete_job@job_name='數據處理'
execmsdb..sp_add_job@job_name='數據處理'
--創建作業步驟
declare@sqlvarchar(800),@dbnamevarchar(250)
select@sql='execp_synchro'--數據處理的命令
,@dbname=db_name()--執行數據處理的資料庫名
execmsdb..sp_add_jobstep@job_name='數據處理',
@step_name='數據同步',
@subsystem='TSQL',
@database_name=@dbname,
@command=@sql,
@retry_attempts=5,--重試次數
@retry_interval=5--重試間隔
--創建調度
EXECmsdb..sp_add_jobschele@job_name='數據處理',
@name='時間安排',
@freq_type=4,--每天
@freq_interval=1,--每天執行一次
@active_start_time=00000--0點執行
go
『捌』 我這里有兩台機器,用的是MySql的資料庫,我想資料庫共享
裝個SQLyog軟體
填上另一台電腦的ipMYSQL帳號,密碼就可以連接上了
注意另一台電腦的MYSQL帳號,要設成可遠程連接的