PS:本文不记录如何安装oracle 11gR2 ,可自行百度安装文档。
操作系统:中标麒麟 V7
oracle11g安装过程中报错:
错误一:Error in invoking target ‘agent nmhs’ of makefile ‘/data/app/oracle/product/11.2.0.4/dbhome_1/sysman/lib/ins_emagent.mk’. See ‘/data/app/oraInventory/logs/installActions2022-08-07_02-30-11PM.log’ for details.
()
解决方法:进入Oracle安装文件夹下 ,本次安装的路径如下 /data/app/oracle/product/11.2.0.4/dbhome_1/sysman/lib/ ,修改文件 ins_emagent.mk中的内容。
在末尾添加 -lnnz11参数,首个是字母l,后面是数字11
[oracle@oracle ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@oracle lib]$ vi ins_emagent.mk
#===========================
# emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
-----------------------------------
以下是安装过程中使用的命令和详情
–准备两台服务器,前期安装单机版步骤和单实例教程一样,下面开始配置
1.安装11g如果发现外部连接不通.报tns连接超时,telnet一下,如果数据库端口不通,需要增加iptables信任
在/etc/sysconfig/iptables 这个配置文件里添加一条开放11521端口的策略,根据里面的写
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521-j ACCEPT
2.tns文件配置
假设服务器 oracle112 和 oracle113 的ip分别为172.16.10.112(备) 和 172.16.10.113(主)
主备分别添加
orcl113 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.113)(PORT = 11521))
)
(CONNECT_DATA =
(SID = orcl)
)
)
orcl112 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.112)(PORT = 11521))
)
(CONNECT_DATA =
(SID = orcl)
)
)
3.修改主备库listener.ora文件,添加静态文件
主备分别添加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/product/12.1.0/dbhome_1)----取实际路径
(SID_NAME = orcl)
)
)
4.修改主备库归档模式,主备库都需要开启归档
(1)强制开启日志
alter database force logging;
(2)设置归档大小
alter system set db_recovery_file_dest_size=50G scope=both;
(3)开始归档
sqlplus /as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
5.创建standby redo log,增加日志组(只需要主库做,开启同步的时候备份日志会复制过去)
采用的是双日志组,比正常日志组要多一组
ALTER DATABASE ADD standby logfile GROUP 4('/mnt/app/oracle/oradata/ORCL/redo04a.log','/mnt/app/oracle/oradata/ORCL/redo04b.log') SIZE 2048M;
ALTER DATABASE ADD standby logfile GROUP 5('/mnt/app/oracle/oradata/ORCL/redo05a.log','/mnt/app/oracle/oradata/ORCL/redo05b.log') SIZE 2048M;
ALTER DATABASE ADD standby logfile GROUP 6('/mnt/app/oracle/oradata/ORCL/redo06a.log','/mnt/app/oracle/oradata/ORCL/redo06b.log') SIZE 2048M;
ALTER DATABASE ADD standby logfile GROUP 7('/mnt/app/oracle/oradata/ORCL/redo07a.log','/mnt/app/oracle/oradata/ORCL/redo07b.log') SIZE 2048M;
创建完成后可以按照单实例的吧日志组123也全部重建一下
6,关键的一步.配置spfile参数
生成pfile文件,数据库默认是spfile文件启动,但是不可编辑,我们可以复制一份成pfile进行编辑启动
SQL>create pfile from spfile;
然后编辑pfile文件增加adg的参数
#在最后添加如下内容—根据实际情况修改
*.db_unique_name='orcl113'
#主节点
*.fal_server='orcl112'
#当前节点
*.fal_client='orcl113'
#dbf文件路径转换
*.db_file_name_convert='/mnt/app/oracle/oradata/ORCL/','/mnt/app/oracle/oradata/ORCL/'
#日志文件路径转换
*.log_file_name_convert='/mnt/app/oracle/oradata/ORCL/','/mnt/app/oracle/oradata/ORCL/'
#归档配置
*.log_archive_config='dg_config=(orcl113,orcl112)'
#本地归档
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=orcl113'
#远程归档
*.log_archive_dest_2='service=orcl_sty LGWR ASYNC valid_for=(online_logfiles,primary_role) db_unique_name=orcl112'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE''
修改后吧原来的spfile文件做个备份,然后把修改后的文件重新同步到spfile
SQL>create spfile from pfile;
最后重新启动数据库
7.主备数据库保护模式要一致,如果命令不能直接启动,数据库要以mount状态启动
说明如下:
DataGuard的三种数据保护模式:
(1)MAXIMIZE PROTECTION(最大保护模式): alter database set standby database to MAXIMIZE PROTECTION; 最大数据保护与无数据分歧,LGWR将同时传送到备用节点,在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。如果出现了什么故障导致 standby数据库不可用的话,primary 数据库会被shutdown。不适合在生产环境种应用。
(2)MAXIMIZE AVAILABILITY(最大可用模式): alter database set standby database to maximize availability; 无数据丢失模式,允许数据分歧,允许异步传送。正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。对数据库性能有影响,数据丢失相对最大性能模式要小。 不受备库影响。
(3)MAXIMIZE PERFORMANCE(最大性能模式): alter database set standby database to MAXIMIZE PERFORMANCE; 最大性能模式是默认的保护模式。这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,无数据同步检查,可能丢失数据,但是能获得主节点的最大性能。在主数据库出现故障的情况下,可能有一些在主数据库上提交了的事务没有传输到备用数据库中。Primary不受影响备库影响。
8.开始数据同步
(1)备库启动数据库至mount状态
SQL> shutdown immediate;
SQL> startup mount;
(2)退出或者重新打开备库oracle窗口上执行rman target连接主备库
rman target sys/oracle@orcl113 auxiliary sys/oracle@orcl112
然后执行同步命令
RMAN> DUPLICATE TARGET DATABASE for standby FROM ACTIVE DATABASE nofilenamecheck;
(3)完成后切换到sql–启动备库用第二条实时同步那个
alter database recover managed standby database disconnect from session; --启动 mrp 进程
alter database recover managed standby database using current logfile disconnect from session;---实时同步
alter database recover managed standby database delay 60 disconnect from session; --延时 60 分钟同步