ID Artikel: 224071 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0

Bagaimana memindahkan database SQL Server ke lokasi baru dengan menggunakan fungsi Detach dan melampirkan dalam SQL Server

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menjelaskan cara mengubah lokasi data file dan log file untuk setiap Microsoft SQL Server 2005, SQL Server tahun 2000, atau database SQL Server 7.0.

Untuk informasi lebih lanjut tentang cara memindahkan sistem database SQL Server 2008, lihat topik "Bergerak sistem database" dalam SQL Server buku Online. Untuk melihat topik ini, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
http://msdn2.Microsoft.com/en-us/library/ms345408.aspx (http://msdn2.microsoft.com/en-us/library/ms345408.aspx)

INFORMASI LEBIH LANJUT

Langkah-langkah yang harus Anda ikuti untuk mengubah lokasi untuk beberapa sistem SQL Server database yang berbeda dari langkah-langkah yang harus Anda ikuti untuk mengubah lokasi untuk pengguna database. Kasus khusus ini dijelaskan secara terpisah.

Catatan SQL Server 7.0 sistem database tidak kompatibel dengan SQL Server 2000. Tidak melampirkan SQL Server 7.0 Master, Model, msdb atau distribusi database SQL Server 2000. Jika Anda menggunakan SQL Server 2005, Anda hanya dapat melampirkan database SQL Server 2005 untuk contoh. Semua contoh dalam artikel ini mengasumsikan bahwa SQL Server terinstal dalam D:\Mssql7 folder. Selain itu, contoh-contoh berasumsi bahwa semua file data dan file log terletak di map D:\Mssql7\Data default. Contoh-contoh memindahkan file data dan file log untuk semua database ke E:\Sqldata folder.

Data lokasi default untuk SQL 2000 dan 2005 edisi adalah sebagai berikut:

Prasyarat

  • Membuat arus cadangan semua database, terutama Master database, dari lokasi mereka saat ini.
  • Anda harus memiliki sistem administrator (sa) izin.
  • Anda harus mengetahui nama dan lokasi dari semua data file dan file log untuk database.

    Catatan Anda dapat menentukan nama dan lokasi dari semua file yang menggunakan database dengan menggunakan sp_helpfile disimpan prosedur:
    use <database_name>
    go
    sp_helpfile
    go
  • Anda harus memiliki akses eksklusif ke database Anda bergerak. Jika Anda mengalami masalah selama proses, dan jika Anda tidak dapat mengakses database yang Anda telah pindah atau jika Anda tidak dapat menjalankan SQL Server, memeriksa log kesalahan SQL Server dan SQL Server buku Online untuk lebih informasi tentang kesalahan yang Anda alami.

Bergerak pengguna database

Contoh berikut bergerak database yang bernama mydb. Database ini berisi file data satu, Mydb.mdf, dan satu log file, Mydblog.ldf. Jika database yang Anda bergerak memiliki lebih file data atau file log, menentukan berkas berpembatas koma daftar di sp_attach_db prosedur yang tersimpan. The sp_detach_db prosedur tidak mengubah terlepas dari berapa banyak file database berisi karena sp_detach_db prosedur tidak daftar file.
  1. Melepaskan database sebagai berikut:
    use master
       go
       sp_detach_db 'mydb'
       go
  2. Selanjutnya, salin file data dan file log dari lokasi saat ini (D:\Mssql7\Data) ke lokasi baru (E:\Sqldata).
  3. Melampirkan kembali database. Arahkan ke file dalam baru lokasi sebagai berikut:
    use master
      go
      sp_attach_db 'mydb','E:\Sqldata\mydbdata.mdf','E:\Sqldata\mydblog.ldf'
      go
    Memverifikasi perubahan di lokasi file dengan menggunakan sp_helpfile disimpan prosedur:
    use mydb
       go
       sp_helpfile
       go
    The nama berkas nilai-nilai kolom harus mencerminkan lokasi baru.
Catatan Artikel Basis Pengetahuan Microsoft 922804 menjelaskan masalah untuk Database SQL Server 2005 pada network attached storage. Untuk informasi lebih lanjut, klik sejumlah artikel berikut untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
922804  (http://support.microsoft.com/kb/922804/ ) FIX: Setelah Anda melepaskan database Microsoft SQL Server 2005 yang berada pada network attached storage, Anda tidak bisa kembali database SQL Server
Mempertimbangkan masalah ini. Selain itu, pertimbangkan izin yang diterapkan ke database ketika terlepas di SQL Server 2005. Untuk informasi lebih lanjut, lihat "Memisahkan dan melampirkan Database" bagian dari topik "Mengamankan Data dan file Log" dalam SQL Server buku Online. Untuk melihat topik ini, kunjungi Website Microsoft Developer Network (MSDN) berikut situs:
http://msdn2.Microsoft.com/en-us/library/ms189128.aspx (http://msdn2.microsoft.com/en-us/library/ms189128.aspx)

Bergerak sampel database

Untuk memindahkan pub sampel database dan database contoh Northwind dalam SQL Server 2000 atau SQL Server 7.0, atau untuk memindahkan sampel AdventureWorks database dan AdventureWorksDW sampel database SQL Server 2005, ikuti prosedur yang sama untuk memindahkan database pengguna.

Memindahkan model database

SQL Server 7.0

  1. Pastikan bahwa SQL Server agen tidak saat ini berjalan.
  2. Ikuti prosedur yang sama untuk memindahkan pengguna database.

SQL Server 2005 dan SQL Server 2000

Dalam SQL Server 2005 dan SQL Server 2000, Anda tidak dapat melepaskan sistem database dengan menggunakan sp_detach_db prosedur yang tersimpan. Ketika Anda mencoba untuk menjalankan sp_detach_db 'model' pernyataan, Anda menerima pesan galat berikut:
Server: Msg 7940, tingkat 16, negara bagian 1, baris 1
Sistem database master, msdb dan model Code tidak dapat dipisahkan.
Pada bergerak Model database, Anda harus menjalankan SQL Server bersama -c pilihan, -m pilihan, dan jejak bendera 3608. Jejak bendera 3608 mencegah SQL Server dari memulihkan database kecuali Master database.

Catatan Anda tidak akan dapat mengakses database pengguna apapun setelah Anda melakukan ini. Anda tidak harus melakukan operasi, selain langkah-langkah berikut, saat Anda menggunakan bendera jejak. Untuk menambahkan jejak bendera 3608 sebagai startup SQL Server parameter pada SQL Server 2000, ikuti langkah berikut:
  1. Dalam SQL Server Enterprise Manager, klik kanan server nama, dan kemudian klik Properti.
  2. Pada General tab, klik Permulaan Parameter.
  3. Menambahkan parameter baru berikut:
    -c -m-T3608
Jika Anda menggunakan SQL Server 2005, Anda dapat menggunakan SQL Server Configuration Manager untuk mengubah parameter startup SQL Server layanan. Untuk informasi lebih lanjut tentang cara mengubah parameter startup, kunjungi situs Web Microsoft Developer Network (MSDN) berikut:
http://msdn2.Microsoft.com/en-us/library/ms190737.aspx (http://msdn2.microsoft.com/en-us/library/ms190737.aspx)
Setelah Anda menambahkan -c pilihan, -m pilihan, dan jejak bendera 3608, ikuti langkah berikut:
  1. Berhenti dan kemudian restart SQL Server.
  2. Melepaskan Model database dengan menggunakan perintah berikut:
    use master
       go
       sp_detach_db 'model'
       go
  3. Memindahkan file Model.mdf dan Modellog.ldf dari D:\Mssql7\Data folder ke E:\Sqldata folder.
  4. Kembali Model database dengan menggunakan perintah berikut:
    use master
       go
       sp_attach_db 'model','E:\Sqldata\model.mdf','E:\Sqldata\modellog.ldf'
       go
  5. Hapus -c -m-T3608 dari startup parameter dalam SQL Server Enterprise Manager atau dalam SQL Server konfigurasi Manager.
  6. Berhenti dan kemudian restart SQL Server. Anda dapat memverifikasi perubahan di lokasi file dengan menggunakan sp_helpfile prosedur yang tersimpan. Sebagai contoh, gunakan perintah berikut:
    use model
       go
       sp_helpfile
       go

Memindahkan MSDB database

SQL Server 7.0

Catatan Jika Anda menggunakan prosedur ini sambil menggerakkan msdb dan Model database, Anda harus kembali Model database pertama, dan kemudian kembali msdb database. Ikuti langkah-langkah ini:
  1. Pastikan bahwa SQL Server agen tidak saat ini berjalan.
  2. Ikuti prosedur yang sama untuk memindahkan pengguna database.
Catatan Jika menjalankan SQL Server agen, sp_detach_db prosedur yang disimpan tidak akan berhasil dan Anda akan menerima pesan berikut:
Server: Msg 3702, tingkat 16, menyatakan 1, Baris 0
Tidak bisa drop database 'msdb' karena saat ini di menggunakan.
DBCC eksekusi selesai. Jika DBCC dicetak pesan galat, menghubungi Anda administrator sistem.

SQL Server 2005 dan SQL Server 2000

Untuk memindahkan MSDB database, Anda harus menjalankan SQL Server bersama-sama dengan -c pilihan, -m pilihan, dan jejak bendera 3608. Jejak bendera 3608 mencegah SQL Server dari memulihkan database kecuali Master database. Untuk menambahkan -c pilihan, -m pilihan, dan jejak bendera 3608, ikuti langkah-langkah dalam "bergerak Model database"bagian. Setelah Anda menambahkan opsi - c -m pilihan dan jejak Bendera 3608, ikuti langkah berikut:
  1. Berhenti, dan kemudian restart SQL Server.
  2. Pastikan bahwa layanan SQL Server agen tidak saat ini berjalan.
  3. Melepaskan msdb database sebagai berikut:
    use master
    go
    sp_detach_db 'msdb'
    go
  4. Memindahkan file Msdbdata.mdf dan Msdblog.ldf dari lokasi saat ini (D:\Mssql8\Data) ke lokasi baru (E:\Mssql8\Data).
  5. Hapus -c -m-T3608 dari kotak parameter startup di Enterprise Manager.
  6. Berhenti dan kemudian restart SQL Server.

    Catatan Jika Anda mencoba untuk melekatkan kembali msdb database dengan memulai SQL Server bersama -c pilihan, -m pilihan, dan jejak bendera 3608, Anda akan menerima galat berikut pesan:
    Server: Msg 615, tingkat 21, menyatakan 1, baris 1
    Tidak dapat menemukan tabel database ID 3, nama 'model'.
  7. Kembali msdb database sebagai berikut:
    use master
    go 
    sp_attach_db 'msdb','E:\Mssql8\Data\msdbdata.mdf','E:\Mssql8\Data\msdblog.ldf' 
    go
Catatan Jika Anda menggunakan prosedur ini bersama-sama dengan bergerak Model database, Anda mencoba untuk melepaskan msdb database sementara Anda melepaskan Model database. Ketika Anda melakukan ini, Anda harus kembali Model database pertama, dan kemudian kembali msdb database. Jika Anda kembali msdb database pertama, Anda menerima galat berikut pesan Anda mencoba untuk melekatkan kembali Model database:
MSG 0, tingkat 11, negara 0, baris 0
Terjadi kesalahan parah pada perintah saat ini. Hasil, jika ada, harus dibuang.
Dalam kasus ini, Anda harus melepaskan msdb database, kembali Model database, dan kemudian kembali msdb database,

Setelah Anda memindahkan msdb database, Anda mungkin menerima pesan galat berikut:
Kesalahan 229: JALANKAN izin ditolak pada objek 'ObjectName', database 'master', pemilik 'dbo'.
Masalah ini terjadi karena rantai kepemilikan telah patah. Pemilik database msdb database dan untuk master database tidak sama. Dalam hal ini kasus, kepemilikan msdb database telah berubah. Untuk mengatasi masalah ini, jalankan pernyataan Transact-SQL berikut. Anda dapat melakukan ini dengan menggunakan Osql.exe utilitas baris perintah (SQL Server 7.0 dan SQL Server 2000) atau Sqlcmd.exe utilitas baris perintah (SQL Server 2005):
USE MSDB 
Go 
EXEC sp_changedbowner 'sa' 
Go
Untuk informasi lebih lanjut, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
272424  (http://support.microsoft.com/kb/272424/ ) Rantai kepemilikan benda memeriksa di database tergantung pada login yang dipetakan ke pemilik objek

Memindahkan master database

SQL Server 7.0 dan SQL Server 2000

  1. Mengubah path file master data dan master file log di SQL Server Enterprise Manager.

    Catatan Anda juga dapat mengubah lokasi log kesalahan Sini.
  2. Klik kanan SQL Server di Enterprise Manager dan kemudian Klik Properti.
  3. Klik Startup parameter melihat entri berikut:
    -dD:\MSSQL7\data\master.mdf
       -eD:\MSSQL7\log\ErrorLog
       -lD:\MSSQL7\data\mastlog.ldf
    -d adalah lintasan yang memenuhi syarat untuk data master database file.

    -e adalah lintasan yang memenuhi syarat untuk file log kesalahan.

    -l adalah lintasan yang memenuhi syarat untuk log master database file.
  4. Mengubah nilai-nilai ini sebagai berikut:
    1. Menghapus entri saat ini untuk Master.mdf dan Mastlog.LDF file.
    2. Menambahkan entri baru yang menentukan lokasi baru:
      -dE:\SQLDATA\master.mdf
            -lE:\SQLDATA\mastlog.ldf
  5. Berhenti SQL Server.
  6. Salin file Master.mdf dan Mastlog.ldf ke baru lokasi (E:\Sqldata).
  7. Restart SQL Server.

SQL Server 2005

Untuk informasi lebih lanjut tentang bergerak master database dan basis sumber daya, kunjungi Website MSDN berikut: http://msdn2.Microsoft.com/en-us/library/ms345408.aspx (http://msdn2.microsoft.com/en-us/library/ms345408.aspx) Anda mungkin mengalami kegagalan ketika Anda memindahkan master database dan basis sumber daya. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
918695  (http://support.microsoft.com/kb/918695/ ) Anda mungkin mengalami kegagalan saat Anda menginstal SQL Server 2005 Paket Layanan 1 pada contoh SQL Server 2005

Memindahkan database Code

Anda dapat memindahkan Code file dengan menggunakan pernyataan mengubah DATABASE.
  1. Menentukan nama file yang logis untuk Code database dengan menggunakan sp_helpfile sebagai berikut:
    use tempdb
    go
    sp_helpfile
    go
    Nama logis untuk setiap file adalah terkandung dalam Nama kolom. Contoh ini menggunakan nama file default dari tempdev dan templog.
  2. Menggunakan pernyataan mengubah DATABASE, menentukan logis nama file sebagai berikut:
    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
    Anda harus menerima pesan berikut yang mengkonfirmasi perubahan:
    Pesan 1
    Berkas 'tempdev' diubah di sysaltfiles. Menghapus berkas lama setelah restart SQL Server.
    Pesan 2
    Berkas 'templog' diubah di sysaltfiles. Menghapus berkas lama setelah restart SQL Server.
  3. Menggunakan sp_helpfile dalam Code tidak akan mengkonfirmasi perubahan ini hingga Anda me-restart SQL Server.
  4. Berhenti dan kemudian restart SQL Server.

REFERENSI

Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
912397  (http://support.microsoft.com/kb/912397/ ) Layanan SQL Server tidak dapat memulai ketika Anda mengubah parameter startup misalnya berkerumun SQL Server 2000 atau SQL Server 2005 nilai yang tidak sah
274188  (http://support.microsoft.com/kb/274188/ ) "Mengatasi masalah pengguna yatim" topik di buku Online tidak lengkap
246133  (http://support.microsoft.com/kb/246133/ ) Cara mentransfer login dan password antara contoh-contoh SQL Server
168001  (http://support.microsoft.com/kb/168001/ ) Pengguna login dan hak akses pada database mungkin salah setelah database dipulihkan

Untuk informasi lebih lanjut, lihat buku-buku berikut:
Microsoft Corporation
Microsoft SQL Server 7.0 administrasi sistem pelatihan Kit
Microsoft Press, 2001
Microsoft Corporation
MCSE pelatihan Kit: Microsoft SQL Server 2000 sistem administrasi (http://www.microsoft.com/mspress/books/sampchap/4885e.aspx)
Microsoft Press, 2001
Microsoft Corporation
Microsoft SQL Server 2000 Resource Kit (http://www.microsoft.com/mspress/books/index/4939.aspx)
Microsoft Press, 2001

Berlaku bagi:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Kata kunci: 
kbsqlsetup kbinfo kbmt KB224071 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:224071  (http://support.microsoft.com/kb/224071/en-us/ )