参考文档:

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. Python内置函数(65)——type

    英文文档: class type(object) class type(name, bases, dict) With one argument, return the type of an obje ...

  2. linux系统安全设置策略

    1.检查是否设置口令长度至少8位,并包括数字,小写字符.大写字符和特殊符号4类中至少2类. 在文件/etc/login.defs中设置 PASS_MIN_LEN 不小于标准值 修改/etc/pam.d ...

  3. ASP.NET Core WebApi AspNetCoreRateLimit 限流中间件学习

    AspNetCoreRateLimit介绍: AspNetCoreRateLimit是ASP.NET核心速率限制框架,能够对WebApi,Mvc中控制限流,AspNetCoreRateLimit包包含 ...

  4. qt之菜单项定制

    qt实现菜单,简单的界面QMenu+QAction完全可以实现,在加上qss的支持,可以定制出比较美观的菜单,qt的菜单一般用在托盘.按钮和工具栏上. 当然啦,也有很多软件有比较美观的托盘菜单,比如3 ...

  5. Python爬虫入门教程 17-100 CSD*博客抓取数据

    写在前面 写了一段时间的博客了,忽然间忘记了,其实CSD*博客频道的博客也是可以抓取的,所以我干了..... 其实这事情挺简单的,打开CSDN博客首页,他不是有个最新文章么,这个里面都是最新发布的文章 ...

  6. Django中的templates(你的HTML页面放哪里)

    本文回答Django里面的HTML文件应该怎么放,以及Django是如何查找模板文件的. 到目前为止我们没有使用HTML页面,在之前的说明中所有内容都是写死在程序里的,如果你想改变内容就要修改代码.但 ...

  7. 使用mpvue开发小程序教程(一)

    前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...

  8. synchronized学习

    现代软件开发中并发已经成为一项基础能力,而Java精心设计的高效并发机制,正是构建大规模应用的基础之一.本文中我们将学习synchronized关键字的基本用法. synchronized是Java内 ...

  9. 【ASP.NET Core快速入门】(十六)MVC开发:DbContextSeed初始化

    前言 由于我们现在每次EF实体模型变化的时候每次都是手动更改,我们想通过代码的方式让他自动更新,或者程序启动的时候添加一些数据进去 DbContextSeed初始化 首先,在Data文件夹下添加一个A ...

  10. JAVA开发知识之Java的线程

    目录 Java多线程讲解 一丶多线程简介 1.进程的概念 2.线程概念 3.Java中多线程Thread类 二丶多线程的创建 1.继承Thread类.重写run方法. 2.实现Runalbe接口. 三 ...