参考文档:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/index.html

https://oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-oracle-linux

https://oracle-base.com/articles/12c/oracle-db-12cr2-rac-installation-on-oracle-linux-7-using-virtualbox

建设背景:

建设本文档的目的在于详细梳理12c RAC静默安装的流程,结合官方文档尽可能解释安装过程中的各种操作的原理,提供不同的存储配置方法和参数修改方法,最后形成一套完整的12c RAC静默安装步骤以便于今后参考。

安装流程:

一、软件下载

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

下载 linuxx64_12201_database.zip 和 linuxx64_12201_grid_home.zip 就可以了,然后上传至节点1的任意目录。

二、准备工作

完全参考《Oracle 12c RAC 安装文档》的二、三、四、五部分。

三、静默安装GRID

这里有个小坑,12c的GRID安装不再会按你设置的grid用户的$ORACLE_HOME变量来作为GI的家目录,而是直接将你GRID软件的解压目录作为家目录,因此你需要将linuxx64_12201_grid_home.zip拷贝至grid用户的$ORACLE_HOME,本文中就是/u01/12.2.0/grid,然后:

# chown grid.oinstall linuxx64_12201_grid_home.zip
# su - grid
$ unzip linuxx64_12201_grid_home.zip
--这样在进行安装时就会将你设置的grid用户的$ORACLE_HOME作为GI家目录了。
--这里还需要先装下cvuqdisk包,这个包存在于解压后的/home/oracle/database/rpm/目录下:
cp /home/oracle/database/rpm/cvuqdisk-1.0.10-1.rpm /root
--使用root rpm安装cvuqdisk
rpm -ivh cvuqdisk-1.0.10-1.rpm
--以上包的安装需要在2节点都执行,使用scp将cvuqdisk包传至节点二安装。

接下来生成响应文件,主要有2种方式,一是先使用图形界面进行自定义设置,然后到最后一步安装时不选择next而选择“Save Response File”,如下图所示的界面:

但是需要特别说明的是这样生成的响应文件是不能直接用的.......是很坑,但也算减少了一部分的工作量。二就是完全自己编一个响应文件。

无论哪种方式,标准的一个GRID安装响应文件应当如下:

# cat /u01/12.2.0/grid/grid_leo.rsp |grep -v "^$"|grep -v "^#"
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0
INVENTORY_LOCATION=/u01/app/oraInventory --Oracle软件产品目录
oracle.install.option=CRS_CONFIG --表明是进行GRID安装
ORACLE_BASE=/u01/app/grid --GRID ORACLE_BASE目录
oracle.install.asm.OSDBA=asmdba -
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=keguan-scanip --集群scan名称
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.ClusterConfiguration=STANDALONE --表示进行stand alone集群安装,注意并不是stand alone节点
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.memberClusterManifestFile=
oracle.install.crs.config.clusterName=keguan-cluster --集群名称
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=
oracle.install.crs.config.gpnp.gnsClientDataFile=
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.sites=
oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:HUB --表示在node1和node2安装集群
oracle.install.crs.config.networkInterfaceList=eth0:20.20.72.0:1,eth1:10.10.10.0:5 --表示公网和私网网段
oracle.install.asm.configureGIMRDataDG=true --表示单独为mgmtdb数据库准备磁盘组
oracle.install.crs.config.storageOption=
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=
oracle.install.asm.storageOption=ASM
oracle.install.asmOnNAS.ocrLocation=
oracle.install.asmOnNAS.configureGIMRDataDG=false
oracle.install.asmOnNAS.gimrLocation=
oracle.install.asm.SYSASMPassword=oracle --sysasm密码
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.FailureGroups=
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/mapper/RAC_OCR,
oracle.install.asm.diskGroup.disks=/dev/mapper/RAC_OCR
oracle.install.asm.diskGroup.quorumFailureGroupNames=
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/*
oracle.install.asm.monitorPassword=oracle --表示ASMSNMP账户的密码
oracle.install.asm.gimrDG.name=ARCHIVE --表示单独为mgmtdb数据库准备的磁盘组名为ARCHIVE(因为我把mgmtdb的磁盘组和归档磁盘组放在一起了)
oracle.install.asm.gimrDG.redundancy=EXTERNAL
oracle.install.asm.gimrDG.AUSize=4
oracle.install.asm.gimrDG.FailureGroups=
oracle.install.asm.gimrDG.disksWithFailureGroupNames=/dev/mapper/RAC_ARCHIVE, --最后的逗号记得千万不要删掉
oracle.install.asm.gimrDG.disks=/dev/mapper/RAC_ARCHIVE
oracle.install.asm.gimrDG.quorumFailureGroupNames=
oracle.install.asm.configureAFD=true
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsHost=
oracle.install.config.omsPort=0
oracle.install.config.emAdminUser=
oracle.install.config.emAdminPassword=
oracle.install.crs.rootconfig.executeRootScript=false
oracle.install.crs.rootconfig.configMethod=
oracle.install.crs.rootconfig.sudoPath=
oracle.install.crs.rootconfig.sudoUserName=
oracle.install.crs.config.batchinfo=
oracle.install.crs.app.applicationAddress=
--使用grid用户执行以下命令进行GRID静默安装:
$ /u01/12.2.0/grid/gridSetup.sh -silent -responseFile /u01/12.2.0/grid/grid_leo.rsp -skipPrereqs
--因为一些无关紧要的的预检测失败会导致安装终止,因此禁止Prereqs,前提是你的准备工作做的足够标准。
--如果你认为你的准备不够好,那么建议不加-skipPrereqs执行一下以便确定有哪些检查失败,有则改之无则加勉。

执行完毕后根据提示依次在两个节点执行/u01/app/oraInventory/orainstRoot.sh和/u01/12.2.0/grid/root.sh,第一个脚本基本秒完成,第二个脚本是完成集群配置的,用时很长,注意查看其日志获知集群配置的进度。

出现如下信息时表示执行完毕:

最后,静默安装GRID和图形界面安装不一样的地方还在于,在两节点运行完脚本后,你还需要继续按GI安装的提示执行如下命令来完成mgmtdb的配置:

/u01/12.2.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/12.2.0/grid/grid_leo.rsp -silent
--另开窗口查看日志(注意安装提示的日志位置只显示了目录,因此你需要自己找到如下格式的日志文件):
tail -f /u01/app/oraInventory/logs/GridSetupActions2018-08-15_04-44-29PM/gridSetupActions2018-08-15_04-44-29PM.log

上图为执行完毕后的截图,虽然显示一些配置失败,但从日志来看这些失败并不严重,因此我们忽略即可。

此时再使用crsctl stat res -t查看发现mgmtdb的状态已经由OFFLINE变为了ONLINE。

四、创建ASM磁盘组

su - grid
sqlplus / as sysasm
set lines 200
col path for a40
select group_number,header_status,state,name,path,redundancy from v$asm_disk;
select group_number,name,state,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
create diskgroup DATA external redundancy disk '/dev/mapper/RAC_DATA' ATTRIBUTE 'compatible.asm' = '12.2';
create diskgroup ARCHIVE external redundancy disk '/dev/mapper/RAC_ARCHIVE' ATTRIBUTE 'compatible.asm' = '12.2';
create diskgroup REDO external redundancy disk '/dev/mapper/REDO_01','/dev/mapper/REDO_02' ATTRIBUTE 'compatible.asm' = '12.2';

五、静默安装DATABASE软件

同GRID安装时一样,你有2种方式生成响应文件,一是使用图形界面自定义到安装时选择生成响应文件而不继续安装,二是直接自己编辑。

完整的响应文件应当如下:

cat /home/oracle/db.rsp |grep -v "^$"|grep -v "^#"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY --只安装数据库,随后单独dbca建库
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory --oracle产品目录
ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE --Enterprise Edition,选择企业版安装
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rac.configurationType=
oracle.install.db.CLUSTER_NODES=node1,node2 --RAC节点
oracle.install.db.isRACOneInstall=false
oracle.install.db.racOneServiceName=
oracle.install.db.rac.serverpoolName=
oracle.install.db.rac.serverpoolCardinality=0
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName= --因为是INSTALL_DB_SWONLY,只装软件不建库,因此许多项留白。
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=false
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
COLLECTOR_SUPPORTHUB_URL=
--执行以下命令进行静默安装数据库软件:
./runInstaller -silent -responseFile /home/oracle/db.rsp -ignoreSysPrereqs -skipPrereqs

六、静默执行DBCA建库

先看下dbca时需要设置密码的账户:

然后编辑响应文件:

$ cat /home/oracle/dbca.rsp |grep -v "^$"|grep -v "^#"
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=orcl
sid=orcl
databaseConfigType=RAC
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=false --表示不使用CDB/PDB,如果有需要请生成安装CDB/PDB的响应文件
numberOfPDBs=0
pdbName=
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=node1,node2
templateName=/u01/app/oracle/product/12.2.0/db_1/assistants/dbca/templates/New_Database.dbt
sysPassword=oracle --sys密码
systemPassword=oracle --system密码
serviceUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=true
dbsnmpPassword=oracle --dbsnmp密码
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation=
datafileDestination=+DATA/{DB_UNIQUE_NAME}/ --数据文件位置
recoveryAreaDestination=+ARCHIVE --闪回区
storageType=ASM
diskGroupName=+DATA/{DB_UNIQUE_NAME}/
asmsnmpPassword=
recoveryGroupName=+ARCHIVE --闪回区所在磁盘组
characterSet=AL32UTF8 --字符集
nationalCharacterSet=AL16UTF16 --国家地区字符集
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=LISTENER
variablesFile=
variables=DB_UNIQUE_NAME=orcl,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1,SID=orcl
initParams=orcl2.undo_tablespace=UNDOTBS2,db_recovery_file_dest_size=400000MB,sga_target=36GB,orcl1.thread=1,orcl2.thread=2,diagnostic_dest={ORACLE_BASE},cluster_database=true,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,local_listener=-oraagent-dummy-,compatible=12.2.0,orcl1.instance_number=1,open_cursors=300,orcl2.instance_number=2,family:dw_helper.instance_mode=read-only,processes=1920,nls_language=AMERICAN,pga_aggregate_target=4GB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_recovery_file_dest=+ARCHIVE,db_block_size=8192BYTES,nls_territory=AMERICA,log_archive_format=%t_%s_%r.dbf,db_name=orcl,audit_trail=db,orcl1.undo_tablespace=UNDOTBS1,remote_login_passwordfile=exclusive
#以上是非常长的一段,包含了各种自定义的init参数名称,例如实例名、ASMM管理的SGA大小、闪回区等等。
sampleSchema=false
memoryPercentage=40 --内存为64GB,SGA为40GB,显然不只40%,因此应当是oracle软件可使用的内存,固定设置为默认40就好。
databaseType=MULTIPURPOSE --默认值
automaticMemoryManagement=false
totalMemory=0

然后执行dbca静默建库:

su - oracle
dbca -silent -ignorePrereqFailure -createDatabase -responseFile /home/oracle/dbca.rsp

此外使用静默安装执行dbca建库时不能像图形界面一样去除JVM和OLAP、Application Express等组件的安装,因此静默安装时只能全部装上。

建库完毕后使用如下命令查看整个集群和数据库的状态:

su - grid
crsctl stat res -t
su - oracle
srvctl config database -d orcl
lsnrctl status

七、最后的工作

ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID='*';--关闭审计
alter system set deferred_segment_creation=false SCOPE=BOTH SID='*'; --关闭段创建延迟
#ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON=FALSE SCOPE=SPFILE SID='*'; --关闭密码大小写验证,在12c版本中此参数已被弃用,如果手动改为FALSE,除非设置正确的SQLNET.ALLOWED_LOGON_VERSION_SERVER参数,否则所有用户都会无法登陆,因此不要这么改了。
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;--设置登录次数为无限
ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=31 SCOPE=BOTH SID='*';--控制文件内容保存时间
ALTER SYSTEM SET MAX_DUMP_FILE_SIZE='2048M' SCOPE=BOTH SID='*';--DUMP文件size的最大值
ALTER SYSTEM SET PROCESSES=2048 SCOPE=SPFILE SID='*';--最大进程数
ALTER SYSTEM SET "_UNDO_AUTOTUNE"=FALSE SCOPE=BOTH SID='*';--关闭UNDO自动调优的功能
ALTER SYSTEM SET "_USE_ADAPTIVE_LOG_FILE_SYNC"=FALSE SCOPE=BOTH SID='*'; --关闭自适应日志同步功能
alter database add supplemental log data; --打开附加日志,便于进行故障后数据找回

重启使以上部分设置生效:srvctl stop/start database -d orcl

最后,再设置下数据和归档的备份计划,根据业务压力调整下REDO大小和组数就可以了。

Oracle 12c RAC 静默安装文档的更多相关文章

  1. 习水医院12C RAC 数据库安装文档

        环境介绍 OS: Oracle Enterprise Linux 6.4 (For RAC Nodes) DB: GI and Database 12.1.0.2 所需介质 p17694377 ...

  2. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

    ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RA ...

  3. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

  4. Oracle 12C R2 on Linux 7.X 单实例静默安装文档

    禁用防火墙systemctl stop firewalld.servicesystemctl disable firewalld.service 禁用SELinuxcat /etc/selinux/c ...

  5. oracle database 12c R1 安装文档

    INSTALLORACLE DATABASE 12C 完整的安装文档下载地址: http://download.csdn.net/detail/royjj/5665869 OS:ORALCE LINU ...

  6. Oracle 12c RAC 安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  7. ELK Stack 5.2.2 安装文档

    简介: ELK Stack 安装文档,这次都使用最新版本(5.2.2).RPM 包的方式搭建 ELK Stack. 下载地址: https://artifacts.elastic.co/downloa ...

  8. CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档

    ----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...

  9. SAP_ECC6_EHP7_IDES安装文档ORACLE11G+WINDOWS2012 R2 问题总结

    SAP_ECC6_EHP7_IDES安装文档ORACLE11G+WINDOWS2012 R2 问题总结 1.注意密码不能带@等特殊符号,否则会报如下错误,因为ORACLE数据是不容许密码带@的.@是一 ...

随机推荐

  1. 解决同一页面中两个iframe互相调用jquery,js函数

    这一个月又没更新博客,唉,懒癌又犯了,今天解决了一个问题,关于两个iframe互相调用jquery函数方法 a.html中有两个iframe,如下: <iframe width="10 ...

  2. 【CDH篇】---CDH从初识到搭建到应用

    一.前述 CDH(Cloudera's Distribution, including Apache Hadoop)是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache ...

  3. 软件工程-构建之法 小学生四则运算的出题程序,android版本

    内容中包含 base64string 图片造成字符过多,拒绝显示

  4. Event(事件)的传播与冒泡

    特性说明和原理图: 标准浏览器和Ie9+浏览器都支持事件的冒泡和捕获,而IE8-浏览器只支持冒泡 标准和Ie9+浏览器用stopPropagation()或cancelBubble阻止事件传播,而ie ...

  5. redis 系列13 集合对象

    一. 集合对象概述 这里的集合是string类型的无序集合,在集合对象中集合成员是唯一的,这就意味着集合中不能出现重复的数据.集合是通过哈希表实现的,集合中最大的成员数为 232-1 (4294967 ...

  6. .net core使用RPC方式进行高效的HTTP服务访问

    传统的HTTP接口调用是一件比较繁琐的事情,特别是在Post数据的时候:不仅要拼访问的URL还是把数据序列化成流的方式给Request进行提交,获取Respons后还要对流进行解码.在实际应用虽然可以 ...

  7. [Python]peewee 使用经验

    peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...

  8. 剖析HBase负载均衡和性能指标

    1.概述 在分布式系统中,负载均衡是一个非常重要的功能,在HBase中通过Region的数量来实现负载均衡,HBase中可以通过hbase.master.loadbalancer.class来实现自定 ...

  9. [十二]基础数据类型之String

    在正式介绍String之前,我们先介绍下CharSequence char + sequence 就是字符的序列的意思 Java中万事万物都是对象类型 而对于字符的序列,也就是多个char, 这么一种 ...

  10. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(5)- 软件优化

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之软件优化. 前面痞子衡已经初步实现了Jays-PyCOM的串口功能,并且通过了最基本的测试,但目前 ...