สภาพแวดล้อมของฉันคือต่อไปนี้: 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.ฉันสำรองข้อมูลอีกครั้ง
ใครบ้างมีความคิดว่าทำไมฉันถึงได้รับข้อผิดพลาดนั้น?
แก้ไข:เราได้รับปัญหาเดียวกันระหว่างขั้นตอนต่าง ๆ ของขั้นตอน นี่เป็นสถานการณ์เดียวที่กระจกแตกดังนั้นฉันคิดว่าปัญหาอยู่ในขั้นตอน แต่ฉันไม่สามารถหาสาเหตุได้!
823 with sev 24
เป็นปัญหาฮาร์ดแวร์ คุณกำลังทำการสำรองข้อมูลในระดับไฟล์แทนการสำรองข้อมูลเซิร์ฟเวอร์ sql แบบดั้งเดิมหรือซอฟต์แวร์ป้องกันไวรัสตัวใดทำงานบนเซิร์ฟเวอร์หรือไม่ คุณควรใส่การแจ้งเตือนตัวแทน SQL เพื่อแจ้งเตือนคุณเมื่อเกิดข้อผิดพลาด 823 - สคริปต์นี้จะช่วยให้คุณ นอกจากนี้823 เป็นข้อผิดพลาดที่น่ารังเกียจที่จะได้รับ - มันบอกว่าการดำเนินการ I / O ล้มเหลวในระดับระบบปฏิบัติการและระบบย่อย I / O ที่ก่อให้เกิดความเสียหาย - เซิร์ฟเวอร์ sql ไม่ได้ทำหน้า checsum
VmWare replication
remote host
สิ่งที่ฉันสังเกตจนกระทั่งฉันเขียนคำตอบให้คุณคือเราไม่สามารถทำลายกระจกได้ในแบบปกติ ไฟล์ถูกล็อคและเราต้องการstop SQL service
และย้ายไฟล์ db ไปยังไดเรกทอรีอื่น หลังจากนั้นทุกอย่างก็โอเค (ฉันตรวจสอบการใช้ล็อกsys.xp_readerrorlog
) ความคิดอื่นคือถ้าการจำลองแบบ VmWare เกิดขึ้นในช่วงเวลานั้น แต่ฉันไม่แน่ใจว่าสิ่งนี้จะส่งผลกระทบต่อกระบวนการอย่างไร (ฉันรู้เพียงเล็กน้อยVmWare
)
We do both type of backups
นั่นอาจเป็นปัญหา ไม่ควรใช้สแน็ปช็อต VM เป็นทางเลือกแทนการสำรองข้อมูลเซิร์ฟเวอร์ sql
Error: 823, Severity: 24
ดูเหมือนว่าปัญหาฮาร์ดแวร์ ตรวจสอบจานของคุณเพื่อดูว่าพวกเขาได้รับความเสียหาย เรียกใช้ checkdb บนฐานข้อมูลเพื่อให้แน่ใจว่าสะอาด