Kh?c ph?c: Ch?m hi?u su?t ho?c b? t?c khi b?n khôi ph?c l?i b? máy cơ s? d? li?u và th?c hi?n báo cáo cùng m?t lúc trong SQL Server 2012

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 2725950 - Xem s?n ph?m mà bài này áp d?ng vào.
Microsoft phân ph?i Microsoft SQL Server 2012 b?n s?a l?i như là m?t t?i v? t?p. B?i v? các b?n s?a l?i tích l?y, m?i b?n phát hành m?i ch?a t?t c? các hotfix và t?t c? các s?a l?i b?o m?t mà đư?c đính kèm v?i trư?c SQL Server 2012 s?a ch?a phát hành.
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tri?u ch?ng

K?ch b?n 1

H?y xem xét k?ch b?n sau đây:
  • B?n khôi ph?c l?i b? máy cơ s? d? li?u Microsoft SQL Server 2012.
  • Trư?c khi k?t thúc ho?t đ?ng Khôi ph?c b? máy cơ s? d? li?u, m?t ti?n tr?nh tài li?u tham kh?o quan c?a hàng sys.database_recovery_status và yêu c?u m?t ? khóa trên b? máy cơ s? d? li?u tương t?. Ví d ?, b?n th?c hi?n các tuyên b? ch?n sau:

    SELECT * FROM sys.database_recovery_status
Trong trư?ng h?p này, ch?m hi?u su?t x?y ra trong đó m?t quá tr?nh tuyên b? ch?n waits cho đ?n khi k?t thúc quá tr?nh Khôi ph?c b? máy cơ s? d? li?u.

K?ch b?n 2

H?y xem xét k?ch b?n sau đây:
  • B?n khôi ph?c l?i b? máy cơ s? d? li?u SQL Server 2012.
  • Trư?c khi k?t thúc ho?t đ?ng Khôi ph?c b? máy cơ s? d? li?u, b?n có th? th?c hi?n các tuyên b? sau:

    IF EXISTS (SELECT * FROM sys.database_recovery_status WHERE database_id= DataBaseID AND database_guid IS NOT NULL)
    Lưu ? Các DataBaseID đ?i di?n cho ID c?a b? máy cơ s? d? li?u mà b?n th?c hi?n thao tác Khôi ph?c b? máy cơ s? d? li?u.
Trong trư?ng h?p này, m?t b? t?c x?y ra trong quá tr?nh Khôi ph?c b? máy cơ s? d? li?u. B? t?c này gây ra quá tr?nh Khôi ph?c b? máy cơ s? d? li?u không thành công.

Nguyên nhân

Hai k?ch b?n đư?c mô t? trong ph?n "Tri?u ch?ng" đư?c gây ra do cùng nguyên nhân.

Trong ph?n "Scenario1", v?n đ? x?y ra v? quá tr?nh Khôi ph?c b? máy cơ s? d? li?u đ?i h?i m?t khóa đ?c quy?n trên b? máy cơ s? d? li?u. Khi b?n th?c hi?n các báo cáo đư?c đ? c?p trong ph?n đó, m?t khóa dùng chung là c?n thi?t vào b? máy cơ s? d? li?u tương t?. V? v?y, chia s? khóa waits cho khóa đ?c quy?n cho đ?n khi các khóa đ?c quy?n đư?c phát hành.

Trong ph?n "K?ch b?n 2", khi b?n th?c hi?n các báo cáo đư?c đ? c?p trong ph?n đó, m?t khóa dùng chung là c?n thi?t vào b? máy cơ s? d? li?u tương t? và trên b?ng sys.sysdbreg . ? giai đo?n cu?i c?a quá tr?nh Khôi ph?c b? máy cơ s? d? li?u, quá tr?nh này đ?i h?i m?t khóa C?p Nh?t b?ng sys.sysdbreg . Tuy nhiên, các khóa chia s? không đư?c phát hành t? b? máy cơ s? d? li?u. V? v?y, m?t b? t?c x?y ra trên b?ng sys.sysdbreg , và quá tr?nh Khôi ph?c b? máy cơ s? d? li?u đư?c xác đ?nh là n?n nhân b? t?c.

Gi?i pháp

Cumulative update C?p nh?t thông tin

Cumulative update C?p Nh?t gói 1 cho SQL Server 2012 Service Pack 1

S?a ch?a cho v?n đ? này l?n đ?u tiên đư?c phát hành trong Cumulative Update 1. Đ? bi?t thêm chi ti?t v? làm th? nào đ? có đư?c đi?u này gói cumulative update cho SQL Server 2012 Service Pack 1, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
2765331 Cumulative update C?p Nh?t gói 1 cho SQL Server 2012 Service Pack 1
Lưu ? B?i v? các b?n xây d?ng tích l?y, m?i s?a ch?a m?i phát hành ch?a t?t c? các hotfix và t?t c? các s?a l?i b?o m?t mà đư?c đính kèm v?i trư?c SQL Server 2012 s?a ch?a phát hành. Chúng tôi khuyên b?n h?y xem xét vi?c áp d?ng s?a ch?a phát hành g?n đây nh?t có ch?a hotfix này. Đ? bi?t thêm chi ti?t, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
2772858 SQL Server 2012 xây d?ng mà đ? đư?c phát hành sau khi SQL Server 2012 Service Pack 1 đ? đư?c phát hành

Cumulative update C?p Nh?t gói 3 cho SQL Server 2012

S?a ch?a cho v?n đ? này l?n đ?u tiên đư?c phát hành trong Cumulative Update 3. Đ? bi?t thêm chi ti?t v? làm th? nào đ? có đư?c đi?u này gói cumulative update cho SQL Server, b?m s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
2723749 Cumulative update 3 cho SQL Server 2012
Lưu ? B?i v? các b?n xây d?ng tích l?y, m?i s?a ch?a m?i phát hành ch?a t?t c? các hotfix và t?t c? các s?a l?i b?o m?t mà đư?c đính kèm v?i trư?c SQL Server 2012 s?a ch?a phát hành. Chúng tôi khuyên b?n h?y xem xét vi?c áp d?ng s?a ch?a phát hành g?n đây nh?t có ch?a hotfix này. Đ? bi?t thêm chi ti?t, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
2692828 SQL Server 2012 xây d?ng mà đ? đư?c phát hành sau khi SQL Server 2012 đư?c phát hành

T?nh tr?ng

Microsoft đ? xác nh?n r?ng đây là m?t v?n đ? trong 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

Đ? làm vi?c xung quanh v?n đ? này trong k?ch b?n 2, s? d?ng m?t trong nh?ng phương pháp sau đây.
Phương pháp 1


S?a đ?i tuyên b? đ? tránh các ? khóa đư?c chia s? trên sys.sysdbreg b?ng b?ng cách s? d?ng g?i ? "NOLOCK".
IF EXISTS (SELECT * FROM sys.database_recovery_status with(NOLOCK) WHERE database_id= DataBaseID AND database_guid IS NOT NULL)
Phương pháp 2
Đ?t m?c ưu tiên b? t?c c?a tuyên b? đ? "Th?p."
SET DEADLOCK_PRIORITY LOW
IF EXISTS(SELECT * FROM sys.database_recovery_status where database_id = DataBaseID AND database_guid IS NOT NULL)
Lưu ? Khi b?n s? d?ng phương pháp th? hai đ? tránh b? t?c trong tuyên b? và trong quá tr?nh Khôi ph?c b? máy cơ s? d? li?u, các m? trong tuyên b? n?u không s? đư?c th?c hi?n.

Tham kh?o

Đ? bi?t thêm chi ti?t v? đ?c quy?n khóa, khóa đư?c chia s? và C?p Nh?t khóa, h?y vào web site MSDN sau đây:
Thông tin chung v? ch? đ? khóa
Đ? bi?t thêm thông tin, mô h?nh b?n ghi d?ch v? gia tăng cho SQL Server, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
935897 M?t mô h?nh b?n ghi d?ch v? gia tăng là có s?n t? đ?i SQL Server đ? cung c?p hotfixes cho báo cáo v?n đ?
Đ? bi?t thêm chi ti?t v? lư?c đ? đ?t tên cho SQL Server C?p Nh?t, b?m s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
822499 Các lư?c đ? đ?t tên cho gói c?p nh?t ph?n m?m Microsoft SQL Server
Đ? bi?t thêm chi ti?t v? thu?t ng? C?p nh?t ph?n m?m, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
824684 Mô t? thu?t ng? chu?n đư?c s? d?ng đ? mô t? C?p nh?t ph?n m?m Microsoft

Thu?c tính

ID c?a bài: 2725950 - L?n xem xét sau cùng: 20 Tháng Mười Một 2012 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
T? khóa: 
kbtshoot kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2725950 KbMtvi
Máy d?ch
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: 2725950

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com