oracle单实例变为rac,如何将 Oracle 单实例数据库转换为RAC数据库?

单实例数据库转换为RAC数据库,Oracle 11.2.0.4

首先,安装一套RAC环境,并把单实例数据库通过通过rman还原到这个环境(通常如果是生产环境,我们会搭建从RAC到单实例数据库的ADG,以减少停机时间)。

然后生成一个源库(单实例数据库)spfile:startup pfile=/home/oracle/orcld/spfile.orclddb.tmp08:07:25 sys@orclddb>show parameter spfileNAME 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=1orclddb2.instance_number=2orclddb1.instance_name=orclddb1orclddb2.instance_name=orclddb2orclddb1.thread=1orclddb2.thread=2orclddb1.local_listener=LISTENER_RAC1orclddb2.local_listener=LISTENER_RAC2

使用这个pfile启动数据库:08:26:59 @>startup pfile=/home/oracle/orcld/spfile.orclddb.tmpORACLE instance started.Total System Global Area 6881869824 bytesFixed Size 2266064 bytesVariable Size 3573550128 bytesDatabase Buffers 3221225472 bytesRedo Buffers 84828160 bytesDatabase mounted.Database opened.

添加thread2:08:27:30 @>alter database add logfile thread 208: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 18Database 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> lsspfile.3296.878718931ASMCMD> pwd+datadg/orclddb/PARAMETERFILEASMCMD>

修改initorclddb1.ora 文件:[oracle@dm01db01 dbs]$ cat initorclddb1.oraSPFILE='+datadg/orclddb/PARAMETERFILE/spfile.3296.878718931'[oracle@dm01db01 dbs]$

检查数据库:sys@orclddb>show parameter spfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string +DATADG/orclddb/parameterfile/spfile.3296.87871893108:42:11 sys@orclddb>show parameter clusterNAME TYPE VALUE------------------------------------ ----------- ------------------------------cluster_database boolean TRUEcluster_database_instances integer 2cluster_interconnects string08:42:14 sys@orclddb>

执行@?/rdbms/admin/catclust.sql,这个过程按照文档即可,没啥说的,执行完了检查日志,看看是否有报错。

然后启动数据库,检查2个数据库实例是否都正常了SYS@orclddb2>startupORACLE instance started.Total System Global Area 6881869824 bytesFixed Size 2266064 bytesVariable Size 3573550128 bytesDatabase Buffers 3221225472 bytesRedo Buffers 84828160 bytesDatabase mounted.Database opened.SYS@orclddb2>select * from v$active_instances;INST_NUMBER INST_NAME---------------- ------------------------------------------------------------------------------------------------------------------------1 dm01db01.orcld.com:orclddb12 dm01db02.orcld.com:orclddb2Elapsed: 00:00:00.00SYS@orclddb2>SYS@orclddb2>show parameter spfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string +DATADG/orclddb/parameterfile/spfile.3296.878718931SYS@orclddb2>

把数据库实例添加到CRS中:[oracle@dm01db01 ~]$ srvctl config database -d orclddbPRCD-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 orclddbDatabase unique name: orclddbDatabase name:Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1Oracle user: oracleSpfile:Domain:Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: orclddbDatabase instances: orclddb1,orclddb2Disk Groups:Mount point paths:Services:Type: RACDatabase 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 orclddbDatabase unique name: orclddbDatabase name:Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1Oracle user: oracleSpfile: +DATADG/orclddb/parameterfile/spfile.3296.878718931Domain:Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: orclddbDatabase instances: orclddb1,orclddb2Disk Groups: DATADG,RECODGMount point paths:Services:Type: RACDatabase is administrator managed[oracle@dm01db01 ~]$

墨天轮原文链接:https://www.modb.pro/db/27697(复制到浏览器中打开或者点击“阅读原文”)

视频号,新的分享时代,关注我们,看看有什么新发现?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle实例迁移为RAC(Real Application Cluster)是将原本运行在Oracle实例上的数据库,迁移到具有高可用性和可伸缩性的Oracle RAC集群上的过程。 在进行实例迁移到RAC之前,需要进行一些准备工作。首先,确保已经创建了适当的RAC集群,这意味着至少要有两个或更多节点可以支持集群。其次,需要为RAC集群配置共享存储,这可以是使用共享磁盘的SAN(存储区域网络)或NAS(网络附加存储)。 在迁移过程中,需要执行以下步骤: 1. 验证实例数据库的完整性和一致性,确保数据库可以顺利迁移。 2. 使用Oracle Database软件安装程序将Oracle RAC软件安装在RAC节点上。确保在每个节点上安装相同的软件版本和补丁程度。 3. 使用RAC节点上的Oracle DBCA(数据库配置助手)工具创建一个新的RAC数据库。在创建新数据库时,需要指定共享存储以及其他相关参数。 4. 在新的RAC数据库上执行数据迁移。可以使用Oracle Data Pump或RMAN(恢复管理器)来导出和导入数据。 5. 完成数据迁移后,需要更新应用程序连接信息和配置文件,以便连接到新的RAC数据库。 6. 进行充分的测试,包括验证在RAC集群上的数据库与原始实例数据库的功能和性能。 7. 一旦测试成功,可以切换应用程序到新的RAC数据库上,并关闭原始的实例数据库。 总的来说,将Oracle实例迁移到RAC集群是一项复杂的任务,涉及到多个步骤和考虑因素。需要提前做好策划和准备工作,并确保在迁移过程中保持数据库的完整性和一致性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值