Oracle 12c RAC 靜默安裝文檔

来源:https://www.cnblogs.com/leohahah/archive/2018/08/16/9489036.html
-Advertisement-
Play Games

參考文檔: 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 ...


參考文檔:

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 占座 ...
  • 剛新裝了個sqlserver2008 R2,在建立資料庫時候報錯,提示無法獲得資料庫"model"上的排它鎖。解決辦法如下: 打開查詢頁面,執行下麵的語句即可。 ...
  • 原理: Mysql熱備份有三個步驟: 說明:在兩台MySQL伺服器172.18.34.161和172.18.133.123上分別進行如下操作 一、主從伺服器分別作以下操作: 二、配置MySQL主伺服器(172.18.34.161) 1) mysql -u root -p #進入MySQL控制台 2) ...
  • 背景: 本項目的伺服器是內網環境,沒有網路,因此需要在離線的環境中,安裝head服務。 需要用到的安裝包有: node的安裝包 elasticsearch的head插件源碼 說明:此次只講述為elasticsearch安裝head服務,不講述elasticsearch的安裝過程。 部署過程: 1、從 ...
  • 轉自:http://www.maomao365.com/?p=7205 摘要: 下文分享兩條sql求和腳本,再次求和的方法分享 ...
  • 使用SSMS刪除數據 1、連接資料庫、選擇數據表-》右鍵點擊,選擇所有行(或者選擇前200行)。 2、在數據視窗中選擇數據行(註意點擊最左邊列選擇整個數據行)-》在最左側右鍵點擊-》選擇刪除-》在彈出框中點擊確定。 3、示例結果如下: 使用T-SQL腳本刪除數據 刪除單表單行數據 語法:delete ...
  • 一個SQL 語句的執行順序 1、From (告訴程式 來自哪張表 如果是表表達式 依舊是如此順序) 2、Where(條件篩選 謂詞篩選 ) 3、Group by(分組) 4、Having(分組 謂詞篩選 ) 5、Select (表達式) 6、表達式(開窗函數 聚合函數 等等) 7、Distinct( ...
  • mysql根據查詢結果更新多條數據(插入或更新) 1.1 前言 mysql根據查詢結果執行批量更新或插入時經常會遇到1093的錯誤問題。基本上批量插入或新增都會涉及到子查詢,mysql是建議不要對需要操作的表放入子查詢條件中的,因此我們儘量避免子查詢中涉及到需要操作的表,如果無法避免,則可以考慮用連 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...