SQL Server 2000 Copy Database Wizard – використання і дозвіл проблем, MS SQL Server, Бази даних, статті

sql.ru

Інформація в цій статті ставиться до 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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*