Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CDC: Странное поведение при create database for attach  [new]
satai
Member

Откуда:
Сообщений: 4
Всем привет!

Microsoft SQL Server 2014 - 12.0.4422.0 (X64)
Jul 27 2015 16:56:19
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

Странное поведение CDC при create database for attach

Суть: Есть DB в 0,6TB c CDC enabled. Детачим БД, делаем RW клон средствами СХД, аттачим (create database ... for attach)

Проблематика:

у источника: is_cdc_enabled = 1 в sys.databases, в Management studio - Change Tracking = True
у копии: is_cdc_enabled = 0, - Change Tracking = True
Исходя из этого CDC не включено на копии.

sys.sp_cdc_enable_db: the database 'XXXXXXX' cannot be enabled for Change Data Capture because a database user named 'cdc' or a schema named 'cdc' already exists in the current database.
sys.sp_cdc_disable_db: The database 'XXXXXXX' is not enabled for Change Data Capture

В синтаксисе рестора есть KEEP_CDC, в синтаксисе - create databse for attach - нет такого параметра.

Пока вижу единственное решение: определение таблиц в включенным CDC, сохранением объектов (values,index,keys,triggers) в DynSQL ним, drop схемы, пользователя cdc, авторизации как вот тут, включение CDC (sp_cdc_enable_db), включение CDC на таблицах, рестор из DynSQL

Вопрос: Есть какое-нибудь более простое решение?

p.s. Профит от всего этого такой: Рестор базы ~2часа, создание RW клона диска на уровне операционки+аттач ~1 минута. Клонов диска может быть до 255.
18 ноя 15, 14:31    [18435645]     Ответить | Цитировать Сообщить модератору
 Re: CDC: Странное поведение при create database for attach  [new]
satai
Member

Откуда:
Сообщений: 4
satai
у копии: is_cdc_enabled = 0, - Change Tracking = True


не могу воспроизвести ситуацию, но буквально вчера is_cdc_enabled = 1 подставлялся при аттаче о_О
18 ноя 15, 14:32    [18435660]     Ответить | Цитировать Сообщить модератору
 Re: CDC: Странное поведение при create database for attach  [new]
satai
Member

Откуда:
Сообщений: 4
Вот это да.

В скрипте восстановления БД (powershell) сразу после
$sql = "create ... for attach"
invoke-sqlcmd $sql

Следовали инструкции
$sql = "use db;EXEC sys.sp_cdc_drop_job @job_type = N'capture'; EXEC sys.sp_cdc_add_job @job_type = N'capture';"
Invoke-sqlcm $sql

Несмотря на то что они в различных транзакциях происходил какой-то конфликт.

Вставка небольшой задержки в 1 минутку между блоками решила проблему
19 ноя 15, 08:17    [18438931]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить