เราต้องการสร้างการสำรองข้อมูลส่วนเพิ่มระยะไกลหลังจากการสำรองข้อมูลเต็มรูปแบบ สิ่งนี้จะช่วยให้เราสามารถกู้คืนในกรณีที่เกิดความล้มเหลวและนำเครื่องอื่นที่ใกล้เคียงกับการสำรองข้อมูลแบบเรียลไทม์มาใช้กับเซิร์ฟเวอร์เครือข่าย SQL Anywhere
เราทำการสำรองข้อมูลเต็มรูปแบบดังต่อไปนี้:
dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\full
สิ่งนี้ทำให้การสำรองข้อมูลของฐานข้อมูลและไฟล์บันทึกและสามารถเรียกคืนได้ตามที่คาดไว้ สำหรับการสำรองข้อมูลส่วนเพิ่มฉันได้ลองบันทึกการทำรายการทั้งแบบสดและแบบเพิ่มหน่วยพร้อมรูปแบบการเปลี่ยนชื่อหากมีการสำรองข้อมูลแบบส่วนเพิ่มหลายรายการ:
dbbackup -y -t -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\inc
dbbackup -y -l -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\live
อย่างไรก็ตามในการใช้บันทึกธุรกรรมในการคืนค่าฉันมักจะได้รับข้อผิดพลาดเมื่อใช้บันทึกธุรกรรมกับฐานข้อมูล:
10092: ไม่พบคำจำกัดความของตารางสำหรับตารางที่อ้างอิงในบันทึกธุรกรรม
คำสั่งบันทึกธุรกรรมการคืนค่าคือ:
dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log"
ข้อผิดพลาดไม่ได้ระบุว่าไม่สามารถหาตารางใดได้ แต่นี่เป็นการทดสอบที่ควบคุมและไม่มีการสร้างหรือวางตาราง ฉันแทรกสองสามแถวจากนั้นเริ่มการสำรองข้อมูลส่วนเพิ่มก่อนที่จะพยายามกู้คืน
ไม่มีใครรู้วิธีที่ถูกต้องในการสำรองข้อมูลที่เพิ่มขึ้นและเรียกคืนใน Sql Anywhere 11 หรือไม่?
UPDATE: การคิดว่าอาจเกี่ยวข้องกับความซับซ้อนของฐานข้อมูลเป้าหมายฉันได้สร้างฐานข้อมูลเปล่าและบริการเครือข่ายใหม่ จากนั้นเพิ่มหนึ่งตารางที่มีสองคอลัมน์และแทรกสองสามแถว สร้างการสำรองข้อมูลเต็มรูปแบบจากนั้นแทรกและลบอีกสองสามแถวและธุรกรรมที่ทำไว้จากนั้นทำการสำรองข้อมูลเพิ่มเติม สิ่งนี้ก็ล้มเหลวด้วยข้อผิดพลาดเดียวกันเมื่อพยายามใช้การสำรองข้อมูลเพิ่มเติมของบันทึกธุรกรรมหลังจากกู้คืนข้อมูลสำรองทั้งหมด ...
แก้ไข:
คุณสามารถไปที่ลิงค์นี้เพื่อดูคำถามเดียวกันพร้อมข้อเสนอแนะเพิ่มเติมเล็กน้อยเกี่ยวกับ SA: http://sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure