ในกรณีที่ restore db2 database แล้วเจอ error ดังต่อไปนี้
SQL0902C A system error (reason code = "") occurred. Subsequent SQLstatements cannot be processed. SQLSTATE=58005
หรือหากดูใน db2diag.log แล้วเจอ error ประมาณนี้
2011-06-14-15.07.39.436000+420 I7047H575 LEVEL: SeverePID : 3788 TID : 2892 PROC : db2syscs.exeINSTANCE: MYINST NODE : 000FUNCTION: DB2 UDB, buffer pool services, sqlbReadStorageGroup, probe:20MESSAGE : ZRC=0x87020002=-2029912062=SQLB_BPSE "Debug logic error detected"DIA8501C A buffer pool logic error has occurred.
อาจเป็นไปได้ว่าเกิดจากการที่เราเอา image ของ file backup จากเครื่องอื่นมา restore ซึ่งมีบาง path ที่ไม่ตรงกัน
อย่างไรก็ตามเราสามารถใช้ option "redirect generate script " ของ db2 restore ช่วยในการแก้
ปัญหานี้ได้โดยแทนที่จะใช้คำสั่ง restore แบบนี้
db2 restore database MYDB from .
ให้ใช้เป็น
db2 restore database MYDB from . redirect generate script restore.sql
ระบบจะสร้าง file restore.sql ขึ้นมา จากนั้นเปิด file นี้แล้วมองหาว่า
1. หลัง option "ON" เป็น DRIVE ที่ถูกต้องหรือไม่
2. path ของ tablespace มีอยู่จริงหรือไม่ เช่น หากเป็น Drive ที่ไม่มีอยู่จริงหรือไม่สามารถเขียนได้มันจะทำให้ restore
tablespace ไม่สำเร็จ
จากนั้น save แล้วก็
db2 -tvf restore.sql
ครับ
No comments:
Post a Comment