1 静默安装grid软件手动检测环境配置是否准备完毕在grid安装目录中运行脚本,检测环境是否符合grid的安装标准| 1 | [grid@NODE1 grid]$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose >/tmp/grid_check.log
:—
查看日志more /tmp/grid_check.log
| 1234567891011 | Check: Package existence for "pdksh" Node Name Available Required Status ———— ———————— ———————— ———- BCMSDBS01 missing pdksh-5.2.14 failed BCMSDBS02 missing pdksh-5.2.14 failedResult: Package existence check failed for "pdksh"…………………………………….Checking consistency of file "/etc/resolv.conf" across nodesFile "/etc/resolv.conf" does not exist on any node of the cluster. Skipping further checksFile "/etc/resolv.conf" is consistent across nodes |
|---|
除了以上两个错误外,其他的应该都是passed手动建立grid用户的SSH用户等效性配置
| 123456789101112131415161718192021222324252627282930313233343536 | 节点1:# su – grid$ mkdir ~/.ssh$ chmod 700 ~/.ssh$ ssh-keygen -t rsaenterenterenter$ ssh-keygen -t dsaenterenterenter节点2:# su – grid$ mkdir ~/.ssh$ chmod 700 ~/.ssh$ ssh-keygen -t rsaenterenterenter$ ssh-keygen -t dsaenterenterenter节点1:$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys $ ssh BCMSDBS02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysyesBCMSDBS02的密码$ ssh BCMSDBS02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keysBCMSDBS02的密码$ scp ~/.ssh/authorized_keys BCMSDBS02:~/.ssh/authorized_keys验证ssh用户等效性(在2个节点都要执行)ssh BCMSDBS01 datessh BCMSDBS02 date |
|---|
准备GI安装的模板响应文件响应文件模板: | 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | # Do not change the following system generated value. #——————————————————————————oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0ORACLE_HOSTNAME=BCMSDBS01INVENTORY_LOCATION=/oraapp/grid/oraInventorySELECTED_LANGUAGES=en,zh_CN,zh_TWoracle.install.option=CRS_CONFIGORACLE_BASE=/oraapp/grid/gridbaseORACLE_HOME=/oraapp/grid/gridhomeoracle.install.asm.OSDBA=asmdbaoracle.install.asm.OSOPER=asmoperoracle.install.asm.OSASM=asmadminoracle.install.crs.config.gpnp.scanName=BCMSDBS-SCANoracle.install.crs.config.gpnp.scanPort=1521oracle.install.crs.config.clusterName=BCMSDBS-clusteroracle.install.crs.config.gpnp.configureGNS=falseoracle.install.crs.config.gpnp.gnsSubDomain=oracle.install.crs.config.gpnp.gnsVIPAddress=oracle.install.crs.config.autoConfigureClusterNodeVIP=falseoracle.install.crs.config.clusterNodes=BCMSDBS01:BCMSDBS01-vip,BCMSDBS02:BCMSDBS02-viporacle.install.crs.config.networkInterfaceList=bond0:200.31.43.0:1,bond1:10.0.0.0:2oracle.install.crs.config.storageOption=ASM_STORAGEoracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping=oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMALoracle.install.crs.config.sharedFileSystemStorage.ocrLocations=oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMALoracle.install.crs.config.useIPMI=falseoracle.install.crs.config.ipmi.bmcUsername=oracle.install.crs.config.ipmi.bmcPassword=oracle.install.asm.SYSASMPassword=gridoracle.install.asm.diskGroup.name=OCRDGoracle.install.asm.diskGroup.redundancy=NORMALoracle.install.asm.diskGroup.AUSize=1oracle.install.asm.diskGroup.disks=/dev/mapper/mpathcp1,/dev/mapper/mpathdp1,/dev/mapper/mpathfp1oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/*oracle.install.asm.monitorPassword=gridoracle.install.crs.upgrade.clusterNodes=oracle.install.asm.upgradeASM=falseoracle.installer.autoupdates.option=SKIP_UPDATESoracle.installer.autoupdates.downloadUpdatesLoc=AUTOUPDATES_MYORACLESUPPORT_USERNAME=AUTOUPDATES_MYORACLESUPPORT_PASSWORD=PROXY_HOST=PROXY_PORT=0PROXY_USER=PROXY_PWD=
:—
模板中以下参数需要根据实际情况修改:Scan IP 需要根据实际情况修改
| 12 | oracle.install.crs.config.gpnp.scanName=NODE-SCANoracle.install.crs.config.clusterName= NODE-cluster |
|---|
Cluster 的名称需要根据实际的情况,指定vip和网卡信息
| 12 | oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-viporacle.install.crs.config.networkInterfaceList=bond0:200.31.43.0:1,bond1:10.0.0.0:2 |
|---|
ASM需要根据实际情况设置相对应的磁盘
| 123 | oracle.install.asm.diskGroup.AUSize=1oracle.install.asm.diskGroup.disks=/dev/mapper/mpathcp1,/dev/mapper/mpathdp1,/dev/mapper/mpathfp1oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/* |
|---|
密码设置:(可以设置的复杂一点,否则后续安装的时候会有警告信息)
| 12 | oracle.install.asm.SYSASMPassword=grid_123oracle.install.asm.monitorPassword=grid_123 |
|---|
通过模板安装GI请使用grid用户在1号节点上执行以下命令
| 1234567891011121314151617181920212223242526 | ./runInstaller -ignorePrereq -silent -force -responseFile /home/grid/grid.rsp -showProgressStarting Oracle Universal Installer… Checking Temp space: must be greater than 120 MB. Actual 17127 MB PassedChecking swap space: must be greater than 150 MB. Actual 7951 MB PassedPreparing to launch Oracle Universal Installer from /tmp/OraInstall2015-06-12_10-56-07AM. Please wait …You can find the log of this install session at: /oraapp/grid/oraInventory/logs/installActions2015-05-22_03-48-54PM.logThe installation of Oracle Grid Infrastructure was successful.Please check '/oraapp/grid/oraInventory/logs/silentInstall2015-05-22_03-48-54PM.log' for more details. As a root user, execute the following script(s): 1. /oraapp/grid/oraInventory/orainstRoot.sh 2. /oraapp/grid/gridhome/root.sh Execute /oraapp/grid/oraInventory/orainstRoot.sh on the following nodes:[node1, node2]Execute /oraapp/grid/gridhome/root.sh on the following nodes:[node1, node2] As install user, execute the following script to complete the configuration. 1. /oraapp/grid/gridhome/cfgtoollogs/configToolAllCommands Note: 1. This script must be run on the same system from where installer was run. 2. This script needs a small password properties file for configuration assistants that require passwords (refer to install guide documentation). |
|---|
在输出内容的最后会先要求在两个节点中运行分别运行脚本
| 12 | 1. /oraapp/grid/oraInventory/orainstRoot.sh 2. /oraapp/grid/gridhome/root.sh |
|---|
一定要先在本地节点运行完两个脚本之后,再在另外一个节点运行两个脚本。Node1上运行脚本结果:
| 123456789 | [root@node1 ~]# /oraapp/grid/oraInventory/orainstRoot.shChanging permissions of /oraapp/grid/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /oraapp/grid/oraInventory to oinstall.The execution of the script is complete. [root@NODE1 ~]# /oraapp/grid/gridhome/root.shCheck /oraapp/grid/gridhome/install/root_node1_2015-05-22_16-00-41.log for the output of root script |
|---|
脚本内容不会直接输出在控制台上,可以通过日志跟踪运行结果:
| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | [root@node1~]#tail -f /oraapp/grid/gridhome/install/root_node1_2015-05-22_16-00-41.logPerforming root user operation for Oracle 11gThe following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /oraapp/grid/gridhomeCreating /etc/oratab file…Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Using configuration parameter file: /oraapp/grid/gridhome/crs/install/crsconfig_paramsCreating trace directoryUser ignored Prerequisites during installationOLR initialization – successful root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user certAdding Clusterware entries to upstartCRS-2672: Attempting to start 'ora.mdnsd' on 'node1'CRS-2676: Start of 'ora.mdnsd' on node1 succeededCRS-2672: Attempting to start 'ora.gpnpd' on 'node1'CRS-2676: Start of 'ora.gpnpd' on node1 succeededCRS-2672: Attempting to start 'ora.cssdmonitor' on 'node1'CRS-2672: Attempting to start 'ora.gipcd' on 'node1'CRS-2676: Start of 'ora.cssdmonitor' on 'node1' succeededCRS-2676: Start of 'ora.gipcd' on 'node1' succeededCRS-2672: Attempting to start 'ora.cssd' on 'node1'CRS-2672: Attempting to start 'ora.diskmon' on 'node1'CRS-2676: Start of 'ora.diskmon' on 'node1' succeededCRS-2676: Start of 'ora.cssd' on 'node1' succeededASM created and started successfully.Disk Group OCRDG created successfully.clscfg: -install mode specifiedSuccessfully accumulated necessary OCR keys.Creating OCR keys for user 'root', privgrp 'root'..Operation successful.CRS-4256: Updating the profileSuccessful addition of voting disk 77ccfaf092f24f95bf932bee81082720.Successful addition of voting disk 79c900a0e5264f6cbfa05b7f0287ec07.Successful addition of voting disk 8d8a3b1a18b84f6abfb6bcde5083940c.Successfully replaced voting disk group with +OCRDG.CRS-4256: Updating the profileCRS-4266: Voting file(s) successfully replaced## STATE File Universal Id File Name Disk group– —– —————– ——— ——— 1. ONLINE 77ccfaf092f24f95bf932bee81082720 (/dev/mapper/mpathcp1) [OCRDG] 2. ONLINE 79c900a0e5264f6cbfa05b7f0287ec07 (/dev/mapper/mpathdp1) [OCRDG] 3. ONLINE 8d8a3b1a18b84f6abfb6bcde5083940c (/dev/mapper/mpathfp1) [OCRDG]Located 3 voting disk(s).CRS-2672: Attempting to start 'ora.asm' on 'node1'CRS-2676: Start of 'ora.asm' on 'node1' succeededCRS-2672: Attempting to start 'ora.OCRDG.dg' on 'node1'CRS-2676: Start of 'ora.OCRDG.dg' on 'node1' succeededPreparing packages for installation…cvuqdisk-1.0.9-1Configure Oracle Grid Infrastructure for a Cluster … Succeeded |
|---|
NODE2上运行脚本结果:
| 12345678910 | [root@NODE2 ~]# /oraapp/grid/oraInventory/orainstRoot.shChanging permissions of /oraapp/grid/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /oraapp/grid/oraInventory to oinstall.The execution of the script is complete.[root@NODE2 ~]# [root@NODE2 ~]# [root@NODE2 ~]# /oraapp/grid/gridhome/root.shCheck /oraapp/grid/gridhome/install/root_NODE2_2015-05-22_16-31-25.log for the output of root script |
|---|
同样的脚本内容不会直接输出在控制台上,可以通过日志跟踪运行结果:| 12345678910111213141516 | [root@NODE2~]#tail -f /oraapp/grid/gridhome/install/root_NODE2_2015-05-22_16-31-25.logCreating /etc/oratab file…Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Using configuration parameter file: /oraapp/grid/gridhome/crs/install/crsconfig_paramsCreating trace directoryUser ignored Prerequisites during installationOLR initialization – successfulAdding Clusterware entries to upstart CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node node1, number 1, and is terminatingAn active cluster was found during exclusive startup, restarting to join the cluster Preparing packages for installation…cvuqdisk-1.0.9-1Configure Oracle Grid Infrastructure for a Cluster … succeeded
:—
根据输出的提示:| 1 | This script needs a small password properties file for configuration assistants that require passwords (refer to install guide documentation).
:—
需要建立一个password 文件来完成最后的配置,具体密码请根据实际情况配置
| 12 | [grid@NODE1~]$ cd $ORACLE_HOME/cfgtoollogs[grid@NODE1cfgtoollogs]$ touch cfgrsp.properties |
|---|
然后填写口令内容
| 123 | [grid@NODE1cfgtoollogs]$ cat cfgrsp.properties oracle.assistants.asm | S_ASMPASSWORD=grid_123oracle.assistants.asm | S_ASMMONITORPASSWORD=grid_123 |
|---|
修改文件权限| 1 | [grid@NODE1 cfgtoollogs]$ chmod 600 cfgrsp.properties
:—
最后执行这个脚本,完成配置
| 12345678910111213141516171819202122232425262728293031323334 | [grid@NODE1 cfgtoollogs]$ /oraapp/grid/gridhome/cfgtoollogs/configToolAllCommands RESPONSE_FILE=./cfgrsp.propertiesSetting the invPtrLoc to /oraapp/grid/gridhome/oraInst.locperform – mode is starting for action: configureMay 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn invokeINFO: Executing ASMCAMay 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn invokeINFO: Command /oraapp/grid/gridhome/bin/asmca -silent -postConfigureASM -oui_internal May 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: … GenericInternalPlugIn.handleProcess() entered.May 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: … GenericInternalPlugIn: getting configAssistantParmas.May 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: … GenericInternalPlugIn: checking secretArguments.May 25, 2015 9:21:03 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: … GenericInternalPlugIn: starting read loop.May 25, 2015 9:21:08 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Read: SYS_PASSWORD_PROMPTMay 25, 2015 9:21:08 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Processing: SYS_PASSWORD_PROMPT for argument tag -sysAsmPasswordMay 25, 2015 9:21:08 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Read: ASMSNMP_PASSWORD_PROMPTMay 25, 2015 9:21:08 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Processing: ASMSNMP_PASSWORD_PROMPT for argument tag -asmMonitorPasswordMay 25, 2015 9:21:08 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: End of argument passing to stdinMay 25, 2015 9:21:09 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Read: May 25, 2015 9:21:09 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Read: PostConfiguration completed successfullyMay 25, 2015 9:21:09 AM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcessINFO: Read: perform – mode finished for action: configureYou can see the log file: /oraapp/grid/gridhome/cfgtoollogs/oui/configActions2015-05-25_09-20-05-AM.log |
|---|
查看日志| 1 | [grid@NODE1cfgtoollogs]$more /oraapp/grid/gridhome/cfgtoollogs/oui/configActions2015-05-25_09-20-05-AM.log
:—
检查输出日志中除了SCAN-IP的错误可以忽略以外,其他的应该都是passed| 123456 | ERROR: PRVG-1101 : SCAN name "BCMSDBS-SCAN" failed to resolveERROR: PRVF-4657 : Name resolution setup check for "BCMSDBS-SCAN" (IP address: 200.31.43.45) failedERROR: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "BCMSDBS-SCAN"
:—
简单检测CRS是否安装成功:查看集群状态除了ora.gsd 以外其他都应该是出于online的状态| 123456789101112131415161718192021222324252627282930313233343536373839 | [root@BCMSDBS01 gridhome]# /oraapp/grid/gridhome/bin/crsctl status res -t——————————————————————————–NAME TARGET STATE SERVER STATE_DETAILS ——————————————————————————–Local Resources——————————————————————————–ora.LISTENER.lsnr ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.OCRDG.dg ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.asm ONLINE ONLINE bcmsdbs01 Started ONLINE ONLINE bcmsdbs02 Started ora.gsd OFFLINE OFFLINE bcmsdbs01 OFFLINE OFFLINE bcmsdbs02 ora.net1.network ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.ons ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ——————————————————————————–Cluster Resources——————————————————————————–ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE bcmsdbs01 ora.bcmsdbs01.vip 1 ONLINE ONLINE bcmsdbs01 ora.bcmsdbs02.vip 1 ONLINE ONLINE bcmsdbs02 ora.cvu 1 ONLINE ONLINE bcmsdbs01 ora.oc4j 1 ONLINE ONLINE bcmsdbs01 ora.scan1.vip 1 ONLINE ONLINE bcmsdbs01
:—
检查OCR磁盘是否正常| 123456789101112131415 | [root@BCMSDBS01 gridhome]# /oraapp/grid/gridhome/bin/ocrcheckStatus of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262120 Used space (kbytes) : 2524 Available space (kbytes) : 259596 ID : 1618251275 Device/File Name : +OCRDG Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded
:—
Grid安装成功后,用如下命令可以确认ASM进程已经在两个节点上都已经启动了:| 1 | ps –ef | grep pmon
:—
2静默安装oracle软件手动检测环境配置是否准备完毕在grid安装目录中运行脚本,检测环境是否符合grid的安装标准| 1 | [grid@NODE1 grid]$ ./runcluvfy.sh stage -pre dbinst -n NODE1,NODE2 -r 11gR2 -verbose > /tmp/db_check.log
:—
查看日志more /tmp/db_check.log| 12345678910111213141516 | Check: Package existence for "pdksh" Node Name Available Required Status ———— ———————— ———————— ———- BCMSDBS01 missing pdksh-5.2.14 failed BCMSDBS02 missing pdksh-5.2.14 failedResult: Package existence check failed for "pdksh"ERROR:PRVG-1101 : SCAN name "BCMSDBS-SCAN" failed to resolve SCAN Name IP Address Status Comment ———— ———————— ———————— ———- BCMSDBS-SCAN 200.31.43.45 failed NIS EntryERROR:PRVF-4657 : Name resolution setup check for "BCMSDBS-SCAN" (IP address: 200.31.43.45) failedERROR:PRVF-4664 : Found inconsistent name resolution entries for SCAN name "BCMSDBS-SCAN"Verification of SCAN VIP and Listener setup failed
:—
除了以上两个错误外,其他的应该都是passed手动建立oracle用户的SSH用户等效性配置| 123456789101112131415161718192021222324252627282930313233343536 | 节点1:# su – oracle$ mkdir ~/.ssh$ chmod 700 ~/.ssh$ ssh-keygen -t rsaenterenterenter$ ssh-keygen -t dsaenterenterenter节点2:# su – oracle$ mkdir ~/.ssh$ chmod 700 ~/.ssh$ ssh-keygen -t rsaenterenterenter$ ssh-keygen -t dsaenterenterenter节点1:$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys $ ssh BCMSDBS02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysyesBCMSDBS02的密码$ ssh BCMSDBS02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keysBCMSDBS02的密码$ scp ~/.ssh/authorized_keys BCMSDBS02:~/.ssh/authorized_keys验证ssh用户等效性(在2个节点都要执行)ssh BCMSDBS01 datessh BCMSDBS02 date
:—
准备DB安装的模板响应文件 | 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | #——————————————————————————-# Do not change the following system generated value. #——————————————————————————-oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0oracle.install.option=INSTALL_DB_SWONLYORACLE_HOSTNAME=BCMSDBS01UNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/oraapp/grid/oraInventorySELECTED_LANGUAGES=en,zh_CN,zh_TWORACLE_HOME=/oraapp/oracle/product/11.2.0/dbhome_1ORACLE_BASE=/oraapp/oracleoracle.install.db.InstallEdition=EEoracle.install.db.EEOptionsSelection=falseoracle.install.db.optionalComponents=oracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=operoracle.install.db.CLUSTER_NODES=bcmsdbs01,bcmsdbs02oracle.install.db.isRACOneInstall=falseoracle.install.db.racOneServiceName=oracle.install.db.config.starterdb.type=GENERAL_PURPOSEoracle.install.db.config.starterdb.globalDBName=CMSDBoracle.install.db.config.starterdb.SID=CMSDB1oracle.install.db.config.starterdb.characterSet=AL32UTF8oracle.install.db.config.starterdb.memoryOption=falseoracle.install.db.config.starterdb.memoryLimit=oracle.install.db.config.starterdb.installExampleSchemas=falseoracle.install.db.config.starterdb.enableSecuritySettings=falseoracle.install.db.config.starterdb.password.ALL=oracleoracle.install.db.config.starterdb.password.SYS=oracle.install.db.config.starterdb.password.SYSTEM=oracle.install.db.config.starterdb.password.SYSMAN=oracle.install.db.config.starterdb.password.DBSNMP=oracle.install.db.config.starterdb.control=DB_CONTROLoracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=oracle.install.db.config.starterdb.automatedBackup.enable=falseoracle.install.db.config.starterdb.automatedBackup.osuid=oracle.install.db.config.starterdb.automatedBackup.ospwd=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=gridMYORACLESUPPORT_USERNAME=MYORACLESUPPORT_PASSWORD=SECURITY_UPDATES_VIA_MYORACLESUPPORT=falseDECLINE_SECURITY_UPDATES=truePROXY_PORT=PROXY_USER=PROXY_PWD=PROXY_REALM=COLLECTOR_SUPPORTHUB_URL=oracle.installer.autoupdates.option=SKIP_UPDATESAUTOUPDATES_MYORACLESUPPORT_USERNAME=AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
:—
以下模板参数请根据实际情况修改,其他参数请参考上面的模板| 12345678 | ORACLE_HOSTNAME=node1oracle.install.db.CLUSTER_NODES=node1,node2oracle.install.db.config.starterdb.globalDBName=testdboracle.install.db.config.starterdb.SID=testdb1oracle.install.db.config.starterdb.characterSet=AL32UTF8oracle.install.db.config.starterdb.password.ALL=oracleoracle.install.db.config.asm.ASMSNMPPassword=grid_123oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.dv:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0
:—
如果安装的是11.2.0.4 请根据安装介质中的默认response文件中的内容来替换oracle.install.db.optionalComponents中的内容。另外ORACLE_HOME我们需要注意一下,我们在图形方式安装的时候只要创建ORACLE_BASE目录即可,ORACLE_HOME目录会自动创建,但静默方式不可以。检查并创建ORACLE_HOME目录(所有节点都要执行)| 123 | [oracle@BCMSDBS01 ~]$ cd $ORACLE_HOME-bash: cd: /oraapp/oracle/product/11.2.0/dbhome_1: No such file or directory[oracle@BCMSDBS01 ~]$ mkdir -p /oraapp/oracle/product/11.2.0/dbhome_1
:—
通过模板安装数据库软件以下命令使用oracle用户在1个节点上执行| 1234567891011121314 | ./runInstaller -ignorePrereq -silent -force -responseFile /home/oracle/db.rsp -showProgressStarting Oracle Universal Installer…Checking Temp space: must be greater than 120 MB. Actual 17799 MB PassedChecking swap space: must be greater than 150 MB. Actual 7982 MB PassedPreparing to launch Oracle Universal Installer from /tmp/OraInstall2015-05-25_02-27-53PM. Please wait …You can find the log of this install session at:/oraapp/grid/oraInventory/logs/installActions2015-05-25_02-27-53PM.log The installation of Oracle Database 11g was successful.Please check '/oraapp/grid/oraInventory/logs/silentInstall2015-05-25_02-27-53PM.log' for more details.As a root user, execute the following script(s): 1. /oraapp/oracle/product/11.2.0/dbhome_1/root.shExecute /oraapp/oracle/product/11.2.0/dbhome_1/root.sh on the following nodes: [bcmsdbs01, bcmsdbs02]Successfully Setup Software.
:—
节点1执行脚本
| 123456789101112 | [root@NODE1 ~]# /oraapp/oracle/product/11.2.0/dbhome_1/root.shCheck /oraapp/oracle/product/11.2.0/dbhome_1/install/root_NODE1_2015-05-25_14-41-55.log for the output of root script[root@NODE1~]#cat /oraapp/oracle/product/11.2.0/dbhome_1/install/root_NODE1_2015-05-25_14-41-55.log Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oraapp/oracle/product/11.2.0/dbhome_1Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Finished product-specific root actions. |
|---|
节点2执行脚本
| 1234567891011121314 | [root@NODE2 ~]# /oraapp/oracle/product/11.2.0/dbhome_1/root.shCheck /oraapp/oracle/product/11.2.0/dbhome_1/install/root_NODE2_2015-05-25_14-42-39.log for the output of root script[root@NODE2 ~]# [root@NODE2 ~]# [root@NODE2~]#cat /oraapp/oracle/product/11.2.0/dbhome_1/install/root_NODE2_2015-05-25_14-42-39.logPerforming root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oraapp/oracle/product/11.2.0/dbhome_1Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Finished product-specific root actions. |
|---|
至此Oracle数据库软件安装完成3 手动创建数据磁盘组查看目前的ASM磁盘,以及磁盘组的信息| 12345678910111213141516171819 | SQL> select name , state , type from v$asm_diskgroup;NAME STATE TYPE—————————— ———– ——OCRDG MOUNTED NORMALSQL> set linesize 10000SQL> set pagesize 5000SQL> col name for a10SQL> col path for a20SQL> col failgroup for a20SQL> select group_number , disk_number , name , path , state , header_status , mount_status , failgroup from v$asm_disk;GROUP_NUMBER DISK_NUMBER NAME PATH STATE HEADER_STATU MOUNT_S FAILGROUP———— ———– ———- ——————– ——– ———— ——- ——————– 0 1 /dev/mapper/mpathhp1 NORMAL CANDIDATE CLOSED 0 2 /dev/mapper/mpathbp1 NORMAL CANDIDATE CLOSED 0 3 /dev/mapper/mpathep1 NORMAL CANDIDATE CLOSED 0 5 /dev/mapper/mpathgp1 NORMAL CANDIDATE CLOSED 1 0 OCRDG_0000 /dev/mapper/mpathcp1 NORMAL MEMBER CACHED OCRDG_0000 1 2 OCRDG_0002 /dev/mapper/mpathfp1 NORMAL MEMBER CACHED OCRDG_0002 1 1 OCRDG_0001 /dev/mapper/mpathdp1 NORMAL MEMBER CACHED OCRDG_0001
:—
使用multipath 命令确认需要添加的磁盘的大小和名称| 12345678910111213141516171819202122232425262728293031 | root@BCMSDBS01 ~]# multipath -ll | grep -1 dm- mpathe (360060e8005949f000000949f00003704) dm-8 HITACHI,OPEN-Vsize=100G features='1 queue_if_no_path' hwhandler='0' wp=rw– - 2:0:0:4 sdm 8:192 active ready runningmpathd (360060e8005949f000000949f00003702) dm-6 HITACHI,OPEN-Vsize=5.0G features='1 queue_if_no_path' hwhandler='0' wp=rw-- – 2:0:0:2 sdk 8:160 active ready runningmpathc (360060e8005949f000000949f00003701) dm-16 HITACHI,OPEN-Vsize=5.0G features='1 queue_if_no_path' hwhandler='0' wp=rw– - 2:0:0:1 sdj 8:144 active ready runningmpathb (360060e8005949f000000949f00003700) dm-10 HITACHI,OPEN-Vsize=200G features='1 queue_if_no_path' hwhandler='0' wp=rw-- – 2:0:0:0 sdi 8:128 active ready runningmpatha (36782bcb03db3cf0015e11c6c04a35300) dm-0 DELL,PERC 6/isize=279G features='1 queue_if_no_path' hwhandler='0' wp=rw– - 0:2:0:0 sda 8:0 active ready runningmpathh (360060e8005949f000000949f00004704) dm-12 HITACHI,OPEN-Vsize=100G features='1 queue_if_no_path' hwhandler='0' wp=rw-- – 2:0:0:6 sdo 8:224 active ready runningmpathg (360060e8005949f000000949f00004700) dm-7 HITACHI,OPEN-Vsize=200G features='1 queue_if_no_path' hwhandler='0' wp=rw– `- 2:0:0:5 sdn 8:208 active ready runningmpathf (360060e8005949f000000949f00003703) dm-9 HITACHI,OPEN-Vsize=5.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
:—
使用sqlplus 手动创建磁盘组(以下操作在一个节点运行)| 12345678910111213 | sqlplus / as sysasmSQL> create diskgroup DATADG external redundancy 2 disk '/dev/mapper/mpathbp1','/dev/mapper/mpathgp1' 3 attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2', 4 'AU_SIZE'='1M' 5 /Diskgroup created.SQL> create diskgroup FLASHDG external redundancy 2 disk '/dev/mapper/mpathep1','/dev/mapper/mpathhp1' 3 attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2', 4 'AU_SIZE'='1M' 5 /Diskgroup created.
:—
| 123456 | SQL> select name , state , type from v$asm_diskgroup;NAME STATE TYPE—————————— ———– ——OCRDG MOUNTED NORMALDATADG MOUNTED EXTERNFLASHDG MOUNTED EXTERN |
|---|
确认ASM磁盘组正常mount以下操作在所有节点都要确认| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | [grid@BCMSDBS01 ~]$ kfod op=groups——————————————————————————–Group Size Free Redundancy Name ================================================================================ 1: 15357 Mb 14431 Mb NORMAL OCRDG 2: 204798 Mb 204744 Mb EXTERN FLASHDG 3: 409598 Mb 409542 Mb EXTERN DATADG [grid@BCMSDBS01 ~]$ crsctl status res -t——————————————————————————–NAME TARGET STATE SERVER STATE_DETAILS ——————————————————————————–Local Resources——————————————————————————–ora.DATADG.dg ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.FLASHDG.dg ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.LISTENER.lsnr ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.OCRDG.dg ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.asm ONLINE ONLINE bcmsdbs01 Started ONLINE ONLINE bcmsdbs02 Started ora.gsd OFFLINE OFFLINE bcmsdbs01 OFFLINE OFFLINE bcmsdbs02 ora.net1.network ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ora.ons ONLINE ONLINE bcmsdbs01 ONLINE ONLINE bcmsdbs02 ——————————————————————————–Cluster Resources——————————————————————————–ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE bcmsdbs01 ora.bcmsdbs01.vip 1 ONLINE ONLINE bcmsdbs01 ora.bcmsdbs02.vip 1 ONLINE ONLINE bcmsdbs02 ora.cvu 1 ONLINE ONLINE bcmsdbs01 ora.oc4j 1 ONLINE ONLINE bcmsdbs01 ora.scan1.vip 1 ONLINE ONLINE bcmsdbs01
:—
注意:如果出现在另个一个节点是OFFLINE,或者出于dismount的状态,可以手动在第二个节点进行mount
| 12 | alter diskgroup datadg mount;alter diskgroup flashdg mount; |
|---|
4创建RAC数据库实例准备DB 模板文件
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 | <DatabaseTemplate name="11gR2DB" description=" " version="11.1.0.0.0"> <CommonAttributes> <option name="OMS" value="false"/> <option name="JSERVER" value="false"/> <option name="SPATIAL" value="false"/> <option name="IMEDIA" value="false"/> <option name="XDB_PROTOCOLS" value="false"> <tablespace id="SYSAUX"/> </option> <option name="ORACLE_TEXT" value="false"> <tablespace id="SYSAUX"/> </option> <option name="SAMPLE_SCHEMA" value="false"/> <option name="CWMLITE" value="false"> <tablespace id="SYSAUX"/> </option> <option name="EM_REPOSITORY" value="false"> <tablespace id="SYSAUX"/> </option> <option name="APEX" value="false"/> <option name="OWB" value="false"/> <option name="DV" value="false"/> </CommonAttributes> <Variables/> <CustomScripts Execute="false"/> <InitParamAttributes> <InitParams> <initParam name="db_create_file_dest" value="+DATADG"/> <initParam name="db_name" value=""/> <initParam name="db_domain" value=""/> <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/> <initParam name="compatible" value="11.2.0.0.0"/> <initParam name="remote_login_passwordfile" value="exclusive"/> <initParam name="log_archive_dest_1" value="'LOCATION=+FLASHDG'"/> <initParam name="sga_target" value="4096" unit="MB"/> <initParam name="processes" value="300"/> <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/> <initParam name="audit_trail" value="db"/> <initParam name="log_archive_format" value="%t_%s_%r.dbf"/> <initParam name="sessions" value="335"/> <initParam name="db_block_size" value="8" unit="KB"/> <initParam name="open_cursors" value="300"/> <initParam name="pga_aggregate_target" value="2048" unit="MB"/> <initParam name="undo_tablespace" value="UNDOTBS2"/> </InitParams> <MiscParams> <databaseType>MULTIPURPOSE</databaseType> <maxUserConn>20</maxUserConn> 40
<customSGA>true</customSGA> <characterSet>AL32UTF8</characterSet> <nationalCharacterSet>AL16UTF16</nationalCharacterSet> <archiveLogMode>true</archiveLogMode> <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName> </MiscParams> <SPfile useSPFile="true">+DATADG/{DB_UNIQUE_NAME}/spfileCMDSDB.ora</SPfile> </InitParamAttributes> <StorageAttributes> <ControlfileAttributes id="Controlfile"> <maxDatafiles>1024</maxDatafiles> <maxLogfiles>192</maxLogfiles> <maxLogMembers>3</maxLogMembers> <maxLogHistory>1</maxLogHistory> <maxInstances>32</maxInstances> <image name="<OMF_CONTROL_0>" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> <image name="<OMF_CONTROL_1>" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </ControlfileAttributes> <DatafileAttributes id="+DATADG"> SYSAUX <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">600</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">10240</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <DatafileAttributes id="+DATADG"> SYSTEM <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">700</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">10240</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <DatafileAttributes id="+DATADG"> TEMP <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">20</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">640</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <DatafileAttributes id="+DATADG"> UNDOTBS1 <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">200</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">5120</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <DatafileAttributes id="+DATADG"> UNDOTBS2 <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">200</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">5120</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <DatafileAttributes id="+DATADG"> USERS <temporary>false</temporary> <online>true</online> <status>0</status> <size unit="MB">5</size> <reuse>false</reuse> <autoExtend>true</autoExtend> <increment unit="KB">1280</increment> <maxSize unit="MB">-1</maxSize> </DatafileAttributes> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>false</temporary> <defaultTemp>false</defaultTemp> <undo>false</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>1</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">64</initSize> <increment unit="KB">64</increment> <incrementPercent>50</incrementPercent> <minExtends>1</minExtends> <maxExtends>4096</maxExtends> <minExtendsSize unit="KB">64</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>false</temporary> <defaultTemp>false</defaultTemp> <undo>false</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>3</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">64</initSize> <increment unit="KB">64</increment> <incrementPercent>50</incrementPercent> <minExtends>1</minExtends> <maxExtends>-1</maxExtends> <minExtendsSize unit="KB">64</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>true</temporary> <defaultTemp>true</defaultTemp> <undo>false</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>1</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">64</initSize> <increment unit="KB">64</increment> <incrementPercent>0</incrementPercent> <minExtends>1</minExtends> <maxExtends>0</maxExtends> <minExtendsSize unit="KB">64</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>false</temporary> <defaultTemp>false</defaultTemp> <undo>true</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>1</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">512</initSize> <increment unit="KB">512</increment> <incrementPercent>50</incrementPercent> <minExtends>8</minExtends> <maxExtends>4096</maxExtends> <minExtendsSize unit="KB">512</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>false</temporary> <defaultTemp>false</defaultTemp> <undo>true</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>1</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">512</initSize> <increment unit="KB">512</increment> <incrementPercent>50</incrementPercent> <minExtends>8</minExtends> <maxExtends>4096</maxExtends> <minExtendsSize unit="KB">512</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <online>true</online> <offlineMode>1</offlineMode> <readOnly>false</readOnly> <temporary>false</temporary> <defaultTemp>false</defaultTemp> <undo>false</undo> <local>true</local> <blockSize>-1</blockSize> <allocation>1</allocation> <uniAllocSize unit="KB">-1</uniAllocSize> <initSize unit="KB">128</initSize> <increment unit="KB">128</increment> <incrementPercent>0</incrementPercent> <minExtends>1</minExtends> <maxExtends>4096</maxExtends> <minExtendsSize unit="KB">128</minExtendsSize> <logging>true</logging> <recoverable>false</recoverable> <maxFreeSpace>0</maxFreeSpace> <autoSegmentMgmt>true</autoSegmentMgmt> <bigfile>false</bigfile> <datafilesList> <id>-1</id> </datafilesList> <RedoLogGroupAttributes id="1"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo01.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="2"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo02.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="3"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo03.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="4"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo04.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="5"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="1" memberName="redo05.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="6"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo06.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="7"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo07.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="8"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo08.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="9"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo09.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="10"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo10.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> </StorageAttributes></DatabaseTemplate> |
:—
以下是一些自定义设置的模板信息可以根据实际情况进行修改| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | <InitParams> <initParam name="db_create_file_dest" value="+DATADG"/> <initParam name="db_name" value=""/> <initParam name="db_domain" value=""/> <initParam name="compatible" value="11.2.0.0.0"/> <initParam name="remote_login_passwordfile" value="exclusive"/> <initParam name="log_archive_dest_1" value="'LOCATION=+FLASHDG'"/> <initParam name="sga_target" value="4096" unit="MB"/> <initParam name="processes" value="300"/> <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/> <initParam name="audit_trail" value="db"/> <initParam name="log_archive_format" value="%t_%s_%r.dbf"/> <initParam name="sessions" value="335"/> <initParam name="db_block_size" value="8" unit="KB"/> <initParam name="open_cursors" value="300"/> <initParam name="pga_aggregate_target" value="2048" unit="MB"/> <initParam name="undo_tablespace" value="UNDOTBS2"/> </InitParams> <MiscParams> <databaseType>MULTIPURPOSE</databaseType> <maxUserConn>20</maxUserConn> 40
<customSGA>true</customSGA> <characterSet>AL32UTF8</characterSet> <nationalCharacterSet>AL16UTF16</nationalCharacterSet> <archiveLogMode>true</archiveLogMode> <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName> </MiscParams> <SPfile useSPFile="true">+DATADG/{DB_UNIQUE_NAME}/spfiletestdb.ora</SPfile> <RedoLogGroupAttributes id="1"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo01.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> <RedoLogGroupAttributes id="2"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 1 <member ordinal="0" memberName="redo02.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes>............. <RedoLogGroupAttributes id="10"> <reuse>false</reuse> <fileSize unit="KB">204800</fileSize> 2 <member ordinal="1" memberName="redo10.log" filepath="+DATADG/{DB_UNIQUE_NAME}/"/> </RedoLogGroupAttributes> |
:—
对于8G的内存,一般选择SGA为3-4G,PGA为1-3G。对于64G的内存,初始化选择SGA为25-32G,PGA为4-8G。所有日志文件大小为200M,5个Thread为1,5个Thread为2。 通过模板安装数据库请使用oracle用户在1号节点上执行以下命令:
| 12345 | $ORACLE_HOME/bin/dbca -silent -createDatabase -templateName /home/oracle/11gR2DB.dbt -gdbName testdb -sid testdb -sysPassword oracle -systemPassword oracle -storageType ASM -diskGroupName DATADG -datafileJarLocation $ORACLE_HOME/assistants/dbca/templates -nodelist NODE1,NODE2 -obfuscatedPasswords false -asmSysPassword grid |
|---|
| 12345678910111213141516171819202122232425262728293031323334353637383940 | Creating and starting Oracle instanceDBCA_PROGRESS : 2%DBCA_PROGRESS : 3%DBCA_PROGRESS : 4%DBCA_PROGRESS : 10%Creating database filesDBCA_PROGRESS : 11%DBCA_PROGRESS : 12%DBCA_PROGRESS : 20%Creating data dictionary viewsDBCA_PROGRESS : 23%DBCA_PROGRESS : 26%DBCA_PROGRESS : 29%DBCA_PROGRESS : 30%DBCA_PROGRESS : 31%DBCA_PROGRESS : 32%DBCA_PROGRESS : 33%DBCA_PROGRESS : 34%DBCA_PROGRESS : 35%DBCA_PROGRESS : 36%DBCA_PROGRESS : 37%DBCA_PROGRESS : 38%DBCA_PROGRESS : 44%DBCA_PROGRESS : 47%DBCA_PROGRESS : 50%DBCA_PROGRESS : 53%Creating cluster database viewsDBCA_PROGRESS : 55%DBCA_PROGRESS : 73%Completing Database CreationDBCA_PROGRESS : 76%DBCA_PROGRESS : 79%DBCA_PROGRESS : 88%DBCA_PROGRESS : 97%DBCA_PROGRESS : 100%Database creation complete. For details check the logfiles at: /oraapp/oracle/cfgtoollogs/dbca/TESTDB.Database Information:Global Database Name:CMDSDBSystem Identifier(SID) Prefix:CMDSDB |
|---|
数据库安装后的一些配置增加online redo log(只在一个节点操作即可)
| 12345678910 | alter database add logfile member '+FLASHDG' to group 1;alter database add logfile member '+FLASHDG' to group 2;alter database add logfile member '+FLASHDG' to group 3;alter database add logfile member '+FLASHDG' to group 4;alter database add logfile member '+FLASHDG' to group 5;alter database add logfile member '+FLASHDG' to group 6;alter database add logfile member '+FLASHDG' to group 7;alter database add logfile member '+FLASHDG' to group 8;alter database add logfile member '+FLASHDG' to group 9;alter database add logfile member '+FLASHDG' to group 10; |
|---|
注:以上的命令可编辑/home/oracle/add_redo.sql并执行。设置snapshot controfile路径为存储,否则NBU备份会报备份control file失败:(只在一个节点操作即可)
| 123 | rman target /RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+FLASHDG/CDISDB/CONTROLFILE/snapcf_TESTDB.f';RMAN > show all; //确认修改成功 |
|---|
以oracle在主节点执行如下操作(不需要在备节点操作):
| 123456789101112131415161718192021 | cdsqlplus / as sysdba@add_redo.sql–确认每个组都有2个MEMBERSQL> select group#,thread#,members from v$log; GROUP# THREAD# MEMBERS———- ———- ———- 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 2 2 7 2 2 8 2 2 9 2 2 10 2 2SQL> set lines 200SQL> col member for a50–确认有10个DATADG下的redo logfile,10个FLASHDG下的redolog fileSQL> select group#,member from v$logfile |
|---|
确认数据库安装配置是否正确请在sqlplus中执行以下命令,确认数据库是否安装配置是否正确(在任意一个节点执行即可)| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Select open_mode from v$database;Show parameter sgaShow parameter pgaSelect name from v$dbfile;Select name from v$tempfile;Select name from v$controlfile;Select member from v$logfile;Archive log list[grid@NODE1 ~]$ crsctl status res -t——————————————————————————–NAME TARGET STATE SERVER STATE_DETAILS ——————————————————————————–Local Resources——————————————————————————–ora.DATADG.dg ONLINE ONLINE node1 ONLINE ONLINE node2 ora.FLASHDG.dg ONLINE ONLINE node1 ONLINE ONLINE node2 ora.LISTENER.lsnr ONLINE ONLINE node1 ONLINE ONLINE node2 ora.OCRDG.dg ONLINE ONLINE node1 ONLINE ONLINE node2 ora.asm ONLINE ONLINE node1 Started ONLINE ONLINE node2 Started ora.gsd OFFLINE OFFLINE node1 OFFLINE OFFLINE node2 ora.net1.network ONLINE ONLINE node1 ONLINE ONLINE node2 ora.ons ONLINE ONLINE node1 ONLINE ONLINE node2 ——————————————————————————–Cluster Resources——————————————————————————–ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE node1 ora.node1.vip 1 ONLINE ONLINE node1 ora.node2.vip 1 ONLINE ONLINE node2 ora.testdb.db 1 ONLINE ONLINE node1 Open 2 ONLINE ONLINE node2 Open ora.cvu 1 ONLINE ONLINE node1 ora.oc4j 1 ONLINE ONLINE node1 ora.scan1.vip 1 ONLINE ONLINE node1
:—
正常情况下,除了ora.gsd 这个资源以外,其他的都应该是出于online状态的。并且ora.testdb.db资源在两个节点都出于open状态。
5 数据库监听配置使用grid用户登录安装grid时定义了默认的监听端口1521查看系统的监听状态:| 123456789101112131415161718192021222324252627 | [grid@node1 ~]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.3.0 – Production on 10-APR-2013 14:38:08Copyright (c) 1991, 2011, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))STATUS of the LISTENER————————Alias LISTENERVersion TNSLSNR for Linux: Version 11.2.0.3.0 – ProductionStart Date 10-APR-2013 11:29:42Uptime 0 days 3 hr. 8 min. 26 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /oraapp/grid/gridhome/network/admin/listener.oraListener Log File /oraapp/grid/gridbase/diag/tnslsnr/node1/listener/alert/log.xmlListening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=200.31.43.41)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=200.31.43.43)(PORT=1521)))Services Summary…Service "+ASM" has 1 instance(s). Instance "+ASM1", status READY, has 1 handler(s) for this service…Service "testdb" has 1 instance(s). Instance "testdb1", status READY, has 1 handler(s) for this service…Service "testdbXDB" has 1 instance(s). Instance "testdb1", status READY, has 1 handler(s) for this service…The command completed successfully
:—
我们看到,ORACLE自动创建了服务testdb,该服务在两个结点上分别各有一个实例。 使用srvctl命令添加监听 1)检查默认的network的network number
| 12 | [grid@NODE1 ~]$ srvctl config networkNetwork exists: 1/200.31.43.0/255.255.255.0/bond0, type static |
|---|
2)使用以下命令添加监听
| 123456 | [grid@NODE1 ~]$ srvctl add listener -l TESTDB_LISTENER -o $ORACLE_HOME -p 1522 -k 1命令说明:-k 就是上面获得的network number -p 监听端口-l 监听名称-o GI HOME |
|---|
3)启动监听| 1 | [grid@NODE1 ~]$ srvctl start listener -l TESTDB_LISTENER
:—
注意:在启动监听之后会在listener.ora和endpoints_listener.ora 自动添加记录4)确认监听是否启动
| 123456 | [grid@NODE1 ~]$ crsctl status res -t | grep -2 TESTDB_LISTENERLocal Resources——————————————————————————–ora.TESTDB_LISTENER.lsnr ONLINE ONLINE node1 ONLINE ONLINE node2 |
|---|
查看建立的新监听TESTDB_LISTENER,端口1522:| 1 | lsnrctl status TESTDB_LISTENER
:—
注意:11gR2以后的的LISTENER监听配置默认受到11.2新引入的endpoints_listener.ora配置文件的管理。在使用endpoints_listener.ora的情况下,请不要使用lsnrctl 来启动和停止LISTENER,而需要使用srvctl或者crsctl工具进行管理,否则lsnrctl 将不会识别endpoints_listener.ora的配置信息,造成监听没有在必要的地址,端口上工作。 5)绑定数据库到监听:此时LISTENER1不会注册数据库,需要修改LOCAL_LISTENER参数。在两个节点上修改local listener: | 12345678910111213141516171819202122232425 | [oracle@node1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Wed Apr 10 14:42:54 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsSQL> show parameter listenerNAME TYPE VALUE———————————— ———– ——————————listener_networks stringlocal_listener string (DESCRIPTION=(ADDRESS_LIST=(AD DRESS=(PROTOCOL=TCP)(HOST=200. 31.43.41)(PORT=1521))))remote_listener string SCANIP:1521SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=200.31.43.43)(PORT=1522))))' scope=both sid='testdb1';System altered.SQL> show parameter listenerNAME TYPE VALUE———————————— ———– ——————————listener_networks stringlocal_listener string (DESCRIPTION=(ADDRESS_LIST=(AD DRESS=(PROTOCOL=TCP)(HOST=200. 31.43.43)(PORT=1522))))remote_listener string SCANIP:1521
:—
在两个节点上修改tnsnames.ora如下:
| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | # tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.# Remote ListenerTESTDB_LISTENERS = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1522)) ) # Local ListenerTESTDB1_LISTENERS = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1522)) ) TESTDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 200.31.43.43)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = 200.31.43.44)(PORT = 1522)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVICE_NAME = TESTDB) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 200) (DELAY = 5) ) ) )TESTDB1 =(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 200.31.43.43)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDB) (INSTANCE_NAME = TESTDB1) )) TESTDB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 200.31.43.44)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDB) (INSTANCE_NAME = TESTDB2) )) |
|---|
在主节点上修改remote listener:| 123456789101112131415161718192021222324 | [oracle@node1 admin]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Wed Apr 10 15:04:29 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsSQL> show parameter listenerNAME TYPE VALUE———————————— ———– ——————————listener_networks stringlocal_listener string (DESCRIPTION=(ADDRESS_LIST=(AD DRESS=(PROTOCOL=TCP)(HOST=200.31.43.43)(PORT=1522))))remote_listener string SCANIP:1521SQL> alter system set remote_listener=TESTDB_LISTENERS;System altered.SQL> show parameter listenerNAME TYPE VALUE———————————— ———– ——————————listener_networks stringlocal_listener string (DESCRIPTION=(ADDRESS_LIST=(AD DRESS=(PROTOCOL=TCP)(HOST=200. 31.157.218)(PORT=1522))))remote_listener string TESTDB_LISTENERS
:—
这样就将数据库orcltest的监听端口换成了1522注意!监听必须绑定到VIP的端口上,因为VIP才是真正的业务IP,是可以在集群内部漂移的IP,而物理IP一旦机器宕机就不能访问了,而SCANIP只是一个转接IP,根据load_balance的设置将访问请求转接到各个实例的VIP的端口上,所以VIP才是真正的服务IP! 使用grid用户查看集群正常状态:
| 123456789101112131415161718192021222324252627282930 | crs_stat –t//只有gsd为OFFLINE,其他全为ONLINE,即为正常状态。Name Type Target State Host ————————————————————ora.DATADG.dg ora….up.type ONLINE ONLINE node1 ora.FLASHDG.dg ora….up.type ONLINE ONLINE node1 ora….ER.lsnr ora….er.type ONLINE ONLINE node1 ora….ER.lsnr ora….er.type ONLINE ONLINE node1 ora….N1.lsnr ora….er.type ONLINE ONLINE node2 ora.OCRDG.dg ora….up.type ONLINE ONLINE node1 ora.asm ora.asm.type ONLINE ONLINE node1 ora.cvu ora.cvu.type ONLINE ONLINE node2 ora.gsd ora.gsd.type OFFLINE OFFLINE ora.testdb.db ora….se.type ONLINE ONLINE node2 ora….network ora….rk.type ONLINE ONLINE node1 ora.oc4j ora.oc4j.type ONLINE ONLINE node2 ora.ons ora.ons.type ONLINE ONLINE node1 ora….SM2.asm application ONLINE ONLINE node1 ora….B3.lsnr application ONLINE ONLINE node1 ora….B3.lsnr application ONLINE ONLINE node1 ora….db3.gsd application OFFLINE OFFLINE ora….db3.ons application ONLINE ONLINE node1 ora….db3.vip ora….t1.type ONLINE ONLINE node1 ora….SM1.asm application ONLINE ONLINE node2 ora….B4.lsnr application ONLINE ONLINE node2 ora….B4.lsnr application ONLINE ONLINE node2 ora….db4.gsd application OFFLINE OFFLINE ora….db4.ons application ONLINE ONLINE node2 ora….db4.vip ora….t1.type ONLINE ONLINE node2 ora….ry.acfs ora….fs.type ONLINE ONLINE node1 ora.scan1.vip ora….ip.type ONLINE ONLINE node2 |
|---|
6部署oswatcher以oracle用户登录两个节点1) 上传oswbb601.tar到/home/oracle目录2)tar -xvf oswbb601.tar3)编辑文件/home/oracle/oswbb/private.net:
| 12 | traceroute -r -F node1-privtraceroute -r -F node2-priv |
|---|
其中 XXX-PRIV代表/etc/hosts中心跳网络的别名4) chmod u+x /home/oracle/oswbb/private.net5)cd /home/oracle/oswbb6) ./startOSWbb.sh7) su – root8) 在/etc/rc.d/rc.local增加如下行:# added for oracle oswatchersu – oracle -c /home/oracle/oswbb/startOSWbb.sh7 HugePage设置在内存较大的数据库服务器(大于12G)上,需要设置HugePage,以提高内存页管理效率。以root用户在/etc/security/limits.conf文件中增加如下内容(两个节点都要操作):
| 12 | * soft memlock 60397977* hard memlock 60397977 |
|---|
以oracle用户重新登陆,执行ulimit -l,确认输出为60397977
| 12 | sqlplus / as sysdbashow parameter memory |
|---|
–确认MEMORY_TARGET和MEMORY_MAX_TARGET均设置为0,代表没有使用AMM(Automatic Memory Management) 执行hugepages_settings.sh(执行之前需要确认数据库和ASM实例均处于运行状态),得到推荐的hugepage数量。(此处假设为1496)以root用户编辑/etc/sysctl.conf,增加如下行:| 1 | vm.nr_hugepages=1496
:—
grep AnonHugePages /proc/meminfo 如果输出为“AnonHugePages: xxx kB”,xxx表示大于0的值,则表示内核在使用透明大页。在RHEL6中透明大页会导致数据库异常重启。因此如果内核在使用透明大页,则需要在/etc/grub.conf的启动选项中,加入如下选项:| 1 | transparent_hugepage=never
:—
加完以后的配置文件类似如下:| 1 | kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABLE=/ transparent_hugepage=never
:—
重启数据库主机,并且重启数据库。| 12 | grep HugePages /proc/meminfo,确认HugePages_Total为1496grep AnonHugePages /proc/meminfo,确认没有在使用Transparent HugePages
:—
8 测试1)拔掉主机1的一根业务网线,确认数据库状态正常。2)将主机1的网线插回,等待大约2分钟,拔掉主机2的一根业务网线,确认数据库状态正常。3) 将主机2的网线插回。拔掉一根心跳,确认数据库状态正常。4) 拔掉另一根心跳,确认fencing后数据库资源正常5) 将心跳线插回,拔掉一台主机的两根网线,确认一个数据库实例关闭,另外一个数据库实例资源状态正常。 此条目发表在Oracle,ORACLE基础与管理分类目录。将固定链接加入收藏夹。