簡述SQL Server Replication的常見錯誤及其處理
http://database.51cto.com/art/201107/273172_all.htm
SQL Server Replication的常見錯誤以及處理錯誤的方法如下,請讀者參考:
1. 錯誤:已將此(這些)訂閱標記為不活動,必須將其重新初始化。需要刪除NoSync 訂閱,然後重新建立它們
對資料庫distribution操作:
- use distribution
- go
查詢狀態不正常的釋出:
- select status,*from dbo.MSsubscriptions where status <>2
修改狀態:
- update dbo.MSsubscriptions set
觀察複製鏈是否能正常執行,正常後用tablediff比較釋出鏈中的表資料是否一致,還可以重新初始化快照,但是資料量大就是個悲劇。
2.錯誤:表、儲存過程不存在以及表結構不一致等
處理方法:
a. 表或儲存過程不存在:
在訂閱端對應的庫中補齊缺失的物件。
有一種比較奇怪的現象是訂閱端表明明存在,但是同步鏈依然報錯,此時可能有兩種情況:
第一: 表字段不一致,可以參照下面(b)的方式補齊表字段;
第二: 表字段也一致,但是依舊報錯,這時只能選碰碰運氣,先停掉同步鏈,再開啟,如果過了,算運氣好;如果錯誤依舊,就需要在該同步鏈中先將該表去掉,讓其他資料能同步;然後再將這個表新加到同步鏈中,並比較釋出端和訂閱端的表資料。
b. 列名'xxx' 無效:
可以通過以下語句查詢缺失的欄位對應的表,查詢某個釋出鏈中的某個欄位(Rp_XXXX 釋出名xxx 欄位名)
- select a.name as table_name,b.name as column_name,(select 'alter table '+a.name+' add '+b.name+' '+
- (case when name='nvarchar' then cast(b.max_length/2 AS varchar)
- when name like 'date%' or name='money' then ''
- else name end )
- from sys.types where system_type_id=b.system_type_id ) as definition FROM dbo.sysarticles a WITH(NOLOCK) inner join sys.columns b WITH(NOLOCK)
- on a.objid=b.object_id inner join dbo.syspublications c with(nolock) on a.pubid=c.pubid
- where c.name='Rp_XXXX' and b.name='xxx'
3. 錯誤:主鍵衝突
處理方法:跳過錯誤
錯誤完成後,需要比較兩邊資料是否一致(比下資料量就行了)
4. 錯誤:應用複製的命令時在訂閱伺服器上找不到該行
a. 可以採用“主鍵衝突”錯誤的處理方式,跳過錯誤,然後再用tablediff比較兩個表的資料差;
b. 在訂閱端補充缺失的資料
使用如下語句找出錯誤號
- select top 100 e.xact_seqno ,e.command_id,e.* from dbo.MSdistribution_history h
- join dbo.MSrepl_errors e on h.error_id=e.id
- where comments not like %transaction%
用上面查到的具體事務序列號,檢視複製元件執行的具體命令。
在分發資料庫上執行sp_browsereplcmds,注意必須限定開始和結束xact_seqno。
sp_browsereplcmds '0x000101E500018C16000100000000','0x000101E500018C16000100000000'
找到對應的物件:
- Use [distribution]
- go
- select * From dbo.MSarticles where article_id[email protected]_id
驗證上述資料在故障訂閱伺服器上是否存在,如果不存在,則補上。
5. 錯誤:使用者'xxx' 登入失敗或者The process could not connect to Subscriber 'xxxx'.
處理方法:檢查賬號是否正確,能夠登入到釋出和訂閱伺服器,而且有相應的許可權。
6. 釋出'xxx' 的初始快照尚不可用
保證SQLSERVERAGENT已經執行,複製=》釋出內容=》釋出專案=》右擊右側的訂閱=》重新初始化。
如果還不行,複製監視器--釋出伺服器--xxx--釋出的專案--快照,看到程序未能建立檔案"\\XXZ\SQLPUB\unc",到該資料夾重新配置sql的帳號對該資料夾許可權為"完全"。
7. 程序未能從表“[dbo].[syncobj_0x3745373834413345]”向外大容量複製
在寫BCP 資料檔案時發生I/O 錯誤(源: ODBC SQL Server Driver (ODBC); 錯誤程式碼: 0)
解決方法:就是字元型別全部改為n型別的解決問題(char-nchar,varchar-nvarchar,ntext)。
8. 錯誤訊息:"代理'xxxx' 在出錯後正在重試。已重試了25 次。有關詳細資訊,請參閱Jobs 資料夾中的代理作業歷史記錄。”
發生這個錯誤一般都是在一臺機器上面有比較多的釋出鏈,錯誤原因在於資料庫對Replication使用記憶體的限制,我們需要更改這個現在來解決這個問題(最好是不要再一臺機器上建立太多的釋出鏈),方法如下:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\點開Windows項,找到下面這些內容:%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768將最後的數字(不一定是這個數字,可能是等)改成10240 儲存,重啟即可。p>Windows2008 server 如果不是amdin使用者可能會不讓開啟登錄檔,如果是管理組許可權的話,可以到C:\windows\system32 下面找到regedit32.exe 檔案,右鍵,然後將自己的賬號新增到執行許可權裡面。
相關推薦
簡述SQL Server Replication的常見錯誤及其處理
http://database.51cto.com/art/201107/273172_all.htm SQL Server Replication的常見錯誤以及處理錯誤的方法如下,請讀者參考: 1. 錯誤:已將此(這些)訂閱標記為不活動,必須將其重新初始化。需要刪除No
UML 非功能(操作)要求規範和應用: 處理NFR(非功能需求)的常見錯誤及其糾正方法
處理NFR(非功能需求)的常見錯誤及其糾正方法 常見錯誤 糾正錯誤 舉例 沒有充分注意NFR,因為它們無法在視覺上建模 NFR應被視為功能要求的重要性; 提取NFR的方法是
sql server 安裝及 錯誤處理方法
此外,我從某位大神處得知,如果不安裝sql server 2008 management studio的話,在VS2010裡面也是可以視覺化地操作sql server 2008的,具體還有待考證,安不安自己選擇。 安裝過程中如果出現什麼本文沒有提到的異常,請照著程式提示操作,或者自行搜尋解決方案,Goo
常見的SQL Server 2000的漏洞及其相關利用
單位的小王學習SQL Server已有一段時間了,已經做了個不錯的管理系統,有次小王讓我幫著看看庫的設計有沒有問題,其間我發現他的安全意識非常薄弱,這也許是初學者容易忽視的問題,本文探討一些SQL Server常見的安全問題,是
SQL Server 存儲過程中處理多個查詢條件的幾種常見寫法分析,我們該用那種寫法
height create 圖片 推薦 idt ins 測試數據 嚴重 roc 本文出處: http://www.cnblogs.com/wy123/p/5958047.html 最近發現還有不少做開發的小夥伴,在寫存儲過程的時候,在參考已有的不同的寫法時,往往很
SQL Server 的常見約束
style lin num create 表名 key arc 空值 alt 1.主鍵約束------我是最常見的哦(PRIMARY KEY) 限制:不能為空,數據唯一,一個表中只有一個 方法: 建表時直接在列類型後面添加 如: 1 CREATE TA
ecshop常見錯誤的處理方法
fin 路徑名 一個 acc 版權 nbsp Language notice 自己的 用ecshop,其中出現了不少錯誤,經常是滿世界找原因,今天分享幾個問題的解決辦法,方便大家及時處理。如果有相關的ecshop問題歡迎跟帖咨詢問題1:出現錯誤代碼:ECshop lib_b
SQL SERVER 日誌已滿的處理方法 (轉)
ive rec 找到 dbr 自動增長 日誌文件 運行 執行 資料 事務日誌文件Transaction Log File是用來記錄數據庫更新情況的文件,擴展名為ldf。在 SQL Server 7.0 和 SQL Server 2000 中,如果設置了自動增長功能,事務日誌
SQL Server Replication—本地發布訂閱配置
distrib 51cto 位置 -o 取代 名稱 HA process 單個 本文介紹在單個實例中配置本地發布訂閱。復制是一組技術,它將數據和數據庫對象從一個數據庫復制和分發到另一個數據庫,然後在數據庫之間進行同步以保持一致性。 使用復制,可以通過局域網和廣域網、撥號連接
SQL Server Replication的分發服務器的快照文件夾位置查找
minor cat top adding info publish http wid snapshot 原文:SQL Server Replication的分發服務器的快照文件夾位置查找 SQL Server分發服務器配置中,需要配置快照文件夾(Snapshot Fold
遠端連線區域網內的sql server 無法連線 錯誤與解決方法
第一個錯誤"SQL Server 不存在或訪問被拒絕"通常是最複雜的,錯誤發生的原因比較多,需要檢查的方面也比較多 。一般說來,有以下幾種可能性: 1、SQL Server名稱或IP地址拼寫有誤; 2、伺服器端網路配置有誤; 3、客戶端網路配置有誤。 要解決這個問題,我們一般要遵循以
SQL Server連線error: 40 - 無法開啟到 SQL Server 的連線錯誤
在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器 在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Ser
SQL Server 2017安裝錯誤:Polybase要求安裝Oracle JRE 7更新51或更高版本的兩種解決方法
安裝SQL Server 2017遇到的問題: 第一種方法是安裝jdk7,但是現在官方已經不提供下載了,我手邊只有jdk-x86,與我的部分軟體不相容,所以果斷放棄。索性採取第二種方式,等到以後需要Polybase再裝也不遲。 先看問題情況: 第一種解決方法: 也就是大家都推薦的,下
quatus ii 常見錯誤及其改正方法
在QuartusII下進行編譯和模擬的時候,會出現一堆warning,有的可以忽略,有的卻需要注意,雖然按F1可以瞭解關於該警告的幫助,但有時候幫助解釋的仍然不清楚,大家群策群力,把自己知道和了解的一些關於警告的問題都說出來討論一下,免得後來的人
SQL Server比較常見資料型別詳解
在SQL Server 中每個變數、引數、表示式等都有資料型別。系統提供的資料型別分為幾大類。 其中,BIGINT、 SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 種資料型別。下面分類講述各種資料型別。 一、 整數
windows下 composer常見錯誤及處理。
windows下 composer常見錯誤及處理。 2016年12月22日 20:40:37 閱讀數:1501 windows下 composer常見錯誤及處理。 錯誤一: Warning: This development build of composer is over 30 da
Nginx常見錯誤及處理方法
原文轉載:https://www.cnblogs.com/liyongsan/p/6795851.html 404 bad request 一般原因:請求的Header過大。 解決方法:配置nginx.conf相關設定 client_header_buffer_size 
(javascript)Vue啟動時常見錯誤及其解決辦法
(vue.js)vue npm run dev 執行錯誤(1/2) 錯誤一: ERROR F
SQL Server 2008 18456 錯誤 和 sa無法登入的解決辦法
sql server 2008預設是不允許遠端連線的,sa帳戶預設禁用的,如果想要在本地用SSMS連線遠端伺服器上的SQL Server 2008,需要做兩個部分的配置: sql server 2
安裝SQL Server 2014出現錯誤 “合成活動模板庫(ATL) 規則 失敗”
(方法1)檢視安裝日誌(或者大部分網頁上的建議),其是提醒你重啟系統後再次進行安裝。此方法若不能解決問題,請參照(方法2)。 (方法2)安裝映象支援程式:SQLSUPPORT.MSI(即sqlsupport.msi) 問題 : SQLSUPPORT.MSI究竟在