Как вручную применить моментальный снимок на подписчике публикации базы данных SQL Server 2000 - PullRequest
1 голос
/ 08 февраля 2011

Я пытаюсь создать репликацию между двумя компьютерами SQL Server, которые физически удалены и имеют медленное соединение между ними.

Поэтому я хочу вручную переместить папку моментальных снимков подписчику, а не копировать ее по медленному соединению. Я хотел бы знать, какие шаги необходимо выполнить, чтобы успешно применить моментальный снимок к подписчику.

1 Ответ

2 голосов
/ 08 февраля 2011

Я думаю, это будет сложно. Когда вы инициируете моментальный снимок, вы помещаете в журнал метку, которая сообщает, когда был создан моментальный снимок, чтобы после применения моментального снимка на подписчике агент распространителя знал, с какой точки начать отправлять реплицированные команды. Поэтому вам нужно не только применить моментальный снимок, но и каким-то образом сообщить репликации, что он уже доставлен, и начать доставлять команды в нужное время.

Но чтобы ответить на ваш вопрос, снимок представляет собой просто серию плоских файлов. Существуют файлы .pre, которые являются просто T-SQL и должны быть запущены первыми (мне нравится использовать sqlcmd или osql для этого, так как я могу написать это из командной строки). Далее идут файлы .sch, которые также являются T-SQL. Далее идут файлы данных (я не помню расширение файла для них на макушке). Это BCP "родной" формат. Таким образом, вы собираетесь применять их с помощью чего-то вроде "bcp db.schema.table в файле -n -T -S server -b1000". Наконец, .idx файлы, которые снова являются T-SQL. Все, кроме файлов данных, удобочитаемы для человека, поэтому вы можете посмотреть, что они делают (ничего особенного, но всегда полезно знать). Удачи.

...