Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Data dan file log transaksi database dapat dilepas dan kemudian dipasang kembali ke instans SQL Server yang sama atau lain. Melepaskan dan melampirkan database berguna jika Anda ingin mengubah database ke instans SQL Server yang berbeda di komputer yang sama atau untuk memindahkan database.
Izin
Izin akses file diatur selama beberapa operasi database, termasuk melepaskan atau melampirkan database.
Penting
Kami menyarankan agar Anda tidak melampirkan atau memulihkan database dari sumber yang tidak diketahui atau tidak tepercaya. Database tersebut dapat berisi kode berbahaya yang mungkin menjalankan kode Transact-SQL yang tidak diinginkan atau menyebabkan kesalahan dengan memodifikasi skema atau struktur database fisik. Sebelum Anda menggunakan database dari sumber yang tidak diketahui atau tidak tepercaya, jalankan DBCC CHECKDB (Transact-SQL) pada database di server nonproduksi dan juga periksa kode, seperti prosedur tersimpan atau kode lain yang ditentukan pengguna, dalam database.
Melepas database
Melepaskan database menghapusnya dari instans SQL Server tetapi membiarkan database tetap utuh dalam file data dan file log transaksinya. File-file ini kemudian dapat digunakan untuk melampirkan database ke instans SQL Server apa pun, termasuk server tempat database dicopot.
Anda tidak dapat melepaskan database jika salah satu hal berikut ini benar:
Database direplikasi dan diterbitkan. Jika direplikasi, database harus tidak diterbitkan. Sebelum dapat mencopotnya, Anda harus menonaktifkan penerbitan dengan menjalankan sp_replicationdboption.
Catatan
Jika Anda tidak dapat menggunakan
sp_replicationdboption, Anda dapat menghapus replikasi dengan menjalankan sp_removedbreplication.Rekam jepret database ada di database.
Sebelum dapat melepaskan database, Anda harus menghilangkan semua rekam jepretnya. Untuk informasi selengkapnya, lihat Menghilangkan Rekam Jepret Database (Transact-SQL).
Catatan
Rekam jepret database tidak dapat dilepas atau dilampirkan.
Database adalah bagian dari grup ketersediaan AlwaysOn.
Database tersebut tidak dapat dilepaskan sebelum dihapus dari grup ketersediaan. Untuk informasi selengkapnya, lihat Menghapus database utama dari grup ketersediaan Always On.
Basis data ini berada dalam sesi pencerminan database.
Database tidak dapat dilepaskan kecuali sesi dihentikan. Untuk informasi selengkapnya, lihat Menghapus Pencerminan Database (SQL Server).
Basis data tersebut bermasalah. Database tersangka tidak dapat dilepas; sebelum Anda dapat melepaskannya, Anda harus memasukkannya ke dalam mode darurat. Untuk informasi selengkapnya tentang cara memasukkan database ke dalam mode darurat, lihat ALTER DATABASE (Transact-SQL).
Database adalah database sistem.
Cadangkan, pulihkan, dan lepaskan
Melepas database baca-saja akan menyebabkan hilangnya informasi tentang basis diferensial untuk cadangan diferensial. Untuk informasi selengkapnya, lihat Pencadangan diferensial (SQL Server).
Menangani kesalahan pelepasan
Kesalahan yang dihasilkan saat melepaskan database dapat mencegah database menutup dengan bersih dan log transaksi dibangun kembali. Jika Anda menerima pesan kesalahan, lakukan tindakan korektif berikut:
Memasang kembali semua file yang terkait dengan database, bukan hanya file utama.
Atasi masalah yang menyebabkan pesan kesalahan.
Lepaskan database lagi.
Melampirkan database
Anda dapat melampirkan database SQL Server yang disalin atau dilepas. Saat Anda melampirkan database SQL Server 2005 (9.x) yang berisi file katalog teks lengkap ke instans server SQL Server, file katalog dilampirkan dari lokasi sebelumnya bersama dengan file database lainnya, sama seperti di SQL Server 2005 (9.x). Untuk informasi selengkapnya, lihat Memutakhirkan Pencarian Teks Lengkap.
Saat Anda melampirkan database, semua file data (.mdf dan .ndf file) harus tersedia. Jika ada file data yang memiliki jalur yang berbeda dari kapan database pertama kali dibuat atau terakhir dilampirkan, Anda harus menentukan jalur file saat ini.
Catatan
Jika file data utama yang dilampirkan bersifat baca-saja, Mesin Database mengasumsikan bahwa database bersifat baca-saja.
Ketika database terenkripsi pertama kali dilampirkan ke instans SQL Server, pemilik database harus membuka kunci master database (DMK) dengan menjalankan pernyataan berikut: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'. Kami menyarankan agar Anda mengaktifkan dekripsi otomatis DMK dengan menjalankan pernyataan berikut: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Untuk informasi selengkapnya, lihat CREATE MASTER KEY (Transact-SQL) dan ALTER MASTER KEY (Transact-SQL).
Persyaratan untuk melampirkan file log sebagian bergantung pada apakah database bersifat baca-tulis atau hanya-baca, sebagai berikut:
Untuk database baca-tulis, Anda biasanya dapat melampirkan file log di lokasi baru. Namun, dalam beberapa kasus, memasang kembali database memerlukan file log yang ada. Oleh karena itu, penting untuk selalu menyimpan semua file log yang terlepas sampai database berhasil dilampirkan tanpa file tersebut.
Jika database baca-tulis memiliki satu file log dan Anda tidak menentukan lokasi baru untuk file log, operasi lampirkan akan terlihat di lokasi lama untuk file tersebut. Jika file log lama ditemukan, file tersebut akan digunakan baik basis data dimatikan dengan benar maupun tidak. Namun, jika file log lama tidak ditemukan, dan jika basis data dimatikan dengan benar serta tidak memiliki rantai log aktif, operasi pelampiran akan mencoba membuat file log baru untuk basis data tersebut.
Jika file data utama yang dilampirkan bersifat baca-saja, Mesin Database mengasumsikan bahwa database bersifat baca-saja. Untuk database hanya-baca, file log atau beberapa file log harus tersedia di lokasi yang ditentukan dalam file utama database tersebut. File log baru tidak dapat dibuat karena SQL Server tidak dapat memperbarui lokasi log yang disimpan dalam file utama.
Perubahan metadata pada melampirkan database
Ketika database baca-saja dilepas dan kemudian dipasang kembali, informasi cadangan tentang basis diferensial saat ini hilang.
basis diferensial adalah pencadangan penuh terbaru dari semua data dalam basis data atau dalam subset file atau kelompok file dari basis data. Tanpa informasi cadangan dasar, database master tidak lagi tersinkron dengan database baca-saja, sehingga cadangan diferensial yang diambil setelah itu mungkin memberikan hasil yang tidak diharapkan. Oleh karena itu, jika Anda menggunakan cadangan diferensial dengan database baca-saja, Anda harus membuat basis diferensial baru dengan mengambil cadangan penuh setelah Anda memasang kembali database. Untuk informasi tentang cadangan diferensial, lihat Pencadangan diferensial (SQL Server).
Saat dilampirkan, inisialisasi database terjadi. Umumnya, melampirkan database menempatkannya dalam keadaan yang sama saat dilepas atau disalin. Namun, operasi melampirkan dan melepaskan keduanya menonaktifkan rantai kepemilikan lintas-database untuk basis data tersebut. Untuk informasi tentang cara mengaktifkan perangkaian, lihat Opsi Konfigurasi Server Perangkaian Kepemilikan Lintas Basis Data.
Penting
Secara default dan untuk keamanan, opsi untuk is_broker_enabled, is_honor_broker_priority_on, dan is_trustworthy_on diatur ke NONAKTIF setiap kali database dilampirkan. Untuk informasi tentang cara mengatur opsi ini, lihat ALTER DATABASE (Transact-SQL). Untuk informasi selengkapnya tentang metadata, lihat Mengelola Metadata Saat Membuat Database Tersedia di Server Lain.
Cadangkan, pulihkan, dan lampirkan
Seperti database apa pun yang sepenuhnya atau sebagian offline, database dengan memulihkan file tidak dapat dilampirkan. Jika Anda menghentikan urutan pemulihan, Anda bisa melampirkan database. Kemudian, Anda dapat memulai ulang urutan pemulihan.
Melampirkan database ke instans server lain
Penting
Database yang dibuat oleh versi SQL Server yang lebih baru tidak dapat dilampirkan di versi sebelumnya. Ini mencegah database digunakan secara fisik dengan versi mesin basis data yang lebih lama. Namun, ini berkaitan dengan status metadata dan tidak memengaruhi tingkat kompatibilitas database. Untuk informasi selengkapnya, lihat ALTER DATABASE (Transact-SQL) tingkat kompatibilitas.
Untuk memberikan pengalaman yang konsisten kepada pengguna dan aplikasi, saat Anda melampirkan database ke instans server lain, Anda mungkin harus membuat ulang beberapa atau semua metadata untuk database pada instans server lainnya. Metadata ini mencakup seperti login dan pekerjaan. Untuk informasi selengkapnya, lihat Mengelola Metadata Saat Membuat Database Tersedia di Server Lain.
Tugas terkait
| Tugas | Artikel |
|---|---|
| Melepas database |
-
sp_detach_db (T-SQL) - Melepas database |
| Melampirkan database | - CREATE DATABASE - Melampirkan Database - sp_attach_db (T-SQL) - sp_attach_single_file_db (T-SQL) |
| Memutakhirkan database menggunakan operasi pelepasan dan pemasangan | - Memutakhirkan database dengan melepaskan dan melampirkannya (Transact-SQL) |
| Memindahkan database menggunakan operasi lepaskan dan lampirkan | - Memindahkan database menggunakan lepaskan dan lampirkan (Transact-SQL) |
| Menghapus rekam jepret database | - Menghapus Snapshot Database (Transact-SQL) |