পরিবর্তন ট্র্যাকিং ইন্টার্নালগুলি কি এসকিউএল সার্ভার ২০০৮ থেকে ২০১২ পর্যন্ত পরিবর্তন হয়েছে?


9

কেন্দ্রীয় ডাটাবেস সার্ভারের সাথে সংযোগ বিচ্ছিন্ন ডিভাইসগুলিকে সিঙ্ক্রোনাইজ করার ক্ষেত্রে একটি সমস্যার শ্যুটিংয়ে আমরা সার্ভারে এসকিউএল সার্ভার ২০১২-তে আপগ্রেড করার পরে একটি সমস্যা অনুভব করছি। মনে হচ্ছে CHANGE_TRACKING_MIN_VALID_VERSION তার চেয়ে 1 টি বেশি মান প্রত্যাবর্তন করছে (বা কমপক্ষে এটি আপগ্রেডের আগে করেছিল তার চেয়ে কম।)

আমি কীভাবে একটি সহজ উদাহরণ স্থাপন করতে পারি তার উদাহরণ দিয়ে আরশাদ আলীর দুর্দান্ত হাঁটাপথে কাজ করছি ।

আমি এসকিউএল সার্ভার ২০০৮ এবং ২০১২-এর পরিবেশ উভয় ক্ষেত্রে কর্মী সারণীতে সারি সন্নিবেশ করা, মুছতে এবং আপডেট করতে # 1 থেকে # 5 পর্যন্ত স্ক্রিপ্টগুলি চালিয়েছি।

2008 সালে, নিম্নলিখিত বিবৃতিটি 0 প্রদান করে:

SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee'))

2012 সালে, এটি 1 প্রদান করে।

পরীক্ষাগুলিতে আরও কয়েকটি স্ক্রিপ্ট (6-8) এর মাধ্যমে কাজ করার জন্য, আমি আশা করি যে কোনও ক্লিনআপ ক্রিয়াকলাপ জোর করে ধরে রাখার সময়কালটি 1 মিনিটের মধ্যে রেখেছি। আমি দিনের জন্য রওয়ানা এবং স্পষ্টত এটি রাতারাতি চলে।

২০০৮ উদাহরণস্বরূপ, CHANGE_TRACKING_CURRENT_VERSION এবং CHANGE_TRACKING_MIN_VALID_VERSION সমান (১১)। ২০১২ সালের উদাহরণে, CHANGE_TRACKING_MIN_VALID_VERSION CHANGE_TRACKING_CURRENT_VERSION (১১) এর চেয়ে এক উচ্চ (12)। এটি একটি সুসংগতকরণের প্রক্রিয়াতে প্রভাব ফেলতে পারে যখন কোনও ডেটাবেস সময়কালের জন্য বর্ধিত সময়ের জন্য অলস থাকে। এবং আমরা দেখতে পেয়েছি যে প্রক্রিয়াটি একটি লুপের মধ্যে পড়ে যেতে পারে, বিশেষত যখন সিঙ্ক্রোনাইজেশনের বিপরীতে পুনরায় আরম্ভকরণ প্রয়োজন হয় তা নির্ধারণ করতে নিম্নলিখিত পরীক্ষা করা হয়:

IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor 
       RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''...

আচরণের এই পরিবর্তনটি অন্য কেউ অনুভব করেছেন? কারও কি ব্যাখ্যা আছে?


2
এই ইস্যুটির জন্য একটি মাইক্রোসফ্ট কানেক্ট আইটেম রয়েছে, কানেক্ট.মাইক্রোসফট / এসকিউএলএসবার / ফেডব্যাক / ডেটেলস / 0077০০১৪/২ মূলত মাইক্রোসফ্ট মনে করে যে বিষয়টি সমস্যাযুক্ত ডাটাবেসে দুর্নীতির সাথে সম্পর্কিত হতে পারে। আপনি কি নতুনভাবে তৈরি করা ডাটাবেসে এই পরিস্থিতিটি তিরস্কার করতে পারেন?
ম্যাক্স ভার্নন

1
সর্বাধিক, আমি সংযোগ নিবন্ধ পর্যালোচনা করেছি। দুর্ভাগ্যক্রমে, মূল পোস্টারটি মনে হয় যে আলোচনাটি পরিত্যাগ করেছে এবং এমএস বিষয়টি বন্ধ করে দিয়েছে। সমস্যার পুনরুত্পাদন সেট আপ করার সময়, আমি ২০০৮-২০০২ এবং ২০১২ উভয় ক্ষেত্রেই সদ্য নির্মিত ডেটাবেসগুলি দিয়ে পরীক্ষা শুরু করেছি। উভয় ডাটাবেসই অন্যান্য সমস্ত দিকগুলিতে স্বাভাবিকভাবে কাজ করছে বলে মনে হয়।
গ্লেন এস্ট্রাডা

3
সমস্যাটির জন্য নিন্দিত পদক্ষেপের সাথে, দয়া করে এটি কানেক্টে রিপোর্ট করুন যাতে তারা এটি ঠিক করতে পারে!
জন সেগেল

আপনি আপগ্রেড করার পরে ডিবি এর সামঞ্জস্য স্তর পরিবর্তন করেছেন? আমি পরিবর্তন ট্র্যাকিং ব্যবহার করি না, তবে আপগ্রেড করার পরে কোনও সংস্করণ মেলেনি think
গিলিয়াম আর।

উত্তর:


3

পরিবর্তনগুলি ট্র্যাক করতে কেউই min_ अवैध_version ব্যবহার করে না। এটি কেবলমাত্র আপনার ক্লায়েন্টকে পুনরায় চালু করতে হবে, যদি ক্লায়েন্টের পরিবর্তনগুলি গ্রাস করার আগে মেটাডেটা পরিষ্কার করা হয় তবে তা বৈধকরণের জন্য ব্যবহৃত হয়।

CHANGE_TRACKING_MIN_VALID_VERSION (লেনদেন-এসকিউএল)

আপনি যখন CHANGETABLEফাংশনটি ব্যবহার করছেন তখন নির্দিষ্ট সারণী থেকে পরিবর্তন ট্র্যাকিংয়ের তথ্য গ্রহণের ক্ষেত্রে ব্যবহারের জন্য বৈধ যে ন্যূনতম সংস্করণটি পান ।

ক্লিনআপ সংস্করণটির সাথে Min_ अवैध_version পরিবর্তন হয় এবং এটি ব্যবহারকারীর টেবিলের পরিবর্তনের উপর নির্ভর করে না। যতবারই ক্লিনআপ থ্রেড চলে সেখানে ডেটা পরিবর্তন নির্বিশেষে মিনি_ডিয়ালি_ভার্সনে আপডেট থাকতে পারে।

২০১২ এর পূর্ববর্তী সময়ে, মিনি_ডিয়ালি_ভারশনটিকে ক্লিনআপ সংস্করণ হিসাবে চিহ্নিত করা হয়েছিল, যখন প্রকৃতপক্ষে এটির সংস্করণটির মেটাডেটা ইতিমধ্যে পরিষ্কার হয়ে গেছে তখন এটি ক্লিনআপ সংস্করণের তুলনায় আরও একটি হওয়া উচিত। 2012-এ তারা ঠিক মিনিট_অনুষ্ঠান_বর্তন আপডেট করেছে তা নিশ্চিত করার জন্য তারা এটি পরিবর্তন করেছিল।

মিনি-বৈধতা_বর্তনটি ব্যবহার করে কাউকে পরিবর্তনগুলি ট্র্যাক করা উচিত নয়, পরিবর্তে প্রতিটি সিঙ্কের পরে সর্বশেষ_সংশোধনটি সংরক্ষণ করা উচিত এবং CHANGETABLEসর্বশেষ সিঙ্ক সংস্করণের পরে পরিবর্তনগুলি গণনা করার জন্য কল করা উচিত ।

ডিজাইন অনুসারে - নূন্যতম বৈধ সংস্করণটি ক্লিনআপ সংস্করণে পরিবর্তিত হয় এবং এটি ব্যবহারকারীর টেবিলের পরিবর্তনের উপর নির্ভর করে না। প্রতিবার ক্লিনআপ থ্রেড চলমান থাকলে ডেটা পরিবর্তন নির্বিশেষে নূন্যতম বৈধ সংস্করণে আপডেট হতে পারে।

সমাধান করুন - 'মিনিট_অডিল_ভারশন' এর পরিবর্তে 'কারেন্ট_ভার্সন' ব্যবহার করার পদ্ধতিটি পরিবর্তন করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.