Форум системных администраторов

IT => Software => СУБД => Тема начата: 2site от 12 апреля 2016, 14:50:13

Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 12 апреля 2016, 14:50:13
Прошу помощи в организации репликации базы из MS SQL server 2012 на другой сервер SQL Express 2012. Репликацию нужно выполнять раз в день, ночью. Реплицированную базу на SQL Express будут использовать только для чтения и актуализовывать ее нужно будет каждую ночь. Если есть у кого идеи как это сделать, буду очень признателен. Пока в идеи приходит это создание плана на резервное копирование базы и каким-то скриптом восстановление этой базы на SQL express. Буду рад любым идеям. Спасибо заранее  :beer:
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 12 апреля 2016, 15:31:07
Нашел в интернете что Express поддерживает репликацию как подписчик. Сейчас буду искать мануалы как это сделать.
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: airdwarf от 12 апреля 2016, 16:06:47
Так вы определитесь, репликация вам нужна, логшиппинг или развертывание бэкапа по расписанию.
Реплицированную базу на SQL Express будут использовать только для чтения
А прикладное ПО об этом знает? 1С, например, увидев базу в standby, изрядно удивится и скажет "Кря".

Кроме того, когда исходная база дорастет до 10Гб, SQL EE тоже скажет "Кря".
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 12 апреля 2016, 19:01:35
Так вы определитесь, репликация вам нужна, логшиппинг или развертывание бэкапа по расписанию.
Реплицированную базу на SQL Express будут использовать только для чтения
А прикладное ПО об этом знает? 1С, например, увидев базу в standby, изрядно удивится и скажет "Кря".

Кроме того, когда исходная база дорастет до 10Гб, SQL EE тоже скажет "Кря".

Спасибо за замечание, но думаю такого быть не должно так как там не 1с и база 1 и маленькая. Темболее это запрос от програмистов, которые и обслуживают базу. Моя задача сделать :)
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 13 апреля 2016, 11:05:02
А сам процесс репликации как работает? Может действительно не делать реплицируемую базу только для чтения, а здеалть так чтобы новая реплика намазывала свурху свои изменения поверх тех которых моглиб сделать во время работы с реплицируемой базой?
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: airdwarf от 13 апреля 2016, 11:37:01
Репликация работает через параллельное выполнение транзакций, аналогичных мастеру, на слейве.
Логшиппинг работает через отложенное выполнение таких транзакций по журналу транзакций.
Таким образом, ни в одном из этих механизмов нет возможности вносить в реплику какие-либо изменения.

Если требуется доступ на запись, то ваш выбор - еженощно развертывать полный бэкап. Дифференциальный бэкап на не-readonly "реплику" Вы накатить также не сможете

здеалть так чтобы новая реплика намазывала свурху свои изменения поверх тех которых моглиб сделать во время работы с реплицируемой базой
Вы желаете странного. На уровне СУБД так не бывает.
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 13 апреля 2016, 12:16:26


[/quote]
Если требуется доступ на запись, то ваш выбор - еженощно развертывать полный бэкап.

Есть два вопроса:

1) Мне не нужен доступ на запись для реплики. Мне нужна копия базы на sql server express на чтение и ежедневной актуализацией. Это можно реализовать средствами репликации sql сервера?

2) Если говорить про еженочное разветываение полного бэкапа, этот вариант возможно действительно проще, но не совсем понятно как реализовать его автоматизацию? Как создать бэкап базы по расписанию с помощью Агента я знаю, а вот как это сделать восстановление из бэкапов на sql express без Агента, вводит меня в смятение? Я так понимаю нужно писать скрипт который это будет выполнять, только вот не понятно с помощью powershell или другими методами? airdwarf, буду тебе очень благодарен если поможешь разобраться в обоих вопросах. 
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: airdwarf от 13 апреля 2016, 16:34:49
Мне не нужен доступ на запись для реплики. Мне нужна копия базы на sql server express на чтение и ежедневной актуализацией. Это можно реализовать средствами репликации sql сервера?

настройте Log shipping

как это сделать восстановление из бэкапов на sql express без Агента

sqlcmd -S SERVERNAME\EXNAME -i restore_backup.sql >> B:\backup.log
Запрос для восстановления бэкапа можно получить в консоли SSMS
Выполняться должно от лица пользователя windows - владельца БД



Updated: 13 April 2016, 16:37:28

И если я не ошибаюсь, агент в ЕЕ таки есть, просто выключен.
Попробуйте выполнить запрос, а потом стартовать агента, мне проверить не на чем
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Agent XPs', 1;
GO
RECONFIGURE
GO



Ну и наконец, кто мешает управлять инстансом ЕЕ с агента Standard?
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: 2site от 13 апреля 2016, 16:46:29
Спасибо большое, буду тестировать все перечисленные способы.
Название: Репликация базы данных с сервер MS SQL Standart на на SQL Exspress 2012
Отправлено: Fray от 13 апреля 2016, 17:30:47
Можно погуглить репликацию SQL снепшотами (правда я не уверен, что express ее умеет)