Articles Comments

Oracle DBA & All IT » Database, DBA, Oracle, Oracle Tips » Renaming an Oracle database – เปลี่ยนชื่อฐานข้อมูล

Renaming an Oracle database – เปลี่ยนชื่อฐานข้อมูล

ขึ้นปีใหม่ทั้งทีบางคนก็อยากเปลี่ยนชื่อเสริมดวง ฐานข้อมูลของเราก็อาจจะอยากเปลี่ยนชื่อเสริมดวงกันบ้าง เผื่อ Database จะได้ไม่ล่มกันบ่อยๆ อิอิ วันนี้เลยนำวิธีการเปลี่ยนชื่อฐานข้อมูลง่ายๆ มาฝากกัน

Step การเปลี่ยนชื่อฐานข้อมูลจาก 2GINTER เป็น 4GPROD.

1. ดูชื่อฐานข้อมูลเก่าก่อนที่จะลาขาด..
SQL> select name from v$database;
NAME
———
2GINTER

 

2. ทำการ switch logfile
SQL> alter system switch logfile;

3. ทำการ Backup Controlfile ด้วยคำสั่งด้านล่าง โดย Tracefile จะอยู่ใน udmp
SQL> alter database backup controlfile to trace;

 

4. ต้องทำการ Shutdown ระบบก่อนด้วย user SYS หรือ user ที่มีสิทธิ์ SYSDBA
SQL> shutdown immediate

 

5. ทำการแก้ไขใน Trace File ที่ generate ออกมาใน Path udmp:

  1. หาบรรทัดที่มีคำว่า RESETLOGS case
  2. ลบบรรทัดข้างบนของข้อ 1 ให้หมด
  3. เปลี่ยนชื่อ Database name และจาก REUSE เป็น SET
    CREATE CONTROLFILE REUSE DATABASE "2GINTER" RESETLOGS NOARCHIVELOG
    to
    CREATE CONTROLFILE SET DATABASE "4GPROD" RESETLOGS NOARCHIVELOG
    Note, ในที่นี้ใช้สำหรับ Database ที่อยู่ใน mode noarchive 
  4. ลบบรรทัดที่มีข้อความ RECOVER DATABASE USING BACKUP CONTROLFILE.
  5. ลบบรรทัดที่มี #.

 

ตัวอย่าง controlfile ที่แก้ไขตามด้านบนแล้ว:

 

STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE “4GPROD” RESETLOGS  NOARCHIVELOG
—  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 16
    MAXLOGMEMBERS 2
    MAXDATAFILES 30
    MAXINSTANCES 1
    MAXLOGHISTORY 454
LOGFILE
  GROUP 1 ‘/home/oracle/databases/cat/redo1.ora’  SIZE 100M,
  GROUP 2 ‘/home/oracle/databases/cat/redo2.ora’  SIZE 100M,
  GROUP 3 ‘/home/oracle/databases/cat/redo3.ora’  SIZE 100M
— STANDBY LOGFILE
DATAFILE
  ‘/home/oracle/databases/cat/system.dbf’,
  ‘/home/oracle/databases/cat/undo.dbf’,
  ‘/home/oracle/databases/cat/data.dbf’
CHARACTER SET WE8ISO8859P1
;
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE ‘/home/oracle/OraHome1/databases/ora9/temp.dbf’
     SIZE 104857600  REUSE AUTOEXTEND OFF;

 

6. ทำการ save เป็นชื่อใหม่ /tmp/rename_db.sql

 

7. เปลี่ยนชื่อ Controlfile เก่าเก็บไว้
$ mv ctl_1.ora ctl_1.ora.moved
$ mv ctl_2.ora ctl_2.ora.moved
$ mv ctl_3.ora ctl_3.ora.moved

 

8. เปลี่ยนชื่อ db_name ในไฟล์  initSID.ora:
initXXX.ora
db_name = 4GPROD

 

9. Connect เข้า Database ด้วย user SYS
sqlplus “/ as sysdba

 

10. รัน Controlfile ที่เราทำการ save ไว้
SQL> @/tmp/rename_db

 

11. เมื่อรันเสร็จลอง Select ดูชื่อ Database ได้เปลี่ยนไปแล้ว
SQL> select name from v$database;
NAME
———
4GPROD

 ^^ เสร็จแล้วชื่อใหม่ของเรา ปีนี้เบสเราจะไม่ล่มอีกต่อไปเพราะชื่อเป็นศิริมงคลแล้ว อิอิ

.. Preview : 5204

Written by

บอกเล่าสิ่งที่พบเจอมาในการทำงาน ประสบการณ์การทำงานด้าน DBA ถ่ายทอดกันด้วยภาษาง่ายๆ บ้านๆ " ทุกอย่างไม่อยาก แต่... แค่ตั้งใจไม่พอ ต้องลงมือทำ และทำ GoodLuck " Fanpage: www.facebook.com/DBAor .. "Oracle Database Consultant " ..

Filed under: Database, DBA, Oracle, Oracle Tips · Tags: , , ,