Saturday, May 2, 2009

spfile ต่างจาก pfile อย่างไร

Updated: 13/4/2009

บนวินโดวส์ ระลึกเสมอว่าให้ใช้ pfile จาก $ORACLE_BASE/admin เท่านั้น
และ spfile ตัวที่เป็น default จะอยู่ที่ $ORACLE_HOME/database บนวินโดวส์หรือ dbs บน unix เสมอ

ถ้า STARTUP ด้วย pfile (ที่ $ORACLE_BASE/admin) แล้ว ALTER SYSTEM แต่ต้องการให้ SCOPE ไปที่ spfileจะไม่ได้ แม้จะใช้ create spfile from pfile เพราะยังเป็นการ create จาก pfile ตัวเก่าที่ยังไม่ได้ alter

ถ้า spfile เสียเนื่องมาจากการ update parameter บางตัว หรือไป update spfile ด้วย text editor เข้า จะทำให้ startup ไม่ได้ให้ STARTUP ด้วย pfile ก่อนแล้วจึง create spfile from pfile= 'pfile ตัวที่ต้องการ' (อย่าใช้ create spfile from pfile เฉยๆ เพราะจะทำให้ oracle ไปเอาตัว pfile ที่เป็น default ซึ่งจะเป็นแค่ตัวที่ชี้ไปยัง spfile ตัวที่มีปัญหาเท่านั้น) เพื่อสร้าง spfile ตัวใหม่ (ควรจะแบ็คอัพ spfile ตัวเก่าไว้ก่อน เพื่อเอาไว้เป็น ref ในการแก้ parameter ตัวอื่น ๆ) แล้วจึง startup ใหม่ คราวนี้ระบบฯ จะใช้ spfile แล้ว ก็สามารถแก้ไขพารามิเตอร์ได้โดยการ ALTER SYSTEM SCOPE=BOTH

เราสามารถใช้ create spfile from pfile ได้แม้ database จะยังไม่ได้ open

หรือนอกเหนือจากวิธีข้างบนเราสามารถจะใช้วิธีการ restore spfile จากแบ็คอัพก็ได้ เคยใช้มาแล้ว

1 comment:

Unknown said...

ขอบคุณค่ะ มีประโยชน์มาก

Post a Comment