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:
- หาบรรทัดที่มีคำว่า
RESETLOGS case
- ลบบรรทัดข้างบนของข้อ 1 ให้หมด
- เปลี่ยนชื่อ Database name และจาก REUSE เป็น SET
CREATE CONTROLFILE REUSE DATABASE "2GINTER" RESETLOGS NOARCHIVELOG
to
CREATE CONTROLFILE SET DATABASE "4GPROD" RESETLOGS NOARCHIVELOG
Note, ในที่นี้ใช้สำหรับ Database ที่อยู่ใน mode noarchive - ลบบรรทัดที่มีข้อความ
RECOVER DATABASE USING BACKUP CONTROLFILE
. -
ลบบรรทัดที่มี #.
ตัวอย่าง controlfile ที่แก้ไขตามด้านบนแล้ว:
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 : 5204Filed under: Database, DBA, Oracle, Oracle Tips · Tags: change name oracle, how to rename an oracle database, rename sid, renaming an oracle database
Pingback: Renaming an Oracle database เปลี่ยนชื่อฐานข้อมูล | Oracle in Thai | Oracle in Thai | Oracle User Group in Thailand |()