วิธีการปิด Oracle


9

การปิดฐานข้อมูลก่อนทำการอัปเกรดหรือสามารถทำการแก้ไขได้หลายวิธี

shutdown immediate;

หรือ

shutdown abort;
startup restrict;
shutdown immediate;

หรือ

shutdown abort;
startup restrict;
shutdown;

หรือ

alter system checkpoint;
shutdown abort;
startup restrict;
shutdown immediate;

แน่นอนมีตัวเลือกอื่น ๆ เช่นกัน สิ่งใดควรเป็นที่ต้องการและเพราะอะไร

คำตอบ:


12

เป้าหมายเมื่อปิดการบำรุงรักษา (หรือการสำรองข้อมูลแบบเย็น) คือฐานข้อมูลอยู่ในสถานะที่สอดคล้องกันโดยไม่จำเป็นต้องย้อนกลับ / กู้คืนเมื่อเริ่มต้น

มีshutdownคำสั่งSQL * Plus 3 คำที่สามารถทำได้ในทางทฤษฎีซึ่งทั้งหมดนั้นป้องกันการเชื่อมต่อเซสชันใหม่กับอินสแตนซ์ทันที:

  1. shutdown normalหรือเพียงแค่shutdown: รอให้เซสชันทั้งหมดยกเลิกการเชื่อมต่อ โหมดนี้ไม่ค่อยได้ใช้ในทางปฏิบัติเพราะอาศัยไคลเอนต์ที่ประพฤติดีไม่เปิดการเชื่อมต่อ สิ่งนี้เคยเป็นshutdownโหมดเดียวที่ไม่ได้ยกเลิกการทำธุรกรรม
  2. shutdown transactional: ยกเลิกการเชื่อมต่อเซสชันเมื่อธุรกรรมที่ดำเนินอยู่ในปัจจุบันเสร็จสมบูรณ์ทำให้ไม่สามารถเริ่มต้นธุรกรรมใหม่ได้
  3. shutdown immediate: ยกเลิกการเชื่อมต่อทุกเซสชันที่มีการทำรายการและย้อนกลับธุรกรรมที่ถูกขัดจังหวะก่อนที่จะปิดตัวลง โปรดทราบว่าการยกเลิกการเชื่อมต่อจะเกิดขึ้นทันที แต่การปิดระบบอาจไม่เป็นเพราะธุรกรรมใด ๆ ที่ถูกขัดจังหวะอาจต้องใช้เวลาในการย้อนกลับ

โหมดที่สี่ของการมีshutdown shutdown abortนี่เหมือนกับการดึงสายไฟ - อินสแตนซ์หยุดตอนนี้โดยไม่ต้องล้างข้อมูลใด ๆ คุณมักจะต้องการนำฐานข้อมูลขึ้นมาอีกครั้งหลังจากนั้นและปิดอย่างสมบูรณ์ทันทีหลังจากนั้นในตัวอย่างของคุณ คู่มือแนวคิดกล่าวว่า :

โหมดนี้มีไว้สำหรับสถานการณ์ฉุกเฉินเช่นเมื่อไม่มีการปิดระบบรูปแบบอื่นสำเร็จ

ตัวอย่างทั้งหมดที่คุณให้ดำเนินด่านเป็นส่วนหนึ่งของshutdown [normal]หรือshutdown immediatecheckpointing เพื่อให้ชัดเจนคือคงจะลดเวลาที่จำเป็นสำหรับการกู้คืน

คำแนะนำทั่วไป:

  • shutdown normalอย่าใช้
  • ใช้shutdown transactional สำหรับการปิดระบบแบบเข้าร่วมเท่านั้นเมื่อคุณต้องการลดการทำธุรกรรมที่ถูกยกเลิกให้น้อยที่สุด (เข้าร่วมเท่านั้นเนื่องจากการปิดแบบนี้ไม่รับประกันว่าจะปิดฐานข้อมูลได้เลยหากหมดเวลาการใช้งาน)
  • ใช้shutdown immediateสำหรับการปิดระบบแบบอัตโนมัติหรือเมื่อคุณไม่สนใจเกี่ยวกับการทำธุรกรรมในปัจจุบัน
  • อย่าใช้shutdown abort(รวมถึงการเริ่มต้น / ปิด) เว้นแต่คุณจะต้อง - นี่เป็นเรื่องปกติใน Oracle รุ่นก่อนหน้านี้มากว่ามันเป็นวันนี้ ในสถานการณ์อื่น ๆ (ไม่ใช่แพทช์ / อัปเกรด) หากคุณมีความจำเป็นต้องลดเวลาหยุดทำงานโหมดนี้อาจเหมาะสม

คุณสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับข้อเสียของมันได้shutdown abortหรือไม่? ถ้าเราเชื่อมั่นว่า Oracle จะสามารถกู้คืนได้อย่างถูกต้องเมื่อดึงพลังงานออกมาเราไม่ควรไว้ใจในช่วง a shutdown abortโดยเฉพาะถ้ามันเร็วกว่าและเราจะทำ a startup restrictและ a ทันทีshutdown immediateหรือไม่? กล่าวอีกนัยหนึ่งมีข้อเท็จจริงที่เราสามารถดูสำรองคำเตือนที่น่ากลัวของ Oracle ได้shutdown abortหรือไม่
Leigh Riffel

@Leigh - อันตรายเฉพาะที่ฉันรู้เกี่ยวshutdown abortกับการสำรองข้อมูลโดยไม่ตั้งใจของบันทึกออนไลน์แต่นั่นเป็นเพียงในกรณีที่คุณไม่ได้ทำการปิดระบบในภายหลัง ถ้าคุณรู้ว่าคุณกำลังทำอะไรฉันคิดว่าshutdown abortปลอดภัยอย่างแน่นอน - และฉันไม่แน่ใจว่าตำแหน่งของออราเคิลนับเป็น "คำเตือนที่น่ากลัว" ;-)
แจ็คบอกว่าลอง topanswers.xyz

3

ฉันชอบวิธีการยกเลิกการปิดระบบเพราะเป็นวิธีที่เร็วที่สุดในการนำฐานข้อมูลลง มีการดำเนินการบางอย่างที่ไม่สามารถทำได้หลังจากปิดการยกเลิกเช่น

  • สร้าง controlfile ฐานข้อมูลใหม่ด้วยcreate controlfile resetlogs (เพื่อเปลี่ยนชื่อฐานข้อมูลเพื่อเปลี่ยนชื่อ teh logfiles ของเพื่อเปลี่ยนชื่อ datafiles)
  • เปลี่ยน dbid ด้วยโพรซีเดอร์จาก dbms_backup_restore (นี่เป็นวิธีเดียวใน 8i เพื่อเปลี่ยน dbid)

ในทั้งสองกรณีฐานข้อมูลเสียหายและต้องเรียกคืนจากการสำรองข้อมูลเต็มรูปแบบ

ตั้งแต่ 9i การเปลี่ยนชื่อของฐานข้อมูลหรือการเปลี่ยนแปลงของ dbid สามารถทำได้ด้วยยูทิลิตี้dbnewid เท่าที่ฉันทราบยูทิลิตี้ตรวจสอบว่าฐานข้อมูลถูกปิดอย่างถูกต้อง การเปลี่ยนชื่อ datafiles, tempfiles และ logfiles สามารถทำได้โดยการดำเนินการคำสั่ง sql ที่เหมาะสมโดยไม่ต้องสร้างไฟล์ควบคุมของหลักสูตรขึ้นมาใหม่

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