Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn tạo cơ sở dữ liệu trong Microsoft SQL Server 2008 R2.
-
Bạn cập nhật tên lô-gic của cơ sở dữ liệu bằng cách sử dụng câu lệnh ALTER DATABASE.
-
Bạn thực hiện sao lưu đầy đủ cơ sở dữ liệu. Lưu ý Một tập tin sao lưu cơ sở dữ liệu đầy đủ được tạo ra sau khi sao lưu được thực hiện.
-
Bạn cố gắng khôi phục cơ sở dữ liệu từ tệp sao lưu cơ sở dữ liệu.
Trong trường hợp này, bạn nhận được thông báo lỗi sau đây:
Msg 3234, Mức 16, Tiểu bang 2, tên tệp lô-gic dòng 1 '<tên tệp lô-gic>' không phải là một phần của cơ sở dữ liệu '<tên cơ sở dữ liệu>'. Sử dụng RESTORE FILELISTONLY để liệt kê tên tệp lô-gic.Msg 3013, Cấp 16, Tiểu bang 1, Đường 1KHÔI PHỤC CƠ SỞ DỮ LIỆU đang chấmchấm bất thường.
Nếu bạn sử dụng câu lệnh RESTORE FILELISTONLY để kiểm tra tệp sao lưu, bạn sẽ thấy tên tệp lô-gic mà bạn đã cập nhật bị hỏng. Ký tự cuối cùng của tên tệp lô-gic bị cắt cụt. Ví dụ: bạn tìm cách cập nhật tên lô-gic cho cơ sở dữ liệu DB_modified. Tuy nhiên, nó không chính xác thay đổi DB_modifie trong tệp sao lưu.Lưu ý Sự cố này không xảy ra nếu bạn khởi động lại dịch SQL Server sau khi cập nhật tên tệp lô-gic.
Giải pháp
Thông tin cập nhật tích lũy
SQL Server 2008 R2
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong Bản cập nhật Tích lũy 6. Để biết thêm thông tin về cách nhận gói cập nhật tích lũy này cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
2489376 Gói Cập nhật Tích lũy 6 cho SQL Server 2008 R2 Lưu ý Vì các bản dựng tích lũy, mỗi bản phát hành bản sửa lỗi mới chứa tất cả các cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản phát hành sửa lỗi SQL Server 2008 R2 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành sửa lỗi mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
981356 Bản dựng SQL Server 2008 R2 mới được phát hành sau SQL Server 2008 R2 được phát hành
Thông tin cập nhật nóng
Hotfix được hỗ trợ có sẵn từ Microsoft. Tuy nhiên, hotfix này là nhằm sửa chữa chỉ vấn đề được mô tả trong bài viết này. Áp dụng hotfix này chỉ cho hệ thống đang gặp vấn đề mô tả trong bài viết này. Hotfix này có thể nhận được kiểm tra bổ sung. Do đó, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn nên đợi bản cập nhật phần mềm tiếp theo có chứa cập nhật nóng này.Nếu bản cập nhật nóng có sẵn để tải xuống thì có mục "Tải xuống bản cập nhật nóng sẵn dùng" ở đầu bài viết Cơ sở Kiến thức này. Nếu phần này không xuất hiện, hãy liên hệ với bộ phận Dịch vụ và Hỗ trợ Khách hàng của Microsoft để nhận hotfix. Lưu ý Nếu có sự cố khác xảy ra hoặc nếu cần khắc phục sự cố bất kỳ, bạn có thể phải tạo một yêu cầu dịch vụ riêng biệt. Chi phí hỗ trợ thông thường sẽ áp dụng cho các câu hỏi và sự cố hỗ trợ bổ sung không đủ điều kiện cho hotfix cụ thể này. Để có danh sách đầy đủ các số điện thoại của Bộ phận Dịch vụ Khách hàng và Hỗ trợ của Microsoft hoặc để tạo yêu cầu dịch vụ riêng, hãy truy cập trang web sau của Microsoft:
http://support.microsoft.com/contactus/?ws=supportLưu ý Biểu mẫu "Tải xuống cập nhật nóng" hiển thị các ngôn ngữ mà hotfix có sẵn. Nếu bạn không thấy ngôn ngữ của mình, đó là vì bản cập nhật nóng không có sẵn cho ngôn ngữ đó.
Điều kiện tiên quyết
Để áp dụng bản cập nhật nóng này, bạn phải cài đặt Microsoft SQL Server 2008 R2.
Yêu cầu khởi động lại
Bạn không phải khởi động lại máy tính sau khi áp dụng hotfix này.
Thông tin thay thế hotfix
Hotfix này không thay thế bất kỳ hotfix nào khác.
Thông tin về tệp
Phiên bản tiếng Anh của hotfix này có các thuộc tính tệp (hoặc các thuộc tính tệp mới hơn) được liệt kê trong bảng sau đây. Ngày và giờ của các tệp này được liệt kê theo Giờ chuẩn quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã được chuyển đổi thành giờ địa phương. Để tìm ra sự khác biệt giữa UTC và giờ địa phương, hãy dùng tab Múi giờ trong mục Ngày và Giờ trong Panel điều khiển.
Phiên bản Chính của Dịch vụ Cơ SQL Server 2008 R2
|
Tên tệp |
Phiên bản tệp |
Kích thước tệp |
Ngày |
Giờ |
Nền |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
26464 |
Ngày 24 tháng 12 năm 2010 |
0:33 |
x86 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
135520 |
Ngày 24 tháng 12 năm 2010 |
0:33 |
x86 |
|
etwcls.mof |
Không áp dụng |
1116328 |
Ngày 23 tháng 12 năm 2010 |
3:54 |
Không áp dụng |
|
instmsdb.sql |
Không áp dụng |
2241260 |
Ngày 22 tháng 12 năm 2010 |
20:49 |
Không áp dụng |
|
mssqlsystemresource.ldf |
Không áp dụng |
524288 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
mssqlsystemresource.mdf |
Không áp dụng |
63569920 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
13664 |
Ngày 24 tháng 12 năm 2010 |
0:31 |
x86 |
|
sqlaccess.dll |
2009.100.1755.0 |
415584 |
Ngày 24 tháng 12 năm 2010 |
0:29 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
367968 |
Ngày 24 tháng 12 năm 2010 |
0:34 |
x86 |
|
sqlagent100_msdb_upgrade.sql |
Không áp dụng |
2371245 |
Ngày 23 tháng 12 năm 2010 |
3:53 |
Không áp dụng |
|
sqlos.dll |
2009.100.1755.0 |
14688 |
Ngày 24 tháng 12 năm 2010 |
0:22 |
x86 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
14688 |
Ngày 24 tháng 12 năm 2010 |
0:21 |
x86 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4611424 |
Ngày 24 tháng 12 năm 2010 |
0:21 |
x86 |
|
sqlservr.exe |
2009.100.1755.0 |
42904928 |
Ngày 24 tháng 12 năm 2010 |
0:34 |
x86 |
|
sqsrvres.dll |
2009.100.1755.0 |
89952 |
Ngày 24 tháng 12 năm 2010 |
0:21 |
x86 |
Phiên bản Cốt lõi Dịch vụ Cơ sở dữ liệu 64 bit SQL Server 2008 R2
|
Tên tệp |
Phiên bản tệp |
Kích thước tệp |
Ngày |
Giờ |
Nền |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
31584 |
Ngày 23 tháng 12 năm 2010 |
23:40 |
x64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
262496 |
Ngày 23 tháng 12 năm 2010 |
23:40 |
x64 |
|
etwcls.mof |
Không áp dụng |
1116328 |
Ngày 23 tháng 12 năm 2010 |
3:54 |
Không áp dụng |
|
instmsdb.sql |
Không áp dụng |
2241260 |
Ngày 22 tháng 12 năm 2010 |
20:49 |
Không áp dụng |
|
mssqlsystemresource.ldf |
Không áp dụng |
524288 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
mssqlsystemresource.mdf |
Không áp dụng |
63569920 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
14176 |
Ngày 23 tháng 12 năm 2010 |
23:40 |
x64 |
|
sqlaccess.dll |
2009.100.1755.0 |
403296 |
Ngày 23 tháng 12 năm 2010 |
23:38 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
428384 |
Ngày 23 tháng 12 năm 2010 |
23:40 |
x64 |
|
sqlagent100_msdb_upgrade.sql |
Không áp dụng |
2371245 |
Ngày 23 tháng 12 năm 2010 |
3:53 |
Không áp dụng |
|
sqlos.dll |
2009.100.1755.0 |
15712 |
Ngày 23 tháng 12 năm 2010 |
23:37 |
x64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
15712 |
Ngày 23 tháng 12 năm 2010 |
23:37 |
x64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4610912 |
Ngày 23 tháng 12 năm 2010 |
23:37 |
x64 |
|
sqlservr.exe |
2009.100.1755.0 |
61957984 |
Ngày 23 tháng 12 năm 2010 |
23:40 |
x64 |
|
sqsrvres.dll |
2009.100.1755.0 |
105824 |
Ngày 23 tháng 12 năm 2010 |
23:37 |
x64 |
Itanium-architecture SQL Server 2008 R2 Database Services Core Instance
|
Tên tệp |
Phiên bản tệp |
Kích thước tệp |
Ngày |
Giờ |
Nền |
|---|---|---|---|---|---|
|
atxcore.dll |
2009.100.1755.0 |
63328 |
Ngày 23 tháng 12 năm 2010 |
23:05 |
ia64 |
|
datacollectorcontroller.dll |
2009.100.1755.0 |
477024 |
Ngày 23 tháng 12 năm 2010 |
23:05 |
ia64 |
|
etwcls.mof |
Không áp dụng |
1116328 |
Ngày 23 tháng 12 năm 2010 |
3:54 |
Không áp dụng |
|
instmsdb.sql |
Không áp dụng |
2241260 |
Ngày 22 tháng 12 năm 2010 |
20:49 |
Không áp dụng |
|
mssqlsystemresource.ldf |
Không áp dụng |
524288 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
mssqlsystemresource.mdf |
Không áp dụng |
63569920 |
Ngày 22 tháng 12 năm 2010 |
22:52 |
Không áp dụng |
|
sql_engine_core_inst_keyfile.dll |
2009.100.1755.0 |
19296 |
Ngày 23 tháng 12 năm 2010 |
23:05 |
ia64 |
|
sqlaccess.dll |
2009.100.1755.0 |
392032 |
Ngày 23 tháng 12 năm 2010 |
23:01 |
x86 |
|
sqlagent.exe |
2009.100.1755.0 |
1205600 |
Ngày 23 tháng 12 năm 2010 |
23:09 |
ia64 |
|
sqlagent100_msdb_upgrade.sql |
Không áp dụng |
2371245 |
Ngày 23 tháng 12 năm 2010 |
3:53 |
Không áp dụng |
|
sqlos.dll |
2009.100.1755.0 |
22368 |
Ngày 23 tháng 12 năm 2010 |
22:56 |
ia64 |
|
sqlscriptdowngrade.dll |
2009.100.1755.0 |
20832 |
Ngày 23 tháng 12 năm 2010 |
22:56 |
ia64 |
|
sqlscriptupgrade.dll |
2009.100.1755.0 |
4617056 |
Ngày 23 tháng 12 năm 2010 |
22:56 |
ia64 |
|
sqlservr.exe |
2009.100.1755.0 |
121762656 |
Ngày 23 tháng 12 năm 2010 |
23:09 |
ia64 |
|
sqsrvres.dll |
2009.100.1755.0 |
188768 |
Ngày 23 tháng 12 năm 2010 |
22:56 |
ia64 |
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Cách giải quyết
Để khắc phục sự cố này, hãy sử dụng một trong hai phương pháp sau đây:
-
Sau khi sửa đổi tên tệp lô-gic, hãy chạy các câu lệnh sau đây để khởi động lại cơ sở dữ liệu:ALTER DATABASE <database name> SET OFFLINEALTER DATABASE <database name> SET ONLINE
-
Khi bạn sửa đổi tên tệp lô-gic, hãy chắp thêm một ký tự khoảng trắng mờ trong tên lô-gic mới. Ví dụ: nếu bạn muốn thay đổi tên lô-gic thành DB_modified, hãy sử dụng câu lệnh sau đây để sửa đổi tên tệp lô-gic:ALTER DATABASE <database name> MODIFY FILE (NAME=N'<database name>', NEWNAME='DB_modified ') -- Chắp thêm ' vào NEWNAME
Tham khảo
Để biết thêm thông tin về câu lệnh ALTER DATABASE Transact-SQL, hãy truy cập trang web Microsoft Developer Network (MSDN) sau đây:
Thông tin chung về câu lệnh ALTER DATABASE Transact-SQLĐể biết thêm thông tin về câu lệnh RESTORE FILELISTONLY Transact-SQL, hãy truy cập trang web Microsoft Developer Network (MSDN) sau đây:
Thông tin chung về câu lệnh RESTORE FILELISTONLY Transact-SQL