ทำไมมิเรอร์ฐานข้อมูลของฉันแตกหลังจากเปลี่ยนการตั้งค่ากลุ่มไฟล์จาก RESTRICTED_USER เป็น MULTI_USER


9

สภาพแวดล้อมของฉันคือต่อไปนี้: VMWare 5.5เซิร์ฟเวอร์ vitalized MS Windows Server 2008R2 องค์กรโดเมนและSQL Server 2008 R2 องค์กร จัดเก็บข้อมูลส่วนกลางด้วยการเชื่อมต่อช่องสัญญาณไฟเบอร์

SQL Server DBฉันมีพาร์ทิชันในของฉัน ฉันมี 2 file groups: หนึ่งเดียวกับข้อมูลที่อยู่อาศัย (FG1) , ครั้งที่สองกับข้อมูลทางประวัติศาสตร์ (HDG)

read-onlyกลุ่มไฟล์ที่สองคือ แต่ละเดือนฉันเคลื่อนไหวในพาร์ติชัน - ฉันเพิ่มข้อมูลใหม่ (จากเดือนก่อนหน้า) ไปยังข้อมูลประวัติ กระบวนการนี้โดยอัตโนมัติ

เราย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ใหม่ ตอนแรกที่ผมต้องทำกระบวนการด้วยตนเอง ระหว่างการดำเนินการนี้มิร์เรอร์ของฉันหยุดทำงาน (หลังจากการดำเนินการ 3 - ดูการไหลของกระบวนการ) พร้อมข้อผิดพลาดต่อไปนี้:

บนเซิร์ฟเวอร์ PRINCIPAL:

ROW 0 ในบันทึก:

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 ในบันทึก:

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 ในบันทึก:

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.

หมายเหตุ:ฉันใช้งานการดำเนินการนี้บนเซิร์ฟเวอร์เก่าหลายครั้งโดยอัตโนมัติและฉันไม่เคยพบข้อผิดพลาดดังกล่าว

บนเซิร์ฟเวอร์กระจก:

ROW 1 ในบันทึก:

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 ในบันทึก:

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.

กระบวนการของฉันกำลังทำตาม:

1.ฉันทำการสำรองข้อมูลหลายครั้งของฐานข้อมูล (สำรองเต็ม, กลุ่มไฟล์และการสำรองข้อมูล TLog)

2.ฉันตั้งค่า DB เป็นRESTRICTED_USER(เพื่ออนุญาตให้ลบแฟล็กกลุ่มไฟล์ประวัติแบบอ่านอย่างเดียวโดยสคริปต์)

2a ฉันลบREAD-ONLYแฟล็กของกลุ่มไฟล์ประวัติของฉัน

3.ฉันตั้งค่าฐานข้อมูลเป็นMULTI_USERอนุญาตการทำงานปกติของซอฟต์แวร์ของเรา

4.ฉันอัพเดตพาร์ติชันเพื่อย้ายข้อมูลกลุ่มไฟล์ประวัติ

5.ฉันทำขั้นตอนที่2 , 2aและ3ซ้ำเพื่อให้ฉันสามารถตั้งค่ากลุ่มไฟล์ประวัติอ่านได้อีกครั้งเท่านั้น

6.ฉันสำรองข้อมูลอีกครั้ง

ใครบ้างมีความคิดว่าทำไมฉันถึงได้รับข้อผิดพลาดนั้น?

แก้ไข:เราได้รับปัญหาเดียวกันระหว่างขั้นตอนต่าง ๆ ของขั้นตอน นี่เป็นสถานการณ์เดียวที่กระจกแตกดังนั้นฉันคิดว่าปัญหาอยู่ในขั้นตอน แต่ฉันไม่สามารถหาสาเหตุได้!


Error: 823, Severity: 24ดูเหมือนว่าปัญหาฮาร์ดแวร์ ตรวจสอบจานของคุณเพื่อดูว่าพวกเขาได้รับความเสียหาย เรียกใช้ checkdb บนฐานข้อมูลเพื่อให้แน่ใจว่าสะอาด
Kin Shah

ฉันไม่แน่ใจ @Kin เรามีหน่วยเก็บข้อมูลพิเศษ IBM ที่ต่อพ่วงใหม่ล่าสุด มันทำงานจากประมาณ 3 เดือน และนี่เป็นครั้งเดียวที่เราได้รับข้อผิดพลาดดังกล่าว จริงๆแล้วมีข้อผิดพลาดประมาณ 10 แถว แต่เกิดขึ้นในช่วงเวลานั้น เราทำลายกระจกและสร้างมันอีกครั้ง เรามีปัญหาในการถอดกระจก ดังนั้นเราจึงลบมันเอง
Bogdan Bogdanov

ข้อผิดพลาด823 with sev 24เป็นปัญหาฮาร์ดแวร์ คุณกำลังทำการสำรองข้อมูลในระดับไฟล์แทนการสำรองข้อมูลเซิร์ฟเวอร์ sql แบบดั้งเดิมหรือซอฟต์แวร์ป้องกันไวรัสตัวใดทำงานบนเซิร์ฟเวอร์หรือไม่ คุณควรใส่การแจ้งเตือนตัวแทน SQL เพื่อแจ้งเตือนคุณเมื่อเกิดข้อผิดพลาด 823 - สคริปต์นี้จะช่วยให้คุณ นอกจากนี้823 เป็นข้อผิดพลาดที่น่ารังเกียจที่จะได้รับ - มันบอกว่าการดำเนินการ I / O ล้มเหลวในระดับระบบปฏิบัติการและระบบย่อย I / O ที่ก่อให้เกิดความเสียหาย - เซิร์ฟเวอร์ sql ไม่ได้ทำหน้า checsum
Kin Shah

เราทำการสำรองข้อมูลทั้งสองแบบ @Kin เรายังมีไปVmWare replication remote hostสิ่งที่ฉันสังเกตจนกระทั่งฉันเขียนคำตอบให้คุณคือเราไม่สามารถทำลายกระจกได้ในแบบปกติ ไฟล์ถูกล็อคและเราต้องการstop SQL serviceและย้ายไฟล์ db ไปยังไดเรกทอรีอื่น หลังจากนั้นทุกอย่างก็โอเค (ฉันตรวจสอบการใช้ล็อกsys.xp_readerrorlog) ความคิดอื่นคือถ้าการจำลองแบบ VmWare เกิดขึ้นในช่วงเวลานั้น แต่ฉันไม่แน่ใจว่าสิ่งนี้จะส่งผลกระทบต่อกระบวนการอย่างไร (ฉันรู้เพียงเล็กน้อยVmWare)
Bogdan Bogdanov

We do both type of backupsนั่นอาจเป็นปัญหา ไม่ควรใช้สแน็ปช็อต VM เป็นทางเลือกแทนการสำรองข้อมูลเซิร์ฟเวอร์ sql
Kin Shah

คำตอบ:


0

เราพบปัญหา มันเป็นข้อผิดพลาดใน SQL Server เมื่อเราตั้งค่าREAD_WRITEคำสั่งจะไม่ถ่ายโอนอย่างถูกต้องในmirrorฐานข้อมูล เมื่อสคริปต์เริ่มเปลี่ยนpartitionsบนมิเรอร์เซิร์ฟเวอร์เกิดข้อผิดพลาด หลังจากนั้นการทำข้อมูลให้ตรงกันจะถูกทำลายและฐานข้อมูลบนกระจกจะถูกล็อค (ในsuspendedสถานะ)

เราแก้ไขปัญหาโดยการอัปเดต SQL Server เป็นเวอร์ชันล่าสุด (เวอร์ชั่นเริ่มต้นของเราคือ wiout SP)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.