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

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

masterCadangan , 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.

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 Koneksi 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.

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:

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.

[Contoh teratas]

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;

[Contoh teratas]

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;

[Contoh teratas]

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;

[Contoh teratas]

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

[Contoh teratas]

F. Memulihkan ke titik waktu menggunakan STOPAT

Contoh berikut memulihkan database ke statusnya sejak aktif 12:00 AMApril 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;

[Contoh teratas]

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';

[Contoh teratas]

H. Memulihkan menggunakan sintaks TAPE

Contoh berikut memulihkan cadangan database lengkap dari TAPE perangkat cadangan.

RESTORE DATABASE AdventureWorks2022
    FROM TAPE = '\\.\tape0';

[Contoh teratas]

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, , 11dan 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 DATABASEDalam , 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

[Contoh teratas]

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.

[Contoh teratas]

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 mysecondcontainerke 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 mysecondcontainerke 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';

[Contoh teratas]

Langkah berikutnya

* 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:

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).

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\Invoices2013Fulldatabase . 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.

Langkah berikutnya