Помощь по SQL

  • Автор темы Agronom
  • Дата начала
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Доброго времени суток :prankster:
Сутуация такая: есть 1с, есть базы на sql 2014, делаются бэкапы полные. Нужно автоматизировать такую весчь: каждую ночь после создания бэкапа этот бэкап разворачивается в копию основной базы, т.е. каждый день для программеров 1с есть актуальная копия, где можно все отладить. Код восстановления автоматического простой. Сложность в том, что SQL создает бэкапы с именами, которые оканчиваются на дату и еще некоторые цифры, точно не знаю, что они значат. Короче, название заранее неизвестно. Судить можно только по дате создания бэкапа. Как в t-sql получить список файлов и найти из них самый поздний? Или может есть другие пути решения такой задачи?:prankster:
 
evn

evn

LPD: Земля
Регистрация
27.07.2005
Сообщения
28 585
Реакции
189
Баллы
63
Доброго времени суток :prankster:
Сутуация такая: есть 1с, есть базы на sql 2014, делаются бэкапы полные. Нужно автоматизировать такую весчь: каждую ночь после создания бэкапа этот бэкап разворачивается в копию основной базы, т.е. каждый день для программеров 1с есть актуальная копия, где можно все отладить. Код восстановления автоматического простой. Сложность в том, что SQL создает бэкапы с именами, которые оканчиваются на дату и еще некоторые цифры, точно не знаю, что они значат. Короче, название заранее неизвестно. Судить можно только по дате создания бэкапа. Как в t-sql получить список файлов и найти из них самый поздний? Или может есть другие пути решения такой задачи?:prankster:
скрипт бэкапа выложи, все тебе расскажем, что и какие цифири обозначают) соответственно при развертывании, можно в темп сктнуть эту базу, предварительно переименовав и уже оттуда перенести в нужное место.
 
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Да скрипт простецкий, я не силен в t-sql


ALTER DATABASE torg_copy
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
RESTORE DATABASE torg_copy
FROM DISK='f:\backup\torg.bak' WITH REPLACE,
MOVE 'torg' TO 'd:\bases\torg_copy\torg_copy.mdf',
MOVE 'torg_log' TO 'f:\logs\torg_copy\torg_copy.ldf',
RECOVERY
ALTER DATABASE torg_copy
SET MULTI_USER WITH NO_WAIT
GO

Тут восстановление из torg.bak, но названия архивов сейчас на новом серваке такого вот формата: torg_backup_2015_02_10_001858_2396355.bak. И их в папке лежит несколько. Как мне выбрать нужный? Сейчас бэкапы делаются с помощью Maintenance plan. Может, проще сделать дополнительный бэкап с помощью t-sql с простым именем и из него восстанавливать?
 
!Chip

!Chip

Активный участник
Регистрация
27.02.2008
Сообщения
42 382
Реакции
2 255
Баллы
113
Может, проще сделать дополнительный бэкап с помощью t-sql с простым именем и из него восстанавливать?
Проще. Делайте бекап и восстановление например cmd скриптами или powershell, с заданным именем базы.
 
evn

evn

LPD: Земля
Регистрация
27.07.2005
Сообщения
28 585
Реакции
189
Баллы
63
так это скрипт восстановления. бэкап выложи.
 
evn

evn

LPD: Земля
Регистрация
27.07.2005
Сообщения
28 585
Реакции
189
Баллы
63
Проще. Делайте бекап и восстановление например cmd скриптами или powershell, с заданным именем базы.
я бы на его месте не стал пока ломать то, что работает)
единственное, что нужно будет сделать, это изменить иерархию. на вскидку два варианта есть)

1. делаем бекам в папку, имеющую имя текущей даты (н-р 13_02_2015) а внее кидаем бэкап с именем базы
2. делаем бекап базы и затем жмем ее архиватором, попутно присваивая имя torg_чего_там_13_02_2015.tar + пароль
ну и третий вариант, смотреть дату создания файла и затем переименовывать его обычным скриптом.
 
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Проще. Делайте бекап и восстановление например cmd скриптами или powershell, с заданным именем базы.
А если так:

1. Делается бэкап специально для восстановления копии вот так:
USE torg
BACKUP DATABASE torg
TO DISK='f:\backup\torg.bak' WITH SKIP, COMPRESSION
2. Делается восстановление скриптом, указанным выше.

И все это по расписанию поставить.
 
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
я бы на его месте не стал пока ломать то, что работает)
То, что работает, тоже я делал)) Учусь по ходу дела. Но там я не использовал t-sql, просто компонентами со стрелочками на плане набросал.
 
evn

evn

LPD: Земля
Регистрация
27.07.2005
Сообщения
28 585
Реакции
189
Баллы
63
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
не поможет? http://infostart.ru/public/153571/
я к чему, что велосипед то изобретать?

Проще. Делайте бекап и восстановление например cmd скриптами или powershell, с заданным именем базы.

А чем лучше эти способы стандартных функций SQL-агента? Он ведь тоже может по расписанию делать бэкапы или выполнять t-sql инструкции.
 
B

basilios

Guest
Он ведь тоже может по расписанию делать бэкапы или выполнять t-sql инструкции.
+1, лучше день потерять, потом за час долететь.
Да и в скриптах возможностей больше, и мануал хорошо расписан.
 
!Chip

!Chip

Активный участник
Регистрация
27.02.2008
Сообщения
42 382
Реакции
2 255
Баллы
113
А чем лучше эти способы стандартных функций SQL-агента? Он ведь тоже может по расписанию делать бэкапы или выполнять t-sql инструкции.

Все способы хороши, одну и туже задачу можно решить по крайней мере несколькими, и тут уже выбор за тем как вам удобней.
Например когда то у меня была задача настроить бекапы большой базы 200Гб, чтобы сам бекап архивировался и делился на части для удобной записи на DVD диски, с логированием и отправкой на почту результатов, а также ротацией архивов. Собственно пришлось ковырять идиотский синтаксис windows cmd, т.к. тогда не было powershell.
 
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Всем спасибо за помощь, в общем, т.к. бэкапы небольшие, особенно сжатые, решено делать дополнительный бэкап в отдельную папку и с него восстанавливать следом в копию. Все проверено - все работает :prankster:
 
!Chip

!Chip

Активный участник
Регистрация
27.02.2008
Сообщения
42 382
Реакции
2 255
Баллы
113
Всем спасибо за помощь, в общем, т.к. бэкапы небольшие, особенно сжатые, решено делать дополнительный бэкап в отдельную папку и с него восстанавливать следом в копию. Все проверено - все работает :prankster:

Это както не красиво совсем, не по пацански
 
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Это както не красиво совсем, не по пацански
Почему? Усё красиво)) Мне же в любом случае нужно автоматически каждую ночь разворачивать последний бэкап. Там бэк меньше 8 гигов выходит )) 10 минут он создается и примерно столько же разворачивается)) Основные бэкапы никак не трогаются))

также ротацией архивов
Кстати, sql сам умеет убивать совсем старые архивы. Ему только надо сказать, насколько старые убивать)
 
!Chip

!Chip

Активный участник
Регистрация
27.02.2008
Сообщения
42 382
Реакции
2 255
Баллы
113
OP
Agronom

Agronom

Новичок
Регистрация
29.05.2009
Сообщения
4 601
Реакции
1
Баллы
0
Верх Низ