1. 程式人生 > >簡述SQL Server Replication的常見錯誤及其處理

簡述SQL Server Replication的常見錯誤及其處理

http://database.51cto.com/art/201107/273172_all.htm

SQL Server Replication的常見錯誤以及處理錯誤的方法如下,請讀者參考:

1. 錯誤:已將此(這些)訂閱標記為不活動,必須將其重新初始化。需要刪除NoSync 訂閱,然後重新建立它們

對資料庫distribution操作:

  1. use distribution  
  2. go 

查詢狀態不正常的釋出:

  1. select status,*from dbo.MSsubscriptions where status <>

修改狀態:

  1. update dbo.MSsubscriptions set 
    status=2where status<>

觀察複製鏈是否能正常執行,正常後用tablediff比較釋出鏈中的表資料是否一致,還可以重新初始化快照,但是資料量大就是個悲劇。

2.錯誤:表、儲存過程不存在以及表結構不一致等

處理方法:

a. 表或儲存過程不存在:

在訂閱端對應的庫中補齊缺失的物件。

有一種比較奇怪的現象是訂閱端表明明存在,但是同步鏈依然報錯,此時可能有兩種情況:

第一: 表字段不一致,可以參照下面(b)的方式補齊表字段;

第二: 表字段也一致,但是依舊報錯,這時只能選碰碰運氣,先停掉同步鏈,再開啟,如果過了,算運氣好;如果錯誤依舊,就需要在該同步鏈中先將該表去掉,讓其他資料能同步;然後再將這個表新加到同步鏈中,並比較釋出端和訂閱端的表資料。

b. 列名'xxx' 無效:

可以通過以下語句查詢缺失的欄位對應的表,查詢某個釋出鏈中的某個欄位(Rp_XXXX 釋出名xxx 欄位名)

  1. select a.name as table_name,b.name as column_name,(select 'alter table '+a.name+' add '+b.name+' '+  
  2. (case when name='nvarchar' then cast(b.max_length/2 AS varchar)  
  3. when name like 'date%' or name='money' then ''  
  4. else name end )  
  5. 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)  
  6. on a.objid=b.object_id inner join dbo.syspublications c with(nolock) on a.pubid=c.pubid  
  7. where c.name='Rp_XXXX' and b.name='xxx'

3. 錯誤:主鍵衝突

處理方法:跳過錯誤

簡述SQLServer Replication的常見錯誤及其處理

錯誤完成後,需要比較兩邊資料是否一致(比下資料量就行了)

4. 錯誤:應用複製的命令時在訂閱伺服器上找不到該行

a. 可以採用“主鍵衝突”錯誤的處理方式,跳過錯誤,然後再用tablediff比較兩個表的資料差;

b. 在訂閱端補充缺失的資料

使用如下語句找出錯誤號

  1. select top 100 e.xact_seqno ,e.command_id,e.* from dbo.MSdistribution_history h  
  2. join dbo.MSrepl_errors e on h.error_id=e.id  
  3. where comments not like %transaction% 

用上面查到的具體事務序列號,檢視複製元件執行的具體命令。

在分發資料庫上執行sp_browsereplcmds,注意必須限定開始和結束xact_seqno。

sp_browsereplcmds '0x000101E500018C16000100000000','0x000101E500018C16000100000000'

找到對應的物件:

  1. Use [distribution]  
  2. go  
  3. 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究竟在