এসকিউএল সার্ভারে ব্যাকআপ এবং পুনরুদ্ধারটি পরীক্ষা করার জন্য স্ক্রিপ্ট :
অনেক সময় এটি ঘটে থাকে যে আপনার ব্যাকআপ (বা পুনরুদ্ধার) ক্রিয়াকলাপটি অন্য কোনও ডেটাবেস প্রশাসক বা কোনও কাজ দ্বারা শুরু করা হয়েছে এবং আপনি সেই ব্যাকআপ / পুনরুদ্ধারের অগ্রগতি পরীক্ষা করতে GUI- র কিছুই ব্যবহার করতে পারবেন না।
একাধিক কমান্ড একত্রিত করে, আমি নীচে স্ক্রিপ্ট তৈরি করেছি যা আমাদের বর্তমান ব্যাকআপগুলির সংক্ষিপ্তসার দিতে পারে এবং সার্ভারে যা ঘটছে তা পুনরুদ্ধার করতে পারে।
select
r.session_id,
r.blocking_session_id,
db_name(database_id) as [DatabaseName],
r.command,
[SQL_QUERY_TEXT] = Substring(Query.TEXT, (r.statement_start_offset / 2) + 1, (
(
CASE r.statement_end_offset
WHEN - 1
THEN Datalength(Query.TEXT)
ELSE r.statement_end_offset
END - r.statement_start_offset
) / 2
) + 1),
[SP_Name] =Coalesce(Quotename(Db_name(Query.dbid)) + N'.' + Quotename(Object_schema_name(Query.objectid, Query.dbid)) + N'.' +
Quotename(Object_name(Query.objectid, Query.dbid)), ''),
r.percent_complete,
start_time,
CONVERT(VARCHAR(20), DATEADD(ms, [estimated_completion_time],
GETDATE()), 20) AS [ETA_COMPLETION_TIME],
CONVERT(NUMERIC(6, 2), r.[total_elapsed_time] / 1000.0 / 60.0) AS [Elapsed_MIN],
CONVERT(NUMERIC(6, 2), r.[estimated_completion_time] / 1000.0 / 60.0) AS [Remaning_ETA_MIN],
CONVERT(NUMERIC(6, 2), r.[estimated_completion_time] / 1000.0 / 60.0/ 60.0) AS [ETA_Hours],
wait_type,
wait_time/1000 as Wait_Time_Sec,
wait_resource
from sys.dm_exec_requests r
cross apply sys.fn_get_sql(r.sql_handle) as Query where r.session_id>50 and command IN ('RESTORE DATABASE','BACKUP DATABASE', 'RESTORE LOG', 'BACKUP LOG')