บันทึกการจัดส่ง - คืนค่ามาตรฐานด้วย - บน SQL Server 2012 ทำให้การแบ่ง


10

เราใช้บันทึกการจัดส่งและRESTORE WITH STANDBYใน SQL Server 2012 เพื่อคืนค่าฐานข้อมูลในโหมดอ่านอย่างเดียวเพื่อการรายงาน อย่างไรก็ตามการตั้งค่าการจัดส่งบันทึกยังคงทำลายหลังจากทำการคืนค่าการสำรองข้อมูลแฟ้มบันทึกหนึ่งหรือสองรายการ บันทึกการจัดส่งสินค้าจะหยุดเมื่อมันทำงานเป็นRESTORE WITH STANDBY; RESTORE WITH NORECOVERYไม่ทำให้เกิดปัญหาใด ๆ

สัญชาตญาณเดียวของฉันเกี่ยวกับเรื่องนี้คือฐานข้อมูลหลักไม่ได้เป็นแบบไดนามิก ดังนั้นเมื่อไม่มีการทำธุรกรรมสิ่งนี้ทำให้เกิดปัญหากับRESTOREกระบวนการใช่ไหม

ความคิดใด ๆ การแก้ไขที่รู้จักกัน?

ฉันให้มันทำงานสองสามวันโดยใช้งานปกติที่อัปเดตอย่างหนักในสองตาราง เมื่องานหยุดการเรียกใช้การตั้งค่าการจัดส่งบันทึกอย่างรวดเร็วล้มเหลวไม่สามารถประมวลผลไฟล์. trn ฉันรีเซ็ตการจัดส่งบันทึกและพยายามดูว่ามันจะยังคงทำงานต่อไปโดยทำการอัปเดตเล็กน้อยโดยเปลี่ยนค่าของหนึ่งคอลัมน์ของหนึ่งระเบียนในตารางหรือใครก็ตามที่ยังคงล้มเหลวอยู่

ขอบคุณสำหรับคำตอบของคุณ

PS: ข้อความที่ตัดตอนมาจากบันทึกของเรา

02/25/2013 13: 00, 00, LSRestore_DBDB01-A_BulldogDB, กำลังดำเนินการ, 1, DBREPORTS, LSRestore_DBDB01-A_BulldogDB, บันทึกการจัดส่งบันทึกขั้นตอนการทำงาน, 2013-02-25 13: 00: 12.31 *** ข้อผิดพลาด: ไม่สามารถใช้ไฟล์สำรองข้อมูลบันทึก '\\ dbsan01 \ DBBackups \ LSBackup_BulldogDB \ BulldogDB_20130225180000.trn' กับฐานข้อมูลรอง 'BulldogDB' (Microsoft.SqlServer.Management.LogShipping)
2013-02-25 13: 00: 12.31 *** ข้อผิดพลาด: เกิดข้อผิดพลาดขณะประมวลผลบันทึกสำหรับฐานข้อมูล 'BulldogDB' ถ้าเป็นไปได้เรียกคืนจากการสำรองข้อมูล หากไม่สามารถสำรองข้อมูลได้อาจจำเป็นต้องสร้างบันทึกใหม่
เกิดข้อผิดพลาดระหว่างการกู้คืนทำให้ฐานข้อมูล 'BulldogDB' (8: 0) ไม่สามารถรีสตาร์ทได้ วินิจฉัยข้อผิดพลาดในการกู้คืนและแก้ไขหรือเรียกคืนจากการสำรองข้อมูลที่ดีที่รู้จัก หากข้อผิดพลาดไม่ได้รับการแก้ไขหรือติดต่อฝ่ายสนับสนุนด้านเทคนิค
RESTORE LOG กำลังยุติอย่างผิดปกติ
ดำเนินการ 0 หน้าสำหรับฐานข้อมูล 'BulldogDB' ไฟล์ 'BulldogDB' ในไฟล์ 1
ดำเนินการ 1 หน้าสำหรับไฟล์ 'BulldogDB' ฐานข้อมูล 'BulldogDB_log' ในไฟล์ 1. (. Net SqlClient Data Provider) ***
2013-02-25 13: 00: 12.32 *** ข้อผิดพลาด: ไม่สามารถบันทึกประวัติ / ข้อความแสดงข้อผิดพลาด (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.32 *** ข้อผิดพลาด: ExecuteNonQuery ต้องการการเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.32 การข้ามไฟล์สำรองข้อมูลบันทึก '\\ dbsan01 \ DBBackups \ LSBackup_BulldogDB \ BulldogDB_20130225180000.trn' สำหรับฐานข้อมูลรอง 'BulldogDB' เนื่องจากไม่สามารถตรวจสอบไฟล์ได้
2013-02-25 13: 00: 12.32 *** ข้อผิดพลาด: ไม่สามารถบันทึกประวัติ / ข้อความแสดงข้อผิดพลาด (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.32 *** ข้อผิดพลาด: ExecuteNonQuery ต้องการการเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: เกิดข้อผิดพลาดในการกู้คืนโหมดการเข้าถึงฐานข้อมูล (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ExecuteScalar ต้องใช้การเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ไม่สามารถบันทึกประวัติ / ข้อความแสดงข้อผิดพลาด (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ExecuteNonQuery ต้องการการเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: เกิดข้อผิดพลาดในการกู้คืนโหมดการเข้าถึงฐานข้อมูล (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ExecuteScalar ต้องใช้การเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ไม่สามารถบันทึกประวัติ / ข้อความแสดงข้อผิดพลาด (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ExecuteNonQuery ต้องการการเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***
2013-02-25 13: 00: 12.33 การลบไฟล์สำรองข้อมูลบันทึกเก่า ฐานข้อมูลหลัก: 'BulldogDB'
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ไม่สามารถบันทึกประวัติ / ข้อความแสดงข้อผิดพลาด (Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13: 00: 12.33 *** ข้อผิดพลาด: ExecuteNonQuery ต้องการการเชื่อมต่อแบบเปิดและพร้อมใช้งาน สถานะปัจจุบันของการเชื่อมต่อถูกปิด (System.Data) ***, 00: 00: 12,0,0 ,,,, 0

มันแบ่งในที่งาน LS_Restore ไม่สามารถใช้การสำรองข้อมูลบันทึกธุรกรรม ฉันเพิ่งรีเซ็ตบันทึกการจัดส่งดังนั้นข้อมูลบันทึกข้อผิดพลาดทั้งหมดจะหายไปจากฐานข้อมูล ฉันบันทึกไว้ที่ไหนสักแห่งฉันจะโพสต์เมื่อฉันพบพวกเขาได้ ขอบคุณ
Mendel

เราได้รับบางอย่างเช่น "การข้ามไฟล์สำรองข้อมูล ... .trn สำหรับฐานข้อมูลรอง 'DB' เพราะไม่สามารถตรวจสอบไฟล์ได้ฉันไม่ทราบว่าคุณจะตรวจสอบความเสียหายโดยเฉพาะได้อย่างไร
Mendel

การเชื่อมโยง Updated: feedback.azure.com/forums/908035-sql-server/suggestions/...
Anthony Horne

คำตอบ:


4

หากการสำรองข้อมูลบันทึกนั้นสามารถกู้คืนได้ในขณะที่ฐานข้อมูลรองอยู่ใน NORECOVERY และล้มเหลวก็ต่อเมื่ออยู่ในสถานะ READ-ONLY / STANDBY เท่านั้นฉันจะถือว่าการสำรองข้อมูลบันทึกเป็นไปด้วยตัวเองและไม่เสียหาย

อาจเป็นไปได้ว่าองค์ประกอบการรายงานของคุณมีการเชื่อมต่อแบบเปิดไปยังฐานข้อมูลดังนั้นเมื่อกู้คืนไฟล์บันทึกจะไม่สามารถรับการเชื่อมต่อพิเศษไปยังฐานข้อมูลเนื่องจากการเชื่อมต่อแบบเปิด จะมีตัวเลือกเมื่อตั้งค่าการบันทึกการจัดส่งเพื่อยกเลิกการเชื่อมต่อใด ๆ เพื่อให้สามารถเรียกคืนการสำรองข้อมูลบันทึกได้


1
สิ่งนี้ถูกต้อง ในการหลีกเลี่ยงปัญหานี้ไม่อนุญาตให้งานบันทึกการกู้คืนด้วยการสแตนด์บาย แต่เพิ่มขั้นตอนที่สองในงานที่จะเรียกคืนด้วยการสแตนด์บาย เรียกคืนฐานข้อมูล [ฐานข้อมูล] ด้วย STANDBY = N'standbyfile ' ตัวเลือกอื่นอาจเป็นว่าการสำรองข้อมูลบันทึกธุรกรรมยังไม่เสร็จสิ้นให้ลองเพิ่มการหน่วงเวลา 20 นาทีสำหรับการกู้คืน
Spörri

1

ในโหมดเตรียมพร้อมสำรองการเรียกคืนจะยกเลิกการเชื่อมต่อผู้ใช้เมื่องานเริ่มหลังจากผู้ใช้เริ่มสามารถเชื่อมต่อ ... และสิ่งนี้จะหยุดกระบวนการกู้คืนพร้อมข้อผิดพลาดเกี่ยวกับ "เอกสิทธิ์พิเศษ" ฉันได้รับบริการที่พยายามเชื่อมต่อกับฐานข้อมูลสแตนด์บายขณะที่กู้คืน ทำให้กระบวนการคืนค่าหยุดลงหลังจากเรียกคืนไฟล์ 1-10 / 100

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