Backup and recovery SQL DB

1. DNMit 1 08.02.21 21:44 Сейчас в теме
Имеем.
1) Основной 1С сервер - Server 2016 + SQL 2016. Назовём его источник.
2) Резервный 1С сервер - Server 2016 + SQL 2016. Назовём его - приёмник.
Необходимо
1. По расписания (1 раз в день) делать резервную копию базы 1C с источника.
2. Сразу после выполнения п.1 разворачивать базу 1С на приёмнике.
3. Выполнять резервное копирование в dt с базы развёрнутой п.2.. Этот пункт можно упустить, т.к. он элементарный но..
после развёртывания база в SQL+1C должна быть полностью рабочая - без лишних
телодвижений, вроде установка владельца базы, перевода из автономного режима в рабочий и т.п..

Софта пересмотрели много разного. Например у Handy Backup есть такой функционал, но толком и без костылей он не работает.
В общем перепробовали много чего, вышли на результат, но он нас не устраивает. Поэтому готовы хорошо отблагодарить за готовое решение или помощь в настройке тонкостей.

Спасибо!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. dj_tol 104 09.02.21 02:30 Сейчас в теме
(1)Я у себя на предприятии настроил такую схему: Есть сервер SQL 2008 на нем существует база 40Гб, ночью делается backup и копируется на другой сервер по интернету, затем другой сервер SQL2016 восстанавливает эту базу к себе (переводя базу в монопольный режим ит.д.). Что имеем: всегда имеем рабочую базу на время - ночь, в ней можно делать что угодно, т.к. ночью она восстановится, ее можно проверять на битые ссылки тестировать и смотреть результат ит.д. Написаны скрипты на SQL и PoweShell в самом sql сторонних программ не используем. По разным событиям отправляется почта с sql сервера. dt файл не делаем т.к. база растет и восстановление с этого файла занимает очень много времени и чем дальше, тем менее вероятно, что она восстановится. Так же на первом сервере настроены расписания (стандартный виндовый) перед выгрузкой с SQL 2008: загрузка изменений в рабочую базу, отправка писем контрагентам ит.д. Все эти действия происходят в автоматическом режиме без участия пользователя.
12. akR00b 22 09.02.21 11:45 Сейчас в теме
(4) а примерчика скриптов нет случайно? хотим тоже самое у себя сделать.
14. dj_tol 104 10.02.21 02:24 Сейчас в теме
(12)
(4) а примерчика скриптов нет случайно? хотим тоже самое у себя сделать.
Полный цикл настройки SQL сервера с архивированием это целая статья у меня на такое даже времени нет, что бы с нуля все расписать. На просторах инфостарта есть не мало таких статей. Лучше по ним делать, а если уперлись куда то, тогда задавать вопрос.
5. vlad636 6 09.02.21 04:16 Сейчас в теме
(1) У нас на предприятии мы сделали резервный сервер средствами РИБ с полной выгрузкой-загрузкой данных.
13. user610655_ituser 09.02.21 18:22 Сейчас в теме
(1) Здравия!

У себя использую Группы доступности MSSQL.
Резервное копирование средствами MSSQL. Тут использую хорошие скрипты от Ola Hallengren, которые позволяют организовать резервное копирование баз данных, входящих в группу доступности.

Примечание: как организовать кластер без ADS (в среде рабочих групп).
18. starik-2005 3061 15.02.21 15:52 Сейчас в теме
(1) https://support.icthrive.com/hc/en-us/articles/115012063287-Move-SQL-Database-to-New-Server
Once the restore has completed, open a new query, and run the following:
EXEC sp_change_users_login 'auto_fix', 'intranetconnections'


https://www.liquidweb.com/kb/sql-database-migration-with-ssms/ - тож много всего, и скриптов.

https://www.liquidweb.com/kb/sql-databases-migration-with-command-line/ - командная строка...

https://docs.microsoft.com/ru-ru/sql/database-engine/database-mirroring/prepare-a-mirror-database-for-mirroring-sql-server?view=sql-server-ver15 - ваще зеркалирование от мелкомягких.
Nedovizin; +1 Ответить
2. Denium79 15 08.02.21 22:42 Сейчас в теме
Средствами MS SQL Server делать по расписанию полный бэкап базы в определенную папку с определенным именем. На резервном сервере также по расписанию, смещенному по времени, восстанавливаем уже известный нам бэкап
Vitaly1C8; +1 Ответить
3. Torin 783 09.02.21 00:13 Сейчас в теме
(2)"вроде установка владельца базы" - только владельцы будет разные , если это сервера не в домене!
6. chg 09.02.21 06:31 Сейчас в теме
Вам всё таки если без костылей в видео PS скриптов, то нужно использовать РИБ как более простой инструмент, если конечно нет каких либо тонкостей о которых мы не знаем.
7. DNMit 1 09.02.21 08:06 Сейчас в теме
(6)
Пардон. Не понимаю причём тут РИБ. У меня основная база на 100 гб (SQL) - это КА.
8. chg 09.02.21 08:09 Сейчас в теме
(7)ну если не понимаете, то только скриптами на power shell
11. Denium79 15 09.02.21 10:50 Сейчас в теме
(7) Если с РИБ все сложно, то можно рассмотреть репликацию MS SQL. 100 гигабайт все же многовато, чтобы таскать ежесуточно с сервера на сервер
9. dj_tol 104 09.02.21 08:20 Сейчас в теме
(6)РИБ это не серьезно. А если журнал кто нибудь очистит как минимум или сам не все выгружать будет.....
10. chg 09.02.21 08:22 Сейчас в теме
(9)моё дело было предложить, против всяких НО можно найти миллионов миллион, так же я указал что всё так же делается через скрипты, как бы варианты на любой цвет и вкус
15. KlSergey 30 10.02.21 09:14 Сейчас в теме
Всю задачу можно выполнить только SQL запросами и заданиями на SQL серверах.

1, Задание по расписанию на первом сервере "полный бекап базы".
2. В этом же задании копирование базы с первого сервера на второй (sql запросом в MSSQL можно выполнять команды системы с правами учётной записи от имени которой запущена служба sql сервера )
3. После окончания копирования с первого сервера команда на запуск задачи на восстановление базы на втором сервере.
Всякие нюансы по владельцу базы и режимам работы в скрипте восстановления на втором сервере.
Fox-trot; Sergex; vv2; +3 Ответить
16. MadDAD 154 10.02.21 19:06 Сейчас в теме
17. DNMit 1 10.02.21 22:31 Сейчас в теме
(16)
Нет, не подойдёт.
Так как базу только для чтения оставляет, в такую не заползти и dt не дёрнуть.
19. Berckk 10.03.21 15:54 Сейчас в теме
1) Выполняется по расписанию на первом сервере
BACKUP DATABASE [РабочаяБаза] TO DISK = N'\\ПутьКФайлуАрхива.bak' WITH INIT , NOUNLOAD , NAME = N'Backup РабочаяБаза', NOSKIP , STATS = 10, NOFORMAT
2) Выполняется на втором сервере со смещением по времени.
RESTORE DATABASE КопияРабочейБазы
FROM DISK = N'\\ПутьКФайлуАрхива.bak'
WITH FILE = 1,
MOVE ''ФайлДанных'' TO ''НовоеРасположение.mdf'',
MOVE ''ФайлЛог'' TO ''НовоеРасположение.ldf'',
RECOVERY, REPLACE
3) xp_cmdshell и команда в консоли на втором сервере, как вариант, чтобы сразу после восстановления.

з.ы. Если связать сервера через линкед сервер, то возможно выполнение все шагов с одного сервера.
Nedovizin; +1 Ответить
20. ptolomei 17.03.21 12:13 Сейчас в теме
Если нагрузка не датацентра, то сделайте просто синхронизированный сервер и зеркалируйте каждую транзакцию в него средствами SQL. Всегда будет актуальная копия Вашей БД.
ПС В SQL MS на самой базе правый жмак - задачи - создать зеркальное отображение
21. tedkuban 42 27.05.21 17:33 Сейчас в теме
Готов помочь, но нужно смотреть нюансы, пишите лично.
Нет времени делать публикацию, но есть решение на SQL для ежедневного резервного копирования баз 1С с хранением истории, есть скрипты и хранилки для развертывания этих бэкапов в базы для разработчиков. Модифицировать это все под Ваш случай не вижу проблем.

Ну и, как писали раньше, есть варианты с AlwaysOn, зеркалированием или доставкой журналов транзакций, они тоже рабочие. От инфраструктуры и лицензий SQL сильно зависит выбор решения, также от модели восстановления Ваших баз.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот