উত্তর:
না, এসকিউএল সার্ভার কোনও লেনদেন সম্পর্কে কোনও ইতিহাস বজায় রাখে না যেগুলি বাতিল করা হয়েছিল / ঘূর্ণিত হয়েছিল যা তুচ্ছ এবং অতিরিক্ত সম্ভাব্য সমস্যাগুলি প্রবর্তন করে না (যেমন @ আউটওয়্যারের উত্তরে বর্ণিত )। বা এমনকি লেনদেন যে প্রতিশ্রুতিবদ্ধ হয়েছে।
আপনার ত্রুটি পরিচালনার মধ্যে আপনার নিজের লগিং সম্পাদন করতে হবে, বা সার্ভার-সাইড ট্রেস বা বর্ধিত ইভেন্টগুলি ব্যবহার করে নির্দিষ্ট লেনদেন-সম্পর্কিত ইভেন্টগুলি ক্যাপচার করতে হবে।
ট্রেস:
বর্ধিত ইভেন্ট:
আপনি যখন "ব্যর্থ" লেনদেন বলবেন, ঠিক আপনার অর্থ কী?
আপনি যদি এই উদাহরণে বর্তমান লেনদেন দেখতে চান তবে আপনি sys.dm_tran_active_transactions
ডিএমভি ব্যবহার করতে পারেন ।
এছাড়াও, sys.dm_exec_sessions
এটি open_transaction_count
আপনাকে সেশন দ্বারা এই তথ্য দিতে পারে। নীচে খোলা লেনদেন রয়েছে এমন সমস্ত ব্যবহারকারীর প্রক্রিয়া টানতে ডায়াগনস্টিক ক্যোয়ারী দেওয়া হল:
select
s.session_id,
s.login_name,
s.open_transaction_count,
st.text as most_recent_sql_text
from sys.dm_exec_sessions s
inner join sys.dm_exec_connections c
on s.session_id = c.session_id
outer apply sys.dm_exec_sql_text(c.most_recent_sql_handle) st
where s.is_user_process = 1
and s.open_transaction_count > 0;
এই তথ্য থেকে এড়াতে পারেন sys.dm_tran_session_transactions
:
select
session_id,
is_user_transaction,
open_transaction_count
from sys.dm_tran_session_transactions;
যদি লেনদেনগুলি ফিরিয়ে দেওয়া হয় তখন আপনি ক্যাপচার করতে চান ("ব্যর্থ" লেনদেনের জন্য আপনার ইচ্ছা দ্বারা এতটুকু ধরে নেওয়া) আপনি বর্ধিত ইভেন্ট rollback_tran_completed
ইভেন্ট ক্যাপচার করতে পারেন । আপনি যদি লেনদেনের জন্য "সবকিছু" দেখার সন্ধান করেন তবে আপনি sql_transaction
ইভেন্টটি ক্যাপচার করতে পারেন যা এসকিউএল সার্ভারের দ্বারা সংজ্ঞায়িত is
যখন কোনও এসকিউএল সার্ভার লেনদেন শুরু হয়, সম্পূর্ণ হয়, রোল ফিরে আসে বা কোনও সেভিপয়েন্ট কার্যকর করে। অ্যাপ্লিকেশন, ট্রিগার বা সঞ্চিত প্রক্রিয়াগুলির সমস্যার সমাধানের সময় লেনদেনের আচরণ নিরীক্ষণ করতে এই ইভেন্টটি ব্যবহার করুন।
আপনি fn_dblog () ব্যবহার করতে পারেন এবং অব্যাহত লেনদেনের জন্য লেনদেনের আইডি পাশাপাশি অন্যান্য দরকারী তথ্যের হোস্ট পেতে পারেন।
নির্বাচন করুন * FN_dblog থেকে (NULL, NULL) WHERE অপারেশন = 'LOP_ABORT_XACT'; যাওয়া
এটি লগের সক্রিয় অংশে সমস্ত লেনদেন লগ স্ক্যান করে। এটি ট্রেস পতাকা 2537 ব্যবহার করে ওভার-রাইডেড হতে পারে, যা আপনাকে সবচেয়ে প্রাচীন "অন-পুনঃব্যবহৃত" ভিএলএফ শুরু করতে যতদূর সম্ভব ফিরে যেতে দেয়। এই ফাংশনটি ব্যবহার করার সময় সাবধানতা অবলম্বন করুন, যেহেতু এটি লগটি এলোমেলোভাবে স্ক্যান করে এবং স্ক্যানটি যখন ঘটে তখন লগ পরিবর্তন করতে পারে না; সুতরাং, আপনি লগ বৃদ্ধি দেখতে পারেন।
লগ ব্যাকআপ ফাইলের বিরুদ্ধে আপনি fn_dump_dblog ব্যবহার করতে পারেন।