Lỗi máy chủ SQL thiếu số thứ tự gia đình số 2


12

Tôi đang cố gắng khôi phục cơ sở dữ liệu cục bộ trên máy chủ của mình, nhưng tôi gặp vấn đề với bản sao lưu. Tôi đã làm một tập tin .bak nhưng mỗi lần tôi thử tải nó trên máy chủ thì nó không cho phép tôi.

Đây là một ảnh chụp màn hình của thông báo lỗi tôi nhận được:

nhập mô tả hình ảnh ở đây

Tôi đọc rằng tôi có thể sử dụng RESTORE LABELONLYđể khôi phục tệp của mình nhưng vẫn không hoạt động, mỗi khi chạy, tôi nhận được một cái gì đó như thế này:

Không thể mở thiết bị sao lưu 'C: \ Chương trình tập tin \ Microsoft SQL Server \ MSSQL10_50.JOSema \ MSSQL \ Backu \ INNOVA-T.bak'. Lỗi hệ điều hành 3 (không thể truy xuất văn bản cho lỗi này. Lý do: 15105). Msg 3013, Cấp 16, Bang 1, Dòng 1 RESTORE LABELONLY đang chấm dứt bất thường .

Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời. Cảm ơn bạn.


Cuối cùng, tôi xóa tất cả các bản sao lưu cũ của mình bằng các đường dẫn khác nhau, khôi phục một bản sao mới bằng đường dẫn duy nhất, xóa db cũ của tôi và khôi phục lại nó bằng .bak mới .
E.Rawrdríguez.Ophanim

Câu trả lời:


16

Lỗi chỉ ra rằng .baktệp của bạn chỉ là một phần của bản sao lưu. Khi bản sao lưu được viết, nó được ghi trên ba tệp. Nếu bạn có thể viết một bản sao lưu vào nhiều tệp trên nhiều ổ đĩa, nó thường sẽ hoàn thành nhanh hơn.

Theo Hỏi & Đáp về StackOverflow này , RESTORE LABELONLYsẽ giúp bạn xác nhận rằng bản sao lưu kéo dài nhiều tệp, nhưng nó sẽ không cho phép bạn thực sự khôi phục bản sao lưu - bạn cần cả ba tệp cho điều đó.

Nếu bạn có thể định vị cả ba tệp (và chắc chắn rằng chúng từ cùng một bản sao lưu), bạn sẽ có thể khôi phục bản sao lưu - bạn sẽ cần chỉ định cả ba tệp trong RESTORElệnh (hoặc thông qua khôi phục SSMS hộp thoại).

NẾU bạn không thể, nhưng bạn vẫn có quyền truy cập vào máy chủ gốc, sau đó bạn có thể thực hiện sao lưu mới.

LƯU Ý: Nếu máy chủ gốc đó có DBA, hãy làm việc với anh ta. Bạn muốn đảm bảo rằng bạn lấy bản sao lưu của mình sẽ không gây ra sự cố với bất kỳ sự sao chép, vận chuyển nhật ký hoặc khả năng khôi phục đến một thời điểm.

Nếu bạn thực sự là DBA, thì:

  • Hãy vào SQL Server Management Studio (SSMS), kết nối với máy chủ và mở rộng Cơ sở dữ liệu.
  • Nhấp chuột phải vào cơ sở dữ liệu gốc và chọn Nhiệm vụ -> Sao lưu ... Một cửa sổ hộp thoại sẽ mở ra.
  • Trên trang đầu tiên của hộp thoại:

    • Đảm bảo cơ sở dữ liệu bạn muốn sao lưu được chọn làm cơ sở dữ liệu Nguồn.
    • Đảm bảo Loại sao lưu là "Đầy đủ".
    • Kiểm tra trên "Copy Chỉ Backup".
    • Đảm bảo thành phần sao lưu được đặt thành "Cơ sở dữ liệu"
    • Ở dưới cùng của cửa sổ: nếu có bất kỳ mục nào hiện có trong danh sách "Đích", hãy xóa chúng.
    • Nhấp vào "Thêm" để thêm tệp sao lưu mới. Đảm bảo rằng bạn biết tệp sẽ ở đâu (nói chung, bạn chỉ có tùy chọn ghi vào đĩa cục bộ của máy chủ DB bằng giao diện này; nếu bạn cần ghi vào thư mục trên máy chủ dùng chung, bạn có thể thử dán vào đường dẫn UNC đầy đủ đến máy chủ được chia sẻ và nhập tên tệp mới trong hộp thoại chọn tệp. Nếu điều đó không hoạt động, chỉ định một ổ đĩa cục bộ và một tên tệp duy nhất). Ngoài ra, hãy đảm bảo tên tệp là duy nhất - bạn không muốn ghi đè lên bất kỳ tệp nào hiện có trên máy chủ.
    • Khi bạn quay lại cửa sổ hộp thoại Sao lưu ban đầu, hãy đổi sang trang "Tùy chọn" (bên trái cửa sổ).
    • Trong "Ghi đè phương tiện", chọn "Sao lưu vào bộ phương tiện mới và xóa tất cả các bộ sao lưu hiện có".
      • Vâng, điều này nghe có vẻ đáng sợ - tuy nhiên, điều này chủ yếu được sử dụng để xác định lại băng từ dự phòng để mọi dữ liệu cũ bị xóa; miễn là bạn viết vào một tên tệp mới, mọi thứ sẽ ổn.
      • Nhập một cái mới cho bộ phương tiện - một cái gì đó như "- sao lưu một lần" là đủ.
    • Bạn có thể đặt một số tùy chọn trong "Độ tin cậy"; Tôi sẽ bỏ tất cả chúng đi.
    • Bạn cũng có thể chấp nhận mặc định cho "Đặt nén sao lưu"; Có lẽ tôi đã đặt tiêu đề thành "Nén sao lưu", nhưng điều đó không quan trọng. (Nếu bạn không chạy SQL Server 2008 trở lên, thì điều này hoàn toàn không có hoặc không liên quan).
    • KHÔNG nhấp vào "OK", thay vào đó, nhấp vào mũi tên nhỏ bằng "Tập lệnh" ở đầu cửa sổ hộp thoại và chọn "Hành động tập lệnh đến Cửa sổ truy vấn mới". Khi bạn có thể xem tập lệnh, nhấp vào "Hủy".
  • Kiểm tra kỹ tập lệnh - chỉ nên có một tập tin trong đó.
  • Nếu bạn muốn ghi tệp vào một vị trí khác, bạn có thể thay đổi đường dẫn tệp trong tập lệnh. Một lần nữa, máy chủ cần có thể truy cập vị trí bạn chỉ định, vì vậy tài khoản được sử dụng để chạy dịch vụ SQL Server (và / hoặc dịch vụ SQL Server Agent) cần có quyền truy cập vào đường dẫn mà bạn muốn tệp được ghi.
  • Bây giờ, chạy tập lệnh.

Giả sử mọi việc suôn sẻ, bây giờ bạn có thể sử dụng tệp sao lưu mới của mình để thực hiện khôi phục sang vị trí khác. Một lần nữa, Máy chủ SQL bạn đang khôi phục sẽ cần có quyền truy cập vào tệp sao lưu, vì vậy bạn có thể muốn sao chép nó vào máy chủ đó.


Để cõng trên câu trả lời chi tiết này là một kịch bản trong đó bạn chỉ có một trong nhiều tệp quay lại và cũng không có cơ sở dữ liệu gốc. Giả sử bạn đã kế thừa (các) tệp sao lưu và chúng chưa hoàn tất. Một cách để khôi phục hoặc khôi phục ít nhất các tệp sao lưu một phần là phục hồi sao lưu tuyệt vời mà tôi sử dụng có tên là công cụ sao lưu SQL Stellar. stellarinfo.com/support/kb/index.php/article/ từ
samosql
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.