成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

兩個sqlserver,兩個一百年奮斗目標

怎樣同步兩個SQLSERVER的數據

同步兩個SQLServer數據庫 如何同步兩個sqlserver數據庫的內容?程序代碼可以有版本管理cvs進行同步管理,可是數據庫同步就非常麻煩,只能自己改了一個后再去改另一個,如果忘記了更改另一個經常造成兩個數據庫的結構或內容上不一致.各位有什么好的方法嗎? 一、分發(fā)與復制 用強制訂閱實現(xiàn)數據庫同步操作. 大量和批量的數據可以用數據庫的同步機制處理: // 說明: 為方便操作,所有操作均在發(fā)布服務器(分發(fā)服務器)上操作,并使用推模式 在客戶機器使用強制訂閱方式。 二、測試通過 1:環(huán)境 服務器環(huán)境: 機器名稱: zehuadb 操作系統(tǒng):windows 2000 server 數據庫版本:sql 2000 server 個人版 客戶端 機器名稱:zlp 操作系統(tǒng):windows 2000 server 數據庫版本:sql 2000 server 個人版 2:建用戶帳號 在服務器端建立域用戶帳號 我的電腦管理-本地用戶和組-用戶-建立 username:zlp userpwd:zlp 3:重新啟動服務器mssqlserver 我的電腦-控制面版-管理工具-服務-mssqlserver 服務 (更改為:域用戶帳號,我們新建的zlp用戶 .\zlp,密碼:zlp) 4:安裝分發(fā)服務器 a:配置分發(fā)服務器 工具-復制-配置發(fā)布、訂閱服務器和分發(fā)-下一步-下一步(所有的均采用默認配置) b:配置發(fā)布服務器 工具-復制-創(chuàng)建和管理發(fā)布-選擇要發(fā)布的數據庫(sz)-下一步-快照發(fā)布-下一步-選擇要發(fā)布的內容-下一步-下一步-下一步-完成 c:強制配置訂閱服務器(推模式,拉模式與此雷同) 工具-復制-配置發(fā)布、訂閱服務器和分發(fā)-訂閱服務器-新建-sql server數據庫-輸入客戶端服務器名稱(zlp)-使用sql server 身份驗證(sa,空密碼)-確定-應用-確定 d:初始化訂閱 復制監(jiān)視器-發(fā)布服務器(zehuadb)-雙擊訂閱-強制新建-下一步-選擇啟用的訂閱服務器-zlp-下一步-下一步-下一步-下一步-完成 5:測試配置是否成功 復制監(jiān)視器-發(fā)布衿?zehuadb)-雙擊sz:sz-點狀態(tài)-點立即運行代理程序 查看: 復制監(jiān)視器-發(fā)布服務器(zehuadb)-sz:sz-選擇zlp:sz(類型強制)-鼠標右鍵-啟動同步處理 如果沒有錯誤標志(紅色叉),恭喜您配置成功 6:測試數據 在服務器執(zhí)行: 選擇一個表,執(zhí)行如下sql: insert into wq_newsgroup_s select '測試成功',5 復制監(jiān)視器-發(fā)布服務器(zehuadb)-sz:sz-快照-啟動代理程序 -zlp:sz(強制)-啟動同步處理 去查看同步的 wq_newsgroup_s 是否插入了一條新的記錄 測試完畢,通過。 7:修改數據庫的同步時間,一般選擇夜晚執(zhí)行數據庫同步處理 (具體操作略) :d /* 注意說明: 服務器一端不能以(local)進行數據的發(fā)布與分發(fā),需要先刪除注冊,然后新建注冊本地計算機名稱 卸載方式:工具-復制-禁止發(fā)布-是在"zehuadb"上靜止發(fā)布,卸載所有的數據庫同步配置服務器 注意:發(fā)布服務器、分發(fā)服務器中的sqlserveragent服務必須啟動 采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目錄文件可以不設置共享 拉模式:則需要共享~! */ 少量數據庫同步可以采用觸發(fā)器實現(xiàn),同步單表即可。 三、配置過程中可能出現(xiàn)的問題 在sql server 2000里設置和使用數據庫復制之前,應先檢查相關的幾臺sql server服務器下面幾點是否滿足: 1、mssqlserver和sqlserveragent服務是否是以域用戶身份啟動并運行的(.\administrator用戶也是可以的) 如果登錄用的是本地系統(tǒng)帳戶local,將不具備網絡功能,會產生以下錯誤: 進程未能連接到distributor '@server name' (如果您的服務器已經用了sql server全文檢索服務, 請不要修改mssqlserver和sqlserveragent服務的local啟動。 會照成全文檢索服務不能用。請換另外一臺機器來做sql server 2000里復制中的分發(fā)服務器。) 修改服務啟動的登錄用戶,需要重新啟動mssqlserver和sqlserveragent服務才能生效 2、檢查相關的幾臺sql server服務器是否改過名稱(需要srvid=0的本地機器上srvname和datasource一樣) 在查詢分析器里執(zhí)行: use master select srvid,srvname,datasource from sysservers 如果沒有srvid=0或者srvid=0(也就是本機器)但srvname和datasource不一樣, 需要按如下方法修改: use master go -- 設置兩個變量 declare @serverproperty_servername varchar(100), @servername varchar(100) -- 取得windows nt 服務器和與指定的 sql server 實例關聯(lián)的實例信息 select @serverproperty_servername = convert(varchar(100), serverproperty('servername')) -- 返回運行 microsoft sql server 的本地服務器名稱 select @servername = convert(varchar(100), @@servername) -- 顯示獲取的這兩個參數 select @serverproperty_servername,@servername --如果@serverproperty_servername和@servername不同(因為你改過計算機名字),再運行下面的 --刪除錯誤的服務器名 exec sp_dropserver @server=@servername --添加正確的服務器名 exec sp_addserver @server=@serverproperty_servername, @local='local' 修改這項參數,需要重新啟動mssqlserver和sqlserveragent服務才能生效。 這樣一來就不會在創(chuàng)建復制的過程中出現(xiàn)18482、18483錯誤了。 3、檢查sql server企業(yè)管理器里面相關的幾臺sql server注冊名是否和上面第二點里介紹的srvname一樣 不能用ip地址的注冊名。 (我們可以刪掉ip地址的注冊,新建以sql server管理員級別的用戶注冊的服務器名) 這樣一來就不會在創(chuàng)建復制的過程中出現(xiàn)14010、20084、18456、18482、18483錯誤了。 4、檢查相關的幾臺sql server服務器網絡是否能夠正常訪問 如果ping主機ip地址可以,但ping主機名不通的時候,需要在 winnt\system32\drivers\etc\hosts (win2000) windows\system32\drivers\etc\hosts (win2003) 文件里寫入數據庫服務器ip地址和主機名的對應關系。 例如: 127.0.0.1 localhost 192.168.0.35 oracledb oracledb 192.168.0.65 fengyu02 fengyu02 202.84.10.193 bj_db bj_db 或者在sql server客戶端網絡實用工具里建立別名,例如: 5、系統(tǒng)需要的擴展存儲過程是否存在(如果不存在,需要恢復): sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll' go sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 接下來就可以用sql server企業(yè)管理器里[復制]- 右鍵選擇 -[配置發(fā)布、訂閱服務器和分發(fā)]的圖形界面來配置數據庫復制了。 下面是按順序列出配置復制的步驟: 1、建立發(fā)布和分發(fā)服務器 [歡迎使用配置發(fā)布和分發(fā)向導]-[選擇分發(fā)服務器]-[使"@servername"成為它自己的分發(fā)服務器,sql server將創(chuàng)建分發(fā)數據庫和日志] -[制定快照文件夾]- [自定義配置] - [否,使用下列的默認配置] - [完成] 上述步驟完成后, 會在當前"@servername" sql server數據庫里建立了一個distribion庫和 一個distributor_admin管理員級別的用戶(我們可以任意修改密碼)。 服務器上新增加了四個作業(yè): [ 代理程序歷史記錄清除: distribution ] [ 分發(fā)清除: distribution ] [ 復制代理程序檢查 ] [ 重新初始化存在數據驗證失敗的訂閱 ] sql server企業(yè)管理器里多了一個復制監(jiān)視器, 當前的這臺機器就可以發(fā)布、分發(fā)、訂閱了。 我們再次在sql server企業(yè)管理器里[復制]- 右鍵選擇 -[配置發(fā)布、訂閱服務器和分發(fā)] 我們可以在 [發(fā)布服務器和分發(fā)服務器的屬性] 窗口- [發(fā)布服務器] - [新增] - [確定] - [發(fā)布數據庫] - [事務]/[合并] - [確定] - [訂閱服務器] - [新增] - [確定] 把網絡上的其它sql server服務器添加成為發(fā)布或者訂閱服務器. 新增一臺發(fā)布服務器的選項: 我這里新建立的jin001發(fā)布服務器是用管理員級別的數據庫用戶test連接的, 到發(fā)布服務器的管理鏈接要輸入密碼的可選框, 默認的是選中的, 在新建的jin001發(fā)布服務器上建立和分發(fā)服務器fengyu/fengyu的鏈接的時需要輸入distributor_admin用戶的密碼。到發(fā)布服務器的管理鏈接要輸入密碼的可選框,也可以不選,也就是不需要密碼來建立發(fā)布到分發(fā)服務器的鏈接(這當然欠缺安全,在測試環(huán)境下可以使用)。 2、新建立的網絡上另一臺發(fā)布服務器(例如jin001)選擇分發(fā)服務器 [歡迎使用配置發(fā)布和分發(fā)向導]-[選擇分發(fā)服務器] - 使用下列服務器(選定的服務器必須已配置為分發(fā)服務器) - [選定服務器](例如fengyu/fengyu) - [下一步] - [輸入分發(fā)服務器(例如fengyu/fengyu)的distributor_admin用戶的密碼兩次] - [下一步] - [自定義配置] - [否,使用下列的默認配置] - [下一步] - [完成] - [確定] 建立一個數據庫復制發(fā)布的過程: [復制] - [發(fā)布內容] - 右鍵選擇 - [新建發(fā)布] - [下一步] - [選擇發(fā)布數據庫] - [選中一個待發(fā)布的數據庫] - [下一步] - [選擇發(fā)布類型] - [事務發(fā)布]/[合并發(fā)布] - [下一步] - [指定訂閱服務器的類型] - [運行sql server 2000的服務器] - [下一步] - [指定項目] - [在事務發(fā)布中只可以發(fā)布帶主鍵的表] - [選中一個有主鍵的待發(fā)布的表] -[在合并發(fā)布中會給表增加唯一性索引和 rowguidcol 屬性的唯一標識符字段[rowguid],默認值是newid()] (添加新列將: 導致不帶列列表的 insert 語句失敗,增加表的大小,增加生成第一個快照所要求的時間) -[選中一個待發(fā)布的表] - [下一步] - [選擇發(fā)布名稱和描述] - - [下一步] - [自定義發(fā)布的屬性] - [否,根據指定方式創(chuàng)建發(fā)布] - [下一步] - [完成] - [關閉] 發(fā)布屬性里有很多有用的選項:設定訂閱到期(例如24小時) 設定發(fā)布表的項目屬性: 常規(guī)窗口可以指定發(fā)布目的表的名稱,可以跟原來的表名稱不一樣。 下圖是命令和快照窗口的欄目 ( sql server 數據庫復制技術實際上是用insert,update,delete操作在訂閱服務器上重做發(fā)布服務器上的事務操作 看文檔資料需要把發(fā)布數據庫設成完全恢復模式,事務才不會丟失 但我自己在測試中發(fā)現(xiàn)發(fā)布數據庫是簡單恢復模式下,每10秒生成一些大事務,10分鐘后再收縮數據庫日志, 這期間發(fā)布和訂閱服務器上的作業(yè)都暫停,暫停恢復后并沒有丟失任何事務更改 ) 發(fā)布表可以做數據篩選,例如只選擇表里面的部分列: 例如只選擇表里某些符合條件的記錄, 我們可以手工編寫篩選的sql語句: 發(fā)布表的訂閱選項,并可以建立強制訂閱: 成功建立了發(fā)布以后,發(fā)布服務器上新增加了一個作業(yè): [ 失效訂閱清除 ] 分發(fā)服務器上新增加了兩個作業(yè): [ jin001-dack-dack-5 ] 類型[ repl快照 ] [ jin001-dack-3 ] 類型[ repl日志讀取器 ] 上面藍色字的名稱會根據發(fā)布服務器名,發(fā)布名及第幾次發(fā)布而使用不同的編號 repl快照作業(yè)是sql server復制的前提條件,它會先把發(fā)布的表結構,數據,索引,約束等生成到發(fā)布服務器的os目錄下文件 (當有訂閱的時候才會生成, 當訂閱請求初始化或者按照某個時間表調度生成) repl日志讀取器在事務復制的時候是一直處于運行狀態(tài)。(在合并復制的時候可以根據調度的時間表來運行) 建立一個數據庫復制訂閱的過程: [復制] - [訂閱] - 右鍵選擇 - [新建請求訂閱] - [下一步] - [查找發(fā)布] - [查看已注冊服務器所做的發(fā)布] - [下一步] - [選擇發(fā)布] - [選中已經建立發(fā)布服務器上的數據庫發(fā)布名] - [下一步] - [指定同步代理程序登錄] - [當代理程序連接到代理服務器時:使用sql server身份驗證] (輸入發(fā)布服務器上distributor_admin用戶名和密碼) - [下一步] - [選擇目的數據庫] - [選擇在其中創(chuàng)建訂閱的數據庫名]/[也可以新建一個庫名] - [下一步] - [允許匿名訂閱] - [是,生成匿名訂閱] - [下一步] - [初始化訂閱] - [是,初始化架構和數據] - [下一步] - [快照傳送] - [使用該發(fā)布的默認快照文件夾中的快照文件] (訂閱服務器要能訪問發(fā)布服務器的repldata文件夾,如果有問題,可以手工設置網絡共享及共享權限) - [下一步] - [快照傳送] - [使用該發(fā)布的默認快照文件夾中的快照文件] - [下一步] - [設置分發(fā)代理程序調度] - [使用下列調度] - [更改] - [例如每五分鐘調度一次] - [下一步] - [啟動要求的服務] - [該訂閱要求在發(fā)布服務器上運行sqlserveragent服務] - [下一步] - [完成] - [確定] 成功建立了訂閱后,訂閱服務器上新增加了一個類別是[repl-分發(fā)]作業(yè)(合并復制的時候類別是[repl-合并]) 它會按照我們給的時間調度表運行數據庫同步復制的作業(yè)。 3、sql server復制配置好后, 可能出現(xiàn)異常情況的實驗日志: 1.發(fā)布服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制沒有多大影響 中斷期間,分發(fā)和訂閱都接收到沒有復制的事務信息 2.分發(fā)服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制有一些影響 中斷期間,發(fā)布服務器的事務排隊堆積起來 (如果設置了較長時間才刪除過期訂閱的選項, 繁忙發(fā)布數據庫的事務日志可能會較快速膨脹), 訂閱服務器會因為訪問不到發(fā)布服務器,反復重試 我們可以設置重試次數和重試的時間間隔(最大的重試次數是9999, 如果每分鐘重試一次,可以支持約6.9天不出錯) 分發(fā)服務器sql server服務啟動,網絡接通以后,發(fā)布服務器上的堆積作業(yè)將按時間順序作用到訂閱機器上: 會需要一個比較長的時間(實際上是生成所有事務的insert,update,delete語句,在訂閱服務器上去執(zhí)行) 我們在普通的pc機上實驗的58個事務100228個命令執(zhí)行花了7分28秒. 3.訂閱服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制影響比較大,可能需要重新初試化 我們實驗環(huán)境(訂閱服務器)從18:46分意外停機以, 第二天8:40分重啟動后, 已經設好的復制在8:40分以后又開始正常運行了, 發(fā)布服務器上的堆積作業(yè)將按時間順序作用到訂閱機器上, 但復制管理器里出現(xiàn)快照的錯誤提示, 快照可能需要重新初試化,復制可能需要重新啟動.(我們實驗環(huán)境的機器并沒有進行快照初試化,復制仍然是成功運行的) 4、刪除已經建好的發(fā)布和定閱可以直接用delete刪除按鈕 我們最好總是按先刪定閱,再刪發(fā)布,最后禁用發(fā)布的順序來操作。 如果要徹底刪去sql server上面的復制設置, 可以這樣操作: [復制] - 右鍵選擇 [禁用發(fā)布] - [歡迎使用禁用發(fā)布和分發(fā)向導] - [下一步] - [禁用發(fā)布] - [要在"@servername"上禁用發(fā)布] - [下一步] - [完成禁用發(fā)布和分發(fā)向導] - [完成] 我們也可以用t-sql命令來完成復制中發(fā)布及訂閱的創(chuàng)建和刪除, 選中已經設好的發(fā)布和訂閱, 按屬標右鍵可以[生成sql腳本]。(這里就不詳細講了, 后面推薦的網站內有比較詳細的內容) 當你試圖刪除或者變更一個table時,出現(xiàn)以下錯誤 server: msg 3724, level 16, state 2, line 1 cannot drop the table 'object_name' because it is being used for replication. 比較典型的情況是該table曾經用于復制,但是后來又刪除了復制。 處理辦法: select * from sysobjects where replinfo '0' sp_configure 'allow updates', 1 go reconfigure with override go begin transaction update sysobjects set replinfo = '0' where replinfo '0' commit transaction go rollback transaction go sp_configure 'allow updates', 0 go reconfigure with override go

我們提供的服務有:網站制作、成都網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、云溪ssl等。為上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的云溪網站制作公司

如何實現(xiàn)兩個sqlserver服務器之間互相訪問

1、鏈接服務器,此種方式較為安全。驗證是數據庫級別的驗證。

2、使用域環(huán)境+足夠權限的SQL用戶權限,就可以訪問。

3、使用證書驗證(非域環(huán)境),配置較以上兩種方式復雜。

如何同步兩個SQLServer數據庫的內容

同步兩個SQLServer數據庫

如何同步兩個sqlserver數據庫的內容?程序代碼可以有版本管理cvs進行同步管理,可是數據庫同步就非常麻煩,只能自己改了一個后再去改另一個,如果忘記了更改另一個經常造成兩個數據庫的結構或內容上不一致.各位有什么好的方法嗎?

一、分發(fā)與復制

用強制訂閱實現(xiàn)數據庫同步操作. 大量和批量的數據可以用數據庫的同步機制處理:

//

說明:

為方便操作,所有操作均在發(fā)布服務器(分發(fā)服務器)上操作,并使用推模式

在客戶機器使用強制訂閱方式。

二、測試通過

1:環(huán)境

服務器環(huán)境:

機器名稱: zehuadb

操作系統(tǒng):windows 2000 server

數據庫版本:sql 2000 server 個人版

客戶端

機器名稱:zlp

操作系統(tǒng):windows 2000 server

數據庫版本:sql 2000 server 個人版

2:建用戶帳號

在服務器端建立域用戶帳號

我的電腦管理-本地用戶和組-用戶-建立

username:zlp

userpwd:zlp

3:重新啟動服務器mssqlserver

我的電腦-控制面版-管理工具-服務-mssqlserver 服務

(更改為:域用戶帳號,我們新建的zlp用戶 .\zlp,密碼:zlp)

4:安裝分發(fā)服務器

a:配置分發(fā)服務器

工具-復制-配置發(fā)布、訂閱服務器和分發(fā)-下一步-下一步(所有的均采用默認配置)

b:配置發(fā)布服務器

工具-復制-創(chuàng)建和管理發(fā)布-選擇要發(fā)布的數據庫(sz)-下一步-快照發(fā)布-下一步-選擇要發(fā)布的內容-下一步-下一步-下一步-完成

c:強制配置訂閱服務器(推模式,拉模式與此雷同)

工具-復制-配置發(fā)布、訂閱服務器和分發(fā)-訂閱服務器-新建-sql server數據庫-輸入客戶端服務器名稱(zlp)-使用sql server 身份驗證(sa,空密碼)-確定-應用-確定

d:初始化訂閱

復制監(jiān)視器-發(fā)布服務器(zehuadb)-雙擊訂閱-強制新建-下一步-選擇啟用的訂閱服務器-zlp-下一步-下一步-下一步-下一步-完成

5:測試配置是否成功

復制監(jiān)視器-發(fā)布衿?zehuadb)-雙擊sz:sz-點狀態(tài)-點立即運行代理程序

查看:

復制監(jiān)視器-發(fā)布服務器(zehuadb)-sz:sz-選擇zlp:sz(類型強制)-鼠標右鍵-啟動同步處理

如果沒有錯誤標志(紅色叉),恭喜您配置成功

6:測試數據

在服務器執(zhí)行:

選擇一個表,執(zhí)行如下sql: insert into wq_newsgroup_s select '測試成功',5

復制監(jiān)視器-發(fā)布服務器(zehuadb)-sz:sz-快照-啟動代理程序 -zlp:sz(強制)-啟動同步處理

去查看同步的 wq_newsgroup_s 是否插入了一條新的記錄

測試完畢,通過。

7:修改數據庫的同步時間,一般選擇夜晚執(zhí)行數據庫同步處理

(具體操作略) :d

/*

注意說明:

服務器一端不能以(local)進行數據的發(fā)布與分發(fā),需要先刪除注冊,然后新建注冊本地計算機名稱

卸載方式:工具-復制-禁止發(fā)布-是在"zehuadb"上靜止發(fā)布,卸載所有的數據庫同步配置服務器

注意:發(fā)布服務器、分發(fā)服務器中的sqlserveragent服務必須啟動

采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目錄文件可以不設置共享

拉模式:則需要共享~!

*/

少量數據庫同步可以采用觸發(fā)器實現(xiàn),同步單表即可。

三、配置過程中可能出現(xiàn)的問題

在sql server 2000里設置和使用數據庫復制之前,應先檢查相關的幾臺sql server服務器下面幾點是否滿足:

1、mssqlserver和sqlserveragent服務是否是以域用戶身份啟動并運行的(.\administrator用戶也是可以的)

如果登錄用的是本地系統(tǒng)帳戶local,將不具備網絡功能,會產生以下錯誤:

進程未能連接到distributor '@server name'

(如果您的服務器已經用了sql server全文檢索服務, 請不要修改mssqlserver和sqlserveragent服務的local啟動。

會照成全文檢索服務不能用。請換另外一臺機器來做sql server 2000里復制中的分發(fā)服務器。)

修改服務啟動的登錄用戶,需要重新啟動mssqlserver和sqlserveragent服務才能生效。

2、檢查相關的幾臺sql server服務器是否改過名稱(需要srvid=0的本地機器上srvname和datasource一樣)

在查詢分析器里執(zhí)行:

use master

select srvid,srvname,datasource from sysservers

如果沒有srvid=0或者srvid=0(也就是本機器)但srvname和datasource不一樣, 需要按如下方法修改:

use master

go

-- 設置兩個變量

declare @serverproperty_servername varchar(100),

@servername varchar(100)

-- 取得windows nt 服務器和與指定的 sql server 實例關聯(lián)的實例信息

select @serverproperty_servername = convert(varchar(100), serverproperty('servername'))

-- 返回運行 microsoft sql server 的本地服務器名稱

select @servername = convert(varchar(100), @@servername)

-- 顯示獲取的這兩個參數

select @serverproperty_servername,@servername

--如果@serverproperty_servername和@servername不同(因為你改過計算機名字),再運行下面的

--刪除錯誤的服務器名

exec sp_dropserver @server=@servername

--添加正確的服務器名

exec sp_addserver @server=@serverproperty_servername, @local='local'

修改這項參數,需要重新啟動mssqlserver和sqlserveragent服務才能生效。

這樣一來就不會在創(chuàng)建復制的過程中出現(xiàn)18482、18483錯誤了。

3、檢查sql server企業(yè)管理器里面相關的幾臺sql server注冊名是否和上面第二點里介紹的srvname一樣

不能用ip地址的注冊名。

(我們可以刪掉ip地址的注冊,新建以sql server管理員級別的用戶注冊的服務器名)

這樣一來就不會在創(chuàng)建復制的過程中出現(xiàn)14010、20084、18456、18482、18483錯誤了。

4、檢查相關的幾臺sql server服務器網絡是否能夠正常訪問

如果ping主機ip地址可以,但ping主機名不通的時候,需要在

winnt\system32\drivers\etc\hosts (win2000)

windows\system32\drivers\etc\hosts (win2003)

文件里寫入數據庫服務器ip地址和主機名的對應關系。

例如:

127.0.0.1 localhost

192.168.0.35 oracledb oracledb

192.168.0.65 fengyu02 fengyu02

202.84.10.193 bj_db bj_db

或者在sql server客戶端網絡實用工具里建立別名,例如:

5、系統(tǒng)需要的擴展存儲過程是否存在(如果不存在,需要恢復):

sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'

go

sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

接下來就可以用sql server企業(yè)管理器里[復制]- 右鍵選擇 -[配置發(fā)布、訂閱服務器和分發(fā)]的圖形界面來配置數據庫復制了。

下面是按順序列出配置復制的步驟:

1、建立發(fā)布和分發(fā)服務器

[歡迎使用配置發(fā)布和分發(fā)向導]-[選擇分發(fā)服務器]-[使"@servername"成為它自己的分發(fā)服務器,sql server將創(chuàng)建分發(fā)數據庫和日志]

-[制定快照文件夾]- [自定義配置] - [否,使用下列的默認配置] - [完成]

上述步驟完成后, 會在當前"@servername" sql server數據庫里建立了一個distribion庫和 一個distributor_admin管理員級別的用戶(我們可以任意修改密碼)。

服務器上新增加了四個作業(yè):

[ 代理程序歷史記錄清除: distribution ]

[ 分發(fā)清除: distribution ]

[ 復制代理程序檢查 ]

[ 重新初始化存在數據驗證失敗的訂閱 ]

sql server企業(yè)管理器里多了一個復制監(jiān)視器, 當前的這臺機器就可以發(fā)布、分發(fā)、訂閱了。

我們再次在sql server企業(yè)管理器里[復制]- 右鍵選擇 -[配置發(fā)布、訂閱服務器和分發(fā)]

我們可以在 [發(fā)布服務器和分發(fā)服務器的屬性] 窗口- [發(fā)布服務器] - [新增] - [確定] - [發(fā)布數據庫] - [事務]/[合并] - [確定] - [訂閱服務器] - [新增] - [確定]

把網絡上的其它sql server服務器添加成為發(fā)布或者訂閱服務器.

新增一臺發(fā)布服務器的選項:

我這里新建立的jin001發(fā)布服務器是用管理員級別的數據庫用戶test連接的,

到發(fā)布服務器的管理鏈接要輸入密碼的可選框, 默認的是選中的,

在新建的jin001發(fā)布服務器上建立和分發(fā)服務器fengyu/fengyu的鏈接的時需要輸入distributor_admin用戶的密碼。到發(fā)布服務器的管理鏈接要輸入密碼的可選框,也可以不選,也就是不需要密碼來建立發(fā)布到分發(fā)服務器的鏈接(這當然欠缺安全,在測試環(huán)境下可以使用)。

2、新建立的網絡上另一臺發(fā)布服務器(例如jin001)選擇分發(fā)服務器

[歡迎使用配置發(fā)布和分發(fā)向導]-[選擇分發(fā)服務器]

- 使用下列服務器(選定的服務器必須已配置為分發(fā)服務器) - [選定服務器](例如fengyu/fengyu)

- [下一步] - [輸入分發(fā)服務器(例如fengyu/fengyu)的distributor_admin用戶的密碼兩次]

- [下一步] - [自定義配置] - [否,使用下列的默認配置]

- [下一步] - [完成] - [確定]

建立一個數據庫復制發(fā)布的過程:

[復制] - [發(fā)布內容] - 右鍵選擇 - [新建發(fā)布]

- [下一步] - [選擇發(fā)布數據庫] - [選中一個待發(fā)布的數據庫]

- [下一步] - [選擇發(fā)布類型] - [事務發(fā)布]/[合并發(fā)布]

- [下一步] - [指定訂閱服務器的類型] - [運行sql server 2000的服務器]

- [下一步] - [指定項目] - [在事務發(fā)布中只可以發(fā)布帶主鍵的表] - [選中一個有主鍵的待發(fā)布的表]

-[在合并發(fā)布中會給表增加唯一性索引和 rowguidcol 屬性的唯一標識符字段[rowguid],默認值是newid()]

(添加新列將: 導致不帶列列表的 insert 語句失敗,增加表的大小,增加生成第一個快照所要求的時間)

-[選中一個待發(fā)布的表]

- [下一步] - [選擇發(fā)布名稱和描述] -

- [下一步] - [自定義發(fā)布的屬性] - [否,根據指定方式創(chuàng)建發(fā)布]

- [下一步] - [完成] - [關閉]

發(fā)布屬性里有很多有用的選項:設定訂閱到期(例如24小時)

設定發(fā)布表的項目屬性:

常規(guī)窗口可以指定發(fā)布目的表的名稱,可以跟原來的表名稱不一樣。

下圖是命令和快照窗口的欄目

( sql server 數據庫復制技術實際上是用insert,update,delete操作在訂閱服務器上重做發(fā)布服務器上的事務操作

看文檔資料需要把發(fā)布數據庫設成完全恢復模式,事務才不會丟失

但我自己在測試中發(fā)現(xiàn)發(fā)布數據庫是簡單恢復模式下,每10秒生成一些大事務,10分鐘后再收縮數據庫日志,

這期間發(fā)布和訂閱服務器上的作業(yè)都暫停,暫停恢復后并沒有丟失任何事務更改 )

發(fā)布表可以做數據篩選,例如只選擇表里面的部分列:

例如只選擇表里某些符合條件的記錄, 我們可以手工編寫篩選的sql語句:

發(fā)布表的訂閱選項,并可以建立強制訂閱:

成功建立了發(fā)布以后,發(fā)布服務器上新增加了一個作業(yè): [ 失效訂閱清除 ]

分發(fā)服務器上新增加了兩個作業(yè):

[ jin001-dack-dack-5 ] 類型[ repl快照 ]

[ jin001-dack-3 ] 類型[ repl日志讀取器 ]

上面藍色字的名稱會根據發(fā)布服務器名,發(fā)布名及第幾次發(fā)布而使用不同的編號

repl快照作業(yè)是sql server復制的前提條件,它會先把發(fā)布的表結構,數據,索引,約束等生成到發(fā)布服務器的os目錄下文件

(當有訂閱的時候才會生成, 當訂閱請求初始化或者按照某個時間表調度生成)

repl日志讀取器在事務復制的時候是一直處于運行狀態(tài)。(在合并復制的時候可以根據調度的時間表來運行)

建立一個數據庫復制訂閱的過程:

[復制] - [訂閱] - 右鍵選擇 - [新建請求訂閱]

- [下一步] - [查找發(fā)布] - [查看已注冊服務器所做的發(fā)布]

- [下一步] - [選擇發(fā)布] - [選中已經建立發(fā)布服務器上的數據庫發(fā)布名]

- [下一步] - [指定同步代理程序登錄] - [當代理程序連接到代理服務器時:使用sql server身份驗證]

(輸入發(fā)布服務器上distributor_admin用戶名和密碼)

- [下一步] - [選擇目的數據庫] - [選擇在其中創(chuàng)建訂閱的數據庫名]/[也可以新建一個庫名]

- [下一步] - [允許匿名訂閱] - [是,生成匿名訂閱]

- [下一步] - [初始化訂閱] - [是,初始化架構和數據]

- [下一步] - [快照傳送] - [使用該發(fā)布的默認快照文件夾中的快照文件]

(訂閱服務器要能訪問發(fā)布服務器的repldata文件夾,如果有問題,可以手工設置網絡共享及共享權限)

- [下一步] - [快照傳送] - [使用該發(fā)布的默認快照文件夾中的快照文件]

- [下一步] - [設置分發(fā)代理程序調度] - [使用下列調度] - [更改] - [例如每五分鐘調度一次]

- [下一步] - [啟動要求的服務] - [該訂閱要求在發(fā)布服務器上運行sqlserveragent服務]

- [下一步] - [完成] - [確定]

成功建立了訂閱后,訂閱服務器上新增加了一個類別是[repl-分發(fā)]作業(yè)(合并復制的時候類別是[repl-合并])

它會按照我們給的時間調度表運行數據庫同步復制的作業(yè)。

3、sql server復制配置好后, 可能出現(xiàn)異常情況的實驗日志:

1.發(fā)布服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制沒有多大影響

中斷期間,分發(fā)和訂閱都接收到沒有復制的事務信息

2.分發(fā)服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制有一些影響

中斷期間,發(fā)布服務器的事務排隊堆積起來

(如果設置了較長時間才刪除過期訂閱的選項, 繁忙發(fā)布數據庫的事務日志可能會較快速膨脹),

訂閱服務器會因為訪問不到發(fā)布服務器,反復重試

我們可以設置重試次數和重試的時間間隔(最大的重試次數是9999, 如果每分鐘重試一次,可以支持約6.9天不出錯)

分發(fā)服務器sql server服務啟動,網絡接通以后,發(fā)布服務器上的堆積作業(yè)將按時間順序作用到訂閱機器上:

會需要一個比較長的時間(實際上是生成所有事務的insert,update,delete語句,在訂閱服務器上去執(zhí)行)

我們在普通的pc機上實驗的58個事務100228個命令執(zhí)行花了7分28秒.

3.訂閱服務器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制影響比較大,可能需要重新初試化

我們實驗環(huán)境(訂閱服務器)從18:46分意外停機以, 第二天8:40分重啟動后, 已經設好的復制在8:40分以后又開始正常運行了, 發(fā)布服務器上的堆積作業(yè)將按時間順序作用到訂閱機器上, 但復制管理器里出現(xiàn)快照的錯誤提示, 快照可能需要重新初試化,復制可能需要重新啟動.(我們實驗環(huán)境的機器并沒有進行快照初試化,復制仍然是成功運行的)

4、刪除已經建好的發(fā)布和定閱可以直接用delete刪除按鈕

我們最好總是按先刪定閱,再刪發(fā)布,最后禁用發(fā)布的順序來操作。

如果要徹底刪去sql server上面的復制設置, 可以這樣操作:

[復制] - 右鍵選擇 [禁用發(fā)布] - [歡迎使用禁用發(fā)布和分發(fā)向導]

- [下一步] - [禁用發(fā)布] - [要在"@servername"上禁用發(fā)布]

- [下一步] - [完成禁用發(fā)布和分發(fā)向導] - [完成]

我們也可以用t-sql命令來完成復制中發(fā)布及訂閱的創(chuàng)建和刪除, 選中已經設好的發(fā)布和訂閱, 按屬標右鍵可以[生成sql腳本]。(這里就不詳細講了, 后面推薦的網站內有比較詳細的內容)

當你試圖刪除或者變更一個table時,出現(xiàn)以下錯誤

server: msg 3724, level 16, state 2, line 1

cannot drop the table 'object_name' because it is being used for replication.

比較典型的情況是該table曾經用于復制,但是后來又刪除了復制。

處理辦法:

select * from sysobjects where replinfo '0'

sp_configure 'allow updates', 1

go

reconfigure with override

go

begin transaction

update sysobjects set replinfo = '0' where replinfo '0'

commit transaction

go

rollback transaction

go

sp_configure 'allow updates', 0

go

reconfigure with override

go

問一個電腦能裝兩個SQLserver嗎

當然可以!可以安裝一個oracle,一個mysql

如果是同一類數據庫,例如oracle,你可以創(chuàng)建2個實例。

如何在兩個SQLSERVER之間實現(xiàn)數據同步

在兩個SQLSERVER之間實現(xiàn)數據同步:

第一先來配置出版服務器

(1)選中指定[服務器]節(jié)點

(2)從[工具]下拉菜單的[復制]子菜單中選擇[發(fā)布、訂閱服務器和分發(fā)]命令

(3)系統(tǒng)彈出一個對話框點[下一步]然后看著提示一直操作到完成。

(4)當完成了出版服務器的設置以后系統(tǒng)會為該服務器的樹形結構中添加一個復制監(jiān)視器。同時也生成一個分發(fā)數據庫(distribution)

第二創(chuàng)建出版物

(1)選中指定的服務器

(2)從[工具]菜單的[復制]子菜單中選擇[創(chuàng)建和管理發(fā)布]命令。此時系統(tǒng)會彈出一個對話框

(3)選擇要創(chuàng)建出版物的數據庫,然后單擊[創(chuàng)建發(fā)布]

(4)在[創(chuàng)建發(fā)布向導]的提示對話框中單擊[下一步]系統(tǒng)就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現(xiàn)在選第一個也就是默認的快照發(fā)布(其他兩個大家可以去看看幫助)

(5)單擊[下一步]系統(tǒng)要求指定可以訂閱該發(fā)布的數據庫服務器類型,SQLSERVER允許在不同的數據庫如 ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQL SERVER 2000"的數據庫服務器

(6)單擊[下一步]系統(tǒng)就彈出一個定義文章的對話框也就是選擇要出版的表

(7)然后[下一步]直到操作完成。當完成出版物的創(chuàng)建后創(chuàng)建出版物的數據庫也就變成了一個共享數據庫。

第三設計訂閱

(1)選中指定的訂閱服務器

(2)從[工具]下拉菜單中選擇[復制]子菜單的[請求訂閱]

(3)按照單擊[下一步]操作直到系統(tǒng)會提示檢查SQL SERVER代理服務的運行狀態(tài),執(zhí)行復制操作的前提條件是SQL SERVER代理服務必須已經啟動。

(4)單擊[完成]。

網站名稱:兩個sqlserver,兩個一百年奮斗目標
網站路徑:http://jinyejixie.com/article8/dsdgpip.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供響應式網站App開發(fā)、企業(yè)建站移動網站建設、網站制作微信公眾號

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網站建設
长沙县| 类乌齐县| 盖州市| 武威市| 连山| 肃南| 墨竹工卡县| 伊川县| 宿迁市| 本溪市| 晋宁县| 石狮市| 敖汉旗| 新野县| 东平县| 阿坝县| 霍林郭勒市| 扎兰屯市| 甘洛县| 延寿县| 广州市| 广南县| 武安市| 平原县| 蒙山县| 海南省| 长寿区| 盐津县| 龙门县| 贵州省| 榕江县| 凭祥市| 诸暨市| 万全县| 谢通门县| 绵阳市| 惠东县| 托克托县| 肃南| 宿州市| 林芝县|