Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Передо мной стоит задача перенести базу данных на другой сервер и минимизировать время простоя сервиса. База не маленькая - 12Гб, в ней есть хранимые процедуры и вьюшки. Самое простое - сделать бекап и развернуть на новом месте не подойдет из-за длительного времени простоя. При создании репликации я сталкиваюсь с предупреждением о том что view и процедуры нужно переносить руками. В результате я не совсем понимаю как быть? Можно ли сделать бекап рабочей базы, развернуть его на новом месте а уже потом настроить репликацию чтобы дореплицировалось только то что появилось за время переноса бекапа? В идеале бы я хотел иметь 2 синхронные базы с которыми я бы мог работать одновременно, т.е. изменения в любой транслируются в другую базу. Помогите, пожалуйста, советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 01:05 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
JMLabs База не маленькая - 12Гб,Маленькая JMLabs Самое простое - сделать бекап и развернуть на новом месте не подойдет из-за длительного времени простоя.Сделать полный бакап, а в момент Х сделать дифференциальный и накатить. Бакапчик будет маленький, быстро сделается, быстро скопируется и быстро накатится. За репликацию не скажу. Двунаправленная репликация зло, чреватое конфликтами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 01:09 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Mirroring, Log Shipping - не предлагать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 02:07 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
SERG1257Сделать полный бакап, а в момент Х сделать дифференциальный и накатить. Спасибо за идею, я раньше так не пробовал делать. Relic HunterMirroring, Log Shipping - не предлагать? Насколько я знаю Mirroring держит базу приемник в состоянии недоступном для чтения. Чтобы она стала рабочей, нужно разорвать зеркалирование. Вероятно это тоже путь. Про Log Shipping ничего сказать не могу, т.к. ни разу не делал. Мне не хватает опыта практического применения технологий, которые есть в арсенале SQL. Понятно, что та или иная репликация или зеркалирование может решить мою задачу, но возникает масса подводных камней, а у меня только 1 попытка все сделать правильно. Например с зеркалированием, судя по отзывам, именно оно позволяет универсально транслировать любую базу (а для репликации нужно готовить базу), но у меня был неудачный опыт когда из-за небольшого сбоя сети начинал непомерно расти лог, который заполнял диск и все падало. Знаю, что зеркалирование отлично работает в случае если сервера стоят рядом, но у меня сервера на разных площадках и связь через интернет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 09:30 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
JMLabsПонятно, что та или иная репликация или зеркалирование может решить мою задачу, но возникает масса подводных камней, а у меня только 1 попытка все сделать правильно.Да, самый простой путь - полный бакап, потом непосредственно перед переключением снять и накатить дифф бакап, как уже предложил SERG1257. Можно даже 2 раза с дифф бакапом - пользователей отключать после первого раза, и быстро сделать, копировать и накатывать второй дифф. И потом сразу включить пользователей. Для надёжности провести тренировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 09:50 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Настраивать Mirroring для одномоментной акции это "из пушки по воробьям", особенно для новичка Log Shipping уже лучше. По сути заменив diff бакап log бакапом мы его и реализуем в ручном режиме. JMLabs а у меня только 1 попытка все сделать правильноНа самом деле ничего сложного нет, если убрать суровое требование "2 синхронные базы с которыми я бы мог работать одновременно, т.е. изменения в любой транслируются в другую базу". Базу источник сразу после бакапа надо перевести в offline, чтобы те, кто не обновил строку подключения, получали ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 16:46 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
SERG1257Настраивать Mirroring для одномоментной акции это "из пушки по воробьям", особенно для новичка Log Shipping уже лучше. По сути заменив diff бакап log бакапом мы его и реализуем в ручном режиме. JMLabs а у меня только 1 попытка все сделать правильноНа самом деле ничего сложного нет, если убрать суровое требование "2 синхронные базы с которыми я бы мог работать одновременно, т.е. изменения в любой транслируются в другую базу". Базу источник сразу после бакапа надо перевести в offline, чтобы те, кто не обновил строку подключения, получали ошибку.Направильно. После полного бэкапа базу-исчтоник надо перевести в ReadOnly, чтобы исключить дальнейшую модификацию, и сделать после этого бэкап лога (который так же надо будет восстановить). Потом уже оффлайнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 17:43 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Если у автора полная модель восстановления, то достаточно бэкапа журнала к бэкапу базы. Перед этим выгнать всех пользователей (отключить IP протокол, например, в настройках соединения или иным способом) и остановить SQL Agent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 18:07 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовЕсли у автора полная модель восстановления, то достаточно бэкапа журнала к бэкапу базы. Перед этим выгнать всех пользователей (отключить IP протокол, например, в настройках соединения или иным способом) и остановить SQL Agent.Чтобы исчключить модификацию данных есть способ гораздо проще и надежней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2018, 18:51 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
У меня simple модель. По поводу дифф бекапа хотел спросить. Где система берет информацию с какого момента нужно делать дифф бекап? Правильно ли я понимаю что SQL запоминает когда был сделан последний полный бекап и относительно него делает дифф бекап? Гавриленко Сергей АлексеевичЧтобы исчключить модификацию данных есть способ гораздо проще и надежней. Как? Поделитесь пож ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2018, 01:03 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
JMLabsУ меня simple модель. По поводу дифф бекапа хотел спросить. Где система берет информацию с какого момента нужно делать дифф бекап? Правильно ли я понимаю что SQL запоминает когда был сделан последний полный бекап и относительно него делает дифф бекап? Гавриленко Сергей АлексеевичЧтобы исчключить модификацию данных есть способ гораздо проще и надежней. Как? Поделитесь пожКак я отмечал выше: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2018, 01:29 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
JMLabsГде система берет информацию с какого момента нужно делать дифф бекап? Правильно ли я понимаю что SQL запоминает когда был сделан последний полный бекап и относительно него делает дифф бекап?В базе хранится битовая карта экстентов, изменённых после последнего полного бакапа. Любое изменение страниц меняет там биты. А дифф-бакап сканирует эту карту, делая бакап только изменённых страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2018, 11:11 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
12 Тб может быть? 12Гб забекапить-скопировать-восстановить - это минут 10 отсилы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2018, 19:03 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
uaggster12 Тб может быть? 12Гб забекапить-скопировать-восстановить - это минут 10 отсилы. Нет, у меня 12Гб, вообще сомнительная бравада - чтобы протолкнуть 12 Гб по сети нужна скорость 164 мегабит, в локальной сети возможно, но интернет - врядли. По факту у меня 10 минут только бекап делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 17:56 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Надеюсь версия позволяет делать сжатый бакап? https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-compression-sql-server?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 18:20 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
SERG1257Надеюсь версия позволяет делать сжатый бакап? https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-compression-sql-server?view=sql-server-2017 Да, можно делать сжатый бекап. Я думаю реализовать идею с дифф бекапом, хочу понять, правильно ли я рассуждаю: после полного бекапа в базе хранится битовая карта экстентов, как написал alexeyvg, т.е. мои действия буквально: 1. снять полный бекап 2. мувнуть его на новую площадку 3. развернуть обычным способом 4. в нужный момент сделать дифф бекап (при этом в бекап сохранятся только изменения после полного бекапа) 5. мувнуть и накатить дифф бекап на новой площадке Такой вопрос: а если на новой площадке поле разворота полного бекапа в базе будут изменения, как накатится дифф бекап? Или не накатится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 19:07 |
|
||
|
Перенести работающую базу на другой сервер
|
|||
|---|---|---|---|
|
#18+
Немного не так На старом месте за час(два/три) до времени Ч делаете полный бакап На новом месте восстанавливаете его с NORECOVERY https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-2017#comparison-of-recovery-and-norecovery База при этом будет недоступна, но на нее можно будет накатить дифф В момент времени Ч переводите базу в read-only Это нужно для того чтобы за время создания дифф (пусть короткое) никто ничего не записал в старую базу (чтобы значит наверняка) Делаете дифф и переводите базу в оффлайн - теперь все будут получать отлуп Восстанавливаете дифф с recovery - теперь база доступна, но все еще в read-only Переводите ее в read_write Все Итого время простоя - alter datatabase mybase set read_only with rollback immediate дифф бакап копирование на другой сервер восстановление alter datatabase mybase set read_write with rollback immediate если пропустить переключения в read_only и назад (только полный бакап дифф бакап и восстановления) можно проводить тесты, писать скрипты и замерять сколько точно это займет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 20:32 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39673537&tid=1689409]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 478ms |

| 0 / 0 |
