• Oracle 12c RAC 静默安装文档


    参考文档:

    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大小和组数就可以了。

  • 相关阅读:
    爬虫前面
    常用模块学习
    函数、递归、内置函数
    迭代器、装饰器、软件开发规范
    python基础
    列表、字典、集合
    介绍、基本语法、流程控制
    python学习的第一个星期
    vmware使用nat连接配置
    Vue API 3模板语法 ,指令
  • 原文地址:https://www.cnblogs.com/leohahah/p/9489036.html
Copyright © 2020-2023  润新知