2017-01-05 5 views
0

Я новичок в мире db. Я должен создать задание, которое снимет моментальные снимки и обновит его на ежедневной основе. Но мне было интересно, как я могу проверить правильность установки моментальных снимков.Воспроизведение db Снимки по расписанию

ответ

0

Вы можете использовать SQLAgent для достижения этой цели: Creation & Deletion of Database Snapshot by SQL Agent Job

--Step 1 :- 
DECLARE @CREATE_SS VARCHAR(MAX) 
DECLARE @DT VARCHAR(100) 
SET @DT = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR,GETDATE(),120),’-‘,’_’),’ ‘,’_’),':’,’_’) 
SET @CREATE_SS = 
‘CREATE DATABASE TEST_’[email protected]+’ ON 
(NAME = TEST, FILENAME = 
”C:\TEST_’[email protected]+’.SS”) 
AS SNAPSHOT OF TEST’ 
EXEC (@CREATE_SS) 

--Step 2 :- 
IF(SELECT COUNT(*) FROM SYS.DATABASES WHERE SOURCE_DATABASE_ID = DB_ID(‘TEST’))>1 
BEGIN 
DECLARE @DROP_SS VARCHAR(MAX) 
DECLARE @SS_NAME VARCHAR(100) 
SELECT TOP 1 @SS_NAME = NAME FROM SYS.DATABASES WHERE SOURCE_DATABASE_ID = DB_ID(‘TEST’) 
ORDER BY CREATE_DATE ASC 
SET @DROP_SS = ‘DROP DATABASE ‘+ @SS_NAME 
EXEC (@DROP_SS) 
END 

Для части проверки, вы можете использовать ниже запрос ..

if exists(
SELECT * FROM sys.databases WHERE name = 'somename' 
    AND source_database_id IS NOT NULL) 
begin 
print 'database snapshot created' 
end