Mengganti nama ORACLE_SID dalam RAC Database

Mengganti nama ORACLE_SID dalam RAC Database

just sharing pengalaman baru baru ini. saya diminta untuk mengganti nama ORACLE_SID untuk memenuhi criteria dari piha customer.
untuk case ini, saya tidak mengganti nama database (DBNAME), saya hanya diminta mengganti ORACLE_SID name sesuai dengan criteria yang telah di tentukan oleh customer.
tapi saya akan sampaikan juga cara ganti dbname klo memang diperlukan.

saat ini kondisi dbname dan oracle_sid adalah sebagai berikut:
– dbname = PERFDB
– node 1 oracle_sid = perf1
– node 2 oracle_sid = perf2
– menggunakan ASM disks

yang diminta customer adalah sebagai berikut
– dbname tetap dengan PERFDB
– node 1 oracle_sid = perf5
– node 2 oracle_sid = perf6

nah, berikut adalah step step yang saya jalankan.
1. pertama-tama kita harus mengganti spfile.
dikarenakan oracle RAC sudah menggunakan spfile yang tidak bisa di edit secara langsung, maka perlu kita lakukan copy spfile menjadi pfile terlebih dahulu, agar bisa diedit.
command :
$echo $ORACLE_SID
– pastikan oracle_sidnya sudah cocok. dalam case ini adalah perf1
sqlplus / as sysdba
– setelah masuk dalam sqlplus, kemudian copy spfile ke pfile
SQL>create pfile=’/var/tmp/sample.ora’ from spfile;
SQL>exit
– kemudian shutdown database, dalam case ini, saya shutdown lewat srvctl
$srvctl stop database -d perfdb
– setelah database telah dishutdown, kemudian edit file pfile yang telah kita create di lokasi /var/tmp/sample.ora
– pastikan semua perf1 telah menjadi perf5 dan semua perf2 telah menjadi perf6, kemudian save file tersebut
$vi /var/tmp/sample.ora
– kemudian move sample.ora yang telah di update ke direktori initora di $ORACLE_HOME/dbs/
$mv /var/tmp/sample.ora $ORACLE_HOME/dbs/initperf5.ora

2. startup database dengan pfile yang baru.
$export ORACLE_SID=perf5
$echo $ORACLE_SID
– pastikan hasilnya adalah perf5
– kemudian $sqlplus / as sysdba
– jalankan startup nomount dan pastikan pfile yang akan digunakan untuk startup
SQL>startup nomount
– setelah database up dalam posisi nomount, kemudian create spfile dari pfile tersebut, dan pastikan letak file spfilenya berada dalam ASM yang telah shared diantara node RAC. dalam case ini spfile ditempatkan di direktori ASM +DATA_RAC/perfdb/
SQL>create spfile=’+DATA_RAC/perfdb/spfileperfdb.ora’ from pfile;
– setelah spfile dicreate, kita shutdown database lagi
SQL>shutdown immediate
SQL>exit

3. saatnya untuk update node selanjutnya.
– pastikan initperf5.ora hanya berisikan spfile=’+DATA_RAC/perfdb/spfileperfdb.ora’
– scp file initperf5.ora ke node selanjutnya
cd $ORACLE_HOME/dbs
scp initperf5.ora node2:/$ORACLE_HOME/dbs/
– kemudian masuk ke node 2 dan rename initperf5.ora menjadi initperf6.ora
$cd $ORACLE_HOME/dbs
mv initperf5.ora initperf6.ora

4. setelah initperf6.ora telah di update, saatnya men-startup node 2 dengan init file yang baru.
– pastikan login ke node 2
$export ORACLE_SID=perf6
$sqlplus / as sysdba
SQL>startup
– setelah semua up dengan normal, maka perkerjaan renaming oracle_sid telah selesai
– pastikan dengan melakukan check instance dan hasilnya perf5 dan perf6 terlihat dimasing masing node.
SQL>select instance_name,host_name from gv$instance;

5. kemudian, saatnya kita update srvctl
– pastikan kita sudah shutdown semua database terlebih dahulu, dan masuk ke salah satu node saja untuk menjalankan command berikut
– kemudian remove nama instance yang lama
$srvctl remove instance -d perfdb -i perf1
$srvctl remove instance -d perfdb -i perf2
– kemudian kita add kembali instance name yang baru
$srvctl add instance -d perfdb -i perf5 -n node1
$srvctl add instance -d perfdb -i perf6 -n node2

6. kemudian startup database kembali
$srvctl start database -d perfdb
– pastikan database up dengan instance yang baru perf5 di node1 dan perf6 di node2
$srvctl status database -d perfdb

7. nah, sekalian klo memang mau mengganti dbname, walaupun tidak melakukan ini dalam aktifiti yang saya jalankan, cuman perlu dishare mana tau diperlukan.
– pastikan parameter database sudah dalam cluster_database=false
– login ke node1, dan check parameter cluster_database
$export ORACLE_SID=perf5
$sqlplus / as sysdba
SQL> show parameter cluster_database
– kalau hasilnya masih true, kita harus ganti menjadi false dengan command berikut dan kemudian shutdown kedua node.
SQL> alter system set cluster_database=FALSE scope=spfile sid=’*’;
SQL> shutdown immediate
– setelah di shutdown database di kedua node, kemudian kita startup database di posisi mount dan node1 saja.
SQL>startup mount
SQL>exit
– setelah database start dalam posisi mount, kita jalankan command nid
$nid target=sys/password@perfdb dbname=newdb
– dan jawab yes dipertanyaan berikutanya untuk konfirmasi pergantian database name dari perfdb menjadi newdb.
– setelah selesai, jgn lupa update tnsname.ora disetiap client yang connect kedatabase perfdb. dan pastikan sudah menggunakan newdb.

terima kasih sudah berkunjung ke blog ini. semoga bermanfaat.

cheers.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: