से अपग्रेड करते समय संघर्ष समाधानकर्ता को अद्यतन करने के लिए कैसे करें हमने हाल ही में SQL Server 2005 से SQL Server 2008 (R2, SP1) में अपग्रेड किया है। इस अपग्रेड में कुछ प्रकाशन शामिल थे, जहां सभी टेबल "बाद के जीत" सिद्धांत के आधार पर एक डिफ़ॉल्ट संघर्ष समाधानकर्ता के साथ प्रकाशित होते हैं। इसका स्मार्ट नाम 'माइक्रोसॉफ्ट एसक्यूएल सर्वर डेटाटाइम (बाद में जीत) संघर्ष रिजॉल्वर' है, और संबंधित डीएलएल फ़ाइल ssrmax.dll है।SQL-Server 2005 से SQL-Server 2008
जैसा कि आप सभी जानते हैं, एक बार टेबल विवाद समाधानकर्ता के साथ प्रकाशित होने के बाद, एक ही संघर्ष समाधानकर्ता का उपयोग इस तालिका का उपयोग करके बाद के प्रकाशनों में किया जाना चाहिए। पर्याप्त मेला, लेकिन, नए प्रकाशनों के लिए पहले प्रकाशित टेबल जोड़ने, और बहुत ही संघर्ष समाधानकर्ता को निर्दिष्ट इस तालिका के लिए इस्तेमाल किया जा करने के लिए जब, हम एक त्रुटि संदेश हो रही है:
use [myDb]
exec sp_addmergearticle
@publication = N'myDb_Pub',
@article = N'Tbl_blablabla',
@source_owner = N'dbo',
@source_object = N'Tbl_blablabla',
@type = N'table',
@description = N'',
@creation_script = N'',
@pre_creation_cmd = N'drop',
@schema_option = 0x000000000C034FD1,
@identityrangemanagementoption = N'none',
@destination_owner = N'dbo',
@force_reinit_subscription = 1,
@column_tracking = N'false',
@article_resolver = N'Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver',
@subset_filterclause = N'',
@resolver_info = N'ddmaj',
@vertical_partition = N'false',
@verify_resolver_signature = 0,
@allow_interactive_resolver = N'false',
@fast_multicol_updateproc = N'true',
@check_permissions = 0,
@subscriber_upload_options = 0,
@delete_tracking = N'true',
@compensate_for_errors = N'false',
@stream_blob_columns = N'false',
@partition_options = 0
GO
और इस त्रुटि हम मिलता है:
The article '...' already exists in another publication with a different article resolver.
को समझने के लिए एक ही संघर्ष रिसोल्वर के रूप में 'एक ही संघर्ष समाधानकर्ता' मशीन द्वारा नहीं माना जाता है की कोशिश कर करके, मुझे पता चला एक ही नाम, विभिन्न संस्करणों, रजिस्ट्री में के साथ दो संघर्ष रिसोल्वर थीं:
वें ई 2005 संस्करण:
- फ़ाइल ssrmax.dll,
- संस्करण 2005.90.4035.0,
- cls_id D604B4B5-686B-4304-9613-C4F82B527B10
2008 संस्करण:
- फ़ाइल ssrmax.dll,
- संस्करण 2009.100.2500.0,
cls_id 77209412-47CF-49AF-A347-DCF7EE481277 और मैं जाँच की है कि हमारा 2008 सर्वर 'उपलब्ध कस्टम समाधानकर्ता' (मैं sp_enumcustomresolvers चलाकर यह मिल गया) के रूप में एक दूसरे के विचार कर रहा है। समस्या यह है कि रजिस्ट्री में दोनों संदर्भ उपलब्ध हैं, इसलिए मुझे लगता है कि पुराने प्रकाशन 2005 संस्करण का संदर्भ देते हैं, जबकि नए प्रकाशन 2008 संस्करण में रेफर करने का प्रयास करते हैं, जो वास्तव में पिछले एक से अलग है।
तो सवाल यह है कि: मैं सर्वर को इन 2 संस्करणों में से केवल एक को कैसे मान सकता हूं, और यह (निश्चित रूप से) मौजूदा प्रकाशनों को छोड़ने और फिर से बनाने के बिना (जो अगले 2 के लिए हमारे जीवन को नरक में बदल देगा) सप्ताह)।
किया जोड़ सकते हैं, और काम कर रहे। –