Pernyataan RESTORE (Transact-SQL)
Memulihkan cadangan database SQL yang diambil menggunakan perintah BACKUP .
Pilih produk
Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
* SQL Server *
SQL Server
Perintah ini memungkinkan Anda melakukan skenario pemulihan berikut:
- Pulihkan seluruh database dari cadangan database lengkap (pemulihan lengkap).
- Pulihkan bagian dari database (pemulihan parsial).
- Pulihkan file atau grup file tertentu ke database (pemulihan file).
- Pulihkan halaman tertentu ke database (pemulihan halaman).
- Memulihkan log transaksi ke database (pemulihan log transaksi).
- Mengembalikan database ke titik waktu yang diambil oleh rekam jepret database.
Sumber daya lainnya
- Untuk informasi selengkapnya tentang skenario pemulihan SQL Server, lihat Gambaran Umum Pemulihan dan Pemulihan.
- Saat memulihkan database dari instans lain, pertimbangkan informasi dari Kelola Metadata Saat Membuat Database Tersedia di Instans Server Lain (SQL Server).
- Untuk informasi selengkapnya tentang memulihkan dari Microsoft Azure Blob Storage, lihat Pencadangan dan Pemulihan SQL Server dengan Microsoft Azure Blob Storage.
- Pencadangan dan pemulihan ke penyimpanan objek yang kompatibel dengan S3 diperkenalkan di SQL Server 2022 (16.x). Untuk informasi selengkapnya tentang memulihkan dari penyimpanan objek yang kompatibel dengan S3, lihat Pencadangan dan pemulihan SQL Server dengan penyimpanan objek yang kompatibel dengan S3. Tinjau juga opsi untuk pencadangan SQL Server ke URL untuk penyimpanan objek yang kompatibel dengan S3.
Sintaks
- Untuk informasi selengkapnya tentang deskripsi argumen, lihat Argumen RESTORE.
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <change_data_capture_WITH_option>
| , <FILESTREAM_WITH_option>
| , <service_broker_WITH options>
| , <point_in_time_WITH_options-RESTORE_DATABASE>
} [ ,...n ]
]
[;]
--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
<files_or_filegroups> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
PARTIAL, NORECOVERY
[ , <general_WITH_options> [ ,...n ]
| , <point_in_time_WITH_options-RESTORE_DATABASE>
] [ ,...n ]
[;]
--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
<file_or_filegroup> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
{
[ RECOVERY | NORECOVERY ]
[ , <general_WITH_options> [ ,...n ] ]
} [ ,...n ]
[;]
--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
PAGE = 'file:page [ ,...n ]'
[ , <file_or_filegroups> ] [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
NORECOVERY
[ , <general_WITH_options> [ ,...n ] ]
[;]
--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
[ <file_or_filegroup_or_pages> [ ,...n ] ]
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <point_in_time_WITH_options-RESTORE_LOG>
} [ ,...n ]
]
[;]
--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name
<backup_device>::=
{
{ logical_backup_device_name |
@logical_backup_device_name_var }
| { DISK
| TAPE
| URL
} = { 'physical_backup_device_name' |
@physical_backup_device_name_var }
}
<files_or_filegroups>::=
{
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
| FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
| READ_WRITE_FILEGROUPS
}
<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
[ ,...n ]
| REPLACE
| RESTART
| RESTRICTED_USER | CREDENTIAL
--Backup Set Options
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_variable }
| [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]
--Media Set Options
| MEDIANAME = { media_name | @media_name_variable }
| MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
| BLOCKSIZE = { blocksize | @blocksize_variable }
--Data Transfer Options
| BUFFERCOUNT = { buffercount | @buffercount_variable }
| MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
--Error Management Options
| { CHECKSUM | NO_CHECKSUM }
| { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
--Monitoring Options
| STATS [ = percentage ]
--Tape Options.
| { REWIND | NOREWIND }
| { UNLOAD | NOUNLOAD }
<replication_WITH_option>::=
| KEEP_REPLICATION
<change_data_capture_WITH_option>::=
| KEEP_CDC
<FILESTREAM_WITH_option>::=
| FILESTREAM ( DIRECTORY_NAME = directory_name )
<service_broker_WITH_options>::=
| ENABLE_BROKER
| ERROR_BROKER_CONVERSATIONS
| NEW_BROKER
<point_in_time_WITH_options-RESTORE_DATABASE>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
| STOPBEFOREMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
}
<point_in_time_WITH_options-RESTORE_LOG>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
| STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
}
Argumen
Untuk deskripsi argumen, lihat PULIHKAN Argumen.
Tentang Skenario Pemulihan
SQL Server mendukung berbagai skenario pemulihan:
Menyelesaikan pemulihan database
Memulihkan seluruh database, dimulai dengan cadangan database lengkap, yang mungkin diikuti dengan memulihkan cadangan database diferensial (dan cadangan log). Untuk informasi selengkapnya, lihat Menyelesaikan Pemulihan Database - Model Pemulihan Sederhana atau Pemulihan Database Lengkap - Model Pemulihan Penuh.
Pemulihan file
Memulihkan file atau grup file dalam database multi-grup file. Di bawah model pemulihan sederhana, file harus termasuk dalam grup file baca-saja. Setelah pemulihan file lengkap, cadangan file diferensial dapat dipulihkan. Untuk informasi selengkapnya, lihat Pemulihan File - Model Pemulihan Penuh dan Pemulihan File - Model Pemulihan Sederhana.
Pemulihan halaman
Memulihkan halaman individual. Pemulihan halaman hanya tersedia di bawah model pemulihan penuh dan dicatat secara massal. Untuk informasi selengkapnya, lihat Memulihkan Halaman - SQL Server.
Pemulihan sepotong
Memulihkan database secara bertahap, dimulai dengan grup file utama dan satu atau beberapa grup file sekunder. Pemulihan sepotong dimulai dengan RESTORE DATABASE menggunakan opsi PARSIAL dan menentukan satu atau beberapa grup file sekunder yang akan dipulihkan. Untuk informasi selengkapnya, lihat Pemulihan Piecemeal - SQL Server.
Pemulihan saja
Memulihkan data yang sudah konsisten dengan database dan hanya perlu disediakan. Untuk informasi selengkapnya, lihat Memulihkan Database Tanpa Memulihkan Data.
Pemulihan log transaksi.
Di bawah model pemulihan penuh atau dicatat secara massal, memulihkan cadangan log diperlukan untuk mencapai titik pemulihan yang diinginkan. Untuk informasi selengkapnya tentang memulihkan cadangan log, lihat Menerapkan Pencadangan Log Transaksi - SQL Server.
Menyiapkan database ketersediaan untuk grup ketersediaan AlwaysOn
Untuk informasi selengkapnya, lihat Menyiapkan Database Sekunder secara Manual untuk Grup Ketersediaan - SQL Server.
Menyiapkan database cermin untuk pencerminan database
Untuk informasi selengkapnya, lihat Menyiapkan Database Cermin untuk Pencerminan - SQL Server.
Pemulihan Online
Catatan
Pemulihan online hanya diperbolehkan di SQL Server edisi Perusahaan.
Jika pemulihan online didukung, jika database online, pemulihan file dan pemulihan halaman secara otomatis dipulihkan secara online dan, juga, pemulihan grup file sekunder setelah tahap awal pemulihan piecemeal.
Catatan
Pemulihan online dapat melibatkan transaksi yang ditangguhkan.
Untuk informasi selengkapnya, lihat Pemulihan Online.
Pertimbangan Tambahan Tentang Opsi RESTORE
Kata Kunci RESTORE yang Dihentikan
Kata kunci berikut dihentikan di SQL Server 2008 (10.0.x):
Kata kunci yang dihentikan | Digantikan oleh... | Contoh kata kunci pengganti |
---|---|---|
LOAD | MEMULIHKAN | RESTORE DATABASE |
TRANSAKSI | LOG | RESTORE LOG |
DBO_ONLY | RESTRICTED_USER | RESTORE DATABASE ... WITH RESTRICTED_USER |
PULIHKAN LOG
RESTORE LOG dapat menyertakan daftar file untuk memungkinkan pembuatan file selama rollforward. Ini digunakan ketika cadangan log berisi rekaman log yang ditulis ketika file ditambahkan ke database.
Catatan
Untuk database yang menggunakan model pemulihan penuh atau dicatat massal, dalam kebanyakan kasus, Anda harus mencadangkan ekor log sebelum memulihkan database. Memulihkan database tanpa terlebih dahulu mencadangkan ekor log menghasilkan kesalahan, kecuali pernyataan RESTORE DATABASE berisi klausul WITH REPLACE atau WITH STOPAT, yang harus menentukan waktu atau transaksi yang terjadi setelah akhir pencadangan data. Untuk informasi selengkapnya tentang pencadangan tail-log, lihat Pencadangan Tail-Log.
Perbandingan PEMULIHAN dan NORECOVERY
Putar kembali dikendalikan oleh pernyataan RESTORE melalui [ RECOVERY | NORECOVERY ] opsi:
NORECOVERY menentukan bahwa pembatalan tidak terjadi. Ini memungkinkan rollforward untuk melanjutkan dengan pernyataan berikutnya dalam urutan.
Dalam hal ini, urutan pemulihan dapat memulihkan cadangan lain dan menggulungnya ke depan.
RECOVERY (default) menunjukkan bahwa pemutaran kembali harus dilakukan setelah rollforward selesai untuk cadangan saat ini. Tidak ada cadangan lebih lanjut yang dapat dipulihkan. Pilih opsi ini setelah Anda memulihkan semua cadangan yang diperlukan.
Memulihkan database mengharuskan seluruh kumpulan data yang dipulihkan ( kumpulan rollforward) konsisten dengan database. Jika set rollforward belum digulirkan ke depan cukup jauh agar konsisten dengan database dan PEMULIHAN ditentukan, Mesin Database akan mengeluarkan kesalahan. Untuk informasi selengkapnya tentang proses pemulihan, lihat Gambaran Umum Pemulihan dan Pemulihan (SQL Server).
Dukungan kompatibilitas
master
Cadangan , model
dan msdb
yang dibuat dengan menggunakan versi SQL Server yang lebih lama tidak dapat dipulihkan oleh SQL Server.
Catatan
Tidak ada cadangan SQL Server yang dapat dipulihkan ke versi SQL Server yang lebih lama daripada versi di mana cadangan dibuat.
Setiap versi SQL Server menggunakan jalur default yang berbeda dari versi sebelumnya. Oleh karena itu, untuk memulihkan database yang dibuat di lokasi default untuk cadangan versi sebelumnya, Anda harus menggunakan opsi MOVE. Untuk informasi tentang jalur default baru, lihat Lokasi File untuk Instans Default dan Bernama SQL Server.
Setelah Anda memulihkan database versi sebelumnya ke SQL Server, database akan dimutakhirkan secara otomatis. Biasanya, database akan segera tersedia. Namun, jika database SQL Server 2005 (9.x) memiliki indeks teks lengkap, proses peningkatan baik mengimpor, mengatur ulang, atau membangunnya kembali, tergantung pada pengaturan properti server upgrade_option . Jika opsi peningkatan diatur untuk mengimpor (upgrade_option = 2) atau membangun kembali (upgrade_option = 0), indeks teks lengkap tidak akan tersedia selama peningkatan. Bergantung pada jumlah data yang diindeks, impor dapat memakan waktu beberapa jam, dan pembangunan ulang dapat memakan waktu hingga sepuluh kali lebih lama. Perhatikan juga bahwa ketika opsi peningkatan diatur ke impor, indeks teks lengkap terkait dibangun kembali jika katalog teks lengkap tidak tersedia. Untuk mengubah pengaturan properti server upgrade_option , gunakan sp_fulltext_service.
Ketika database pertama kali dilampirkan atau dipulihkan ke instans baru SQL Server, salinan kunci master database (dienkripsi oleh kunci master layanan) belum disimpan di server. Anda harus menggunakan pernyataan OPEN MASTER KEY untuk mendekripsi kunci master database (DMK). Setelah DMK didekripsi, Anda memiliki opsi untuk mengaktifkan dekripsi otomatis di masa depan dengan menggunakan pernyataan ALTER MASTER KEY REGENERATE untuk menyediakan server dengan salinan DMK, dienkripsi dengan kunci master layanan (SMK). Ketika database telah ditingkatkan dari versi yang lebih lama, DMK harus diregenerasi untuk menggunakan algoritma AES yang lebih baru. Untuk informasi selengkapnya tentang meregenerasi DMK, lihat MENGUBAH KUNCI MASTER. Waktu yang diperlukan untuk meregenerasi kunci DMK untuk meningkatkan ke AES tergantung pada jumlah objek yang dilindungi oleh DMK. Meregenerasi kunci DMK untuk meningkatkan ke AES hanya diperlukan sekali, dan tidak berdampak pada regenerasi di masa mendatang sebagai bagian dari strategi rotasi kunci.
Keterangan
Selama pemulihan offline, jika database yang ditentukan sedang digunakan, RESTORE memaksa pengguna nonaktif setelah penundaan singkat. Untuk pemulihan online grup file non-primer, database dapat tetap digunakan kecuali ketika grup file yang sedang dipulihkan sedang diambil secara offline. Setiap data dalam database yang ditentukan digantikan oleh data yang dipulihkan.
Operasi pemulihan lintas platform, bahkan di antara jenis prosesor yang berbeda, dapat dilakukan selama kolase database didukung oleh sistem operasi.
RESTORE dapat dimulai ulang setelah kesalahan. Selain itu, Anda dapat menginstruksikan RESTORE untuk melanjutkan meskipun ada kesalahan, dan memulihkan data sebanyak mungkin (lihat CONTINUE_AFTER_ERROR
opsi ).
RESTORE tidak diperbolehkan dalam transaksi eksplisit atau implisit.
Memulihkan database yang rusak master
dilakukan menggunakan prosedur khusus. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Database Sistem.
Memulihkan database akan menghapus cache paket untuk database yang sedang dipulihkan. Menghapus cache rencana menyebabkan kompilasi ulang semua rencana eksekusi berikutnya dan dapat menyebabkan penurunan performa kueri secara tiba-tiba dan sementara.
Untuk memulihkan database ketersediaan, pertama-tama pulihkan database ke instans SQL Server, lalu tambahkan database ke grup ketersediaan.
Akselerasi dan offloading terintegrasi untuk kompresi dan dekompresi cadangan
SQL Server 2022 (16.x) memperkenalkan ALGORITHM
, yang mengidentifikasi algoritma kompresi untuk operasi. Untuk informasi selengkapnya, lihat KOMPRESI Cadangan.
Untuk informasi selengkapnya, lihat Operasi pemulihan
Pulihkan dari URL
URL adalah format yang digunakan untuk menentukan lokasi dan nama file untuk Penyimpanan Blob Microsoft Azure atau penyimpanan objek yang kompatibel dengan S3. Meskipun Azure Blob Storage adalah layanan, implementasinya mirip dengan disk dan pita untuk memungkinkan pengalaman pemulihan yang konsisten dan mulus untuk semua perangkat.
Untuk informasi selengkapnya tentang memulihkan dari Microsoft Azure Blob Storage, lihat Pencadangan dan Pemulihan SQL Server dengan Microsoft Azure Blob Storage.
Pencadangan dan pemulihan ke penyimpanan objek yang kompatibel dengan S3 diperkenalkan di SQL Server 2022 (16.x). Untuk informasi selengkapnya tentang memulihkan dari penyimpanan objek yang kompatibel dengan S3, lihat Pencadangan dan pemulihan SQL Server dengan penyimpanan objek yang kompatibel dengan S3. Tinjau juga opsi untuk pencadangan SQL Server ke URL untuk penyimpanan objek yang kompatibel dengan S3.
Interoperabilitas
Pengaturan dan pemulihan database
Selama pemulihan, sebagian besar opsi database yang diatur menggunakan ALTER DATABASE diatur ulang ke nilai yang berlaku pada saat akhir pencadangan.
Namun, menggunakan opsi WITH RESTRICTED_USER, mengambil alih perilaku ini untuk pengaturan opsi akses pengguna. Pengaturan ini selalu diatur mengikuti pernyataan RESTORE, yang menyertakan opsi WITH RESTRICTED_USER.
Memulihkan database terenkripsi
Untuk memulihkan database yang dienkripsi, Anda harus memiliki akses ke sertifikat atau kunci asimetris yang digunakan untuk mengenkripsi database. Tanpa sertifikat atau kunci asimetris, database tidak dapat dipulihkan. Akibatnya, sertifikat yang digunakan untuk mengenkripsi kunci enkripsi database harus dipertahankan selama cadangan diperlukan. Untuk informasi selengkapnya, lihat Sertifikat SQL Server dan Kunci Asimetris.
Memulihkan database yang diaktifkan untuk penyimpanan vardecimal
Pencadangan dan pemulihan berfungsi dengan benar dengan format penyimpanan vardecimal . Untuk informasi selengkapnya tentang format penyimpanan vardecimal , lihat sp_db_vardecimal_storage_format.
Memulihkan data teks lengkap
Data teks lengkap dipulihkan bersama dengan data database lain selama pemulihan lengkap. Dengan menggunakan sintaks reguler RESTORE DATABASE database_name FROM backup_device
, file teks lengkap dipulihkan sebagai bagian dari pemulihan file database.
Pernyataan RESTORE juga dapat digunakan untuk melakukan pemulihan ke lokasi alternatif, pemulihan diferensial, pemulihan file dan grup file, serta pemulihan file diferensial dan grup file data teks lengkap. Selain itu, RESTORE hanya dapat memulihkan file teks lengkap, serta dengan data database.
Catatan
Katalog teks lengkap yang diimpor dari SQL Server 2005 (9.x) masih diperlakukan sebagai file database. Untuk ini, prosedur SQL Server 2005 (9.x) untuk mencadangkan katalog teks lengkap tetap berlaku, kecuali bahwa jeda dan lanjutkan selama operasi pencadangan tidak lagi diperlukan. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Katalog Teks Lengkap.
Pulihkan ke SQL Server 2022 dan fitur penurunan otomatis
Saat memulihkan database ke SQL Server 2022 (16.x) dari versi sebelumnya, disarankan untuk dijalankan sp_updatestats
pada database, mengatur metadata yang tepat untuk fitur penurunan otomatis statistik. Untuk informasi selengkapnya, lihat opsi penurunan otomatis statistik.
Kluster Big Data SQL Server
Operasi tertentu, termasuk mengonfigurasi pengaturan server (tingkat instans), atau menambahkan database secara manual ke grup ketersediaan, memerlukan koneksi ke instans SQL Server. Operasi seperti sp_configure
, RESTORE DATABASE
, atau perintah DDL apa pun dalam database milik grup ketersediaan memerlukan koneksi ke instans SQL Server. Secara default, kluster big data tidak menyertakan titik akhir yang memungkinkan koneksi ke instans. Anda harus mengekspos titik akhir ini secara manual.
Untuk petunjuknya, lihat Menyambungkan ke database pada replika utama.
Metadata
SQL Server menyertakan tabel riwayat pencadangan dan pemulihan yang melacak aktivitas pencadangan dan pemulihan untuk setiap instans server. Saat pemulihan dilakukan, tabel riwayat cadangan juga dimodifikasi. Untuk informasi tentang tabel ini, lihat Riwayat Cadangan dan Informasi Header.
Dampak opsi REPLACE
REPLACE harus digunakan jarang dan hanya setelah pertimbangan yang hati-hati. Pemulihan biasanya mencegah penimpaan database secara tidak sengaja dengan database yang berbeda. Jika database yang ditentukan dalam pernyataan RESTORE sudah ada di server saat ini dan GUID keluarga database yang ditentukan berbeda dari GUID keluarga database yang dicatat dalam kumpulan cadangan, database tidak dipulihkan. Ini adalah perlindungan penting.
Opsi REPLACE mengambil alih beberapa pemeriksaan keamanan penting yang pemulihannya biasanya dilakukan. Pemeriksaan yang ditimpa adalah sebagai berikut:
Memulihkan database yang sudah ada dengan cadangan yang diambil dari database lain.
Dengan opsi REPLACE, pemulihan memungkinkan Anda menimpa database yang ada dengan database apa pun dalam kumpulan cadangan, bahkan jika nama database yang ditentukan berbeda dari nama database yang dicatat dalam kumpulan cadangan. Ini dapat mengakibatkan penimpaan database secara tidak sengaja oleh database yang berbeda.
Memulihkan database menggunakan model pemulihan penuh atau dicatat secara massal di mana cadangan log ekor belum diambil dan
STOPAT
opsi tidak digunakan.Dengan opsi REPLACE, Anda dapat kehilangan pekerjaan yang diterapkan, karena log yang ditulis baru-baru ini belum dicadangkan.
Menimpa file yang ada.
Misalnya, kesalahan dapat memungkinkan penimpaan file dengan jenis yang salah, seperti file .xls, atau yang sedang digunakan oleh database lain yang tidak online. Kehilangan data arbitrer dimungkinkan jika file yang ada ditimpa, meskipun database yang dipulihkan selesai.
Mengulangi pemulihan
Membatalkan efek pemulihan tidak dimungkinkan; namun, Anda dapat meniadakan efek salinan data dan rollforward dengan memulai dari awal per file. Untuk memulai kembali, pulihkan file yang diinginkan dan lakukan rollforward lagi. Misalnya, jika Anda secara tidak sengaja memulihkan terlalu banyak cadangan log dan menimpa titik henti yang dimaksudkan, Anda harus memulai ulang urutan.
Urutan pemulihan dapat dibatalkan dan dimulai ulang dengan memulihkan seluruh konten file yang terpengaruh.
Mengembalikan database ke rekam jepret database
Operasi mengembalikan database (ditentukan menggunakan opsi DATABASE_SNAPSHOT) mengambil database sumber penuh kembali ke waktu dengan mengembalikannya ke waktu rekam jepret database, yaitu, menimpa database sumber dengan data dari titik waktu yang dipertahankan dalam rekam jepret database yang ditentukan. Hanya rekam jepret yang Anda kembalikan yang saat ini dapat ada. Operasi pengembalian kemudian membangun kembali log (oleh karena itu, Anda tidak dapat meneruskan database yang dikembalikan ke titik kesalahan pengguna).
Kehilangan data terbatas pada pembaruan database sejak pembuatan rekam jepret. Metadata database yang dikembalikan sama dengan metadata pada saat pembuatan rekam jepret. Namun, mengembalikan ke rekam jepret akan menghilangkan semua katalog teks lengkap.
Mengembalikan dari rekam jepret database tidak ditujukan untuk pemulihan media. Tidak seperti kumpulan cadangan biasa, rekam jepret database adalah salinan file database yang tidak lengkap. Jika database atau rekam jepret database rusak, mengembalikan dari rekam jepret kemungkinan tidak mungkin. Selain itu, bahkan jika memungkinkan, kembali jika terjadi korupsi tidak mungkin untuk memperbaiki masalah.
Pembatasan untuk mengembalikan
Mengembalikan tidak didukung dalam kondisi berikut:
- Database sumber berisi grup file baca-saja atau terkompresi.
- File apa pun offline yang online ketika rekam jepret dibuat.
- Ada lebih dari satu rekam jepret database saat ini.
Untuk informasi selengkapnya, lihat Mengembalikan Database ke Rekam Jepret Database.
Keamanan
Operasi pencadangan dapat secara opsional menentukan kata sandi untuk set media, set cadangan, atau keduanya. Ketika kata sandi telah ditentukan pada set media atau set cadangan, Anda harus menentukan kata sandi atau kata sandi yang benar dalam pernyataan RESTORE. Kata sandi ini mencegah operasi pemulihan yang tidak sah dan penambung set cadangan yang tidak sah ke media menggunakan alat SQL Server. Namun, media yang dilindungi kata sandi dapat ditimpa oleh opsi FORMAT pernyataan BACKUP.
Penting
Perlindungan yang diberikan oleh kata sandi ini lemah. Ini dimaksudkan untuk mencegah pemulihan yang salah menggunakan alat SQL Server oleh pengguna yang berwenang atau tidak sah. Ini tidak mencegah pembacaan data cadangan dengan cara lain atau penggantian kata sandi. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Praktik terbaik untuk melindungi cadangan adalah menyimpan pita cadangan di lokasi yang aman atau mencadangkan ke file disk yang dilindungi oleh daftar kontrol akses (ACL) yang memadai. ACL harus diatur pada akar direktori tempat cadangan dibuat.
Untuk informasi khusus untuk pencadangan dan pemulihan SQL Server dengan Microsoft Azure Blob Storage, lihat Pencadangan dan Pemulihan SQL Server dengan Microsoft Azure Blob Storage.
Pencadangan dan pemulihan ke penyimpanan objek yang kompatibel dengan S3 diperkenalkan di SQL Server 2022 (16.x). Untuk informasi selengkapnya tentang memulihkan dari penyimpanan objek yang kompatibel dengan S3, lihat Pencadangan dan pemulihan SQL Server dengan penyimpanan objek yang kompatibel dengan S3. Tinjau juga opsi untuk pencadangan SQL Server ke URL untuk penyimpanan objek yang kompatibel dengan S3.
Izin
Jika database yang sedang dipulihkan tidak ada, pengguna harus memiliki CREATE DATABASE
izin untuk dapat menjalankan RESTORE. Jika database ada, izin RESTORE default ke anggota sysadmin
peran server tetap dan dbcreator
pemilik (dbo
) database (untuk FROM DATABASE_SNAPSHOT
opsi , database selalu ada).
Izin RESTORE diberikan kepada peran di mana informasi keanggotaan selalu tersedia untuk server. Karena keanggotaan peran database tetap hanya dapat diperiksa ketika database dapat diakses dan tidak rusak, yang tidak selalu terjadi ketika RESTORE dijalankan, anggota db_owner
peran database tetap tidak memiliki izin RESTORE.
Contoh
Semua contoh mengasumsikan bahwa pencadangan database lengkap telah dilakukan.
Contoh RESTORE mencakup yang berikut ini:
- J. Memulihkan database lengkap
- B. Memulihkan cadangan database penuh dan diferensial
- C. Memulihkan database menggunakan sintaks RESTART
- D. Memulihkan database dan memindahkan file
- E. Menyalin database menggunakan BACKUP dan RESTORE
- F. Memulihkan ke titik waktu menggunakan STOPAT
- G. Memulihkan log transaksi ke tanda
- H. Memulihkan menggunakan sintaks TAPE
- I. Memulihkan menggunakan sintaks FILE dan FILEGROUP
- j. Mengembalikan dari rekam jepret database
- K. Memulihkan dari Microsoft Azure Blob Storage
- L. Memulihkan dari cadangan rekam jepret
Catatan
Untuk contoh tambahan, lihat topik cara memulihkan yang tercantum dalam Gambaran Umum Pemulihan dan Pemulihan.
J. Memulihkan database lengkap
Contoh berikut memulihkan cadangan database lengkap dari AdventureWorksBackups
perangkat cadangan logis. Untuk contoh pembuatan perangkat ini, lihat Perangkat Cadangan.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorks2022Backups;
Catatan
Untuk database yang menggunakan model pemulihan penuh atau dicatat massal, SQL Server memerlukan dalam banyak kasus bahwa Anda mencadangkan ekor log sebelum memulihkan database. Untuk informasi selengkapnya, lihat Pencadangan Tail-Log.
B. Memulihkan cadangan database penuh dan diferensial
Contoh berikut memulihkan cadangan database lengkap diikuti dengan cadangan diferensial dari Z:\SQLServerBackups\AdventureWorks2022.bak
perangkat cadangan, yang berisi kedua cadangan. Cadangan database lengkap yang akan dipulihkan adalah cadangan keenam yang ditetapkan pada perangkat (FILE = 6
), dan cadangan database diferensial adalah cadangan kesembilan yang ditetapkan pada perangkat (FILE = 9
). Segera setelah cadangan diferensial dipulihkan, database dipulihkan.
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE = 6,
NORECOVERY;
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE = 9,
RECOVERY;
C. Memulihkan database menggunakan sintaks RESTART
Contoh berikut menggunakan RESTART
opsi untuk memulai ulang operasi yang RESTORE
terganggu oleh kegagalan daya server.
-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups WITH RESTART;
D. Memulihkan database dan memindahkan file
Contoh berikut memulihkan database lengkap dan log transaksi dan memindahkan database yang dipulihkan ke C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data
direktori.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH NORECOVERY,
MOVE 'AdventureWorks2022_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'AdventureWorks2022_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH RECOVERY;
E. Menyalin database menggunakan BACKUP dan RESTORE
Contoh berikut menggunakan BACKUP
pernyataan dan RESTORE
untuk membuat salinan AdventureWorks2022
database. Pernyataan ini MOVE
menyebabkan data dan file log dipulihkan ke lokasi yang ditentukan. Pernyataan RESTORE FILELISTONLY
ini digunakan untuk menentukan jumlah dan nama file dalam database yang sedang dipulihkan. Salinan baru database diberi nama TestDB
. Untuk informasi selengkapnya, lihat MEMULIHKAN FILELISTONLY.
BACKUP DATABASE AdventureWorks2022
TO AdventureWorksBackups ;
RESTORE FILELISTONLY
FROM AdventureWorksBackups ;
RESTORE DATABASE TestDB
FROM AdventureWorksBackups
WITH MOVE 'AdventureWorks2022_Data' TO 'C:\MySQLServer\testdb.mdf',
MOVE 'AdventureWorks2022_Log' TO 'C:\MySQLServer\testdb.ldf';
GO
F. Memulihkan ke titik waktu menggunakan STOPAT
Contoh berikut memulihkan database ke statusnya sejak aktif 12:00 AM
April 15, 2020
dan memperlihatkan operasi pemulihan yang melibatkan beberapa cadangan log. Pada perangkat cadangan, AdventureWorksBackups
, cadangan database lengkap yang akan dipulihkan adalah cadangan ketiga yang ditetapkan pada perangkat (FILE = 3
), cadangan log pertama adalah set cadangan keempat (FILE = 4
), dan cadangan log kedua adalah set cadangan kelima (FILE = 5
).
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;
G. Memulihkan log transaksi ke tanda
Contoh berikut memulihkan log transaksi ke tanda dalam transaksi yang ditandai bernama ListPriceUpdate
.
USE AdventureWorks2022;
GO
BEGIN TRANSACTION ListPriceUpdate
WITH MARK 'UPDATE Product list prices';
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 1.10
WHERE ProductNumber LIKE 'BK-%';
GO
COMMIT TRANSACTION ListPriceUpdate;
GO
-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 4,
RECOVERY,
STOPATMARK = 'UPDATE Product list prices';
H. Memulihkan menggunakan sintaks TAPE
Contoh berikut memulihkan cadangan database lengkap dari TAPE
perangkat cadangan.
RESTORE DATABASE AdventureWorks2022
FROM TAPE = '\\.\tape0';
I. Memulihkan menggunakan sintaks FILE dan FILEGROUP
Contoh berikut memulihkan database bernama MyDatabase
yang memiliki dua file, satu grup file sekunder, dan satu log transaksi. Database menggunakan model pemulihan penuh.
Cadangan database adalah cadangan kesembilan yang diatur di media yang ditetapkan pada perangkat cadangan logis bernama MyDatabaseBackups
. Selanjutnya, tiga cadangan log, yang berada di tiga set cadangan berikutnya (10
, , 11
dan 12
) pada perangkat, dipulihkan MyDatabaseBackups
dengan menggunakan WITH NORECOVERY
. Setelah pencadangan log terakhir dipulihkan dengan NORECOVERY
, database dipulihkan.
Catatan
Pemulihan dilakukan sebagai langkah terpisah untuk mengurangi kemungkinan Anda pulih terlalu dini, sebelum semua cadangan log telah dipulihkan. Untuk informasi selengkapnya tentang proses pemulihan, lihat Gambaran Umum Pemulihan dan Pemulihan (SQL Server).
RESTORE DATABASE
Dalam , perhatikan bahwa ada dua jenis FILE
opsi. Opsi FILE
sebelum nama perangkat cadangan menentukan nama file logis file database yang akan dipulihkan dari kumpulan cadangan; misalnya, FILE = 'MyDatabase_data_1'
. Kumpulan cadangan ini bukan cadangan database pertama dalam set media; oleh karena itu, posisinya dalam set media ditunjukkan dengan menggunakan FILE
opsi dalam WITH
klausa, FILE = 9
.
RESTORE DATABASE MyDatabase
FILE = 'MyDatabase_data_1',
FILE = 'MyDatabase_data_2',
FILEGROUP = 'new_customers'
FROM MyDatabaseBackups
WITH
FILE = 9,
NORECOVERY;
GO
-- Restore the log backups
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 10,
NORECOVERY;
GO
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 11,
NORECOVERY;
GO
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 12,
NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO
j. Kembali dari rekam jepret database
Contoh berikut mengembalikan database ke rekam jepret database. Contoh mengasumsikan bahwa hanya satu rekam jepret yang saat ini ada di database. Untuk contoh cara membuat rekam jepret database ini, lihat Membuat Rekam Jepret Database.
Catatan
Mengembalikan ke rekam jepret akan menghilangkan semua katalog teks lengkap.
USE master;
RESTORE DATABASE AdventureWorks2022 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO
Untuk informasi selengkapnya, lihat Mengembalikan Database ke Rekam Jepret Database.
K. Memulihkan dari penyimpanan Microsoft Azure Blob
Tiga contoh di bawah ini melibatkan penggunaan layanan penyimpanan Microsoft Azure. Nama Akun penyimpanan adalah mystorageaccount
. Kontainer untuk file data disebut myfirstcontainer
. Kontainer untuk file cadangan disebut mysecondcontainer
. Kebijakan akses tersimpan telah dibuat dengan hak baca, tulis, hapus, dan daftar, untuk setiap kontainer. Kredensial SQL Server dibuat menggunakan Tanda Tangan Akses Bersama yang terkait dengan Kebijakan Akses Tersimpan. Untuk informasi khusus untuk pencadangan dan pemulihan SQL Server dengan Microsoft Azure Blob Storage, lihat Pencadangan dan Pemulihan SQL Server dengan Microsoft Azure Blob Storage.
K1. Memulihkan cadangan database lengkap dari layanan penyimpanan Microsoft Azure
Cadangan database lengkap, yang terletak di , dari Sales
akan dipulihkan mysecondcontainer
ke myfirstcontainer
. Sales
saat ini tidak ada pada server.
RESTORE DATABASE Sales
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
STATS = 10;
K2. Memulihkan cadangan database lengkap dari layanan penyimpanan Microsoft Azure ke penyimpanan lokal
Cadangan database lengkap, yang terletak di , dari Sales
akan dipulihkan mysecondcontainer
ke penyimpanan lokal. Sales
saat ini tidak ada pada server.
RESTORE DATABASE Sales
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
STATS = 10;
K3. Memulihkan cadangan database lengkap dari penyimpanan lokal ke layanan penyimpanan Microsoft Azure
RESTORE DATABASE Sales
FROM DISK = 'E:\BAK\Sales.bak'
WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
STATS = 10;
L. Memulihkan dari cadangan rekam jepret
Diperkenalkan di SQL Server 2022 (16.x). Untuk informasi selengkapnya, lihat Membuat cadangan rekam jepret Transact-SQL.
L1. Memulihkan Pencadangan penuh
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY;
L2. Memulihkan cadangan dan menerapkan log transaksi
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
NORECOVERY;
RESTORE LOG Sales
FROM DISK = 'D:\MSSQL\Backup\SalesLog.trn'
WITH RECOVERY;
L3. Memulihkan dari cadangan rekam jepret dan menempatkan file database dan log di lokasi baru
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
MOVE Sales_Data TO 'D:\MSSQL\Sales.mdf',
MOVE Sales_Log TO 'D:\MSSQL\Sales_log.ldf';
Langkah berikutnya
- Gambaran Umum Pengembalian dan Pemulihan (SQL Server)
- Mencadangkan dan Memulihkan Database SQL Server
- Pencadangan dan Pemulihan Database Sistem (SQL Server)
- Memulihkan Pencadangan Database Menggunakan SQL Server Management Directory
- Cadangkan dan Pulihkan Katalog dan Indeks Teks Lengkap
- Mencadangkan dan Memulihkan Database yang Direplikasi
- CADANGAN
- Set Media, Keluarga Media, dan Kumpulan Cadangan
- PULIHKAN REWINDONLY
- PULIHKAN SECARA VERIFIKASI
- PULIHKAN FILELISTONLY (Transact-SQL)
- PULIHKAN HEADERONLY (Transact-SQL)
- Riwayat Pencadangan dan Informasi Header
* SQL Managed Instance *
Instans Terkelola Azure SQL
Perintah ini memungkinkan Anda memulihkan seluruh database dari cadangan database lengkap (pemulihan lengkap) dari akun Azure Blob Storage.
Untuk perintah RESTORE lain yang didukung, lihat:
- PULIHKAN FILELISTONLY (Transact-SQL)
- PULIHKAN HEADERONLY (Transact-SQL)
- PULIHKAN LABELONLY SAJA (Transact-SQL)
- PULIHKAN SECARA VERIFIKASI (Transact-SQL)
Penting
Untuk memulihkan dari cadangan otomatis SQL Managed Instance, lihat Pemulihan SQL Database.
Sintaks
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]
Argumen
DATABASE
Menentukan database target.
DARI URL
Menentukan satu atau beberapa perangkat cadangan yang ditempatkan pada URL yang akan digunakan untuk operasi pemulihan. Format URL digunakan untuk memulihkan cadangan dari layanan penyimpanan Microsoft Azure.
Penting
Untuk memulihkan dari beberapa perangkat saat memulihkan dari URL, Anda harus menggunakan token Tanda Tangan Akses Bersama (SAS). Untuk contoh membuat Tanda Tangan Akses Bersama, lihat Pencadangan SQL Server ke URL dan Menyederhanakan pembuatan Kredensial SQL dengan token Tanda Tangan Akses Bersama (SAS) di Azure Storage dengan Powershell.
n Adalah tempat penampung yang menunjukkan bahwa hingga 64 perangkat cadangan dapat ditentukan dalam daftar yang dipisahkan koma.
Keterangan
Sebagai prasyarat, Anda perlu membuat kredensial dengan nama yang cocok dengan url akun penyimpanan blob, dan Tanda Tangan Akses Bersama yang ditempatkan sebagai rahasia. Perintah RESTORE akan mencari kredensial menggunakan url penyimpanan blob untuk menemukan informasi yang diperlukan untuk membaca perangkat cadangan.
Operasi RESTORE bersifat asinkron - pemulihan berlanjut bahkan jika koneksi klien terputus. Jika koneksi Anda terputus, Anda dapat memeriksa tampilan sys.dm_operation_status untuk status operasi pemulihan (serta untuk database CREATE dan DROP).
Opsi database berikut diatur/ditimpa dan tidak dapat diubah nanti:
- NEW_BROKER (jika broker tidak diaktifkan dalam file .bak)
- ENABLE_BROKER (jika broker tidak diaktifkan dalam file .bak)
- AUTO_CLOSE=NONAKTIF (jika database dalam file .bak memiliki AUTO_CLOSE=AKTIF)
- RECOVERY FULL (jika database dalam file .bak memiliki model pemulihan SIMPLE atau BULK_LOGGED)
- Grup file yang dioptimalkan memori ditambahkan dan disebut XTP jika tidak ada dalam file .bak sumber. Grup file yang dioptimalkan memori yang ada diganti namanya menjadi XTP
- opsi SINGLE_USER dan RESTRICTED_USER dikonversi ke MULTI_USER
Batasan - SQL Managed Instance
Batasan ini berlaku:
- . File BAK yang berisi beberapa set cadangan tidak dapat dipulihkan.
- . File BAK yang berisi beberapa file log tidak dapat dipulihkan.
- Pemulihan akan gagal jika .bak berisi data FILESTREAM.
- Cadangan yang berisi database yang memiliki objek Dalam memori aktif tidak dapat dipulihkan ke tingkat performa Tujuan Umum.
- Cadangan yang berisi database dalam mode baca-saja saat ini tidak dapat dipulihkan.
Untuk informasi selengkapnya, lihat Azure SQL Managed Instance
Memulihkan database terenkripsi
Untuk memulihkan database yang dienkripsi, Anda harus memiliki akses ke sertifikat atau kunci asimetris yang digunakan untuk mengenkripsi database. Tanpa sertifikat atau kunci asimetris, database tidak dapat dipulihkan. Akibatnya, sertifikat yang digunakan untuk mengenkripsi kunci enkripsi database harus dipertahankan selama cadangan diperlukan. Untuk informasi selengkapnya, lihat Sertifikat SQL Server dan Kunci Asimetris.
Izin
Pengguna harus memiliki CREATE DATABASE
izin untuk dapat menjalankan RESTORE.
CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];
Izin RESTORE diberikan kepada peran di mana informasi keanggotaan selalu tersedia untuk server. Karena keanggotaan peran database tetap hanya dapat diperiksa ketika database dapat diakses dan tidak rusak, yang tidak selalu terjadi ketika RESTORE dijalankan, anggota db_owner
peran database tetap tidak memiliki izin RESTORE.
Contoh
Contoh berikut memulihkan cadangan database hanya salinan dari URL, termasuk pembuatan kredensial.
J. Memulihkan database dari empat perangkat cadangan
-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'
Kesalahan berikut diperlihatkan jika database sudah ada: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.
B. Memulihkan database yang ditentukan melalui variabel
DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';
RESTORE DATABASE @db_name
FROM URL = @url
C. Lacak kemajuan pernyataan pemulihan
SELECT query = a.text, start_time, percent_complete,
eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'
Catatan
Tampilan ini mungkin akan menampilkan dua permintaan pemulihan. Salah satunya adalah pernyataan RESTORE asli yang dikirim oleh klien, dan yang lain adalah pernyataan RESTORE latar belakang yang dijalankan bahkan jika koneksi klien gagal.
*Analytics
Sistem Platform (PDW) *
Sistem Platform Analisis
Memulihkan database pengguna Analytics Platform System (PDW) dari cadangan database ke appliance Analytics Platform System (PDW). Database dipulihkan dari cadangan yang sebelumnya dibuat oleh perintah Database CADANGAN Sistem Platform Analitik (PDW) - Sistem Platform Analitik. Gunakan operasi pencadangan dan pemulihan untuk membangun rencana pemulihan bencana, atau untuk memindahkan database dari satu appliance ke appliance lainnya.
Catatan
master
Memulihkan database sistem termasuk memulihkan informasi masuk appliance. Untuk memulihkan master
database, gunakan halaman Pulihkan Database master di alat Configuration Manager . Administrator dengan akses ke simpul Kontrol dapat melakukan operasi ini. Untuk informasi selengkapnya tentang pencadangan database Analytics Platform System (PDW), lihat "Pencadangan dan Pemulihan" dalam dokumentasi produk Analytics Platform System (PDW).
Sintaks
-- Restore the master database
-- Use the Configuration Manager tool.
Restore a full user database backup.
RESTORE DATABASE database_name
FROM DISK = '\\UNC_path\full_backup_directory'
[;]
--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
FROM DISK = '\\UNC_path\differential_backup_directory'
WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]
--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
FROM DISK = '\\UNC_path\backup_directory'
[;]
Argumen
MEMULIHKAN database_name DATABASE
Menentukan untuk memulihkan database pengguna ke database yang disebut database_name. Database yang dipulihkan bisa memiliki nama yang berbeda dari database sumber yang dicadangkan. database_name belum bisa ada sebagai database pada appliance tujuan. Untuk informasi selengkapnya tentang nama database yang diizinkan, lihat "Aturan Penamaan Objek" dalam dokumentasi produk Analytics Platform System (PDW).
Memulihkan database pengguna memulihkan cadangan database lengkap lalu secara opsional memulihkan cadangan diferensial ke appliance. Pemulihan database pengguna mencakup memulihkan pengguna database, dan peran database.
FROM DISK = '\\UNC_path\backup_directory'
Jalur jaringan dan direktori tempat Sistem Platform Analitik (PDW) akan memulihkan file cadangan. Misalnya, FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.
backup_directory Menentukan nama direktori yang berisi cadangan lengkap atau diferensial. Misalnya, Anda dapat melakukan operasi RESTORE HEADERONLY pada cadangan penuh atau diferensial.
full_backup_directory Menentukan nama direktori yang berisi cadangan lengkap.
differential_backup_directory Menentukan nama direktori yang berisi cadangan diferensial.
- Jalur dan direktori cadangan harus sudah ada dan harus ditentukan sebagai jalur konvensi penamaan universal (UNC) yang sepenuhnya memenuhi syarat.
- Jalur ke direktori cadangan tidak dapat menjadi jalur lokal dan tidak dapat menjadi lokasi pada salah satu simpul appliance Analytics Platform System (PDW).
- Panjang maksimum jalur UNC dan nama direktori cadangan adalah 200 karakter.
- Server atau host harus ditentukan sebagai alamat IP.
PULIHKAN HEADERONLY
Menentukan untuk mengembalikan hanya informasi header untuk satu cadangan database pengguna. Di antara bidang lainnya, header menyertakan deskripsi teks cadangan, dan nama cadangan. Nama cadangan tidak perlu sama dengan nama direktori yang menyimpan file cadangan.
HASIL RESTORE HEADERONLY dipola setelah hasil SQL Server RESTORE HEADERONLY. Hasilnya memiliki lebih dari 50 kolom, yang tidak semuanya digunakan oleh Analytics Platform System (PDW). Untuk deskripsi kolom dalam hasil HEADERONLY PEMULIHAN SQL Server, lihat MEMULIHKAN HEADERONLY.
Izin
Memerlukan CREATE ANY DATABASE
izin.
Memerlukan akun Windows yang memiliki izin untuk mengakses dan membaca dari direktori cadangan. Anda juga harus menyimpan nama dan kata sandi akun Windows di Analytics Platform System (PDW).
- Untuk memverifikasi kredensial sudah ada, gunakan sys.dm_pdw_network_credentials.
- Untuk menambahkan atau memperbarui kredensial, gunakan sp_pdw_add_network_credentials - Azure Synapse Analytics.
- Untuk menghapus kredensial dari Analytics Platform System (PDW), gunakan sp_pdw_remove_network_credentials - Azure Synapse Analytics.
Penanganan Kesalahan
Perintah RESTORE DATABASE menghasilkan kesalahan dalam kondisi berikut:
- Nama database yang akan dipulihkan sudah ada pada appliance target. Untuk menghindari hal ini, pilih nama database unik, atau letakkan database yang sudah ada sebelum menjalankan pemulihan.
- Ada sekumpulan file cadangan yang tidak valid di direktori cadangan.
- Izin masuk tidak cukup untuk memulihkan database.
- Analytics Platform System (PDW) tidak memiliki izin yang benar ke lokasi jaringan tempat file cadangan berada.
- Lokasi jaringan untuk direktori cadangan tidak ada, atau tidak tersedia.
- Ruang disk tidak cukup pada simpul Komputasi atau node Kontrol. Analytics Platform System (PDW) tidak mengonfirmasi bahwa ruang disk yang memadai ada pada appliance sebelum memulai pemulihan. Oleh karena itu, dimungkinkan untuk menghasilkan kesalahan di luar ruang disk saat menjalankan pernyataan RESTORE DATABASE. Ketika ruang disk tidak mencukup terjadi, Analytics Platform System (PDW) mengembalikan pemulihan.
- Appliance target tempat database sedang dipulihkan memiliki lebih sedikit simpul Komputasi daripada appliance sumber tempat database dicadangkan.
- Pemulihan database dicoba dari dalam transaksi.
Keterangan
Analytics Platform System (PDW) melacak keberhasilan pemulihan database. Sebelum memulihkan cadangan database diferensial, Analytics Platform System (PDW) memverifikasi pemulihan database lengkap berhasil diselesaikan.
Setelah pemulihan, database pengguna akan memiliki tingkat kompatibilitas database 120. Ini berlaku untuk semua database terlepas dari tingkat kompatibilitas aslinya.
Memulihkan ke appliance dengan jumlah simpul komputasi yang lebih besar
Jalankan DBCC SHRINKLOG (Azure Synapse Analytics) setelah memulihkan database dari appliance yang lebih kecil ke yang lebih besar karena redistribusi akan meningkatkan log transaksi.
Memulihkan cadangan ke appliance dengan jumlah simpul Komputasi yang lebih besar meningkatkan ukuran database yang dialokasikan sebanding dengan jumlah simpul Komputasi.
Misalnya, saat memulihkan database 60 GB dari appliance 2 node (30 GB per node) ke appliance 6 node, Analytics Platform System (PDW) membuat database 180 GB (6 node dengan 30 GB per node) pada appliance 6 node. Analytics Platform System (PDW) awalnya memulihkan database ke 2 simpul agar sesuai dengan konfigurasi sumber, lalu mendistribusikan ulang data ke semua 6 simpul.
Setelah redistribusi, setiap simpul Komputasi akan berisi data yang kurang aktual dan lebih banyak ruang kosong daripada setiap simpul Komputasi pada appliance sumber yang lebih kecil. Gunakan ruang tambahan untuk menambahkan lebih banyak data ke database. Jika ukuran database yang dipulihkan lebih besar dari yang Anda butuhkan, Anda dapat menggunakan ALTER DATABASE - PDW untuk menyusutkan ukuran file database.
Pembatasan dan batasan
Untuk batasan dan pembatasan ini, appliance sumber adalah appliance tempat cadangan database dibuat, dan appliance target adalah appliance tempat database akan dipulihkan.
- Memulihkan database tidak secara otomatis membangun kembali statistik.
- Hanya satu pernyataan RESTORE DATABASE atau BACKUP DATABASE yang dapat berjalan pada appliance pada waktu tertentu. Jika beberapa pernyataan pencadangan dan pemulihan dikirimkan secara bersamaan, appliance akan memasukkannya ke dalam antrean dan memprosesnya satu per satu.
- Anda hanya dapat memulihkan cadangan database ke appliance target Analytics Platform System (PDW) yang memiliki jumlah yang sama atau lebih node Komputasi daripada appliance sumber. Appliance target tidak boleh memiliki lebih sedikit simpul Komputasi daripada appliance sumber.
- Anda tidak dapat memulihkan cadangan yang dibuat pada appliance yang memiliki perangkat keras SQL Server 2012 PDW ke appliance yang memiliki perangkat keras SQL Server 2008 R2. Ini berlaku bahkan jika appliance awalnya dibeli dengan perangkat keras PDW SQL Server 2008 R2 dan sekarang menjalankan perangkat lunak PDW SQL Server 2012.
Penguncian
Mengambil kunci eksklusif pada objek DATABASE.
Contoh
J. Contoh RESTORE sederhana
Contoh berikut memulihkan cadangan penuh ke SalesInvoices2013
database. File cadangan disimpan di \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
direktori. Database SalesInvoices2013
tidak dapat ada pada appliance target atau perintah ini akan gagal dengan kesalahan.
RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';
B. Memulihkan cadangan penuh dan diferensial
Contoh berikut memulihkan cadangan penuh, lalu cadangan diferensial ke SalesInvoices2013
database
Pencadangan penuh database dipulihkan dari cadangan penuh yang disimpan di \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
direktori. Jika pemulihan berhasil diselesaikan, cadangan diferensial dipulihkan ke SalesInvoices2013
database. Cadangan diferensial disimpan di \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff
direktori.
RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]
C. Memulihkan header cadangan
Contoh ini memulihkan informasi header untuk cadangan \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
database . Perintah menghasilkan satu baris informasi untuk Invoices2013Full
cadangan.
RESTORE HEADERONLY
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]
Anda dapat menggunakan informasi header untuk memeriksa konten cadangan, atau untuk memastikan appliance pemulihan target kompatibel dengan appliance cadangan sumber sebelum mencoba memulihkan cadangan.