Oracle 12c RAC 静默安装文档

参考文档:

建设背景:

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

安装流程:

一、软件下载

下载 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
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 -ignoreprereqs -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;--关闭审计
alter system set deferred_segment_creation=false; --关闭段创建延迟
alter system set sec_case_sensitive_logon=false scope=spfile; --关闭密码大小写验证
alter profile default limit failed_login_attempts unlimited;--设置登录次数为无限
alter system set control_file_record_keep_time=31;--控制文件内容保存时间
alter system set max_dump_file_size='2048m';--dump文件size的最大值
alter system set processes=2048 scope=spfile sid='*';--最大进程数
alter system set "_undo_autotune"=false;--关闭undo自动调优的功能
alter system set "_use_adaptive_log_file_sync"=false; --关闭自适应日志同步功能
alter database add supplemental log data; --打开附加日志,便于进行故障后数据找回
alter system set "o7_dictionary_accessibility"=false scope=spfile; --防止具有drop any table权限的用户恶意删除一些数据字典。

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

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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐