Centos7静默安装oracle Database 11.2.0
前言
oracle安装方式:GUI,silent mode,response mod
silent mode:把所有交互参数保存在response file里,启动Oracle Universal Installer时加 -silent
使用response文件夹里的文件定义安装需要的变量
db_install.rsp
:对应Oracle Configuration Manager registration
dbca.rsp
:对应Oracle database configuration assistant
netca.rsp
:对应Oracle net configuration assistant
静默安装ASM:
在创建使用Oracle ASM的数据库之前,必须运行root.sh脚本。因此,在静默方式安装期间,不能使用Oracle ASM作为数据库文件的存储选项来创建数据库。相反,您可以使用静默模式完成纯软件安装,然后在完成纯软件安装并运行root.sh脚本后,以静默模式运行Oracle Net Configuration Assistant和Database Configuration Assistant。
安装前准备工作
用root用户登录
硬件需求
内存: 最小 1 GB,推荐 2 GB 以上
查看内存大小:grep MemTotal /proc/meminfo
交换分区:
Note:
在Linux上,HugePages功能使用内存映射文件为大型页表分配不可交换的内存。如果启用了HugePages,则应在计算交换空间之前从可用的RAM中扣除分配给HugePages的内存。
可用内存 | 交换分区 |
---|---|
1 GB~2 GB | 1.5倍内存大小 |
2 GB~16 GB | 等同内存大小 |
超过16GB | 16GB |
查看交换分区大小:grep SwapTotal /proc/meminfo
查看内存和交换分区:free
ASM:
从Oracle Database 11g开始,自动内存管理功能需要更多的共享内存(/dev/shm
)和文件描述符。共享内存的大小至少应大于该计算机上每个Oracle实例的MEMORY_MAX_TARGET
和MEMORY_TARGET
。
查看共享内存大小:df -h /dev/shm/
可以通过如下命令修改shm的大小:
|
|
为了系统重启也可以生效,需要修改/etc/fstab
文件,添加如下内容:
|
|
Note:
当启用
LOCK_SGA
或在Linux上使用HugePages时,不能使用MEMORY_MAX_TARGET
和MEMORY_TARGET
。
硬盘:
一、
至少1GB可用空间,挂载在/tmp
查看/tmp
大小:df -h /tmp
可用空间不够时,两种办法:
-
删除
/tmp
下不必要的文件 -
配置
oracle
用户的环境时,设置TMP
和TMPDIR
环境变量。- 创建一个临时目录,并在该目录上设置适当的权限:
1 2 3
$ sudo mkdir /mount_point/tmp $ sudo chmod a+wr /mount_point/tmp # exit
- 设置
TMP
和TMPDIR
环境变量:
1 2 3
$ TMP=/mount_point/tmp $ TMPDIR=/mount_point/tmp $ export TMP TMPDIR
二、
Linux x86-64上安装所需的Software Files和Data Files的大小
安装类型 | Software Files要求(GB) |
---|---|
Enterprise Edition | 4.7 |
Standard Edition | 4.6 |
安装类型 | Data Files要求(GB) |
---|---|
Enterprise Edition | 1.7 |
Standard Edition | 1.5 |
如果选择配置自动备份,则无论是安装在file system或OracleASM磁盘组上,快速恢复区域需要额外的磁盘空间。
软件需求
操作系统:
cat /proc/version
Oracle Linux 7
Red Hat Enterprise Linux 7
从Oracle Database 11g Release 2 (11.2)开始,Oracle Linux 4,Oracle Linux 5,Oracle Linux 6,Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5, and Red Hat Enterprise Linux 6支持 SE Linux 功能。
内核:
3.10.0-54.0.1.el7.x86_64 or later
软件包:
Note:
从Oracle Database 11g Release 2 (11.2.0.2)开始,下表中列出的除
gcc-32bit-4.3
之外的所有32位软件包都不再需要在Linux x86-64上安装数据库,仅需要64位软件包。但是,对于11.2.0.2之前的任何Oracle Database 11g发行版,下表中列出的32位和64位软件包都是必需的。
对 Oracle Linux 7 和 Red Hat Enterprise Linux 7,以下软件包必须安装:
|
|
可能需要安装:
|
|
11.2.0.2之前
|
|
11.2.0.2之后
|
|
查看软件包是否安装:rpm -q package_name
验证UDP和TCP内核参数
设置TCP / IP临时端口范围参数,以为预期的服务器工作负载提供足够的临时端口。确保将下限范围设置为9000或更高,以避免Oracle和其他服务器端口通常使用的已注册端口范围内的端口。如果该范围的下限值大于9000,且该范围足够大以应付预期的工作负荷,则可以忽略有关临时端口范围的OUI警告。
检查当前的临时端口范围:cat /proc/sys/net/ipv4/ip_local_port_range
永久修改参数:
|
|
安装cvuqdisk.rpm
没有cvuqdisk
,Cluster Verification Utility(CVU)找不到共享磁盘,并且在运行CVU时收到“Package cvuqdisk not installed”错误。
Note:
可以修改文件
oracle_home1/cv/admin/cvu_config
禁用CVU共享磁盘检查:CV_RAW_CHECK_ENABLED =FALSE
在此示例中,
oracle_home1
是数据库安装所在的Oracle主目录。
-
在安装包的rpm目录中找到cvuqdisk RPM软件包。如果安装了Oracle Grid Infrastructure,则位于
oracle_home1/cv/rpm
目录中。 -
登录root用户
-
查看是否已安装cvuqdisk:
# rpm -qi cvuqdisk
如果存在已安装版本,卸载:
# rpm -e cvuqdisk
-
将环境变量
CVUQDISK_GRP
设置为拥有cvuqdisk
的组,通常是oinstall
,例如:# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
-
在保存
cvuqdisk
的目录下,安装:rpm -iv cvuqdisk-1.0.7-1.rpm
确认主机名解析
能ping通:ping centos
禁用Transparent HugePages
从Red Hat Enterprise Linux 6开始,Transparent HugePages默认启用。但是,Transparent HugePages可能会导致内存分配延迟,因为内存是动态分配的。
Oracle建议您使用标准的HugePages来增强性能。
查看Transparent HugePages是否启用:cat /sys/kernel/mm/transparent_hugepage/enabled
默认情况下,状态为always,需要调整为never
关闭Transparent HugePages:
-
修改
etc/default/grub
文件,添加transparent_hugepage=never
1 2 3 4 5 6 7
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system- release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rhgb quiet transparent_hugepage=never" GRUB_DISABLE_RECOVERY="true"
-
执行生效命令
grub2-mkconfig -o /boot/grub2/grub.cfg
-
重启reboot
创建所需的系统组和用户
安装Oracle数据库,需要以下本地系统组和用户:
-
The Oracle Inventory group (typically,
oinstall
) -
The OSDBA group (typically,
dba
) -
The Oracle software owner (typically,
oracle
) -
The OSOPER group (optional. Typically,
oper
)
查看Oracle Inventory group是否存在:
|
|
如果oraInst.loc存在,那么此命令的输出类似于以下内容:
|
|
inventory_loc
显示Oracle Central Inventory的位置
inst_group
显示Oracle Inventory group的名称
如不存在,创建oinstall
和dba
用户组:
|
|
创建oracle
用户:
|
|
将oinstall指定为primary group,并将dba指定为secondary group。
设置oracle
的密码:
|
|
配置内核参数
最小值(如果参数的当前值大于此表中列出的值,则不更改):
Parameter | Value | File |
---|---|---|
semmsl | 250 | /proc/sys/kernel/sem |
semmns | 32000 | |
semopm | 100 | |
semmni | 128 | |
shmall | 2097152 | /proc/sys/kernel/shmall |
shmmax | 最小: 536870912;最大: 比物理内存小1byte;推荐:大于等于物理内存一半 | /proc/sys/kernel/shmmax |
shmmni | 4096 | /proc/sys/kernel/shmmni |
file-max | 6815744 | /proc/sys/fs/file-max |
aio-max-nr | 1048576 注意:该值限制了并发的未完成请求,应设置为避免I/O子系统故障 | /proc/sys/fs/aio-max-nr |
ip_local_port_range | 最小:9000 最大:65500 | /proc/sys/net/ipv4/ip_local_port_range |
rmem_default | 262144 | /proc/sys/net/core/rmem_default |
rmem_max | 4194304 | /proc/sys/net/core/rmem_max |
wmem_default | 262144 | /proc/sys/net/core/wmem_default |
wmem_max | 1048576 | /proc/sys/net/core/wmem_max |
更改参数:
- 创建或编辑
/etc/sysctl.conf
文件,添加或编辑类似于以下行:
|
|
Note:
对于信号量参数(kernel.sem),必须指定所有四个值。如果任何当前值大于最小值,指定较大的值。
-
更改内核参数的当前值:
/sbin/sysctl -p
对比输出值以验证正确。如果值不正确,编辑
/etc/sysctl.conf
,并再次执行。 -
输入
/sbin/sysctl -a
确认设置正确 -
重启或
sysctl -p
资源限制需求
installation owner资源限制的建议范围
Resource Shell Limit | Resource | Soft Limit | Hard Limit |
---|---|---|---|
Open file descriptors | nofile | at least 1024 | at least 65536 |
Number of processes available to a single user | nproc | at least 2047 | at least 16384 |
Size of the stack, segment of the process | stack | at least 10240 KB | at least 10240 KB, and at most 32768 KB |
查看资源限制:
- 登录安装用户
oracle
- 检查file descriptor的软限制和硬限制,确保结果在建议范围内:
|
|
- 检查用户可用进程数的软限制和硬限制,确保结果在建议范围内:
|
|
- 检查stack的软限制,确保结果在建议范围内:
|
|
如有必要,为安装用户更新/etc/security/limits.conf
配置文件中的资源限制。
|
|
Note:
如果
grid
或oracle
用户已登录,则在注销并重新登录之后,limits.conf文件中的更改才会生效。
创建所需目录
创建类似于以下名字的目录,并为其指定正确的所有者,组和权限:
-
The Oracle base directory
-
An optional Oracle data file directory
The Oracle base directory必须具有3GB的可用磁盘空间,如果选择不创建单独的Oracle data file directory,则必须具有4GB的可用磁盘空间(不推荐)。
创建Oracle base directory:
- 查看所有挂载点
|
|
- 选择满足条件的挂载点
- 创建子目录,并为其设置适当的所有者,组和权限:
|
|
默认Oracle Inventory Directory:
ORACLE_BASE/../oraInventory
默认Oracle Home Directory:
ORACLE_BASE/product/11.1.0/dbhome_1
设置oracle用户的环境变量
编辑 .bash_profile,添加:
|
|
生效:source .bash_profile
Note:
如果设置了ORACLE_HOME环境变量,那么Oracle Universal Installer将使用它指定的值作为Oracle主目录的默认路径。如果存在ORACLE_BASE环境变量,则Oracle建议您取消设置ORACLE_HOME环境变量,并选择Oracle Universal Installer建议的默认路径。
查看环境变量:
|
|
静默安装
Note:
一份完整的响应文件包含数据库管理帐户和OSDBA组用户(自动备份必需)的密码。确保只有Oracle软件所有者用户才能查看或修改响应文件,或考虑在安装成功后删除它们。
-
切换oracle用户
-
如果要完成响应文件模式的安装,请设置
DISPLAY
环境变量。1
export DISPLAY=:0.0
-
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_1of2.zip
-
修改
db_install.rsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=localhost UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/home/oracle/app/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/home/oracle/app/product/11.2.0/dbhome_1 ORACLE_BASE=/home/oracle/app oracle.install.db.InstallEdition=EE oracle.install.db.isCustomInstall=true oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.characterSet=ZHS16GBK oracle.install.db.config.starterdb.memoryOption=true(自动内存管理) oracle.install.db.config.starterdb.memoryLimit=1800(根据实际内存设置) oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL=123456 oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false DECLINE_SECURITY_UPDATES=true
-
运行Oracle Universal Installer
1 2
/directory_path/runInstaller [-silent] [-noconfig] \ -responseFile responsefilename
-silent
静默安装-noconfig
禁止在安装过程中运行配置助手,而是执行仅软件安装。responsefilename
响应文件的绝对路径
例:
1
./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp
[WARING]可暂时忽略,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
安装需要一会儿,如果想看安装进度,可以再打开一个窗口,输出会话日志
1
tail -f 日志文件
-
要确定静默方式安装是成功还是失败,请参考以下日志文件:
/oraInventory_location/logs/silentInstalldate_time.log
-
安装失败后清理
卸载工具(deinstall)在安装介质中可用,安装后在Oracle主目录中可用。它位于
$ORACLE_HOME/deinstall
目录中。1
deinstall -home complete path of Oracle home [-silent] [-checkonly] [-local] [-paramfile complete path of input parameter property file] [-params name1=value name2=value . . .] [-o complete path of directory for saving files] [-tmpdir complete path of temporary directory to use] [-logdir complete path of log directory to use] [-help]
-
安装完成后如果有类似如下提示,说明安装完成
1 2 3 4 5 6 7 8 9 10 11
以下配置脚本需要以 "root" 用户的身份执行。 #!/bin/sh #要运行的 Root 脚本 /home/oracle/app/oraInventory/orainstRoo t.sh /home/oracle/app/oracle/product/11.2.0/db_1/root.sh 要执行配置脚本, 请执行以下操作: 1. 打开一个终端窗口 2. 以 "root" 身份登录 3. 运行脚本 4. 返回此窗口并按 "Enter" 键继续 Successfully Setup Software.
-
使用root用户执行脚本
1 2 3
sudo su sh /home/oracle/app/oraInventory/orainstRoot.sh sh /home/oracle/app/product/11.2.0/db_1/root.sh
troubleshooting
-
静默安装Oracle时报
No protocol specified...NoClassDefFoundError..
异常解决办法:
在root账户下执行
xhost +
-
静默安装Oracle时提示
[SEVERE] - Email Address Not Specified
解决办法:
修改responseFile文件,将DECLINE_SECURITY_UPDATES=的值设为true,如果为空,系统会假设该值为false。
-
日志文件中,调用 makefile ‘/home/oracle/app/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’ 的目标 ‘install’ 时出错
解决方法:
经检查,libstdc++3.3.3 已正确安装,也就是/usr/lib64/libstdc++.so.5.0.7 /usr/lib64/libstdc++.so.5两个文件,发现可能是这两个文件有问题,换成mandriva的 libstdc++5-3.3.6-4mdv2009.0.x86_64即可,也可以用redhat上的。
-
日志文件中,ins_emagent.mk 链接错误
解决方法:
修改
$ORACLE_HOME/sysman/lib/ins_emagent.mk
找到
$(MK_EMAGENT_NMECTL)
改成:
$(MK_EMAGENT_NMECTL) -lnnz11
配置监听程序
- 切换oracle用户
|
|
- 以静默模式运行Net Configuration Assistant
|
|
成功运行后,在$ORACLE_HOME/network/admin
目录下生成sqlnet.ora
和listener.ora
两个文件。
完成后通过命令netstat -tnpl | grep 1521
可以查看到1521端口已开
静默创建数据库
See Also:
“Oracle ASM Configuration Assistant Command-Line Interface” section in Oracle Automatic Storage Management Administrator’s Guide,提供了有关以非交互方式运行Oracle ASMCA的信息
- 编辑响应文件
response/dbca.rsp
|
|
- 执行静默建库
|
|
执行过程如下
|
|
查看进程
|
|
查看监听状态
|
|
登录数据库:
|
|
查看数据库版本
|
|
设置Oracle开机启动
修改$ORACLE_HOME/bin/dbstart
|
|
修改$ORACLE_HOME/bin/dbshut
|
|
修改/etc/oratab
格式如下:
$ORACLE_SID:$ORACLE_HOME:<N|Y>
例:
|
|
新建文件/etc/rc.d/init.d/oracle
|
|
更改权限:chmod +x /etc/init.d/oracle
开机启动oracle:chkconfig oracle on
停止oracle:service oracle stop
开启oracle:service oracle start
启动监听:lsnrctl status
启动数据库:SQL> statup
防火墙配置放开Oracle的端口
|
|