单实例数据库转换为RAC数据库,Oracle 11.2.0.4
首先,安装一套RAC环境,并把单实例数据库通过通过rman还原到这个环境(通常如果是生产环境,我们会搭建从RAC到单实例数据库的ADG,以减少停机时间)。
然后生成一个源库(单实例数据库)spfile:
startup pfile=/home/oracle/orcld/spfile.orclddb.tmp 08:07:25 sys@orclddb>show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string
复制
注意检查tnsnames.ora中用于local_listener参数的两个配置条目是否正确:
LISTENER_RAC1=(ADDRESS = (PROTOCOL = TCP)(HOST = dm0101-vip.orcld.com)(PORT = 1521)) LISTENER_RAC2=(ADDRESS = (PROTOCOL = TCP)(HOST = dm0102-vip.orcld.com)(PORT = 1521))
复制
修改刚才备份的pfile文件(/home/oracle/orcld/spfile.orclddb.tmp),添加RAC相关配置:
*.audit_file_dest='/u01/app/oracle/admin/orclddb/adump' *.audit_trail='NONE' *.compatible='11.2.0.3.0' *.control_files='+DATADG/orclddb/control01.ctl','+DATADG/orclddb/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_files=2000 *.db_name='orclddb' *.db_recovery_file_dest='+RECODG' *.db_recovery_file_dest_size=336870912000 *.db_unique_name='orclddb' *.deferred_segment_creation=FALSE *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclddbXDB)' *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclddb' *.log_archive_dest_state_1='ENABLE' *.open_cursors=500 *.pga_aggregate_target=1059552256 *.processes=500 *.remote_login_passwordfile='EXCLUSIVE' *.resource_manager_plan='' *.session_cached_cursors=2000 *.sga_target=0 *.standby_file_management='AUTO' *.undo_tablespace='UNDOTBS1' #*.use_large_pages='ONLY' *.db_cache_size=3g *.shared_pool_size=3g *.streams_pool_size=28m *.java_pool_size=200m *.log_buffer=37108864 *.job_queue_processes=20 *.cluster_database=true *.cluster_database_instances=2 *.undo_management=AUTO *.db_create_file_dest='+DATADG' *.db_create_online_log_dest_1='+RECODG' orclddb1.undo_tablespace='UNDOTBS1' orclddb2.undo_tablespace='UNDOTBS2' orclddb1.instance_number=1 orclddb2.instance_number=2 orclddb1.instance_name=orclddb1 orclddb2.instance_name=orclddb2 orclddb1.thread=1 orclddb2.thread=2 orclddb1.local_listener=LISTENER_RAC1 orclddb2.local_listener=LISTENER_RAC2
复制
使用这个pfile启动数据库:
08:26:59 @>startup pfile=/home/oracle/orcld/spfile.orclddb.tmp ORACLE instance started. Total System Global Area 6881869824 bytes Fixed Size 2266064 bytes Variable Size 3573550128 bytes Database Buffers 3221225472 bytes Redo Buffers 84828160 bytes Database mounted. Database opened.
复制
添加thread2:
08:27:30 @>alter database add logfile thread 2 08:28:16 2 group 17 ('+RECODG') size 1024m, 08:28:16 3 group 18 ('+RECODG') size 1024m, 08:28:16 4 group 19 ('+RECODG') size 1024m, group 20 ('+RECODG') size 1024m, 08:28:16 5 08:28:16 6 group 21 ('+RECODG') size 1024m, 08:28:16 7 group 22 ('+RECODG') size 1024m, group 23 ('+RECODG') size 1024m, 08:28:16 8 08:28:16 9 group 24 ('+RECODG') size 1024m, group 25 ('+RECODG') size 1024m, 08:28:16 10 08:28:16 11 group 26 ('+RECODG') size 1024m, 08:28:16 12 group 27 ('+RECODG') size 1024m, group 28 ('+RECODG') size 1024m, 08:28:16 13 08:28:16 14 group 29 ('+RECODG') size 1024m, 08:28:16 15 group 30 ('+RECODG') size 1024m, 08:28:16 16 group 31 ('+RECODG') size 1024m, 08:28:16 17 group 32 ('+RECODG') size 1024m ;08:28:16 18 Database altered. Elapsed: 00:00:28.51
复制
添加实例2的undo表空间:
08:28:46 @>CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '+DATADG' SIZE 10480m ; Tablespace created. Elapsed: 00:00:09.87
复制
启用实例2(thread2):
08:29:11 @>alter database enable public thread 2; Database altered. Elapsed: 00:00:00.59
复制
创建spfile:
create spfile='+DATADG' from pfile='/home/oracle/orcld/spfile.orclddb.tmp'; File created. Elapsed: 00:00:00.21
复制
使用grid用户查看:
ASMCMD> ls spfile.3296.878718931 ASMCMD> pwd +datadg/orclddb/PARAMETERFILE ASMCMD>
复制
修改initorclddb1.ora 文件:
[oracle@dm01db01 dbs]$ cat initorclddb1.ora SPFILE='+datadg/orclddb/PARAMETERFILE/spfile.3296.878718931' [oracle@dm01db01 dbs]$
复制
检查数据库:
sys@orclddb>show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATADG/orclddb/parameterfile/spf ile.3296.878718931 08:42:11 sys@orclddb>show parameter cluster NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean TRUE cluster_database_instances integer 2 cluster_interconnects string 08:42:14 sys@orclddb>
复制
执行@?/rdbms/admin/catclust.sql,这个过程按照文档即可,没啥说的,执行完了检查日志,看看是否有报错。
然后启动数据库,检查2个数据库实例是否都正常了
SYS@orclddb2>startup ORACLE instance started. Total System Global Area 6881869824 bytes Fixed Size 2266064 bytes Variable Size 3573550128 bytes Database Buffers 3221225472 bytes Redo Buffers 84828160 bytes Database mounted. Database opened. SYS@orclddb2>select * from v$active_instances; INST_NUMBER INST_NAME ---------------- ------------------------------------------------------------------------------------------------------------------------ 1 dm01db01.orcld.com:orclddb1 2 dm01db02.orcld.com:orclddb2 Elapsed: 00:00:00.00 SYS@orclddb2> SYS@orclddb2>show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATADG/orclddb/parameterfile/spf ile.3296.878718931 SYS@orclddb2>
复制
把数据库实例添加到CRS中:
[oracle@dm01db01 ~]$ srvctl config database -d orclddb PRCD-1120 : The resource for database orclddb could not be found. PRCR-1001 : Resource ora.orclddb.db does not exist [oracle@dm01db01 ~]$ [oracle@dm01db01 ~]$ srvctl add database -d orclddb -o /u01/app/oracle/product/11.2.0.4/dbhome_1 [oracle@dm01db01 ~]$ srvctl add instance -d orclddb -n dm01db01 -i orclddb1 [oracle@dm01db01 ~]$ srvctl add instance -d orclddb -n dm01db02 -i orclddb2 [oracle@dm01db01 ~]$ srvctl config database -d orclddb Database unique name: orclddb Database name: Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1 Oracle user: oracle Spfile: Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: orclddb Database instances: orclddb1,orclddb2 Disk Groups: Mount point paths: Services: Type: RAC Database is administrator managed [oracle@dm01db01 ~]$ [oracle@dm01db01 ~]$ srvctl modify database -d orclddb -a DATADG,RECODG [oracle@dm01db01 ~]$ srvctl modify database -d orclddb -p '+DATADG/orclddb/parameterfile/spfile.3296.878718931' [oracle@dm01db01 ~]$ srvctl config database -d orclddb Database unique name: orclddb Database name: Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1 Oracle user: oracle Spfile: +DATADG/orclddb/parameterfile/spfile.3296.878718931 Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: orclddb Database instances: orclddb1,orclddb2 Disk Groups: DATADG,RECODG Mount point paths: Services: Type: RAC Database is administrator managed [oracle@dm01db01 ~]$
复制
最后修改时间:2020-07-20 10:05:22
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
完了吗?
2年前

评论
现在
4年前

评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1156次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
705次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
620次阅读
2025-03-06 09:41:49
【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
DarkAthena
517次阅读
2025-03-04 14:33:31
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
492次阅读
2025-03-05 00:42:34
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
427次阅读
2025-03-04 21:56:13
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
412次阅读
2025-03-13 14:38:19
【ORACLE】char类型和sql优化器发生的“错误”反应
DarkAthena
391次阅读
2025-03-04 23:05:01
什么,oracle 主机用户被删了?原来是虚惊一场!
Lucifer三思而后行
375次阅读
2025-03-03 21:12:09
Oracle RAC 数据文件添加成本存储的解决办法
ByteHouse
320次阅读
2025-02-26 16:40:50