Rename RAC Database

from:http://oracleinstance.blogspot.com/2012/01/rename-rac-database.html
 
Here is the document to renameRAC database and next post we can see how to rename racinstance.

here is an example.

renamed RAC database proddb to racdb in servers dc1and dc2.
  1. SQL> select instance_name,host_name from gv$instance;  
  2.   
  3. INSTANCE_NAME    HOST_NAME  
  4. ---------------- -------------------------  
  5. proddb1          dc1.localdomain  
  6. proddb2          dc2.localdomain  
  7.   
  8. SQL> select name from v$database;  
  9.   
  10. NAME  
  11. ---------  
  12. PRODDB  

taken backup of pfile initproddb1.ora and initproddb2.ora on bothnodes.
  1. [oracle@dc1 dbs]$ cat initproddb1.ora  
  2. SPFILE='+DATA/proddb/spfileproddb.ora'  
  3. [oracle@dc1 dbs]$ cp initproddb1.ora initproddb1.ora_orig   
  4. [oracle@dc1 dbs]$   
  5.   
  6. [oracle@dc2 ~]$ cd $ORACLE_HOME/dbs  
  7. [oracle@dc2 dbs]$ cat initproddb2.ora   
  8. SPFILE='+DATA/proddb/spfileproddb.ora'  
  9. [oracle@dc2 dbs]$ cp initproddb2.ora initproddb2.ora_bkp  
  10. [oracle@dc2 dbs]$   
create pfile from spfile.
taken controlfile backup to rename rac database.
  1. SQL> create pfile='/tmp/initproddb1.ora' from spfile;  
  2.   
  3. File created.  
  4.   
  5. SQL> alter database backup controlfile to trace;  
  6.   
  7. Database altered.  
  8.   
  9. SQL> --- or ----  
  10. SQL>   
  11. SQL> alter database backup controlfile to trace as '/tmp/ctl_trc_bkp.txt';  
  12.   
  13. Database altered.  

stop the RAC database using srvctl command.
  1. [oracle@dc1 ~]$ srvctl status database -d proddb  
  2. Instance proddb1 is running on node dc1  
  3. Instance proddb2 is running on node dc2  
  4. [oracle@dc1 ~]$ srvctl config database -d proddb  
  5. Database unique name: proddb  
  6. Database name: proddb  
  7. Oracle home: /u01/app/oracle/product/11.2.0/db_1  
  8. Oracle user: oracle  
  9. Spfile: +DATA/proddb/spfileproddb.ora  
  10. Domain:   
  11. Start options: open  
  12. Stop options: immediate  
  13. Database role: PRIMARY  
  14. Management policy: AUTOMATIC  
  15. Server pools: proddb  
  16. Database instances: proddb1,proddb2  
  17. Disk Groups: DATA  
  18. Services:   
  19. Database is administrator managed  
  20. [oracle@dc1 ~]$   
  21.   
  22. [oracle@dc1 ~]$ srvctl stop database -d proddb  
  23. [oracle@dc1 ~]$ srvctl status database -d proddb  
  24. Instance proddb1 is not running on node dc1  
  25. Instance proddb2 is not running on node dc2  
  26. [oracle@dc1 ~]$   
edit/replace proddb to racdb in the newly created pfile
and also the controlfile name.
change the value of the parameter cluster_database to false.
  1. racdb2.__db_cache_size=708837376  
  2. racdb1.__db_cache_size=708837376  
  3. racdb2.__java_pool_size=4194304  
  4. racdb1.__java_pool_size=4194304  
  5. racdb2.__large_pool_size=4194304  
  6. racdb1.__large_pool_size=4194304  
  7. racdb2.__pga_aggregate_target=394264576  
  8. racdb1.__pga_aggregate_target=394264576  
  9. racdb2.__sga_target=1056964608  
  10. racdb1.__sga_target=1056964608  
  11. racdb2.__shared_io_pool_size=0  
  12. racdb1.__shared_io_pool_size=0  
  13. racdb2.__shared_pool_size=331350016  
  14. racdb1.__shared_pool_size=331350016  
  15. racdb2.__streams_pool_size=0  
  16. racdb1.__streams_pool_size=0  
  17. *.audit_file_dest='/u01/app/oracle/admin/proddb/adump'  
  18. *.audit_trail='db'  
  19. #*.cluster_database=true  
  20. *.compatible='11.2.0.0.0'  
  21. *.control_files='+DATA/proddb/controlfile/control01.ctl'  
  22. *.db_block_size=8192  
  23. *.db_create_file_dest='+DATA'  
  24. *.db_domain=''  
  25. *.db_name='racdb'  
  26. *.diagnostic_dest='/u01/app/oracle'  
  27. *.dispatchers='(PROTOCOL=TCP) (SERVICE=racdbXDB)'  
  28. racdb2.instance_number=2  
  29. racdb1.instance_number=1  
  30. *.open_cursors=300  
  31. *.pga_aggregate_target=394264576  
  32. *.processes=150  
  33. *.remote_listener='dc-scan:1521'  
  34. *.remote_login_passwordfile='exclusive'  
  35. *.sga_target=1053818880  
  36. racdb2.thread=2  
  37. racdb1.thread=1  
  38. racdb2.undo_tablespace='UNDOTBS2'  
  39. racdb1.undo_tablespace='UNDOTBS1'  
startup the database in nomount mode with newly createdpfile.
  1. [oracle@dc1 ~]$ sqlplus as sysdba  
  2.   
  3. SQL*Plus: Release 11.2.0.1.0 Production on Sat Jan 17:35:55 2012  
  4.   
  5. Copyright (c) 1982, 2009, Oracle.  All rights reserved.  
  6.   
  7. Connected to an idle instance.  
  8.   
  9. SQL> startup nomount pfile='/tmp/initproddb1.ora';  
  10. ORACLE instance started.  
  11.   
  12. Total System Global Area 1054593024 bytes  
  13. Fixed Size                  1341196 bytes  
  14. Variable Size             276826356 bytes  
  15. Database Buffers          771751936 bytes  
  16. Redo Buffers                4673536 bytes  
  17. SQL>   
  18.   
  19. create script using backup of controlfile trace to re-create controlfile(to rename database)    
  20. CREATE CONTROLFILE SET DATABASE "RACDB" RESETLOGS  NOARCHIVELOG  
  21. MAXLOGFILES 192  
  22. MAXLOGMEMBERS  
  23. MAXDATAFILES 1024  
  24. MAXINSTANCES 32  
  25. MAXLOGHISTORY 292  
  26. LOGFILE  
  27. GROUP '+DATA/proddb/onlinelog/group_1.346.771671611'  SIZE 50M BLOCKSIZE 512,  
  28. GROUP '+DATA/proddb/onlinelog/group_2.341.771671615'  SIZE 50M BLOCKSIZE 512  
  29. DATAFILE  
  30. '+DATA/proddb/datafile/system.256.771671395',  
  31. '+DATA/proddb/datafile/sysaux.282.771671401',  
  32. '+DATA/proddb/datafile/undotbs1.344.771671403',  
  33. '+DATA/proddb/datafile/users.343.771671403',  
  34. '+DATA/proddb/datafile/undotbs2.339.771671757'  
  35. CHARACTER SET WE8MSWIN1252  
  36.  
  37.   
  38. SQL> @'/tmp/create_ctl.sql';  
  39.   
  40. Control file created.  
  41.   
  42. SQL> sho parameter cluster_  
  43.   
  44. NAME                                 TYPE        VALUE  
  45. ------------------------------------ ----------- ------------------------------  
  46. cluster_database                     boolean     FALSE  
  47. cluster_database_instances           integer      
  48. cluster_interconnects                string  
  49. SQL> shu immediate  
  50. Database closed.  
  51. Database dismounted.  
  52. ORACLE instance shut down.  
change the value of the parameter cluster_database to true andstartup the database.
  1. SQL> startup pfile='/tmp/initproddb1.ora';  
  2. ORACLE instance started.  
  3.   
  4. Total System Global Area 1054593024 bytes  
  5. Fixed Size                  1341196 bytes  
  6. Variable Size             339740916 bytes  
  7. Database Buffers          708837376 bytes  
  8. Redo Buffers                4673536 bytes  
  9. Database mounted.  
  10. Database opened.  

create new spfile using current pfile.
  1. SQL> create SPFILE='+DATA/proddb/spfileracdb.ora' from pfile='/tmp/initproddb1.ora';  
  2.   
  3. File created.  
  4.   
  5. SQL> sho parameter cluster  
  6.   
  7. NAME                                 TYPE        VALUE  
  8. ------------------------------------ ----------- ------------------------------  
  9. cluster_database                     boolean     TRUE  
  10. cluster_database_instances           integer      
  11. cluster_interconnects                string  
  12. SQL>   
  13. SQL>ALTER DATABASE ADD LOGFILE THREAD GROUP 3,GROUP 4;  
  14.   
  15. SQL> ALTER DATABASE OPEN RESETLOGS;  

create a new init pfile in the dbs directory and copy and paste thespfile location.
  1. [oracle@dc1 dbs]$ vi initracdb1.ora   
  2. SPFILE='+DATA/proddb/spfileracdb.ora'  
  3. [oracle@dc1 dbs]$ scp initracdb1.ora dc2:$ORACLE_HOME/dbs/initracdb2.ora  
  4. initracdb1.ora                                100%   38     0.0KB/s   00:00      
  5.   
  6. create new password file on both servers for database racdb.  
  7.   
  8. [oracle@dc1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwracdb1 password=oracle  
  9. [oracle@dc1 dbs]$   
  10.   
  11. [oracle@dc2 ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs  
  12. [oracle@dc2 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwracdb2.ora password=oracle  
  13. [oracle@dc2 dbs]$   
  14.   
  15. add an entry in the /etc/oratab file on both servers  
  16. [oracle@dc2 ~]$vi /etc/oratab  
  17. racdb2:/u01/app/oracle/product/11.2.0/db_1:N  
  18.   
  19. [oracle@dc1 ~]$vi /etc/oratab  
  20. racdb1:/u01/app/oracle/product/11.2.0/db_1:N  
  21. [oracle@dc2 ~]$ oraenv  
  22. ORACLE_SID [oracle] racdb2  
  23. The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 is /u01/app/oracle  
  24. [oracle@dc2 ~]$ sqlplus as sysdba  
  25.   
  26. SQL*Plus: Release 11.2.0.1.0 Production on Sun Jan 23:36:03 2012  
  27.   
  28. Copyright (c) 1982, 2009, Oracle.  All rights reserved.  
  29.   
  30. Connected to an idle instance.  
  31.   
  32. SQL> startup  
  33. ORACLE instance started.  
  34.   
  35. Total System Global Area 1054593024 bytes  
  36. Fixed Size                  1341196 bytes  
  37. Variable Size             339740916 bytes  
  38. Database Buffers          708837376 bytes  
  39. Redo Buffers                4673536 bytes  
  40. Database mounted.  
  41. Database opened.  
  42. SQL>   
  43.   
  44. SQL> select name from v$database;  
  45.   
  46. NAME  
  47. ---------  
  48. RACDB  
  49.   
  50. SQL> select instance_name,status from gv$Instance;  
  51.   
  52. INSTANCE_NAME    STATUS  
  53. ---------------- ------------  
  54. racdb1           OPEN  
  55. racdb2           OPEN  
register the database with grid.

[oracle@dc1 dbs]$ srvctl status database -d racdb
PRCD-1120 : The resource for database racdb could not befound.
PRCR-1001 : Resource ora.racdb.db does not exist

[oracle@dc1 dbs]$ srvctl remove database -d proddb
Remove the database proddb? (y/[n]) y
[oracle@dc1 dbs]$ srvctl add database -d racdb -o$ORACLE_HOME
[oracle@dc1 dbs]$ srvctl add instance -d racdb -i racdb1 -ndc1
[oracle@dc1 dbs]$ srvctl add instance -d racdb -i racdb2 -ndc2

[oracle@dc1 dbs]$ srvctl status database -d racdb
Instance racdb1 is not running on node dc1
Instance racdb2 is not running on node dc2

[oracle@dc1 dbs]$ srvctl start database -d racdb
[oracle@dc1 dbs]$ srvctl status database -d racdb
Instance racdb1 is running on node dc1
Instance racdb2 is running on node dc2

finally, Change the instance names in the tnsnames.ora andlistener.ora files.

regards,
Rajesh Kumar Govindarajan.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值