Galat SQL Server "Hilang nomor urut keluarga 2"

12

Saya mencoba memulihkan database lokal di server saya, tetapi saya mengalami masalah dengan cadangan. Saya melakukan file .bak tetapi setiap kali saya mencoba memuatnya di server itu tidak membiarkan saya.

Berikut screenshot dari pesan kesalahan yang saya terima:

masukkan deskripsi gambar di sini

Saya membaca bahwa saya dapat menggunakan RESTORE LABELONLYuntuk mengembalikan file saya tetapi masih tidak berfungsi, setiap kali saya menjalankannya saya mendapatkan sesuatu seperti ini:

Tidak dapat membuka perangkat cadangan 'C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.JOSEMA \ MSSQL \ Backu \ INNOVA-T.bak'. Kesalahan sistem operasi 3 (gagal mengambil teks untuk kesalahan ini. Alasan: 15105). Msg 3013, Level 16, Status 1, Baris 1 KEMBALIKAN LABELONLY berakhir secara tidak normal .

Bantuan apa pun akan bagus. Terima kasih.

E.Rawrdríguez.Ophanim
sumber
Pada akhirnya saya menghapus semua cadangan lama saya dengan jalur yang berbeda, mengembalikan yang baru dengan jalur unik, menghapus db lama saya dan mengembalikannya lagi dengan .bak baru .
E.Rawrdríguez.Ophanim

Jawaban:

16

Kesalahan menunjukkan bahwa .bakfile Anda hanya merupakan bagian dari cadangan. Ketika cadangan ditulis itu ditulis di tiga file. Jika Anda dapat menulis cadangan ke banyak file di banyak drive, ini seringkali akan selesai lebih cepat.

Menurut Tanya Jawab StackOverflow ini , RESTORE LABELONLYakan membantu Anda mengonfirmasi bahwa cadangan tersebut mencakup beberapa file, tetapi itu tidak akan membuat Anda benar-benar mengembalikan cadangan - Anda memerlukan ketiga file untuk itu.

Jika Anda dapat menemukan ketiga file (dan yakin file itu berasal dari proses pencadangan yang sama), Anda harus dapat memulihkan cadangan - Anda harus menentukan ketiga file dalam RESTOREperintah (atau melalui pengembalian SSMS dialog).

JIKA Anda tidak bisa, tetapi Anda masih memiliki akses ke server asli, maka Anda dapat mengambil cadangan baru.

CATATAN: Jika server asli itu memiliki DBA, bekerjalah dengannya. Anda ingin memastikan bahwa Anda mengambil cadangan Anda tidak akan menyebabkan masalah dengan replikasi, pengiriman log, atau kemampuan untuk mengembalikan ke titik waktu.

Jika Anda efektif sebagai DBA, maka:

  • Masuk ke SQL Server Management Studio (SSMS), sambungkan ke server, dan rentangkan Database.
  • Klik kanan pada database asli, dan pilih Tugas -> Cadangan ... Jendela dialog akan terbuka.
  • Di halaman pertama dialog:

    • Pastikan basis data yang ingin Anda buat cadangan dipilih sebagai basis data Sumber.
    • Pastikan Jenis Cadangan "Penuh".
    • Periksa pada "Copy Hanya Backup".
    • Pastikan komponen cadangan diatur ke "Database"
    • Di bagian bawah jendela: jika ada entri yang ada di daftar "Tujuan", hapus saja.
    • Klik "Tambah" untuk menambahkan file cadangan baru. Pastikan Anda tahu di mana file akan berada (umumnya, Anda hanya punya pilihan untuk menulis ke disk lokal server DB menggunakan antarmuka ini; jika Anda perlu menulis ke folder di server bersama, Anda dapat mencoba menempel di path lengkap UNC ke server bersama dan memasukkan nama file baru dalam dialog pemilihan file. Jika itu tidak berhasil, tentukan drive lokal dan nama file unik). Pastikan juga nama file unik - Anda tidak ingin menimpa file yang ada di server.
    • Ketika Anda kembali ke jendela dialog Cadangkan asli, ubah ke halaman "Opsi" (sisi kiri jendela).
    • Di bawah "Timpa Media", pilih "Cadangkan ke set media baru, dan hapus semua set cadangan yang ada".
      • Ya, ini terdengar menakutkan - namun, ini terutama digunakan untuk menginisialisasi ulang rekaman cadangan sehingga data lama apa pun dihapus; selama Anda menulis ke nama file baru, semuanya akan baik-baik saja.
      • Masukkan yang baru untuk set media - sesuatu seperti "- cadangan satu kali" sudah cukup.
    • Anda dapat mengatur beberapa opsi di bawah "Keandalan"; Saya hanya akan meninggalkan mereka semua.
    • Anda dapat menerima default untuk "Atur kompresi cadangan" juga; Saya mungkin akan mengatur tit ke "Compress backup", tapi itu tidak penting. (Jika Anda tidak menjalankan SQL Server 2008 atau lebih baru, maka ini tidak ada sama sekali, atau tidak relevan).
    • JANGAN klik "OK", sebagai gantinya, klik panah kecil dengan "Script" di bagian atas jendela dialog, dan pilih "Script Action to New Query Window". Setelah Anda dapat melihat skrip, klik "Batal".
  • Periksa ulang skrip - seharusnya hanya ada satu file yang disertakan di dalamnya.
  • Jika Anda ingin menulis file ke lokasi yang berbeda, Anda dapat mengubah jalur file dalam skrip. Sekali lagi, server harus dapat mengakses lokasi yang Anda tentukan, sehingga akun yang digunakan untuk menjalankan layanan SQL Server (dan / atau layanan SQL Server Agent) harus memiliki akses ke jalur tempat Anda ingin file ditulis.
  • Sekarang, jalankan skrip.

Dengan asumsi semua berjalan dengan baik, sekarang Anda dapat menggunakan file cadangan baru Anda untuk melakukan pengembalian ke lokasi lain. Sekali lagi, SQL Server yang Anda pulihkan harus memiliki akses ke file cadangan, jadi Anda mungkin ingin menyalinnya ke server itu.

RDFozz
sumber
Untuk mendukung jawaban rinci ini adalah skenario di mana Anda hanya memiliki satu dari beberapa file kembali dan tidak memiliki database asli juga. Katakanlah Anda mewarisi file cadangan dan tidak lengkap. Salah satu cara memulihkan atau memulihkan setidaknya sebagian file cadangan adalah pemulihan cadangan yang bagus yang saya gunakan disebut Stellar SQL Backup tool. stellarinfo.com/support/kb/index.php/article/…
samosql