-
RMAN Full Backup คืออะไร?
-
ทำไมควรใช้ RMAN สำหรับ Oracle 12c?
-
วิธีที่ 1: RMAN Full Backup Script อันพื้นฐาน
-
วิธีที่ 2: การตั้งเวลาการสำรองข้อมูล RMAN ใน Oracle 12c โดยใช้ DBMS_SCHEDULER หรืองาน Cron
-
วิธีปกป้อง Oracle Database ด้วย Vinchin Backup & Recovery
-
คำถามที่พบบ่อ ยเกี่ยวกับ RMAN Full Backup Script ใน Oracle 12c
-
บทสรุป
การสำรองข้อมูลฐานข้อมูล Oracle 12c ไม่ใช่เพียงแค่แนวทางปฏิบัติที่ดีที่สุดเท่านั้น แต่ยังเป็นสิ่งจำเป็นต่อความต่อเนื่องทางธุรกิจ การมีกลยุทธ์การสำรองข้อมูลที่เชื่อถือได้จะช่วยป้องกันข้อมูลของคุณจากความล้มเหลวของฮาร์ดแวร์ ข้อผิดพลาดของผู้ใช้ หรือภัยพิบัติ เช่น การโจมตีด้วยแรนซัมแวร์ ในบทความนี้ คุณจะได้เรียนรู้วิธีการสร้างและกำหนดเวลา สคริปต์สำรองข้อมูลแบบเต็มด้วย RMAN สำหรับ Oracle 12c อย่างเป็นขั้นตอน ไม่ว่าคุณจะเป็นผู้เริ่มต้นใช้งาน RMAN หรือต้องการนำกระบวนการสำรองข้อมูลมาทำให้อัตโนมัติ คุณจะพบคำแนะนำที่ชัดเจนได้ที่นี่
RMAN Full Backup คืออะไร?
Full backup ใน RMAN (Recovery Manager) จะสร้างสำเนาที่สมบูรณ์ของไฟล์ข้อมูลฐานข้อมูลของคุณ โดยข้ามพื้นที่ที่ไม่ได้ใช้งานเพื่อให้มีประสิทธิภาพ ประเภทของการสำรองข้อมูลนี้ยังสามารถรวมบันทึก redo log ที่เก็บถาวรและไฟล์ควบคุมได้หากมีการระบุไว้ เพื่อให้แน่ใจว่าคุณสามารถกู้คืนฐานข้อมูลของคุณให้อยู่ในสถานะที่สอดคล้องกันหลังจากความล้มเหลวใดๆ
RMAN Full Backup มีความสำคัญเพราะช่วยจับภาพบล็อกที่ใช้งานทั้งหมดในฐานข้อมูล ณ เวลาที่ดำเนินการ โดยการรวมไฟล์ redo log ที่จัดเก็บไว้และไฟล์ควบคุมลงในการดำเนินการตามปกติ จะทำให้สามารถกู้คืนข้อมูล ณ จุดเวลาหนึ่งได้อยู่เสมอ
ทำไมควรใช้ RMAN สำหรับ Oracle 12c?
RMAN เป็นเครื่องมือในตัวของ Oracle ที่ออกแบบมาโดยเฉพาะเพื่อการทำงานสำรองข้อมูลและการกู้คืนอย่างมีประสิทธิภาพ โดยผสานการทำงานอย่างใกล้ชิดกับฐานข้อมูล Oracle 12c ทั้งในระบบทั่วไปแบบ single-instance และสภาพแวดล้อมแบบ multitenant (CDB/PDB) ด้วย RMAN คุณจะได้รับการตรวจสอบความเสียหายของบล็อกโดยอัตโนมัติ การจัดการนโยบายการเก็บรักษาข้อมูลสำรองได้อย่างง่ายดาย ฟีเจอร์การจัดทำแคตตาล็อกเพื่อติดตามข้อมูลสำรองตลอดเวลา และที่สำคัญที่สุดคือความสามารถใน hot backup โดยไม่ต้องปิดระบบการผลิต
คุณสามารถรัน RMAN แบบโต้ตอบได้ หรือจะทำให้มีการทำงานอัตโนมัติผ่านสคริปต์และโปรแกรมจัดตารางงาน ซึ่งทำให้เหมาะสมไม่ว่าคุณจะจัดการฐานข้อมูลหนึ่งแห่งหรือหลายร้อยแห่งที่กระจายอยู่ตามเซิร์ฟเวอร์ต่างๆ
วิธีที่ 1: RMAN Full Backup Script อันพื้นฐาน
การเริ่มต้นจากพื้นฐานจะช่วยสร้างความมั่นใจก่อนก้าวไปสู่เทคนิคการอัตโนมัติหรือการปรับให้มีประสิทธิภาพขั้นสูง
ก่อนเรียกใช้การสำรองข้อมูลเต็มรูปแบบใดๆ โดยใช้ RMAN ใน Oracle 12c:
ตรวจสอบให้แน่ใจว่าฐานข้อมูลของคุณอยู่ในโหมด ARCHIVELOG เพื่อให้สามารถสำรองข้อมูลแบบออนไลน์ (hot) ได้
ตรวจสอบว่าตำแหน่งจัดเก็บบันทึกการเก็บถาวร (LOG_ARCHIVE_DEST_1) ถูกกำหนดค่าอย่างเหมาะสมแล้วหรือไม่ มิฉะนั้นการเปิดใช้งานโหมด ARCHIVELOG อาจล้มเหลวได้
วางแผนช่องเวลาการบำรุงรักษาหากเปลี่ยนโหมดในช่วงเวลาทำงาน เนื่องจากต้องมีการหยุดระบบบางช่วง
ตรวจสอบโหมดล็อกปัจจุบัน:
SQL> archive log list;
หากยังไม่ได้เปิดใช้งานโหมด ARCHIVELOG:
1. ตรวจสอบว่าไม่มีผู้ใช้ที่สำคัญเชื่อมต่ออยู่
2. กำหนดช่วงเวลาที่ไม่สามารถใช้งานได้หากจำเป็น
3. รันคำสั่งเหล่านี้:
SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database open;
ตอนนี้มาสร้างสคริปต์ง่าย ๆ ที่สำรองข้อมูลทุกอย่าง รวมถึงบันทึกเก็บถาวรและไฟล์ควบคุม เพื่อการกู้คืนที่ดีที่สุด:
ตัวอย่าง: RMAN Full Backup Script อันพื้นฐาน
BACKUP DATABASE PLUS ARCHIVELOG;
คำสั่งนี้ทำหลายสิ่งหลายอย่าง:
บังคับให้ใช้ ALTER SYSTEM ARCHIVE LOG CURRENT
สำรองบันทึก redo log ที่เก็บถาวรทั้งหมดที่สร้างขึ้นจนถึงขณะนี้
สำรองไฟล์ข้อมูลทั้งหมด
เก็บบันทึก redo log ที่เหลืออีกครั้งหลังจากทำสำเนา datafile เสร็จสิ้น
หากคุณต้องการระบุตำแหน่งที่ไฟล์สำรองจะถูกจัดเก็บ:
BACKUP DATABASE FORMAT '/u01/app/oracle/backup/%U' PLUS ARCHIVELOG FORMAT '/u01/app/oracle/backup/%U';
ในการรันแบบโต้ตอบ:
1. เข้าสู่ระบบเป็นผู้ใช้ Oracle บนเซิร์ฟเวอร์ของคุณ
2. เริ่มต้น RMAN:
$ rman target /
3. ที่พรอมต์ RMAN ให้ป้อนคำสั่งของคุณโดยตรง หรือใช้ไฟล์คำสั่งโดยการบันทึกคำสั่งลงใน backup_script.rman แล้วรัน:
RMAN> @/path/to/your/backup_script.rman
สำหรับการตั้งค่าแบบมัลติเทนแนนท์:
สำรองข้อมูลทั้งหมด (CDB + PDB ที่เปิดอยู่ทั้งหมด):
BACKUP DATABASE;
หมายเหตุ: จะรวมเฉพาะ PDB ที่เปิดอยู่ในปัจจุบันเท่านั้น; PDB ที่ถอดปลั๊กหรือติดตั้งอย่างเดียวจะไม่ถูกสำรองข้อมูล เว้นแต่ว่าจะเปิดก่อน
สำรองข้อมูลเพียงฐานข้อมูลแบบเสียบเข้าได้หนึ่งตัว:
BACKUP PLUGGABLE DATABASE pdb1;
คุณสามารถกำกับแท็กแต่ละงานสำรองข้อมูลเพื่อให้ง่ายต่อการระบุในภายหลัง:
BACKUP DATABASE TAG 'FULL_BACKUP';
หลังจากดำเนินการสำรองข้อมูลทุกครั้ง ให้ตรวจสอบสถานะโดยใช้:
LIST BACKUP;
และรักษาความเป็นระเบียบโดยการลบสำเนาที่ไม่ใช้แล้วออกด้วย:
DELETE NOPROMPT OBSOLETE;
สิ่งนี้ช่วยป้องกันปัญหาพื้นที่ดิสก์หมดในระยะยาว
เพื่อความปลอดภัยเพิ่มเติมหลังจากรายการสำรองข้อมูล ให้รันคำสั่งบำรุงรักษานี้อย่างสม่ำเสมอ:
ซิงโครไนซ์แคตตาล็อกกับเนื้อหาบนดิสก์จริง
CROSSCHECK BACKUP; DELETE EXPIRED;
ขั้นตอนเหล่านี้ช่วยป้องกันความสับสนระหว่างไฟล์ที่หายไปจากดิสก์ กับสิ่งที่ถูกบันทึกไว้ในเมตาดาต้า
วิธีที่ 2: การตั้งเวลาการสำรองข้อมูล RMAN ใน Oracle 12c โดยใช้ DBMS_SCHEDULER หรืองาน Cron
การรันด้วยตนเองก็ใช้ได้ดี แต่การอัตโนมัติจะช่วยให้มั่นใจได้ว่ามีความสม่ำเสมอ แม้จะมีการเปลี่ยนแปลงพนักงานหรือในช่วงวันหยุด มีสองวิธีหลักในการจัดกำหนดงานเป็นประจำ คือ ภายในตัว Oracle เอง (DBMS_SCHEDULER) หรือภายนอกผ่านเครื่องมือของระบบปฏิบัติการ เช่น cron (Linux/Unix)
การใช้งาน DBMS_SCHEDULER
ตัวจัดกำหนดงานในตัวของ Oracle ช่วยให้คุณสามารถกำหนดงานได้ทั้งหมดภายในสภาพแวดล้อมฐานข้อมูล ไม่ต้องใช้เครื่องมือภายนอก เว้นแต่ว่าต้องการ
ขั้นตอนแรกให้สร้างสคริปต์เปลือก (shell script) ที่มีคำสั่งที่คุณปรับให้มีประสิทธิภาพแล้ว ตัวอย่างเช่น /u01/app/oracle/scripts/rman_full_backup.sh—
ตรวจสอบให้แน่ใจว่าเริ่มต้นด้วย #!/bin/bash ที่ด้านบนสุด
และตั้งค่าตัวแปรสภาพแวดล้อมให้ถูกต้อง (ORACLE_SID, ORACLE_HOME, PATH) เนื่องจากงานที่จัดกำหนดไว้มักไม่มีบริบทการเข้าสู่ระบบปกติ
ทำให้ใช้งานได้ด้วย
ตัวอย่างเนื้อหา:
#!/bin/bash export ORACLE_SID=yourdb export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH rman target / LOG /u01/app/oracle/scripts/log/rman_backup_$(date +%Y%m%d).log <<EOF BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; DELETE NOPROMPT OBSOLETE; EOF chmod +x /u01/app/oracle/scripts/rman_full_backup.sh
ตอนนี้ให้ลงทะเบียนสคริปต์นี้เป็นงานที่กำหนดเวลาไว้ภายใน Oracle โดยใช้ SQL*Plus
BEGIN DBMS_SCHEDULER.create_job ( job_name => 'RMAN_FULL_BACKUP_JOB', job_type => 'EXECUTABLE', job_action => '/u01/app/oracle/scripts/rman_full_backup.sh', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY;BYHOUR=2;BYMINUTE=0;BYSECOND=0', enabled => TRUE); END; /
สิ่งนี้กำหนดเวลาการทำงานในเวลากลางคืนตรงกับเวลา 2:00 น. ตามเวลาเซิร์ฟเวอร์
โปรดจำไว้ว่าอย่าเขียนรหัสผ่านลงในสคริปต์โดยตรง ให้ใช้การพิสูจน์ตัวตนของระบบปฏิบัติการ (target /) เสมอเท่าที่เป็นไปได้
การใช้งาน Cron Jobs (Linux/Unix)
Cron ยังคงได้รับความนิยมเพราะมีความเรียบง่ายและเชื่อถือได้ แม้จะอยู่นอกสภาพแวดล้อมของ Oracle ก็ตาม
แก้ไข crontab เป็นผู้ใช้ oracle (crontab -e) แล้วเพิ่มบรรทัดนี้ที่ด้านล่าง
0 2 * * * /u01/app/oracle/scripts/rman_full_backup.sh
ตอนนี้ Cron จะเริ่มรันสคริปต์ shell ของคุณโดยอัตโนมัติทุกวัน เวลา 2.00 น. อย่างแม่นยำ
โปรดตรวจสอบซ้ำอีกครั้งว่าตัวแปรสภาพแวดล้อมทั้งหมด ({ORACLE_SID}, {ORACLE_HOME}, {PATH}) ปรากฏอย่างชัดเจนภายในสคริปต์เปลือกที่ถูกเรียกใช้ เนื่องจาก cron มีค่าเริ่มต้นเพียงเล็กน้อยเท่านั้น
วิธีปกป้อง Oracle Database ด้วย Vinchin Backup & Recovery
แม้ว่าการเขียนสคริปต์ด้วยตนเองจะมีความยืดหยุ่น แต่สภาพแวดล้อมขององค์กรโดยทั่วไปต้องใช้โซลูชันที่ได้รับการปรับให้เหมาะสมพร้อมชุดคุณสมบัติที่แข็งแกร่งเพื่อการป้องกันอย่างครอบคลุม Vinchin Backup & Recovery ถือเป็นโซลูชันองค์กรระดับมืออาชีพที่รองรับฐานข้อมูลหลักในปัจจุบัน รวมถึง Oracle, MySQL, SQL Server, MariaDB, PostgreSQL, PostgresPro และ TiDB โดยเน้นเป็นพิเศษในการผสานรวมอย่างไร้รอยต่อสำหรับสภาพแวดล้อม Oracle เช่นเดียวกับของคุณ
คุณสมบัติหลัก เช่น source-side compressionขั้นสูง ความสามารถใน incremental backup การดำเนินการฐานข้อมูลแบบชุด การใช้กลยุทธ์ data compression หลายระดับ และ retention policiesที่ยืดหยุ่น มอบประโยชน์อย่างมาก ได้แก่ การลดต้นทุนการจัดเก็บ การเร่งรอบการสำรองข้อมูล การทำให้การจัดการหลายอินสแตนซ์ง่ายขึ้น รับประกันจะปฏิบัติตามข้อกำหนดต่างๆ ได้อย่างมีประสิทธิภาพ ตลอดเวลาที่ยังคงรักษามาตรฐานการทำงานสูงตามที่งานสำคัญต้องการ
คอนโซลเว็บที่ใช้งานง่ายทำให้การปกป้องฐานข้อมูล Oracle ของคุณเป็นเรื่องง่าย
ขั้นตอนที่ 1 เลือกฐานข้อมูล Oracle เพื่อสำรองข้อมูล

ขั้นตอนที่ 2 เลือกที่จัดเก็บข้อมูลสำรอง

ขั้นตอนที่ 3 กำหนดกลยุทธ์การสำรองข้อมูล

ขั้นตอนที่ 4 ส่งงาน

Vinchin Backup & Recovery ได้รับการยอมรับทั่วโลกในหมู่องค์กรต่างๆ ที่กำลังมองหาซอฟต์แวร์ป้องกันข้อมูลที่เชื่อถือได้ เข้าร่วมกับลูกค้าที่พึงพอใจนับพันรายทั่วโลก เริ่มทดลองใช้งานฟรี 60 วันได้ตั้งแต่วันนี้ผ่านลิงก์ดาวน์โหลดด้านล่าง
คำถามที่พบบ่อยเกี่ยวกับ RMAN Full Backup Script ใน Oracle 12c
Q1: จะตั้งค่าการลบข้อมูลสำรองเก่าโดยอัตโนมัติได้อย่างไร?
A1: กำหนดค่าเก็บรักษาข้อมูลโดยใช้ CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS จากนั้นรวมคำสั่ง DELETE NOPROMPT OBSOLETE ไว้ในสคริปต์ที่กำหนดเวลาทำงานทุกครั้ง
Q2: มีวิธีการทดสอบกระบวนการกู้คืนข้อมูลโดยไม่กระทบต่อระบบผลิตจริงไหม?
A2: มีใช้ RESTORE DATABASE VALIDATE ซึ่งจะตรวจสอบความสมบูรณ์โดยไม่เปลี่ยนข้อมูลจริงหรือต้องหยุดระบบ
Q3: ฉันควรทำอย่างไรหากงาน cron ที่ตั้งเวลาไว้ล้มเหลวโดยไม่มีการแจ้งเตือน?
A3: ตรวจสอบสิทธิ์การเข้าถึงไดเรกทอรีของสคริปต์และลอจ > ยืนยันตัวแปรสภาพแวดล้อมที่ตั้งไว้ภายในสคริปต์ > ตรวจสอบไฟล์ลอจที่สร้างขึ้น > ทดสอบการรันแบบแมนนวลโดยใช้ผู้ใช้เดียวกัน
บทสรุป
RMAN Full Backup Script ที่มีประสิทธิภาพเป็นพื้นฐานสำคัญของแผนการป้องกันที่มีประสิทธิผลสำหรับฐานข้อมูล Oracle 12c ไม่ว่าจะเป็นธุรกิจขนาดเล็กหรือองค์กรระดับโลก ควรทำการกำหนดให้ทำงานอัตโนมัติอย่างชาญฉลาด
โปรดจำไว้ว่า Vinchin เสนอความง่ายดายยิ่งกว่าและทำให้มั่นใจได้มากขึ้นผ่านแนวทางแพลตฟอร์มแบบรวมศูนย์ ซึ่งสามารถดาวน์โหลดเพื่อลองใช้งานฟรีได้แล้ววันนี้
แชร์บน: