Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Bạn không thể khôi phục hệ thống cơ sở dữ liệu sao lưu vào một xây dựng khác nhau của SQL Server

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:264474
TRIỆU CHỨNG
Bạn không thể khôi phục bản sao lưu của một hệ thống cơ sở dữ liệu)Thạc sĩ, mô hình, hoặc msdb) trên một máy chủ xây dựng là khác nhau từ xây dựng trên đó sao lưu được ban đầu được thực hiện. Một nỗ lực để thực hiện khôi phục như vậy gây ra thông báo lỗi sau xảy ra:
Máy chủ: Msg 3168, cấp 16, bang 1, dòng 1
Không thể khôi phục bản sao lưu của hệ thống cơ sở dữ liệu trên thiết bị d:\temp\master.bak vì nó được tạo ra bởi một phiên bản khác nhau của máy chủ (134217904) so với hệ phục vụ này (134217920).
Máy chủ: Msg 3013, cấp 16, bang 1, dòng 1
Khôi phục cơ sở dữ liệu chấm dứt bất thường.
NGUYÊN NHÂN
Có thể rằng giản đồ cơ sở dữ liệu cho cơ sở dữ liệu hệ thống thay đổi trên hệ phục vụ xây dựng. Để đảm bảo rằng sự thay đổi này trong lược đồ không gây bất kỳ sự không thống nhất, một trong những kiểm tra đầu tiên thực hiện lệnh khôi phục là một so sánh các máy chủ xây dựng số vào tệp sao lưu và số xây dựng máy chủ mà người sử dụng đang cố gắng để thực hiện khôi phục. Nếu các bản xây dựng hai là khác nhau, các thông báo lỗi xảy ra và thao tác khôi phục chấm dứt bất thường.

Chú ý Cài đặt một gói dịch vụ hoặc một hotfix xây dựng thay đổi máy chủ xây dựng số, và xây dựng máy chủ luôn luôn được gia tăng.

Dưới đây là một vài tình huống trong đó vấn đề này có thể xảy ra:
  • Người dùng cố gắng để khôi phục lại cơ sở dữ liệu hệ thống trên máy chủ a từ bản sao lưu thực hiện trên máy chủ máy chủ B. A và b trên máy chủ khác nhau xây dựng. Ví dụ, máy chủ a có thể trên một xây dựng RTM và Server B có thể vào một gói dịch vụ 1 (SP1) xây dựng.
  • Người dùng cố gắng để khôi phục lại cơ sở dữ liệu hệ thống từ bản sao lưu thực hiện trên cùng một máy chủ. Tuy nhiên, các máy chủ đã chạy một xây dựng khác nhau khi sao lưu đã xảy ra. Có nghĩa là, các máy chủ đã được nâng cấp từ bản sao lưu được thực hiện.
CÁCH GIẢI QUYẾT KHÁC
Quá trình khôi phục trong một tình huống như vậy là khá tham gia, và được sử dụng chỉ như là một phương sách cuối cùng.

Bước đầu tiên trong cố gắng để làm việc xung quanh vấn đề này là để xác định xây dựng hiện tại của máy chủ và máy chủ SQL xây dựng trên đó sao lưu được thực hiện.

Microsoft SQL Server 2000 và Microsoft SQL Server 2005 cung cấp hai phương pháp sau đây để xác định xây dựng SQL Server hiện tại:
  • Phương pháp 1
    SELECT @@version
    Mã này trở về văn bản tương tự như:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)Jul 31 2000 15:47:46Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: )(1 row(s) affected)
  • Phương pháp 2
    SELECT SERVERPROPERTY('ProductVersion')
    Mã này trở về văn bản tương tự như:
    8.00.192(1 row(s) affected)
Cho mục đích của bài viết này, số xây dựng này được tham chiếu như là các "SQL Server Build" phần còn lại của bài viết này.

Bạn có thể xác định xây dựng trên đó sao lưu xảy ra bằng cách sử dụng lệnh sau đây vào tệp sao lưu:
RESTORE HEADERONLYFROM DISK = 'd:\temp\master176.bak'
Trong đầu ra được tạo ra, sau đây là ba (3) cột cung cấp máy chủ xây dựng thông tin:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild-------------------- -------------------- --------------------8                    0                    176The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
Cho mục đích của bài viết này, số xây dựng này được tham chiếu như là các "sao lưu Build" cho phần còn lại của bài viết này.

Trong ví dụ này, các "SQL Server Build" là 8.00.192, trong khi "Backup xây dựng" là 8.00.176. Bởi vì các bản xây dựng hai khác nhau, thao tác khôi phục không được phép và thông báo lỗi 3168 xảy ra.

Quá trình khôi phục để làm việc xung quanh vấn đề này khác nhau tùy thuộc vào mà hệ thống cơ sở dữ liệu người dùng đang cố gắng khôi phục. Như một biện pháp phòng ngừa, Microsoft khuyến cáo rằng bạn thực hiện một sao lưu của tất cả của bạn hiện có databases (cơ sở dữ hệ thống và người sử dụng liệu) trước khi bạn tiến hành với bất kỳ các bước sau.

Nếu sự cố gắng khôi phục trên sự Thạc sĩ cơ sở dữ liệu, bạn có thể sử dụng các bước sau để cố gắng khôi phục thành công:
  1. Tách tất cả các người dùng databases tồn tại trên hệ thống bằng cách sử dụng các sp_detach_db thủ tục được lưu trữ. Để biết thêm thông tin về việc tách người sử dụng cơ sở dữ liệu, xem chủ đề "Gắn và tách Databases" trong SQL Server 2000 cuốn sách trực tuyến.Nếu bạn đang sử dụng SQL Server 2005, xem các "Detaching và gắn một cơ sở dữ liệu" chủ đề trong SQL Server 2005 sách trực tuyến. Như là một kiểm tra chéo, truy vấn sau đây trả về một danh sách tất cả người sử dụng cơ sở dữ liệu trên hệ thống:
    SELECT name FROM SYSDATABASESWHERE dbid > 4
  2. Sao lưu các msdbmô hình cơ sở dữ liệu trên hệ thống bằng cách sử dụng các lệnh sau đây:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIPBACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Nếu "Backup xây dựng" là lớn hơn các "SQL Server Build", cài đặt tất cả các gói cần thiết dịch vụ hoặc hotfix xây dựng để cuộn phần mềm máy chủ chuyển tiếp "Backup xây dựng" mà đã được xác định trước đó. Sau đó, đi đến bước 6.
  4. Loại bỏ SQL Server 2000 hoặc SQL Server 2005. Để biết thêm thông tin về loại bỏ SQL Server 2000, xem chủ đề "Làm thế nào để loại bỏ SQL Server 2000" trong SQL Server 2000 cuốn sách trực tuyến.
  5. Cài đặt lại SQL Server 2000 hoặc SQL Server 2005 và tất cả các gói cần thiết dịch vụ hoặc hotfix xây dựng để cuộn phần mềm máy chủ chuyển tiếp "Backup xây dựng" mà đã được xác định trước đó.
  6. Bắt đầu máy chủ trong chế độ người dùng đơn và khôi phục lại các Thạc sĩ cơ sở dữ liệu bằng cách sử dụng các tập tin sao lưu cho này xây dựng. Để được hướng dẫn về việc khôi phục các Thạc sĩ cơ sở dữ liệu, hãy tham khảo "Khôi phục lại là bậc thầy database từ bản sao lưu hiện tại" chủ đề trong SQL Server 2000 cuốn sách trực tuyến. Nếu bạn đang sử dụng SQL Server 2005, xem chủ đề "Khôi phục lại cơ sở dữ liệu chủ" trong SQL Server 2005 sách trực tuyến.
  7. Sau khi bạn khôi phục thành công các Thạc sĩ cơ sở dữ liệu, bạn phải đóng xuống và khởi động lại dịch vụ SQL Server.
  8. Nếu "Backup xây dựng" là lớn hơn các "SQL Server Build", đi đến bước 10.
  9. Nộp đơn xin lại bất kỳ gói dịch vụ hoặc hotfix xây dựng cần thiết để cuộn phần mềm máy chủ về phía trước để xây dựng SQL Server"".
  10. Khôi phục các msdbmô hình cơ sở dữ liệu từ các bản sao lưu tạo trong bước 2. Nếu bạn đang sử dụng SQL Server 2005, xem chủ đề "Khôi phục lại các mô hình và msdb cơ sở dữ liệu" trong SQL Server 2005 sách trực tuyến.
  11. Reattach tất cả người sử dụng cơ sở dữ liệu bằng cách sử dụng các sp_attach_db thủ tục được lưu trữ. Để biết thêm chi tiết về làm thế nào để reattach cơ sở dữ liệu, xem chủ đề "Gắn và tách Databases" trong SQL Server 2000 cuốn sách trực tuyến.
Bất kỳ thay đổi nào được thực hiện cho các Thạc sĩ cơ sở dữ liệu sau khi sao lưu của các Thạc sĩ đã được thực hiện là bây giờ bị mất và phải được reapplied bằng tay.
Nếu bạn cố gắng thao tác khôi phục vào các mô hình hoặc các msdb cơ sở dữ liệu, bạn có thể sử dụng các bước sau để làm việc xung quanh vấn đề này.Để minh họa cho thủ tục này với một ví dụ, bài viết này đề cập đến các máy chủ gốc mà một trong những cơ sở dữ liệu, nói msdb, là để được khôi phục như máy chủ A. Thủ tục này bao gồm việc cài đặt SQL Server trên một máy chủ khác nhau b để tránh các thông báo lỗi 3168. Giả định tất nhiên, là bạn chỉ có một bản sao lưu hợp lệ từ một xây dựng cũ cho các msdb trên máy chủ A.
  1. Cài đặt SQL Server 2000 Server B (với thiết lập collation tương tự như máy chủ A) và bất kỳ gói dịch vụ hoặc hotfix xây dựng cần thiết để có được phần mềm máy chủ để "Backup xây dựng".
  2. Sau khi SQL Server 2000 đã được cài đặt, bắt đầu dịch vụ SQL Server và cố gắng khôi phục lại các msdb cơ sở dữ liệu từ tập tin sao lưu. Các công trình khôi phục nếu máy chủ xây dựng và xây dựng trên đó sao lưu được thực hiện là giống hệt nhau.
  3. Nếu "Backup xây dựng" là lớn hơn các "Current Build", đi sang bước 5.
  4. Sau khi khôi phục thành công, nâng cấp SQL Server 2000 trên máy chủ b bằng cách áp dụng bất kỳ gói dịch vụ hoặc hotfix xây dựng cần thiết để cuộn phần mềm máy chủ về phía trước để các "Current Build".
  5. Sau khi hoàn tất nâng cấp, thực hiện một sao lưu của các msdb cơ sở dữ liệu. Bây giờ bạn có thể khôi phục từ bản sao lưu này vào máy chủ A, xem xét rằng xây dựng của các máy chủ mà sao lưu được thực hiện và các "hiện tại Build" là giống hệt nhau.
Các thủ tục cùng làm việc cho các mô hình cơ sở dữ liệu như là tốt. Một lần nữa, bất kỳ thay đổi nào được thực hiện cho các cơ sở dữ liệu từ bản sao lưu được thực hiện bị mất và phải được reapplied bằng tay.
THÔNG TIN THÊM
Nó luôn luôn là một thực hành tốt để có một chiến lược dự phòng hiện tại, có hiệu quả. Hạn chế này là chưa một ví dụ về lý do tại sao một chiến lược dự phòng tốt là quan trọng. Trong ánh sáng của hạn chế này, bạn phải thực hiện một sao lưu cơ sở dữ liệu hệ thống của bạn ngay sau khi bạn nâng cấp máy chủ của bạn khi bạn cài đặt một gói dịch vụ hoặc một xây dựng hotfix.

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 264474 - Xem lại Lần cuối: 08/21/2011 12:10:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbbackup kbprb kbmt KB264474 KbMtvi
Phản hồi