织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

Oracle 11g 单实例到RAC DG搭建步骤

时间:2025-01-07 05:00来源: 作者:admin 点击: 21 次
DBA技术社区,Oracle,RAC,OGG,DataGuard,PostgreSQL,Mysql,数据库,大数据,python,Linux,闪存卡,分布式/云计算,PMP,OCP,OCM,IT技术平台

1.Oracle单实例到RAC DG搭建步骤 1.1.环境说明 角色 主库 备库
IP   192.168.1.59   192.168.1.51/52  
数据库类型   单实例   RAC  
实例   orcl   orcl1,orcl2  
db_name   orcl   orcl  
db_unique_name   orcl_st   orcl  
服务名   orcl_st   orcl_pd  
1.2.主库设置为 force logging 模式 SQL> alter database force logging; Database altered. SQL> select force_logging from v$database; FORCE_LOGGING --------------------------------------- YES 1.3.修改主库为归档模式 1.3.1.查看是否归档 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination /oracle/app/oracle/product/12.1.0/db_1/dbs/arch Oldest online log sequence 22 Current log sequence 23 1.3.2.修改归档路径参数 sqlplus / as sysdba SQL> alter system set log_archive_dest_1='location= /oracle/archive' scope=spfile sid='*'; 1.3.3.开启归档模式 将数据库启动到mount状态并修改数据库的归档模式并启动数据库 SQL>shutdown immediate SQL> startup mount SQL> alter database archivelog; SQL> alter database open; 1.3.1.查看归档模式 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /oracle/archive Oldest online log sequence 59 Next log sequence to archive 60 Current log sequence 60 1.4.配置主备库的监听:listener.ora 用 net manager 工具,在备库创建一个监听。 也可以手动的修改 listener.ora 文件。 --对于 RAC 环境: 用grid用户操作 节点1 [grid@rac1 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora 添加以下内容: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`) (SID_NAME = orcl1) ) ) 节点2 [grid@rac2 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora 添加以下内容: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`) (SID_NAME = orcl2) ) ) --这里写的 Oracle 用户的 ORACLE_HOME,否则连接时会报错: ORA-01031: insufficient privileges 然后重启监听 [grid@rac1 admin]$ lsnrctl reload [grid@rac2 admin]$ lsnrctl reload 单实例: 用oracle用户操作 修改listenerr.ora文件添加以下内容: [oracle@adg admin]$ cp listener.ora listener.ora.ora [oracle@adg admin]$ vi /oracle/app/product/12.1.0/db_1/network/admin/listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1) (SID_NAME = orcl) ) ) 然后重启监听 [oracle@adg admin]$ lsnrctl reload 1.5.配置主备库的 Net Server:tnsnames.ora [oracle@rac1 admin]$ cp tnsnames.ora tnsnames.ora.bak 节点1,节点2,单实例 的 tnsnames.ora 文件添加以下内容,对应rac使用netmgr创建服务或者直接把单实例的tnsnames.ora 复制过去对应修改即可。 [oracle@rac1 admin]$ vi /oracle/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora orcl_pd= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.51)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.52)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =orcl) ) ) orcl_st= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 配置完成后,使用 tnsping 命令效验: [oracle@rac1 ~]$ tnsping orcl_pd [oracle@rac2 ~]$ tnsping orcl_st 1.6.RAC创建相关目录 [oracle@adg admin]$ mkdir -p /oracle/app/oracle/fast_recovery_area/orcl [oracle@adg admin]$ mkdir -p /oracle/app/oracle/oradata/orcl [oracle@adg admin]$ mkdir -p /oracle/app/oracle/admin/orcl/adump [grid@rac1 ~]$ asmcmd ASMCMD> ls DATA/ FRA/ OCRVOTE/ ASMCMD> cd data ASMCMD> mkdir orcl ASMCMD> cd orcl ASMCMD> mkdir controlfile datafile onlinelog parameterfile password tempfile 1.7.创建备库口令文件 主库 [oracle@rac1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl1 password=oracle [oracle@rac2 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl2 password=oracle 备库 [oracle@adg ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle 或者把节点的口令文件copy 到备库 [oracle@adg dbs]$ scp orapworcl 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl1 [oracle@adg dbs]$ scp orapworcl 192.168.1.52:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl2 1.8.修改主库参数文件 alter system set log_archive_config='dg_config=(orcl,orcl_st)' scope=both sid='*'; alter system set log_archive_dest_1='location=/oracle/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl_st' scope=both sid='*'; alter system set log_archive_dest_2='service=orcl_pd valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=both sid='*'; alter system set log_archive_dest_state_1=enable scope=both sid='*'; alter system set log_archive_dest_state_2=enable scope=both sid='*'; alter system set standby_file_management='auto' scope=both sid='*'; alter system set fal_server='orcl_pd' scope=both sid='*'; alter system set db_file_name_convert='+DATA/orcl/datafile','/oracle/app/oracle/oradata/orcl','+DATA/orcl/tempfile','/oracle/app/oracle/oradata/orcl' scope=both sid='*'; alter system set log_file_name_convert='+DATA/orcl/onlinelog','/oracle/app/oracle/oradata/orcl' scope=both sid='*'; alter system set log_archive_format='%t_%s_%r.arch' scope=both sid='*'; 1.9.修改备库参数文件 在主库创建pfile 文件并scp 到备库修改 主要指定一些pfile的路径,不要直接create pfile from spfile create pfile='/tmp/initorcl1.ora' from spfile; [oracle@rac1 tmp]$ scp /tmp/initorcl1.ora 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs 修改备库的参数文件添加以下内容: orcl2.__data_transfer_cache_size=0 orcl1.__data_transfer_cache_size=0 orcl2.__db_cache_size=369098752 orcl1.__db_cache_size=419430400 orcl2.__java_pool_size=16777216 orcl1.__java_pool_size=16777216 orcl2.__large_pool_size=33554432 orcl1.__large_pool_size=33554432 orcl1.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment orcl2.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment orcl2.__pga_aggregate_target=402653184 orcl1.__pga_aggregate_target=402653184 orcl2.__sga_target=771751936 orcl1.__sga_target=771751936 orcl2.__shared_io_pool_size=33554432 orcl1.__shared_io_pool_size=33554432 orcl2.__shared_pool_size=301989888 orcl1.__shared_pool_size=251658240 orcl2.__streams_pool_size=0 orcl1.__streams_pool_size=0 *.audit_file_dest='/oracle/app/oracle/admin/orcl/adump' *.audit_trail='db' *.cluster_database=true *.compatible='12.1.0.2.0' *.control_files='+DATA/ORCL/CONTROLFILE/current.261.985172099' *.db_block_size=8192 *.db_create_file_dest='+DATA' *.db_domain='' *.db_name='orcl' *.diagnostic_dest='/oracle/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' orcl2.instance_number=2 orcl1.instance_number=1 *.memory_target=1120m *.open_cursors=300 *.processes=300 *.remote_login_passwordfile='exclusive' orcl2.thread=2 orcl1.thread=1 orcl1.undo_tablespace='UNDOTBS1' orcl2.undo_tablespace='UNDOTBS2' --添加以下内容,对应修改上面的参数 *.service_names='orcl_pd' *.db_unique_name='orcl' *.log_archive_config='dg_config=(orcl,orcl_st)' *.log_archive_dest_1='location=+FRA valid_for=(all_logfiles,all_roles) db_unique_name=orcl' *.log_archive_dest_2='service=orcl_st valid_for=(online_logfiles,primary_role) db_unique_name=orcl_st' *.log_archive_dest_state_1='ENABLE' *.log_archive_dest_state_2='ENABLE' *.log_archive_format='%t_%s_%r.arch' *.standby_file_management='auto' *.fal_server='orcl_st' *.log_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/onlinelog' *.db_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/datafile','/u01/app/oracle/oradata/orcl/tempfile','+DATA/orcl/tempfile' 1.10.使用 spfile 将备库启动 nomount 状态并启动监听 [oracle@adg orcl]$ lsnrctl start [oracle@adg orcl]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 19 20:46:28 2018 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount pfile='/oracle/app/oracle/product/12.1.0/db_1/dbs/initorcl1.ora' ORACLE instance started. Total System Global Area 1048576000 bytes Fixed Size 2932336 bytes Variable Size 654311824 bytes Database Buffers 385875968 bytes Redo Buffers 5455872 bytes 1.11.测试密码文件是否正确 --源端 sqlplus sys/oracle@orcl_st as sysdba rman target sys/oracle@orcl_st --目标端 sqlplus sys/oracle@orcl_pd as sysdba rman target sys/oracle@orcl_pd 1.12.开始进行 duplicate [oracle@adg orcl]$ rman target sys/oracle@orcl_st auxiliary sys/oracle@orcl_pd Recovery Manager: Release 12.1.0.2.0 - Production on Fri Sep 21 00:11:05 2018 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1512952835) connected to auxiliary database: ORCL (not mounted) RMAN> duplicate target database for standby from active database dorecover; 1.13.创建共享的spfile文件 create spfile='+DATA/' from pfile='/tmp/initorcl1.ora'; 1.14.注册database到srvctl SQL> shutdown immediate 注册数据库及参数文件 [oracle@rac1 ~]$srvctl add database -d orcl -o /oracle/app/oracle/product/12.1.0/db_1/ -p +data/orcl/parameterfile/spfile.268.985172961 注册实例 [oracle@rac1 ~]$srvctl add instance -d orcl -i orcl1 -n rac1 [oracle@rac1 ~]$srvctl add instance -d orcl -i orcl2 -n rac2 1.15.重启数据库 [oracle@rac1 ~]$srvctl stop database -d orcl [oracle@rac1 ~]$srvctl start database -d orcl [oracle@rac1 ~]$ srvctl status database -d orcl Instance orcl1 is running on node rac1 Instance orcl2 is running on node rac2 1.16.主备库添加Standby logfile RAC 每个 Redo Thread 都需要创建对应的 Standby Redo Log。 创建原则和单实例一样,包括日志 文件大小相等,日志组数量要多1组。 1.16.1.备库添加standby redo log SQL> set lines 120 SQL> col member for a50 SQL> select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#; THREAD# GROUP# A.BYTES/1024/1024 MEMBER ---------- ---------- ----------------- -------------------------------------------------- 1 2 50 +DATA/ORCL/ONLINELOG/group_2.263.985172107 1 1 50 +DATA/ORCL/ONLINELOG/group_1.262.985172105 2 3 50 +DATA/ORCL/ONLINELOG/group_3.266.985172955 2 4 50 +DATA/ORCL/ONLINELOG/group_1.267.985172957 alter database add standby logfile thread 1 group 5 ('+DATA') size 50m; alter database add standby logfile thread 1 group 6 ('+DATA') size 50m; alter database add standby logfile thread 1 group 7 ('+DATA') size 50m; alter database add standby logfile thread 2 group 8 ('+DATA') size 50m; alter database add standby logfile thread 2 group 9 ('+DATA') size 50m; alter database add standby logfile thread 2 group 10 ('+DATA') size 50m; select group#,type,member from v$logfile order by 2; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------- 2 ONLINE +DATA/ORCL/ONLINELOG/group_2.263.985172107 4 ONLINE +DATA/ORCL/ONLINELOG/group_1.267.985172957 3 ONLINE +DATA/ORCL/ONLINELOG/group_3.266.985172955 1 ONLINE +DATA/ORCL/ONLINELOG/group_1.262.985172105 9 STANDBY +DATA/ORCL/ONLINELOG/group_9.273.987282345 8 STANDBY +DATA/ORCL/ONLINELOG/group_8.272.987282341 5 STANDBY +DATA/ORCL/ONLINELOG/group_5.271.987282333 7 STANDBY +DATA/ORCL/ONLINELOG/group_7.270.987282315 10 STANDBY +DATA/ORCL/ONLINELOG/group_10.271.987282353 6 STANDBY +DATA/ORCL/ONLINELOG/group_6.269.987282309 1.16.2.主库添加standby redo log SQL> set lines 120 SQL> col member for a80 SQL> select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#; THREAD# GROUP# A.BYTES/1024/1024 MEMBER ---------- ---------- ----------------- -------------------------------------------------------------------------------- 1 1 50 /oracle/app/oracle/oradata/orcl/group_1.262.985172105 1 2 50 /oracle/app/oracle/oradata/orcl/group_2.263.985172107 2 3 50 /oracle/app/oracle/oradata/orcl/group_3.266.985172955 2 4 50 /oracle/app/oracle/oradata/orcl/group_1.267.985172957 ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 5 '/oracle/app/oracle/oradata/orcl/stbredo01.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 6 '/oracle/app/oracle/oradata/orcl/stbredo02.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 7 '/oracle/app/oracle/oradata/orcl/stbredo03.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 8 '/oracle/app/oracle/oradata/orcl/stbredo01.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 9 '/oracle/app/oracle/oradata/orcl/stbredo05.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 10 '/oracle/app/oracle/oradata/orcl/stbredo06.log' SIZE 50M; SQL> select group#,type,member from v$logfile order by 2; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 2 ONLINE /oracle/app/oracle/oradata/orcl/group_2.263.985172107 4 ONLINE /oracle/app/oracle/oradata/orcl/group_1.267.985172957 3 ONLINE /oracle/app/oracle/oradata/orcl/group_3.266.985172955 1 ONLINE /oracle/app/oracle/oradata/orcl/group_1.262.985172105 9 STANDBY /oracle/app/oracle/oradata/orcl/stbredo05.log 8 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log 7 STANDBY /oracle/app/oracle/oradata/orcl/stbredo03.log 6 STANDBY /oracle/app/oracle/oradata/orcl/stbredo02.log 10 STANDBY /oracle/app/oracle/oradata/orcl/stbredo06.log 5 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log 1.17.启动备库 SQL> select NAME,open_mode from v$database; NAME OPEN_MODE --------- -------------------- ORCL MOUNTED SQL> alter database open; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY 1.18.启动 MRP 进程 SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY WITH APPLY

https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079 https://www.cndba.cn/leo1990/article/3079 https://www.cndba.cn/leo1990/article/3079

https://www.cndba.cn/leo1990/article/3079

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-03-09 09:03 最后登录:2025-03-09 09:03
栏目列表
推荐内容