参考文档:
建设背景:
建设本文档的目的在于详细梳理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大小和组数就可以了。