經過本文能夠學習到如何使用vmware workstation 16配置共享磁盤以及使用靜默方式部署Oracle 19c RAC。這裏的asm磁盤組使用oracle的新特性AFD,有關說明請參考官方文檔。node
共享磁盤須要使用命令行建立,這裏使用MobaXterm做爲終端,以下:redis
[jacky.lee.lee] ➤ export PATH=$PATH:/drives/c/Program\ Files\ \(x86\)/VMware/VMware\ Workstation/ [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk01.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk02.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk03.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk04.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk05.vmdk
其中的-t表明磁盤類型,以下圖:數據庫
各虛擬機節點使用下面相同的方法添加共享磁盤。
編輯虛擬機->添加磁盤->使用現有虛擬磁盤->選擇現有磁盤->保持現有格式
添加完成後,點擊「高級 」,設置虛擬設備節點並選中「獨立」模式。
根據上述步驟完成其餘磁盤的添加。
磁盤添加完成後,不要當即打開虛擬機,須要編輯虛擬機配置文件(好比:odb03.vmx),加入如下內容後,才能夠正常打開虛擬機。session
disk.locking = "false" scsi1.shareBus = "VIRTUAL"
靜默配置文件內容以下:oracle
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=CRS_CONFIG ORACLE_BASE=/u01/app/grid oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.scanType=LOCAL_SCAN oracle.install.crs.config.gpnp.scanName=scan oracle.install.crs.config.gpnp.scanPort=1521 oracle.install.crs.config.ClusterConfiguration=STANDALONE oracle.install.crs.config.configureAsExtendedCluster=false oracle.install.crs.config.clusterName=ORA19C-01 oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.autoConfigureClusterNodeVIP=false oracle.install.crs.config.clusterNodes=odb03:odb03-vip,odb04:odb04-vip oracle.install.crs.config.networkInterfaceList=ens32:192.168.120.0:1,ens35:172.16.255.0:5 oracle.install.crs.configureGIMR=false oracle.install.asm.configureGIMRDataDG=false oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE oracle.install.asm.SYSASMPassword=abcABC12 oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.disks=/dev/sdb,/dev/sdc,/dev/sdd oracle.install.asm.diskGroup.diskDiscoveryString=/dev/sd* oracle.install.asm.monitorPassword=abcABC12 oracle.install.asm.configureAFD=true oracle.install.crs.configureRHPS=false oracle.install.crs.config.ignoreDownNodes=false oracle.install.config.managementOption=NONE oracle.install.crs.rootconfig.executeRootScript=false
因爲是新環境,因此在安裝以前先打上PSU,而後進行安裝。app
--解壓grid安裝包到家目錄 [grid@odb03 ~]$ cd $ORACLE_HOME;unzip LINUX.x64_193000_grid_home.zip --解壓最新的opatch到家目錄 [grid@odb03 ~]$ cd $ORACLE_HOME;unzip /mnt/p6880880_190000_Linux-x86-64.zip 在解壓過程當中若是提示重複文件,選擇覆蓋便可(不要移動或者刪除OPatch目錄)。 這裏19c的基礎版本爲19.3,打完最新版PSU後版本變動爲19.10。 --解壓grid的PSU [grid@odb03 ~]$ cd /mnt/tmp; unzip p32226239_190000_Linux-x86-64.zip [grid@odb03 ~]$ $ORACLE_HOME/gridSetup.sh -silent -applyRU /mnt/tmp/32226239/ Preparing the home to patch... Applying the patch /mnt/tmp/32226239/... Successfully applied the patch.
[grid@odb03 ~]$ $ORACLE_HOME/gridSetup.sh -silent -ignorePrereq -responseFile /tmp/grid.rsp Launching Oracle Grid Infrastructure Setup Wizard... The response file for this session can be found at: /u01/app/19.0.0/grid/install/response/grid_2021-01-22_04-05-52PM.rsp You can find the log of this install session at: /tmp/GridSetupActions2021-01-22_04-05-52PM/gridSetupActions2021-01-22_04-05-52PM.log As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/19.0.0/grid/root.sh Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [odb03, odb04] Execute /u01/app/19.0.0/grid/root.sh on the following nodes: [odb03, odb04] Run the script on the local node first. After successful completion, you can start the script in parallel on all other nodes. Successfully Setup Software with warning(s). As install user, execute the following command to complete the configuration. /u01/app/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/grid.rsp [-silent] Moved the install session logs to: /u01/app/oraInventory/logs/GridSetupActions2021-01-22_04-05-52PM
各個節點以root用戶分別執行如下兩個腳本:ide
[root@odb03 ~]# /u01/app/oraInventory/orainstRoot.sh [root@odb03 ~]# /u01/app/19.0.0/grid/root.sh
以grid用戶執行如下命令,完成最後的grid配置:學習
[grid@odb03 ~]$ $ORACLE_HOME/gridSetup.sh -silent -executeConfigTools -responseFile /tmp/grid.rsp
[oracle@odb03 ~]$ vi /tmp/db_install.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE 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.rootconfig.executeRootScript=false oracle.install.db.CLUSTER_NODES=odb03,odb04 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.ConfigureAsContainerDB=false oracle.install.db.config.starterdb.memoryOption=false oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.managementOption=DEFAULT oracle.install.db.config.starterdb.enableRecovery=false
[oracle@odb03 db_1]$ unzip /mnt/p6880880_190000_Linux-x86-64.zip Archive: /mnt/p6880880_190000_Linux-x86-64.zip replace OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A ...... [oracle@odb03 tmp]$ unzip p32218454_190000_Linux-x86-64.zip [oracle@odb03 ~]$ $ORACLE_HOME/runInstaller -silent -applyRU /mnt/tmp/32218454 Preparing the home to patch... Applying the patch /mnt/tmp/32218454... Successfully applied the patch.
[oracle@odb03 ~]$ $ORACLE_HOME/runInstaller -silent -ignorePrereq -responseFile /tmp/db_install.rsp
安裝完成後,在各個節點執行如下腳本:this
[root@odb03 ~]# /u01/app/oracle/product/19.0.0/db_1/root.sh [root@odb04 ~]# /u01/app/oracle/product/19.0.0/db_1/root.sh
靜默文件以下:spa
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 gdbName=racdb sid=racdb databaseConfigType=RAC policyManaged=false createServerPool=false force=false createAsContainerDatabase=false numberOfPDBs=0 useLocalUndoForPDBs=true nodelist=odb03,odb04 templateName=/u01/app/oracle/product/19.0.0/db_1/assistants/dbca/templates/General_Purpose.dbc sysPassword=abcABC12 systemPassword=abcABC12 serviceUserPassword=abcABC12 runCVUChecks=FALSE dvConfiguration=false olsConfiguration=false datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ datafileDestination=+DATA/{DB_UNIQUE_NAME}/ recoveryAreaDestination=+FRA storageType=ASM diskGroupName=+DATA/{DB_UNIQUE_NAME}/ asmsnmpPassword=abcABC12 recoveryGroupName=+FRA characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 registerWithDirService=false variables=ORACLE_BASE_HOME=/u01/app/oracle/product/19.0.0/db_1,DB_UNIQUE_NAME=racdb,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=racdb,ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1,SID=racdb initParams=racdb1.undo_tablespace=UNDOTBS1,racdb2.undo_tablespace=UNDOTBS2,sga_target=2312MB,db_block_size=8192BYTES,cluster_database=true,diagnostic_dest={ORACLE_BASE},remote_login_passwordfile=exclusive,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,processes=1000,pga_aggregate_target=771MB,racdb1.thread=1,racdb2.thread=2,nls_territory=AMERICA,local_listener=-oraagent-dummy-,db_recovery_file_dest_size=50GB,open_cursors=300,log_archive_format=%t_%s_%r.dbf,compatible=19.0.0,db_name=racdb,racdb1.instance_number=1,racdb2.instance_number=2,db_recovery_file_dest=+FRA,audit_trail=none sampleSchema=false memoryPercentage=40 databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=0
建立數據庫:
[oracle@odb03 ~]$ dbca -silent -ignorePreReqs -createDatabase -responseFile /tmp/dbca.rsp -enableArchive true -redoLogFileSize 1024 Prepare for db operation 8% complete Copying database files 33% complete Creating and starting Oracle instance 34% complete 35% complete 39% complete ......
驗證數據庫狀態:
[oracle@odb03 ~]$ srvctl status database -d racdb Instance racdb1 is running on node odb03 Instance racdb2 is running on node odb04 [oracle@odb03 ~]$ srvctl config database -d racdb Database unique name: racdb Database name: racdb Oracle home: /u01/app/oracle/product/19.0.0/db_1 Oracle user: oracle Spfile: +DATA/RACDB/PARAMETERFILE/spfile.270.1062524351 Password file: +DATA/RACDB/PASSWORD/pwdracdb.258.1062523479 Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: Disk Groups: FRA,DATA Mount point paths: Services: Type: RAC Start concurrency: Stop concurrency: OSDBA group: dba OSOPER group: oper Database instances: racdb1,racdb2 Configured nodes: odb03,odb04 CSS critical: no CPU count: 0 Memory target: 0 Maximum memory: 0 Default network number for database services: Database is administrator managed