On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

SQL Server 2000 Copy Database Wizard - использование и разрешение проблем

Информация в этой статье относится к Microsoft SQL Server 2000 (все издания)

Copy Database Wizard - новая утилита SQL Server 2000, которая позволяет перемещать или копировать базы данных SQL Server 7.0 или 2000 на SQL Server 2000. Эта статья содержит информацию о том, как работает Copy Database Wizard и рассматривает некоторые проблемы, встречающиеся при использовании этого мастера.

Для запуска Copy Database Wizard можно использовать три пути:

1. В SQL Server Enterprise Manager, щелкните Management, и затем щелкните Run a Wizard.
2. Щёлкните правую кнопку мыши на папке Databases, потом All Tasks, и затем щёлкните Copy Database Wizard...
3. В командной строке, наберите Cdw.exe, и затем нажмите ENTER.

Мастер отсоединяет базы данных, которые должны быть скопированы или перемещены, копирует файлы, связанные с базой данных на сервер назначения и затем присоединяет эти базы данных. Отсоединение и присоединение баз данных выполняется посредством следующих хранимых процедур:


sp_detach_db
sp_attach_db

Мастер выполняет следующие шаги:
1. Создает UNC ресурс на компьютере назначения, куда должны быть скопированы файлы.
2. Проверяет наличие активных подключений к исходной базе данных.
3. Помещает базу данных в однопользовательский режим.
4. Отсоединяет исходную базу данных.
5. Проверяет, существуют ли файлы на компьютере назначения, и затем копирует файлы базы данных на созданный ранее ресурс.
6. Присоединяет базу данных назад на исходном сервере.
7. Присоединяет базу данных на сервере назначения.
8. Удаляет UNC ресурс.
9. Возвращает базу данных в её первоначальный режим (single-user, multi-user и т.д).

Кроме этого, существуют ещё четыре дополнительные возможности, которые позволяют перемещать объекты, связанные с копируемой или перемещаемой базой данных. Это:
1. Logins (Рекомендуется).
- Все логины, обнаруженные во время выполнения пакета.
- Только те логины, которые используются выбранными базами данных.
2. Shared stored procedures - общедоступные хранимые процедуры базы данных master (опционально).
- Все хранимые процедура, обнаруженные во время выполнения пакета.
- Указанные пользователем хранимые процедуры.
3. Jobs (задания) из базы msdb (опционально).
- Все задания, обнаруженные во время выполнения пакета.
- Указанные пользователем задания.
4. User-defined error messages - определяемые пользователем сообщения об ошибках (опционально).
- Все сообщения об ошибках, обнаруженные во время выполнения пакета.
- Указанные пользователем сообщения об ошибках.

Создание Data Transformation Services пакетов (DTS) мастером Copy Database Wizard
Copy Database Wizard создает DTS пакет, который выполняется на сервере назначения и может быть выполнен немедленно или позже, в назначенное время. Кроме того, в качестве альтернативы, Вы можете вручную создать DTS пакет с копией базы данных, используя DTS Designer и щёлкнув Transfer Database Task. Для получения дополнительной информации, см. раздел Transfer Database Objects Tasks в SQL Server 2000 Books Online.
Пакет будет сохранен, если выполнение его будет намечено на другое время. В связи с этим, SQL Server Агент на сервере назначения должен быть запущен. DTS пакет перемещаемой базы данных должен быть обработан так же, как и любой другой DTS пакет, включая требования к разрешениям, связанные с планированием и выполнением пакета. Для получения дополнительной информации о том, как решать проблемы с планируемыми к выполнению DTS пакетами, прочтите следующую статью Microsoft Knowledge Base:
Q269074 INF: How to Run a DTS Package as a Scheduled Job
Вы можете использовать Copy Database Wizard с Microsoft SQL Server 7.0, если только он является сервером исходной базы данных. Вы не можете использовать мастер с версиями Microsoft SQL Server 6.x или ранее.

Необходимые для копирования файлов права
Учетная запись, от имени которой запускается SQL Server назначения, должна входить в домен и иметь привилегии локального администратора на исходном SQL Server так, чтобы быть имелись необходимые права для копирования на обоих серверах.
Если SQL Server назначения запущен от имени локальной учетной записи системы, Вы может получать следующее сообщение об ошибке:


Your SQL Server Service is running under the local system account.
You need to change your SQL Server Service account to have the rights 
to copy files over the network

Если SQL Server назначения запущен от имени учетной записи, входящей в домен, но которая не имеет привилегий локальных администраторов на компьютере источнике, тогда мастером может быть выдано следующее сообщение об ошибке:


Step Error Source: Microsoft Data Transformation Services (DTS) Package
Step Error Description:Unspecified error

Step Error code: 80004005
Step Error Help File:sqldts80.hlp
Step Error Help Context ID:1100

Нажав кнопку "MORE INFO >>>", Вы обнаружите, что разрешения на создание ресурсов не установлено.


Failed to create the share OMWWIZD

Убедитесь в том, что база данных может быть отсоединена корректно.
Как упоминалось ранее, Copy Database Wizard отсоединяет исходную базу данных перед копированием её на сервер источник. Не запускайте Copy Database Wizard, если база данных находится в состоянии - suspect, или если имеют место любые другие проблемы с базой данных, которые могут помешать отсоединению или прикреплению этой базы. Проблемы, подобные ошибкам I/O (например, ошибка 823), ошибки целостности данных (например, Table Corrupt) или любые известные аппаратные проблемы (например, ошибки SCSI или ошибки контроллера в файле регистрации системных событий), могут препятствовать успешному перемещению базы данных.
Кроме того, отсоединение базы данных требует, чтобы она находилась в однопользовательском режиме или, что бы другие пользователи не работали с ней в это время. Если другие пользователи используют базу данных в это же время, мастер может прекратить свою работу с выдачей следующего сообщения об ошибке:


Step Error Source: Microsoft Data Transformation Services (DTS) Package
Step Error Description:Unspecified error

Step Error code: 80004005
Step Error Help File:sqldts80.hlp
Step Error Help Context ID:1100

Если Вы нажмёте кнопку "MORE INFO >>>", Вы можете увидеть следующую причину возникновения проблемы:


Database [dbname] has [N] active connections. Database will not be transferred.

Необходимые права для отсоединения базы данных.
Чтобы отсоединить базу данных SQL Server 2000, необходим определённый набор прав использования мастера, который вот как описан в Books Online:


"Чтобы использовать Copy Database Wizard, Вы должны иметь права системного 
администратора или быть членом роли sysadmin. Если Вы используете Windows NT 4.0 
или Windows 2000, ваша пользовательская учетная запись должна иметь привилегии а
дминистратора на сервере назначения."

Выбор опции перемещения приводит к удалению базы данных.
Имейте в виду, что если Вы выбираете перемещение базы данных, а не её копирование, база данных будет удалена с исходного SQL Server. Если точнее, то база данных вначале отсоединяется от исходного сервера, но потом к нему обратно не прикрепляется. Однако, сами файлы базы данных (.mdf .ndf .ldf) остаются на исходном сервере, и если Вы не нуждаетесь в них, из соображений экономии дискового пространства, Вы можете удалить их вручную. Следующее сообщение будет выведено Вам в диалоговом окне Completing мастера Copy Database Wizard:


Database 'Pubs' will be copied but will be available only on the destination server. 
The administrator must delete the data and log files for database 'Pubs' on the source 
server.

Однако, если Вы по ошибке выберете опцию MOVE вместо опции COPY, Вы можете безболезненно прикрепить эти файлы обратно к серверу, чтобы восстановить первоначальную базу данных.

Перемещение логинов.
Одна из новых возможностей Copy Database Wizard облегчает процесс перемещения логинов входа в систему, которые раньше приходилось переносить вручную. Мастер идентифицирует логины, соответствующие пользователям базы данных и имеет опцию, которая позволяет перемещать или копировать их, как составную часть перемещения или копирования базы данных. Новым мастером могут быть перемещены логины SQL Server, Windows NT и Windows 2000. Для получения дополнительной информации о переносе логинов с более ранних версий SQL Server, см. следующую статью в Microsoft Knowledge Base:
Q168001 PRB: User Logon and/or Permission Errors After Restoring Dump
Q246133 Transfer Logins and Passwords Between SQL Server 7.0 and SQL Server 2000

Обратите внимание, что локальные группы и пользователи Windows NT/2000, которым предоставляется доступ к SQL Server, не могут быть перенесены на другой компьютер. Если Вы попытаетесь сделать это, перемещение логинов закончится ошибкой. Если Вы нажмёте кнопку "MORE INFO >>>", Вы увидеть следующие причины возникновения проблемы:


"Transfer Login SourceMachine\LocalGroup1 Failed"
-или-
"Transfer Login SourceMachine\LocalUser1 Failed"

База данных/файлы уже существует или недостаточно дискового пространства.
При перемещении базы данных, мастер проверяет, существует ли база данных на сервере назначения. Диалоговое окно Select the Database to MOVE or COPY показывает, что базы данных могут быть перемещены или они не могут быть перемещены потому, что база данных уже существуют (Already Exists) или обнаружена попытка перемещения системной базы данных, например, базы данных master. Перемещение базы данных также может быть остановлено, если на сервере назначения уже существуют такие же файлы базы данных. Например, если Вы имеете базу данных с именем MyPubs и её имена файлов такие же, как у базы данных Pubs на сервере назначения, Вы увидите, что файлы назначения будут отмеченных красным крестом.


"Files on the source have the same name as on the destination or there is not enough 
free disk space on the destination."

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

Служба полнотекстового поиска будет остановлена. Файлы каталога полнотекстового поиска не перемещаются.
Если база данных содержит каталоги полнотекстового поиска (Full-Text Search), Вы столкнётесь с двумя особенностями перемещения базы средствами Copy Database Wizard. Во первых, служба каталога Full-Text Search (FT) будут остановлена мастером для того, чтобы база данных могла быть переведена в однопользовательский режим. Во вторых, файлы FT каталога не будут перемещены мастером. Если Вы попробуете выполнить запрос полнотекстового поиска на сервере источнике или назначения после того, как Copy Database Wizard завершит работу, Вы можете получить следующее сообщение об ошибке:


Server: Msg 7616, Level 16, State 1, Line 1
Full-Text Search is not enabled for the current database. Use sp_fulltext_database to enable full-text search for the database.

Для обеспечения работоспособности полнотекстового поиска на сервере назначения или источнике, выполните следующие шаги: 1. Запустите на выполнение указанную ниже хранимую процедуру, которая построит полнотекстовый индекс на базе данных назначения и/или источника:


sp_fulltext_database 'enable'

2. Обеспечьте полное заполнение всех каталогов.

Вот что по этому поводу говорит SQL Server Books Online:


"Если Вы хотите копировать базу данных имеющую каталоги полнотекстового поиска, 
этот каталог будет недоступен на исходном сервере после того, как операция 
копирования будет завершена. Вы должны повторно, вручную заполнить каталог 
полнотекстового поиска на сервере назначения. Если Вы хотите переместить базу 
данных имеющую каталоги полнотекстового поиска, ни один из связанных файлов FT 
каталога не будет изменён в процессе перемещения базы данных. Эти файлы должны 
быть перемещены администратором базы данных вручную."

Для получения дополнительной информации о способах перемещения каталогов полнотекстового поиска, см. статью Microsoft Knowledge Base:
Q240867 INF: How to Move, Copy and Backup Full-Text Catalog Folders and Files



Литература по SQL Server