[DB2] Restore แบบ WITHOUT ROLLING FORWARD; แล้ว Error SQL1035N 

พอดีได้รับเคสไฟไหม้มาตรวจสอบ เนื่องจากลองทำ Take On Date (ตั้ง Database ใหม่) แล้วปรากฏว่าข้อมูลที่เตรียมมามันไม่สามารถ Restore ที่ Production ได้ครับ โดยเจอ Error

SQL1035N The operation failed because the specified database cannot be connected to in the mode requested. SQLSTATE=57019

พอลองไปดู Step Backup พอจะเดาได้แล้วแหละ ว่ามาจากอะไร

  • Backup
cd /db2backup
db2 connect to INVIF9P user invsadm
db2 quiesce database immediate force connections;  
db2 unquiesce database;  <-- ลำดับมันแปลกๆ
db2 update database configuration using indexrec restart logindexbuild on logarchmeth1 "DISK:/invsins2/INVIF9P/archive";
db2 connect reset;
db2 deactivate db INVIF9P  
db2 backup db INVIF9P  
db2 activate db INVIF9P  
  • Restore
db2 restore database INVIF9P from /db2backup/backup/INVIF9P taken at 20220601104532 TO /invsins2/INVIF9P/data WITHOUT ROLLING FORWARD;

สาเหตุ + การแก้ไข

  • ที่แน่ๆ QUIESCE แล้ว UNQUIESCE ต่อ มันไม่มีประโยชน์เลย ทำให้ระหว่างที่ทำ Operation Backup เกิดปัญหาว่ามี User ใช้งานระบบอยู่ครับ ทำให้มี Tx เกิดขึ้นเพิ่มระหว่าง Backup ได้ครับ
cd /db2backup
db2 connect to INVIF9P user invsadm
db2 quiesce database immediate force connections;  
db2 update database configuration using indexrec restart logindexbuild on logarchmeth1 "DISK:/invsins2/INVIF9P/archive";
db2 connect reset;
db2 deactivate db INVIF9P  
db2 backup db INVIF9P  
db2 activate db INVIF9P  
db2 unquiesce database;  <-- ย้ายลงมาครับ
  • ตอน Restore มีกำหนด Option WITHOUT ROLLING FORWARD ซึ่งปกติมันจะไม่ใช่กัน เพราะมันจะไม่เอา Tx Log มา Run เติมต่อให้ครับ ถ้ามีอะไรที่ตัว Database มันต้องการจริงๆ อย่างเคสนี้ ที่ QUIESCE แล้ว UNQUIESCE ทันทีระว่างนั้น อาจจะมี User เข้ามา Connect ได้ โดยตอนนี้หลังจากเอา Backup มาแล้ว เลยแก้ไขปัญหาเฉพาะหน้าด้วยคำสั่ง ดังนี้
db2 restore database INVIF9P from /db2backup/backup/INVIF9P taken at 20220601104532 TO /invsins2/INVIF9P/data WITHOUT PROMPTING;

db2 rollforward database INVIF9P to end of backup and complete;

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.