静默安装,指的是不借助操作界面,通过修改%ORACLE_HOME%/database/response 下配置文件的方式,安装数据库
涉及到的配置文件包括以下几个:
#安装过程的引导配置
[oracle@xxcentos7four oracle]$ db_install.rsp
#创建数据库的引导配置
[oracle@xxcentos7four oracle]$ dbca.rsp
#网络相关配置引导
[oracle@xxcentos7four oracle]$ netca.rsp
题外话,事实上,界面化安装,也是通过读取这几个引导配置文件实现安装的。
#30行。仅安装模式,还可以选择INSTALL_DB_AND_CONFIG(安装与配置)、UPGRADE_DB(升级)
oracle.install.option=INSTALL_DB_SWONLY
#35行。下面的组名,使用的是在准备阶段我们在操作系统中创建的那三个oracle的分组,请注意对应
UNIX_GROUP_NAME=oinstall
#42行。清单目录
INVENTORY_LOCATION=/orcl/app/oraInventory
#46与51行。请注意,下面的名字与路径与我们通常的XX_HOME的写法不同,请不要写错,切切!
ORACLE_HOME=/orcl/app/oracle/product/12.1.0/db_1
ORACLE_BASE=/orcl/app/oracle
#63行。安装版本,EE代表企业版
oracle.install.db.InstallEdition=EE
#下面的组名,使用的是在准备阶段我们在操作系统中创建的那三个oracle的分组,请注意对应
#80行
oracle.install.db.OSDBA_GROUP=dba
#86行
oracle.install.db.OSOPER_GROUP=oper
#91行
oracle.install.db.OSBACKUPDBA_GROUP=dba
#96行
oracle.install.db.OSDGDBA_GROUP=dba
#101行
oracle.install.db.OSKMDBA_GROUP=dba
#106行
oracle.install.db.OSRACDBA_GROUP=dba
#180行。当前选择的是普通应用。还可以选择DATA_WAREHOUSE(数据仓库)
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#185行。全局数据库变量名。一般的规则是 “数据库名.域名”的形式,比如testdb.alibaba.com
oracle.install.db.config.starterdb.globalDBName=orcl
#190行。唯一标识符
oracle.install.db.config.starterdb.SID=orcl
#216行。字符集
oracle.install.db.config.starterdb.characterSet=AL32UTF8
#224行。是否使用自动内存管理。选true,oracle会自动分配SGA和PGA这些
oracle.install.db.config.starterdb.memoryOption=true
#232行。oracle的可用内存大小。不填则按照服务器总内存百分比自动为oracle分配。
oracle.install.db.config.starterdb.memoryLimit=
#398行。若不想配置安全更新,则将值置为true反之为false
DECLINE_SECURITY_UPDATES=true
配置完毕后执行命令
#进入到runInstaller目录,执行静默安装
[root@xxcentos7four local]# cd /orcl/app/oracle/database/
[root@xxcentos7four local]# ./runInstaller -silent -responseFile /orcl/app/oracle/database/response/db_install.rsp -ignorePrereq
#假如安装过程中报错了,已经在$ORACLE_HOME和/orcl/app/oraInventory下生成了很多文件目录。
#想再次安装的话,需要先删除这些文件:
#这不操作不是必要的
[root@xxcentos7four local]# cd /orcl/app/
[root@xxcentos7four local]# rm -rf /orcl/app/oraInventory
[root@xxcentos7four local]# cd $ORACLE_HOME/
[root@xxcentos7four local]# rm -rf *
#为oraInventory目录添加读写权限,并修改所属组等内容
[root@xxcentos7four local]# cd /orcl/app/oraInventory/
[root@xxcentos7four local]# ./orainstRoot.sh
#检查$ORACLE_HOME/install/root_ser6-51_2015-07-06_19-00-11.log日志相关内容
[root@xxcentos7four local]# cd /orcl/app/oracle/product/12/db_1/
[root@xxcentos7four local]# ./root.sh
#21行,这行不要动
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
#32行,全局db名。需要与安装引导中globalDBName名保持一致
gdbName=orcl
#42行。继续与安装引导中的sid保持一致
sid=orcl
#52行。si:单例;rac:集群节点;raconenode:集群中主节点
databaseConfigType=SI
#74行。貌似是选择由管理员管理还是策略来管理。false是管理员管理
policyManaged=false
#88行。是否创建服务池。多说一句,所谓serverpool,只在rac时有效。
#指的是将所有服务以池化思想进行管理。可以方便的添加和去掉rac资源服务器。易于扩展rac。
createServerPool=false
#后面会有一系列与serverpool相关的东西,对应内容值或者填false,或者不填即可
#162行。是否创建为容器(cdb)数据库。
#这是12c的新功能,相关内容可以搜索cdb、pdb。建议置为true。
createAsContainerDatabase=true
#172行。需要创建几个pdb数据库
numberOfPDBs=1
#182行。pdb名称,多个pdb名称之间以“/”分割即可
pdbName=orclpdb
#203行。pdb库的管理员密码
pdbAdminPassword=zjzyAdmin123
#223行。模板路径(我估计是pdb数据库的模板)。这个路径下有默认的模板,使用就好了
templateName=/orcl/app/oracle/product/12.1.0/db_1/assistants/dbca/templates/General_Purpose.dbc
#233行。这个sys是指cdb库的sys用户的密码。cdb用户天然拥有其下pdb的访问权限。
sysPassword=zjzyAdmin123
#243行。cdb库的system用户的密码
sysPassword=zjzyAdmin123
#273行。enterprise manager功能的服务端口
emExpressPort=5500
#284行。是否运行集群变更工具(没有集群时置为false)
runCVUChecks=false
#341行。是否开启数据保险库(所谓数据保险库,就是限制用户访问特定区域的数据,受限用户包括但不限于管理员。特定区域可以是工资、年龄等字段)
dvConfiguration=false
#391行。是否开启oracle label security。(所谓ols,就是从不同的策略、等级、分组等维度,对每行数据制作安全标签。然后令带有同样安全标签或符合某种安全维度的用户访问对应标签的数据。)
olsConfiguration=false
#401行。数据文件jar包存放路径(不知什么作用)
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
#411行。数据文件存放路径
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
#421行。快速回复文件存放路径
recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}
#431行。存储类型(FS:文件系统;ASM:存储介质池。ASM的组成可能是磁盘、磁带、等任何一种存储介质)
storageType=FS
#478行。字符集
nationalCharacterSet=AL16UTF16
#488行。是否以目录服务注册(不知道什么意思)
registerWithDirService=false
#546行。安装过程中用到的变量。以键值对形式体现
variables=DB_UNIQUE_NAME=orcl,ORACLE_BASE=/orcl/app/oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=/orcl/app/oracle/product/12.1.0/db_1,SID=orcl
#555行。初始化参数(这里如果某个值设置的过大或过小,在安装过程会有报错信息提示你,按照报错提示进行修改一般都能解决问题)
initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=3600MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_orcl,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300
#565行。
sampleSchema=false
#574行。占用当前服务器物理内存的百分比
memoryPercentage=40
#584行。数据库用途(值域包括MULTIPURPOSE:多用途;DATA_WAREHOUSING:数据仓库即OLAP;OLTP:联机事务型系统)。不同的用途,对数据块大小的要求不同,OLAP偏向大数据块,OLTP喜欢小数据块
databaseType=MULTIPURPOSE
#594行。是否需要内存自动管理(自动管理无需自己分配SGA和PGA大小)
automaticMemoryManagement=false
#604行。内存上限
totalMemory=0
配置完成后,执行命令
#dbca命令应该已经被加入到环境变量。若报命令找不到,请修改相关profile文件并source使之生效
[root@xxcentos7four local]# dbca -silent -responseFile /home/oracle/dbca.rsp
#安装过程中,会随时打印出执行的百分比,如下所示
1% complete
4% complete
....
Completing Database Creation
95% complete
100% complete
#如果能到100%那就说明安装已成功,否则可以根据对应提示的日志文件,去排查问题
到100%之后,可以执行sqlplus / as sysdba登录,若数据库是处于open状态。进行下一步修改netca.rsp文件的操作
#46行。是否以界面形式进行(静默安装模式下,这里填false)
SHOW_GUI=false
#60行。配置过程中生成的日志的保存路径
LOG_FILE=""$ORACLE_HOME$/network/tools/log/netca.log""
#66行。安装组件(以字符串列表形式体现)
INSTALLED_COMPONENTS={"server","net8","javavm"}
#71行。安装类型(一般选typical。还有minimal 和customer可选)
INSTALL_TYPE=""typical""
#75行。需要的监听器的数量
LISTENER_NUMBER=1
#81行。监听器名称列表(以字符串列表形式体现)
LISTENER_NAMES={"LISTENER"}
#89行。监听器协议。一般用tcp协议即可。端口可以任意指定
LISTENER_PROTOCOLS={"TCP;1521"}
#92行。如果配置了多个listener,需要指定第一个监听器
LISTENER_START=""LISTENER""
#99行。监听器中出现的属性。典型属性仅需下面这三个即可
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
#115行。网络服务名数量
NSN_NUMBER=1
#119行。网络服务名,以字符串列表形式出现
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
#123行。网络服务。下面是默认值
NSN_SERVICE={"PLSExtProc"}
#129行。网络服务协议
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
配置完成后,执行命令
#命令执行成功后,会自动生成tns和listener等文件
[root@xxcentos7four local]# netca -silent -responseFile /home/oracle/12102_netca.rsp
#生成的文件所处路径如下所示
[root@xxcentos7four local]# cd /orcl/app/oracle/product/12.1.0/db_1/network/admin
外网环境需要访问,可能需要开放防火墙端口甚至关闭防火墙。具体操作步骤请见下一篇