Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Узнать программно, на сколько процентов восстановилась SQL-база  [new]
tyva
Member

Откуда:
Сообщений: 10
Всем доброго времени суток!
Подскажите, пожалуйста, как программно (то есть с помощью SQL-запроса) узнть на сколько процентов восстановилась КОНКРЕТНАЯ SQL-база?
17 июн 11, 09:15    [10825958]     Ответить | Цитировать Сообщить модератору
 Re: Узнать программно, на сколько процентов восстановилась SQL-база  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
http://msmvps.com/blogs/gladchenko/archive/2009/04/16/1688040.aspx
17 июн 11, 09:24    [10826000]     Ответить | Цитировать Сообщить модератору
 Re: Узнать программно, на сколько процентов восстановилась SQL-база  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
tyva
Всем доброго времени суток!
Подскажите, пожалуйста, как программно (то есть с помощью SQL-запроса) узнть на сколько процентов восстановилась КОНКРЕТНАЯ SQL-база?
Вообще команда восстановления позвращает данные о проценте восстановления.

Ну и есть ещё такой запрос: http://msmvps.com/blogs/gladchenko/archive/2009/04/16/1688040.aspx
SELECT ost.session_id
     , DB_NAME(ISNULL(s.dbid,1)) AS dbname
     , er.command
     , er.percent_complete
     , er.status
     , osth.os_thread_id
     , ost.pending_io_count
     , ost.scheduler_id
     , osth.creation_time
     , ec.last_read
     , ec.last_write
     , s.text
     , owt.exec_context_id
     , owt.wait_duration_ms
     , owt.wait_type
FROM   master.sys.dm_os_tasks AS ost
	JOIN   master.sys.dm_os_threads AS osth 
		ON ost.worker_address = osth.worker_address
		AND    ost.pending_io_count > 0 AND ost.session_id IS NOT NULL
	JOIN   master.sys.dm_exec_connections AS ec 
		ON ost.session_id = ec.session_id
	CROSS  APPLY master.sys.dm_exec_sql_text(ec.most_recent_sql_handle) AS s
	JOIN   master.sys.dm_os_waiting_tasks AS owt 
		ON ost.session_id = owt.session_id
		AND    owt.wait_duration_ms > 0
	JOIN   master.sys.dm_exec_requests AS er 
		ON ost.session_id = er.session_id
		AND    er.percent_complete > 0
ORDER BY ost.session_id
17 июн 11, 09:26    [10826007]     Ответить | Цитировать Сообщить модератору
 Re: Узнать программно, на сколько процентов восстановилась SQL-база  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
омг
select percent_complete from sys.dm_exec_requests where status='running' and session_id=тратата
17 июн 11, 10:46    [10826436]     Ответить | Цитировать Сообщить модератору
 Re: Узнать программно, на сколько процентов восстановилась SQL-база  [new]
tyva
Member

Откуда:
Сообщений: 10
Гадя Петрович
омг
select percent_complete from sys.dm_exec_requests where status='running' and session_id=тратата


Этот запрос вернет в качестве текущей базы- master, а не ту что восстанавливается. Предыдущий запрос тоже, но в предыдущем можно посмотреть текст выполняемого запроса, а значит можно будет вытащить имя базы.

Всем спасибо.
17 июн 11, 11:11    [10826619]     Ответить | Цитировать Сообщить модератору
 Re: Узнать программно, на сколько процентов восстановилась SQL-база  [new]
tyva
Member

Откуда:
Сообщений: 10
и можно еще так:

select s.session_id
,start_time
,login_name
,percent_complete
,estimated_completion_time/1000 as estimated_time_s
,h.most_recent_sql_handle
,s1.text
from master.sys.dm_exec_requests r
join master.sys.dm_exec_sessions s on r.session_id = s.session_id
join master.sys.dm_exec_connections h on r.session_id = h.session_id
cross apply master.sys.dm_exec_sql_text(h.most_recent_sql_handle) s1
where command = 'RESTORE DATABASE'
19 июн 11, 04:23    [10835916]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить