การใช้ Oracle RMAN Set Newname สำหรับการกู้คืนและทำซ้ำ Datafile ทำอย่างไร

Oracle RMAN SET NEWNAME ช่วยในการย้ายไฟล์ข้อมูลระหว่างการกู้คืนหรือการทำซ้ำ คู่มือนี้อธิบายจุดประสงค์และแสดงขั้นตอนอย่างละเอียดเกี่ยวกับวิธีใช้งานอย่างปลอดภัยในสถานการณ์จริง

download-icon
ดาวน์โหลดฟรี
สำหรับ VM, OS, DB, ไฟล์, NAS, ฯลฯ
offroad-seachua

Updated by ออฟโรด แซ่ฉั่ว on 2026/01/07

สารบัญ
  • Oracle RMAN Set Newname คืออะไร?

  • ทำไมต้องใช้ Set Newname ใน RMAN?

  • วิธีใช้ Set Newname สำหรับการกู้คืน Datafile

  • การใช้ Set Newname สำหรับการสำเนาฐานข้อมูลทำอย่างไร?

  • การสำรองข้อมูลระดับองค์กรสำหรับฐานข้อมูล Oracle: Vinchin Backup & Recovery

  • คำถามที่พบบ่อยเกี่ยวกับ Oracle RMAN Set Newname

  • สรุป

การกู้คืนหรือทำสำเนาฐานข้อมูล Oracle มักหมายถึงการย้ายไฟล์ข้อมูลไปยังตำแหน่งใหม่ คำสั่ง SET NEWNAME ใน Oracle Recovery Manager (RMAN) มีความสำคัญต่อการเปลี่ยนเส้นทางของไฟล์ข้อมูลระหว่างการกู้คืนหรือการทำสำเนา หากคุณต้องการย้าย โคลน หรือกู้คืนฐานข้อมูลไปยังเซิร์ฟเวอร์หรือไดเรกทอรีอื่น การเข้าใจวิธีใช้คำสั่ง SET NEWNAME จึงเป็นสิ่งสำคัญอย่างยิ่ง มาดูกันว่าคำสั่งนี้ทำงานอย่างไร ทำไมสำคัญ และคุณจะใช้งานอย่างปลอดภัยและมีประสิทธิภาพได้อย่างไร

Oracle RMAN Set Newname คืออะไร?

คำสั่ง SET NEWNAME ใช้บอก Oracle ว่าจะวางไฟล์ข้อมูลหรือไฟล์ชั่วคราวที่กู้คืนแล้วไว้ที่ใดระหว่างการทำงานเพื่อกู้คืนข้อมูล โดยค่าเริ่มต้นนั้น RMAN จะกู้คืนไฟล์ไปยังตำแหน่งเดิมตามที่บันทึกไว้ใน control file แต่ถ้าหากเซิร์ฟเวอร์ใหม่ของคุณมีโครงสร้างไดเรกทอรีที่แตกต่างล่ะ? หรือคุณต้องการหลีกเลี่ยงการเขียนทับไฟล์ที่มีอยู่แล้ว? นั่นคือจุดที่คำสั่ง SET NEWNAME เข้ามาช่วย

คุณสามารถระบุพาธใหม่สำหรับไฟล์ข้อมูลแต่ละไฟล์ พื้นที่ตารางทั้งหมด หรือแม้แต่ฐานข้อมูลทั้งหมดได้ในคราวเดียว คำสั่งนี้จะปรากฏอยู่ภายในบล็อก RUN ในสคริปต์ RMAN ของคุณ หลังจากรีสโตร์ไฟล์โดยใช้ชื่อใหม่เหล่านี้แล้ว คุณต้องรันคำสั่ง SWITCH DATAFILE ALL เพื่อให้ Oracle อัปเดตไฟล์คอนโทรลของมันด้วยตำแหน่งที่ตั้งใหม่ หากไม่มีขั้นตอนสลับนี้ Oracle จะยังคงชี้ไปที่พาธไฟล์เดิม

ทำไมต้องใช้ Set Newname ใน RMAN?

การเปลี่ยนตำแหน่งไฟล์ข้อมูลเป็นสิ่งที่พบได้บ่อยเมื่อกู้คืนฐานข้อมูลหลังจากเกิดความล้มเหลวของฮาร์ดแวร์ หรือย้ายระบบระหว่างเซิร์ฟเวอร์ที่มีโครงสร้างการจัดเก็บข้อมูลต่างกัน โดยไม่ใช้ SET NEWNAME RMAN จะพยายามกู้คืนไฟล์ไปยังไดเรกทอรีเดิม ซึ่งอาจไม่มีอยู่อีกต่อไป หรืออาจทำให้เกิดความขัดแย้งจากการเขียนทับไฟล์การผลิตที่กำลังใช้งานอยู่

การใช้ SET NEWNAME ทำให้คุณมีความยืดหยุ่นและปลอดภัย

  • คุณสามารถกู้คืนไปยังเซิร์ฟเวอร์ที่มีโครงสร้างไดเร็กทอรีต่างกันได้

  • คุณหลีกเลี่ยงการเขียนทับไฟล์การผลิตที่สำคัญระหว่างการทดสอบ

  • คุณสามารถกำหนดทิศทางเอาต์พุตไปยังกลุ่มดิสก์ ASM หรือ Oracle Managed Files (OMF) ได้

  • คุณป้องกันการชนกันของชื่อโดยใช้ตัวแปรแทนที่ เช่น %b, %f หรือ %U

แนวทางนี้ทำให้การโยกย้ายข้อมูลที่ซับซ้อนมีความปลอดภัยและจัดการได้ง่ายขึ้น

วิธีใช้ Set Newname สำหรับการกู้คืน Datafile

การกู้คืน datafile ไปยังตำแหน่งใหม่เป็นสิ่งที่ DBA ทุกคนต้องเผชิญไม่ช้าก็เร็ว โดยเฉพาะหลังจากการเปลี่ยนแปลงพื้นที่จัดเก็บข้อมูลหรือเหตุการณ์การกู้คืนจากภัยพิบัติ

ก่อนดำเนินการคำสั่งใดๆ ด้านล่าง

1. ตรวจสอบให้แน่ใจว่าคุณมีการสำรองข้อมูลอย่างสมบูรณ์

2. ยืนยันว่าไดเรกทอรีเป้าหมายของคุณมีอยู่จริงบนดิสก์

3. ตรวจสอบว่าคุณมีพื้นที่ว่างเพียงพอในตำแหน่งปลายทางหรือไม่

หากฐานข้อมูลของคุณไม่สามารถเปิดได้ (ตัวอย่างเช่น หลังจากเกิดความล้มเหลวของสื่อ) ให้ทำตามขั้นตอนเหล่านี้

เริ่มต้นด้วยการปิดอินสแตนซ์ที่กำลังทำงานอยู่ทั้งหมดอย่างถูกต้อง

SHUTDOWN IMMEDIATE;

จากนั้นเริ่มโหมดติดตั้ง:

STARTUP MOUNT;

ตอนนี้เชื่อมต่อกับ RMAN และรัน:

RUN {
  SET NEWNAME FOR DATAFILE 1 TO '/u02/oradata/system01.dbf';
  SET NEWNAME FOR DATAFILE 2 TO '/u02/oradata/sysaux01.dbf';
  RESTORE DATAFILE 1, 2;
  SWITCH DATAFILE ALL;
  RECOVER DATAFILE 1, 2;
  SQL 'ALTER DATABASE OPEN';
}

กระบวนการนี้ย้ายไฟล์ข้อมูล SYSTEM และ SYSAUX ไปยัง /u02/oradata/ สังเกตว่าแต่ละขั้นตอนเชื่อมโยงกันอย่างไร: ตั้งชื่อใหม่ก่อน แล้วจึงกู้คืน สลับ ฟื้นฟู และเปิด

หากฐานข้อมูลของคุณเปิดอยู่แต่มีเพียง tablespace เดียวที่ต้องกู้คืน (อาจเนื่องจากเกิดความเสียหาย) ให้แยก tablespace นั้นออฟไลน์ก่อนดำเนินการต่อ:

RUN {
  SQL "ALTER TABLESPACE users OFFLINE IMMEDIATE";
  SET NEWNAME FOR DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' TO '/u02/users01.dbf';
  RESTORE TABLESPACE users;
  SWITCH DATAFILE ALL;
  RECOVER TABLESPACE users;
  SQL "ALTER TABLESPACE users ONLINE";
}

การใช้ Set Newname สำหรับการสำเนาฐานข้อมูลทำอย่างไร?

การสำเนา ฐานข้อมูลทั้งหมดไปยังโฮสต์อื่น หรือแม้แต่ไดเรกทอรีอื่นก็ตาม เป็นสิ่งที่พบได้บ่อยเมื่อตั้งค่าสภาพแวดล้อมสำหรับทดสอบหรือดำเนินการโยกย้ายข้อมูล

เมื่อทำสำเนาฐานข้อมูลโดยใช้คุณลักษณะ DUPLICATE ของ RMAN:

  • คุณสามารถตั้งชื่อเฉพาะสำหรับไฟล์ข้อมูลแต่ละไฟล์ได้

  • สำหรับไฟล์ทั้งหมดใน tablespace

  • หรือแม้แต่ทั่วโลกทั้งฐานข้อมูลโดยใช้ตัวแปรแทนค่า

นี่คือตัวอย่างการจำลองข้อมูลพร้อมกับการย้ายกลุ่มไฟล์หลักแต่ละกลุ่ม:

RUN {
  SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf';
  ตั้งชื่อใหม่สำหรับไฟล์ข้อมูล 2 เป็น ';/oradata2/sysaux01.dbf';
  SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';
  SET NEWNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf';
  ตั้งชื่อใหม่สำหรับไฟล์ข้อมูล 5 เป็น '/oradata5/users02.dbf';
  SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.dbf';
  
   DUPLICATE เป้าหมายฐานข้อมูล ถึง dupdb
    SKIP TABLESPACE tools
    LOGFILE
     GROUP 1 ('/duplogs/redo01a.log','/duplogs/redo01b.log','/duplogs/redo01b.log') SIZE 4M REUSE,  
      GROUP 2 ('/duplogs/redo02a.log','/duplogs/redo02b.log','/duplogs/redo02b.log') ขนาด 4M REUSE;
}

สำหรับสภาพแวดล้อมที่ใหญ่ขึ้น หรือเมื่อต้องเปลี่ยนชื่อไฟล์จำนวนมาก คุณสามารถใช้ตัวแปรแทนชื่อ เช่น %b (ชื่อไฟล์หลัก) %U (ชื่อเฉพาะตัว) %N (ชื่อพื้นที่ตาราง) เป็นต้น ซึ่งจะช่วยจัดการชื่อโดยอัตโนมัติ:

RUN {
   SET NEWNAME FOR TABLESPACE users TO '/oradata%f/%b'; 
   SET NEWNAME FOR DATABASE TO '/oradata/%U'; 
   DUPLICATE TARGET DATABASE TO dupdb NOFILENAMECHECK; 
}

ควรตรวจสอบให้แน่ใจเสมอว่าอินสแตนซ์เสริมของคุณ ตำแหน่งปลายทาง มีไฟล์รหัสผ่านของตัวเองที่สร้างไว้ล่วงหน้า (ORAPWD) และมีการกำหนดรายการลิสเทนเนอร์แบบคงที่เพื่อให้การเชื่อมต่อสำเร็จ

หากคุณกำลังทำงานกับ ASM disk groups หรือเปิดใช้งานคุณสมบัติการจัดการพื้นที่จัดเก็บข้อมูล OMF (ตั้งค่าพารามิเตอร์ DB_CREATE_FILE_DEST) ให้ Oracle สร้างชื่อไฟล์โดยอัตโนมัติ:

RUN {
   SET NEWNAME FOR TABLESPACE users TO NEW; 
   DUPLICATE TARGET DATABASE TO dupdb; 
}

การสำรองข้อมูลระดับองค์กรสำหรับฐานข้อมูล Oracle: Vinchin Backup & Recovery

หลังจากที่ดำเนินการกู้คืนหรือย้ายสภาพแวดล้อม Oracle แล้ว การมีการป้องกันด้วยการสำรองข้อมูลอย่างมั่นคงจึงเป็นสิ่งจำเป็นต่อความน่าเชื่อถือและการปฏิบัติตามข้อกำหนดอย่างต่อเนื่อง Vinchin Backup & Recovery เป็นโซลูชันระดับองค์กรแบบมืออาชีพที่รองรับฐานข้อมูลชั้นนำในปัจจุบัน ได้แก่ Oracle, MySQL, SQL Server, MariaDB, PostgreSQL, PostgresPro และ TiDB โดยมีการครอบคลุมอย่างสมบูรณ์แบบ ซึ่งออกแบบมาโดยเฉพาะสำหรับแพลตฟอร์มสำคัญ เช่น ฐานข้อมูล Oracle ที่กล่าวถึงก่อนหน้านี้ตามความเกี่ยวข้อง

คุณสมบัติหลัก เช่น การรองรับการสำรองข้อมูลแบบเพิ่มเติม (incremental backup) เพื่อจับการเปลี่ยนแปลงอย่างมีประสิทธิภาพ การทำให้การสำรองฐานข้อมูลแบบกลุ่มอัตโนมัติในหลายอินสแตนซ์พร้อมกันได้ ตัวเลือกการบีบอัดข้อมูลแบบหลายระดับเพื่อการใช้พื้นที่จัดเก็บที่เหมาะสมที่สุด นโยบายการเก็บรักษายืดหยุ่นรวมถึงกลยุทธ์ GFS เพื่อตอบสนองความต้องการตามข้อกำหนดทางกฎหมาย และการตรวจสอบการกู้คืนภายในตัวผ่านสคริปต์ SQL ทำงานร่วมกันได้อย่างไร้รอยต่อภายในแพลตฟอร์ม Vinchin Backup & Recovery มอบการป้องกันที่คล่องตัว ลดความเสี่ยงในการดำเนินงานและความพยายามแบบแมนนวลให้น้อยที่สุด

คอนโซลเว็บที่ใช้งานง่ายทำให้การปกป้องสภาพแวดล้อม Oracle ของคุณเป็นเรื่องง่าย

ขั้นตอนที่ 1 เลือกฐานข้อมูล Oracle ที่ต้องการสำรองข้อมูล

เลือกฐานข้อมูล Oracle เพื่อสำรองข้อมูล

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

เลือกที่จัดเก็บสำรอง

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

กำหนดกลยุทธ์การสำรองข้อมูลของคุณ

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

ส่งงาน

Vinchin Backup & Recovery ได้รับการยอมรับทั่วโลกจากลูกค้าองค์กร เนื่องจากมีคะแนนความน่าเชื่อถือสูงและผลลัพธ์ที่พิสูจน์แล้วทั่วโลก เริ่มต้นปกป้องฐานข้อมูลที่สำคัญต่อธุรกิจของคุณได้ทันทีด้วยการทดลองใช้งานฟีเจอร์ครบถ้วนโดยไม่มีความเสี่ยง 60 วัน โดยคลิกที่ดาวน์โหลดด้านล่างนี้

คำถามที่พบบ่อยเกี่ยวกับ Oracle RMAN Set Newname

คำถามที่ 1 ผมสามารถใช้ SET NEWNAME ร่วมกับ recovery catalog ได้ไหม?

ได้ คุณควรทำสิ่งนี้โดยเฉพาะในระบบที่ซับซ้อน เนื่องจากแคตตาล็อกสามารถติดตามการเปลี่ยนแปลงทางประวัติศาสตร์ข้ามการกู้คืน/การย้ายหลายครั้งได้อย่างง่ายดาย

คำถามที่ 2 หากไดเรกทอรีเป้าหมายของผมไม่มีอยู่เมื่อเรียกใช้งาน RESTORE จะเกิดอะไรขึ้น?

RMAN แสดงข้อผิดพลาด ORA‑27040 ("ข้อผิดพลาดการสร้างไฟล์") แก้ไขโดยการสร้างโฟลเดอร์ที่หายไปล่วงหน้าในระดับระบบปฏิบัติการ จากนั้นรันคำสั่ง RESTORE/SWITCH อีกครั้ง

คำถามที่ 3 มีความแตกต่างกันอย่างไรระหว่าง CONFIGURE AUXNAME กับ SET NEWNAME?

CONFIGURE AUXNAME ตั้งค่าเส้นทางสำรองที่มีอยู่ตลอดเวลา ซึ่งใช้เป็นหลักในระหว่างงานการจำลองข้อมูล ในขณะที่ SET NEWNAME จะใช้งานได้เพียงภายในหนึ่งช่วงการดำเนินงาน RUN block เท่านั้นต่อการปฏิบัติการแต่ละครั้ง

สรุป

คำสั่ง SET NEWNAME ทำให้ผู้ดูแลฐานข้อมูลสามารถควบคุมตำแหน่งปลายทางของสำเนาที่กู้คืนได้อย่างแม่นยำในระหว่างการทำงานโยกย้ายหรือกู้คืนที่สำคัญ ซึ่งช่วยเพิ่มความปลอดภัยให้กับโครงการที่ซับซ้อนทุกขั้นตอน Vinchin ยังช่วยทำให้งานการปกป้องและย้ายข้อมูลง่ายยิ่งขึ้นผ่านอินเทอร์เฟซที่ใช้งานง่ายพร้อมตัวเลือกการอัตโนมัติขั้นสูง ลองใช้ Vinchin ได้เลยโดยไม่มีความเสี่ยง

แชร์บน:

Categories: Database Backup