Tại sao nhân bản cơ sở dữ liệu của tôi bị hỏng sau khi thay đổi cài đặt nhóm tệp từ RESTRICTED_USER thành MULTI_USER?


9

Môi trường của tôi là như sau: VMWare 5.5 máy chủ quan trọng MS Windows Server 2008R2 Enterprise domain và SQL Server 2008 R2 Enterprise . Lưu trữ tập trung với kết nối kênh sợi.

Tôi có phân vùng trong của tôi SQL Server DB. Tôi có 2 file groups: một với dữ liệu trực tiếp (FG1) , thứ hai với dữ liệu lịch sử (HDG) .

Nhóm tập tin thứ hai là read-only. Mỗi tháng tôi thực hiện chuyển động trong các phân vùng - tôi thêm dữ liệu mới (từ tháng trước) vào dữ liệu lịch sử. Quá trình này là tự động .

Chúng tôi đã chuyển cơ sở dữ liệu của chúng tôi đến một máy chủ mới. Ban đầu, tôi phải làm thủ tục . Trong quá trình thao tác này, gương của tôi bị hỏng (sau thao tác 3 - xem phần dưới dòng quy trình) với lỗi sau:

TRÊN MÁY CHỦ NGUYÊN TẮC:

ROW 0 trong LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid84

Message
Setting database option MULTI_USER to ON for database MYDB.

ROW 1 trong LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

Message
Error: 1453, Severity: 16, State: 1.

ROW 2 trong LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

Message
'TCP://10.201.27.154:5022', the remote mirroring partner for database 'MYDB', encountered error 823, status 3, severity 24. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.

LƯU Ý: Tôi đã thực hiện thao tác này trên máy chủ cũ nhiều lần và tôi không bao giờ gặp phải lỗi như vậy.

TRÊN MÁY CHỦ MIRROR:

ROW 1 trong LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
Error: 823, Severity: 24, State: 3.

ROW 2 trong LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
The operating system returned error 5(Access is denied.) to SQL Server during a write at offset 0000000000000000 in file 'e:\Databases\MYDB_HISTRICAL.ndf'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

QUY TRÌNH CỦA TÔI ĐANG SAU:

1. Tôi tạo một số bản sao lưu của Cơ sở dữ liệu (Bản sao lưu đầy đủ, Nhóm tệp và TLog).

2. Tôi đặt DB thành RESTRICTED_USER(để cho phép xóa chỉ đọc nhóm cờ lịch sử theo tập lệnh).

2a. Tôi xóa READ-ONLYcờ của Nhóm tệp lịch sử của mình.

3. Tôi đặt DB để MULTI_USERcho phép hoạt động bình thường của phần mềm của chúng tôi.

4. Tôi cập nhật phân vùng để dữ liệu được di chuyển nhóm tệp lịch sử.

5. Tôi lặp lại các bước 2 , 2a3 để tôi có thể đặt nhóm tệp lịch sử CHỈ ĐỌC lại.

6. Tôi thực hiện sao lưu một lần nữa.

Có ai có ý tưởng tại sao tôi nhận được lỗi đó?

EDIT: Chúng tôi nhận được cùng một vấn đề trong giai đoạn khác nhau của thủ tục. Đây là tình huống duy nhất trong đó gương bị vỡ nên tôi cho rằng vấn đề nằm trong quy trình, nhưng tôi không thể hiểu tại sao!


Error: 823, Severity: 24có vẻ như vấn đề phần cứng. Kiểm tra DISKS của bạn để xem nếu chúng đã đi xấu. Chạy checkdb trên cơ sở dữ liệu để đảm bảo chúng sạch.
Kin Shah

Tôi không chắc chắn @Kin. Chúng tôi có bộ lưu trữ chuyên dụng kèm theo quang học mới của IBM. Nó hoạt động từ khoảng 3 tháng. Và đây là lần duy nhất chúng tôi nhận được lỗi như vậy. Trên thực tế có khoảng 10 hàng có lỗi đó, nhưng tất cả đều xảy ra trong khoảng thời gian đó. Chúng tôi phá hủy gương và tạo ra nó một lần nữa. Chúng tôi có vấn đề để loại bỏ gương. Vì vậy, chúng tôi loại bỏ nó bằng tay.
Bogdan Bogdanov

Lỗi 823 with sev 24là một vấn đề phần cứng. Bạn đang thực hiện sao lưu cấp tệp thay vì sao lưu máy chủ sql gốc hoặc có phần mềm chống vi-rút nào đang chạy trên máy chủ không? Bạn nên đặt cảnh báo đại lý sql để thông báo cho bạn khi xảy ra lỗi 823 - tập lệnh này sẽ giúp bạn . Ngoài ra, 823 là một lỗi khó chịu - nó nói rằng hoạt động I / O không thành công ở cấp độ hệ điều hành và hệ thống con I / O đang gây ra tham nhũng - máy chủ sql không thực hiện trang checsum
Kin Shah

Chúng tôi làm cả hai loại sao lưu, @Kin. Chúng tôi cũng phải VmWare replicationa remote host. Điều mà tôi nhận thấy cho đến khi tôi viết câu trả lời cho bạn là chúng ta không thể phá hủy gương theo cách thông thường. Tệp đã bị khóa và chúng tôi cần stop SQL servicevà để di chuyển các tệp db vào một thư mục khác. Từ lúc đó mọi thứ đều ổn (tôi kiểm tra nhật ký bằng cách sử dụng sys.xp_readerrorlog). Một suy nghĩ khác là nếu một bản sao VmWare diễn ra ngay lúc đó, nhưng tôi không chắc điều này sẽ ảnh hưởng đến quá trình như thế nào (tôi ít biết về nó VmWare).
Bogdan Bogdanov

We do both type of backupsĐiều đó có thể là vấn đề. Ảnh chụp nhanh VM không nên được sử dụng như là một thay thế cho sao lưu máy chủ sql gốc.
Kin Shah

Câu trả lời:


0

Chúng tôi tìm thấy vấn đề. Đây là một lỗi trong SQL Server. Khi chúng ta đặt READ_WRITElệnh không được sao chép đúng vào mirrorDB. Khi tập lệnh bắt đầu thay đổi partitionstrên máy chủ nhân bản, đã xảy ra lỗi. Sau đó, quá trình đồng bộ hóa bị hủy hoại và DB trên gương bị khóa (ở suspendedtrạng thái).

Chúng tôi khắc phục sự cố bằng cách cập nhật SQL Server lên phiên bản mới nhất (phiên bản ban đầu của chúng tôi là wiout SP).

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.