Phiên bản máy chủ SQL nào đại diện cho phiên bản nào?


7

Tôi đã đính kèm dữ liệu và tệp nhật ký mà tôi nhận được từ máy khách vào cơ sở dữ liệu SP3 của SQL Server 2005 Express. Trong quá trình nâng cấp lên SP4, tôi gặp lỗi sau:

Cơ sở dữ liệu 'MyDatabase' không thể mở được vì đây là phiên bản 622. Máy chủ này hỗ trợ phiên bản 612 trở về trước. Một đường dẫn hạ cấp không được hỗ trợ.

Có ai biết phiên bản cơ sở dữ liệu là gì và làm thế nào tôi có thể cài đặt nó không? Cơ sở dữ liệu này là của một khách hàng Canada nên có thể nó đến từ phiên bản quốc tế của SQL Server. Tôi thực sự muốn có một tài liệu tham khảo cho các phiên bản cơ sở dữ liệu để tôi biết 622 là gì. Googling nhiều dẫn đến nhiều thất vọng và không có câu trả lời.

Thêm một số thông tin. Cơ sở dữ liệu ban đầu bị hỏng. Tôi chỉ có thể khôi phục nó bằng cách sử dụng một bản sao lưu. Các tệp dữ liệu mới hơn một chút (2 ngày) vì vậy chúng tôi đang xem liệu chúng tôi có thể sử dụng chúng không.

Đã nâng cấp từ SQL Server 2005 Express lên SQL Server 2008 Express trong khi cơ sở dữ liệu bị hỏng được đính kèm. SELECT @@VERSIONbáo cáo Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86). Tôi chạy sp_resetstatus, SET EMERGENCYDBCC CHECKDBvà nhận được những điều sau đây:

Msg 946, Cấp 14, Trạng thái 1, Dòng 1
Không thể mở cơ sở dữ liệu 'MyDatabase' phiên bản 622. Nâng cấp cơ sở dữ liệu lên phiên bản mới nhất.


tham khảo Cách xác định phiên bản cơ sở dữ liệu của tệp MDF adn tìm hiểu phiên bản máy chủ SQL của bạn. Hoặc bạn có thể làm một restore headeronlyvà tìm ra nó nếu bạn có bản sao lưu.
Kin Shah

Có vẻ là một số phiên bản trung gian: social.msdn.microsoft.com/Forums/en-US/iêu
a_horse_with_no_name

Điều gì SELECT @@version;hiển thị trong máy chủ của bạn (và trong máy khách nếu có thể kiểm tra)?
ypercubeᵀᴹ

4
@AaronBertrand: 612 là SQL 2005 với hỗ trợ Vardecimal được bật. Tất cả bài 2005, SP2 sẽ báo cáo 'được hỗ trợ cao nhất' là 612, không phải 611 như 2005 RTM.
Remus Rusanu

@Remus ah vâng, tôi quên rằng cài đặt đó đã thay đổi phiên bản cơ sở dữ liệu, cảm ơn.
Aaron Bertrand

Câu trả lời:


8

622 là phiên bản trung gian nội bộ, không bao giờ được phát hành. Làm thế nào bạn có một DB phiên bản 622? Giải thích thực sự đơn giản: một bản nâng cấp bị hủy bỏ. Nhìn vào trình tự Aaron đăng:

Converting database 'x' from version 611 to the current version 655. 
Database 'x' running the upgrade step from version 611 to version 621. 
Database 'x' running the upgrade step from version 621 to version 622. 
Database 'x' running the upgrade step from version 622 to version 625.

Nếu bước cuối cùng ở trên gặp sự cố, cơ sở dữ liệu của bạn bây giờ là phiên bản 622 (mỗi bước cam kết). Phiên bản này chỉ có thể được đính kèm với SQL Server 2008 (hoặc mới hơn) để tiếp tục và hoàn thành nâng cấp. Dường như với tôi, bạn đã có SQL Server 2005 DB (v. 611) mà bạn đã gắn với SQL Server 2008 trở lên, nó đã bắt đầu nâng cấp nhưng quá trình nâng cấp không thành công ở bước 622-> 625 và bây giờ bạn đang cố gắng gắn lại đến phiên bản SQL 2005. Nó không thể được đính kèm lại, cơ hội duy nhất của bạn là cố gắng tiến về phía trước. Nếu việc nâng cấp tiếp tục thất bại, bạn sẽ phải bắt đầu lại từ cơ sở dữ liệu SQL 2005 gốc (bản sao của các tệp, bản sao lưu ...).

Tại sao nâng cấp cơ sở dữ liệu không thành công? Lý do tương tự bất kỳ hoạt động nào cũng có thể thất bại: CTRL-C, mất điện, cơ sở dữ liệu gốc bị hỏng, sự cố phần cứng, lỗi trong sản phẩm. Biết được bước nâng cấp 622-625 làm gì, các nhân viên của tôi đang ở trên một DB nguồn bị hỏng. Phục hồi từ một bản nâng cấp thất bại là một chút khó khăn hơn. Như thường lệ, có một chiến lược tốt, được thử nghiệm, sao lưu và khôi phục sẽ được đền đáp.


1
Có bao nhiêu moneys, chính xác? :-)
Aaron Bertrand

1
@AaronBertrand: đó là lỗi chính tả :) Tôi có khiếu hài hước kỳ lạ, nhiều người thậm chí không coi đó là sự hài hước ...
Remus Rusanu

4

Đây rất có thể là bản beta tạm thời hoặc bản phát hành tạm thời chưa được phát hành của SQL Server 2008. Đây là lý do tại sao tôi tin rằng điều này là đúng. Tôi có bản dựng SQL Server 2005 SP4 cao nhất có thể:

Microsoft SQL Server 2005 - 9.00.5324.00 (X64) 
  Aug 24 2012 18:28:47 
  Copyright (c) 1988-2005 Microsoft Corporation
  Developer Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

Đó là năm 2005 + SP4 + CU3 + QFE từ Bản tin bảo mật MS12-070 .

Khi tôi sao lưu cơ sở dữ liệu từ năm 2005 SP4 và khôi phục nó trên bản dựng RTM đầu tiên của năm 2008:

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) 
  Jul  9 2008 14:17:44 
  Copyright (c) 1988-2008 Microsoft Corporation
  Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Tôi nhận được các thông báo phiên bản cơ sở dữ liệu sau trong quá trình khôi phục:

Chuyển đổi cơ sở dữ liệu 'x' từ phiên bản 611 sang phiên bản hiện tại 655.
Cơ sở dữ liệu 'x' chạy bước nâng cấp từ phiên bản 611 sang phiên bản 621.
Cơ sở dữ liệu 'x' chạy bước nâng cấp từ phiên bản 621 sang phiên bản 622.
Cơ sở dữ liệu 'x' chạy bước nâng cấp từ phiên bản 622 lên phiên bản 625.
Cơ sở dữ liệu 'x' chạy bước nâng cấp từ phiên bản 625 lên phiên bản 626.
... Đã xóa 25 bước ...
Cơ sở dữ liệu 'x' chạy bước nâng cấp từ phiên bản 651 lên phiên bản 652.
Cơ sở dữ liệu ' x 'chạy bước nâng cấp từ phiên bản 652 lên phiên bản 653.
Cơ sở dữ liệu' x 'chạy bước nâng cấp từ phiên bản 653 lên phiên bản 654.
Cơ sở dữ liệu' x 'chạy bước nâng cấp từ phiên bản 654 lên phiên bản 655.

Bạn sẽ nhận thấy rằng 622 là bước thứ hai trong số rất nhiều bước trên con đường giữa bất kỳ bản dựng năm 2005 và bản chính thức đầu tiên, bản dựng công khai năm 2008. Vì không có bản dựng CTP hoặc bản dựng tạm thời vào cuối chu kỳ phát hành, điều này dẫn đến Tôi tin rằng đây là bản dựng rất sớm vào đầu chu kỳ phát hành năm 2008.

Điều bí ẩn hơn nhiều là cách bạn có một phiên bản SQL Server 2008 nghĩ rằng đó là phiên bản 612 (như Remus đã nhắc nhở chúng tôi, là năm 2005 với tùy chọn vardecimal được bật), trong khi @@VERSION- ít nhất là theo câu hỏi - trả về 10.0 .1600,22 (đó là 2008 RTM). Tôi nghi ngờ bạn đang cố gắng khôi phục và chạy SELECT @@VERSION;trên hai máy chủ khác nhau.

Tôi sẽ đề nghị bạn áp dụng Gói dịch vụ 3Cập nhật tích lũy 14 , sau đó thử khôi phục lại cơ sở dữ liệu của bạn cho máy chủ 2008. Điều này sẽ đưa phiên bản cơ sở dữ liệu của bạn lên tới 655 (hoặc 662/663 nếu bạn bật hỗ trợ phân vùng 15K) và tại thời điểm đó, bạn có thể khôi phục cơ sở dữ liệu của mình với phiên bản 622 không có vấn đề gì (miễn là nó không bị hỏng trong một số nâng cấp tinh vi, như Remus đề xuất).

Bạn lấy bản dựng SQL Server ở đâu? Và tại sao bạn lại chạy x86? Đó là năm 2014. Hệ điều hành cơ bản có thực sự là 32-bit không?


2

Nói một cách đơn giản, cơ sở dữ liệu của bạn đến từ phiên bản SQL Server mới hơn, sau đó bạn đang cố gắng đính kèm và SQL Server không hỗ trợ điều này. Bạn chỉ có thể đính kèm cơ sở dữ liệu vào các phiên bản SQL Server giống hoặc mới hơn so với bạn nhận được từ đó.

Nếu bạn chỉ cần truy cập cơ sở dữ liệu và nó không lớn hơn 10GB, bạn có thể tải xuống SQL Server Express và đính kèm cơ sở dữ liệu vào đây. Lưu ý, điều này sẽ nâng cấp cơ sở dữ liệu lên phiên bản đó, vì vậy tôi khuyên bạn nên tạo bản sao lưu của các tệp đó. NẾU cơ sở dữ liệu của bạn lớn hơn 10GB, bạn sẽ cần SQL Server Standard, Enterprise hoặc Developer để đính kèm.


Vì các phiên bản 2008 có số phiên bản nội bộ là 661, máy chủ đó có thể là phiên bản nào? Một số phiên bản quảng cáo (CTP?) Trước phiên bản RTM 2008?
ypercubeᵀᴹ

Nếu tôi phải mạo hiểm đoán, 2005 SP4. Nhưng đó thực sự chỉ là dự đoán
Mike Fal

Năm 2008 là 655; 2008 R2 là 661 (trừ khi bạn kích hoạt hỗ trợ phân vùng 15K, và sau đó có thể là 662 hoặc 663, tùy thuộc vào nguồn gốc của cơ sở dữ liệu).
Aaron Bertrand

@AaronBertrand Rất tiếc, thnx để chỉnh sửa.
ypercubeᵀᴹ
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.