.net 4.0 과 , mssql 2008 r2 이며, studio .net 2010 사용중입니다.
c# 으로 app 를 만들고, 해당 프로그램을 db 서버에서 실행 했을때.
특정 백업 파일폴더에서 파일들을 읽어 와서, 복원 하는 프로그램입니다.
복원은 되긴 하는데 좀 문제가 있습니다.
총 4개의 db 인데 그중 2개가 10G 가 넘습니다.
나머지는 얼마 안되구요,
순서는 용량 큰순서로 복원이 되는데. 이게 앞에서 진행된 복원이 완료 되기 전에 다시 루틴을 돌고 있습니다.
용량 큰 것에 대한 쿼리가 진행 되고, 다시 다 끝날때까지 기다리는 방법이 없는건가요?
Comment 2
-
minsouk
2015.01.02 10:01
recovery method 에 event를 등록한 뒤 작업이 완료되면 원래의 class 로 알려주면 될 듯 한데요
thread로 구현 하고 있으면 Rendezvous (join 후)방식을 써 일련의 작업이 완료되면 다음 작업을 시작하시면 됩니다.
만약 임의의 체크 로직이 필요하다면 database 의 system table 를 조회하는 방식으로 체크하시면 됩니다.
sys.dm_exec_requests의 estimated_completion_time과 percent_complete이 작업 종료에 관한 정보를 제공합니다.
ALTER INDEX REORGANIZE
ALTER DATABASE의 AUTO_SHRINK 옵션
BACKUP DATABASE
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKTABLE
DBCC INDEXDEFRAG
DBCC SHRINKDATABASE
DBCC SHRINKFILE
RECOVERY
RESTORE DATABASE
ROLLBACK
TDE ENCRYPTION
이런 작업들에 대해서는 언제 끝나는지 몇% 진행됐는지 알 수 있습니다.