Переміщення баз даних SQL Server за допомогою функцій Detach і Attach

Переклади статей Переклади статей
Номер статті: 224071 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

Підсумки

У цій статті описано процедуру змінення розташування файлів даних і журналу для баз даних серверів Microsoft SQL Server 2005, SQL Server 2000 або SQL Server 7.0.

Докладніше про переміщення системних баз даних в SQL Server 2008 див. у статті "Переміщення системних баз даних" електронної документації SQL Server Books Online. Щоб переглянути цю тему, перейдіть на веб-сторінку про переміщення системних баз даних мережі Microsoft для розробників (MSDN).

Додаткові відомості

Дії, необхідні для зміни місця розташування деяких системних баз даних SQL Server, відрізняються від дій зі зміни розташування користувацьких баз даних. Вказівки щодо переміщення таких баз даних надаються окремо.

Примітка. Системні бази даних SQL Server 7.0 несумісні з SQL Server 2000. Не підключайте до SQL Server 2000 бази даних, що поставляються разом із SQL Server 7.0 (master, model, msdb). Під час використання SQL Server 2005 до екземплярів програми можна підключати тільки бази даних SQL Server 2005. В усіх прикладах, наведених у даній статті, передбачається, що програму SQL Server інстальовано в папці D:\Mssql7. Крім того, у прикладах приймається, що всі файли даних та журналів розташовані в папці за промовчанням D:\Mssql7\Data. При цьому всі файли даних і журналу для всіх баз даних переміщуються до папки E:\Sqldata.

За замовчуванням розташування даних для SQL Server 2005 і SQL Server 2000 таке:

Необхідні умови

  • Створіть резервні копії всіх баз даних, зокрема бази даних master, з їхнього поточного розташування.
  • Переконайтеся, що маєте дозволи системного адміністратора (обліковий запис sa).
  • Переконайтеся, що знаєте імена та поточне розташування всіх файлів даних і журналу для переміщуваної бази даних.

    Примітка. Щоб визначити імена та місце розташування всіх файлів, використовуваних базою даних, скористайтеся збереженою процедурою sp_helpfile:
    use <ім'я_бази даних>
    go
    sp_helpfile
    go
  • При цьому необхідно мати винятковий доступ до переміщуваної бази даних. Якщо під час переміщення виникли помилки, не вдається отримати доступ до переміщеної бази даних або запустити SQL Server, перегляньте журнал помилок SQL Server і зверніться до електронної документації SQL Server Books Online, щоб дізнатися більше про ці помилки.

Переміщення користувацьких баз даних

У наступному прикладі переміщується база даних mydb. Ця база даних містить один файл даних Mydb.mdf та один файл журналу, Mydblog.ldf. Якщо переміщувана база даних складається з декількох файлів даних та журналів, необхідно перелічити всі ці файли у списку, який передається збереженій процедурі sp_attach_db. Елементи списку розділяються комами. Оскільки список переміщуваних файлів процедурі sp_detach_db не передається, то виклик даної процедури sp_detach_db не залежить від кількості файлів у базі даних.
  1. Запустіть SQL Server 2005 Management Studio. Для цього натисніть кнопку Пуск і послідовно виберіть пункти Усі програми, Microsoft SQL Server 2005 і SQL Server Management Studio.
  2. Клацніть New Query (Новий запит), а потім відключіть базу даних таким чином:
    use master
       go
       sp_detach_db 'mydb'
       go
  3. Скопіюйте файли даних і журналу з поточного розташування (D:\Mssql7\Data) до нового (E:\Sqldata).
  4. Знову підключіть базу даних. Укажіть нове місце розташування файлів:
    use master
      go
      sp_attach_db 'mydb','E:\Sqldata\mydbdata.mdf','E:\Sqldata\mydblog.ldf'
      go
    Перевірте зміну розташування файлів за допомогою збереженої процедури sp_helpfile:
    use mydb
       go
       sp_helpfile
       go
    У стовпці filename має відображатися нове місце розташування файлів.
Примітка. У статті 922804 бази знань Microsoft описано проблему з базами даних SQL Server 2005, розташованими у сховищі, підключеному до мережі. Докладніше про це див. у такій статті бази знань Microsoft:
922804 ПОТОЧНЕ ВИПРАВЛЕННЯ: Після відключення бази даних Microsoft SQL Server 2005, що зберігається на пристрої зберігання даних, підключеному до мережі, її не вдається підключити
Візьміть цю проблему до уваги. Крім того, прийміть до уваги дозволи, застосовувані до бази даних під час відключення від SQL Server 2005. Докладніше див. у розділі "Відключення та підключення бази даних" статті "Забезпечення захисту файлів даних та журналів" інтерактивної документації SQL Server Books Online. Щоб переглянути цю тему, перейдіть на веб-сторінку MSDN про захист файлів даних і журналу.

Переміщення зразків баз даних

Щоб перемістити зразки бази даних публікацій і бази даних Northwind в SQL Server 2000 або SQL Server 7.0 (чи зразки баз даних AdventureWorks і AdventureWorksDW в SQL Server 2005), виконайте наведені нижче дії.

Переміщення бази даних model

SQL Server 2005 і SQL Server 2000

SQL Server 7.0

Переміщення бази даних MSDB

SQL Server 2005 і SQL Server 2000

SQL Server 7.0

Переміщення бази даних master

SQL Server 2005

SQL Server 2000 та SQL Server 7.0

Переміщення бази даних tempdb

Можна перемістити файли tempdb за допомогою інструкції ALTER DATABASE.
  1. Визначте логічні імена файлів бази даних tempdb за допомогою збереженої процедури sp_helpfile:
    use tempdb
    go
    sp_helpfile
    go
    Логічне ім’я кожного файлу відображається у стовпці name. У даному прикладі використовуються імена файлів за промовчанням tempdev та templog.
  2. Виконайте оператор ALTER DATABASE, вказуючи логічні імена файлів:
    use master
    go
    Alter database tempdb modify file (name = tempdev, filename = 'E:\Sqldata\tempdb.mdf')
    go
    Alter database tempdb modify file (name = templog, filename = 'E:\Sqldata\templog.ldf')
    go
    У результаті виконання цих команд мають з'явитися наступні повідомлення, що підтверджують внесення змін:
    Повідомлення 1
    File 'tempdev' modified in sysaltfiles (Файл 'tempdev' змінено у sysaltfiles). Видаліть старий файл після перезапуску SQL Server.
    Повідомлення 2.
    Файл 'templog' змінено у sysaltfiles. Видаліть старий файл після перезапуску SQL Server.
  3. Щоб зміни, внесені в базу даних tempdb, відображалися збереженою процедурою sp_helpfile, необхідно перезапустити SQL Server.
  4. Зупиніть і знову запустіть SQL Server.

Посилання

Докладніше про це див. у таких статтях бази знань Microsoft:
912397 Не вдається запустити службу SQL Server після зміни параметра запуску кластеризованого екземпляра SQL Server 2000 або SQL Server 2005 на неприпустиме значення
274188 У розділі "Виправлення неполадок, пов’язаних із завислим користувачем" електронної документації SQL Server Books Online наведено не всі відомості
246133 Перенесення імен користувачів і паролів між екземплярами SQL Server
168001 Дані для входу користувачів і дозволи на доступ до бази даних після відновлення бази даних можуть стати неправильними

Додаткові відомості див. у наступних книгах:
Корпорація Майкрософт
Навчальний пакет Microsoft SQL Server 7.0 System Administration Training Kit
Microsoft Press, 2001 р.
Корпорація Майкрософт
Навчальний пакет MCSE Training Kit: системне адміністрування Microsoft SQL Server 2000
Microsoft Press, 2001 р.
Корпорація Майкрософт
Пакет ресурсів Microsoft SQL Server 2000 Resource Kit
Microsoft Press, 2001 р.

Властивості

Номер статті: 224071 - Востаннє переглянуто: 26 лютого 2014 р. - Редакція: 16.0
Застосовується до:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Ключові слова: 
kbsqlsetup kbinfo KB224071

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com