Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > автоматический restore


Автор: Neymexa 5.4.2010, 08:59
подскажите как сделать автоматический restore из последнего бэкапа(по времени создания)?

Автор: Akina 5.4.2010, 09:07
Никак. Автоматический restore - это нонсенс. Восстановление выполняется ТОЛЬКО вручную.

Автор: Neymexa 5.4.2010, 09:09
Цитата(Akina @ 5.4.2010,  09:07)
Никак. Автоматический restore - это нонсенс. Восстановление выполняется ТОЛЬКО вручную.

подскажите тогда скрипт который проверяет дату на максимум - в смысле на наличие самой последней даты

Автор: Akina 5.4.2010, 10:23
Код

CASE
  WHEN dbo.SomeTable.SomeField = 'Самая последняя дата'
    THEN 
      ...
    ELSE
      ...
END

Автор: Neymexa 5.4.2010, 10:41
Цитата(Akina @ 5.4.2010,  10:23)
Код

CASE
  WHEN dbo.SomeTable.SomeField = 'Самая последняя дата'
    THEN 
      ...
    ELSE
      ...
END

спасибо но не то.

есть база 100Гб с нее делается бэкап.
если пользователи начнут создавать отчеты то сервер падает.
поэтому было принято решение создать другую базу на другом сервере и туда перенести на нее базу 100 гб.

и чтобы не делать вручную restore каждое утро собственно и ищу способ это автоматизировать

Автор: comtat 5.4.2010, 11:08
Регулярность можно сделать через Jobs
Восстановление так
Код

RESTORE DATABASE [db_name] 
FROM  
DISK = N'path_to_backup.bak' 
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10

Автор: Neymexa 5.4.2010, 11:14
Цитата(comtat @ 5.4.2010,  11:08)
Регулярность можно сделать через Jobs
Восстановление так
Код

RESTORE DATABASE [db_name] 
FROM  
DISK = N'path_to_backup.bak' 
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10

наверно глупый вопрос но что значит N'path_to_backup'

самостоятельно пытался искать что значит N перед прописыванием пути


DISK = N'path_to_backup.bak'  smile 

Автор: comtat 5.4.2010, 11:25
Цитата(Neymexa @  5.4.2010,  11:14 Найти цитируемый пост)
N'path_to_backup.bak'

Путь_до_файла_бекапа/файл_бекапа.bak

Автор: Neymexa 5.4.2010, 11:33
Цитата(comtat @ 5.4.2010,  11:25)
Цитата(Neymexa @  5.4.2010,  11:14 Найти цитируемый пост)
N'path_to_backup.bak'

Путь_до_файла_бекапа/файл_бекапа.bak

я наверно плохо объяснил ...

в папке много файлов а выбирать каждый раз вручную не вариант.

подскажи если можешь как можно в записи типа

test_backup_2010_04_04_030000_8026303.bak
test_backup_2010_04_05_040001_0295887.bak

чтобы выбирал позднюю

написать както условие?

Автор: Akina 5.4.2010, 14:37
Цитата(Neymexa @  5.4.2010,  11:41 Найти цитируемый пост)
если пользователи начнут создавать отчеты то сервер падает.

Вот именно этой проблемой и нужно заниматься. А не изобретать подпорки.

Автор: Neymexa 5.4.2010, 14:46
Цитата(Akina @ 5.4.2010,  14:37)
Цитата(Neymexa @  5.4.2010,  11:41 Найти цитируемый пост)
если пользователи начнут создавать отчеты то сервер падает.

Вот именно этой проблемой и нужно заниматься. А не изобретать подпорки.

я бы рад но к сожалению я не влияю на решения такого типа

p.s. база весит 100-120 Гб.

Автор: boevik 5.4.2010, 21:49
Neymexa, почему бы не создавать backup с постоянным именем, а после restore можно удалить файл.
Тогда не надо выдумывать сложные скрипты для вычисления имени файла.

Автор: comtat 5.4.2010, 22:58
Цитата(Neymexa @  5.4.2010,  14:46 Найти цитируемый пост)
p.s. база весит 100-120 Гб. 

У меня есть базы и поболее ...
Цитата(boevik @  5.4.2010,  21:49 Найти цитируемый пост)
почему бы не создавать backup с постоянным именем, а после restore можно удалить файл.

Можно просто бекапить в один и тот же файл .. но "перетирая" предыдущий бекап

Автор: Akina 6.4.2010, 07:46
Цитата(boevik @  5.4.2010,  22:49 Найти цитируемый пост)
почему бы не создавать backup с постоянным именем, а после restore можно удалить файл

Цитата(comtat @  5.4.2010,  23:58 Найти цитируемый пост)
Можно просто бекапить в один и тот же файл .. но "перетирая" предыдущий бекап

Ну предыдущую копию иметь всегда хорошо... уж тогда нечто типа:
Код

del backup3.bak
ren backup2.bak backup3.bak
ren backup1.bak backup2.bak
makebackup databasename backup1.bak

Автор: Neymexa 6.4.2010, 08:19
вобщем мне сказали - я делаю.я сам против такого, но не могу на это повлиять

Автор: tusha 6.4.2010, 09:40
Цитата

test_backup_2010_04_04_030000_8026303.bak
test_backup_2010_04_05_040001_0295887.bak

чтобы выбирал позднюю


Код

xp_cmdshell 'dir .......' 
тебе в руки

PS:
я сделал бы так: при запуске джоба на бекап запускал бы хранимку, где в отдельную таблицу записывал имена, даты создания бекапов, полные пути к ним. и потом все бы было просто))

Автор: kobra 7.4.2010, 15:29
а может предложить началству заменить методь?
сделать репликацию, или копирование?

а на счет вопроса, думаю проще всего проблему решит CLR.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)