暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

Centos 7 静默安装Oracle 11.2.0.4 单机版安装指南

原创 尚雷 2023-05-24
2639

前言

日常开发、测试,及一些非核心生产环境,经常要安装Oracle数据库,目前很多还在采用Oracle 11g数据库软件。但采用图形安装,一是耗时,安装vnc,安装X软件等非常耗时,另外由于xmanger版权问题,很多公司也不方便使用,所以采用静默安装非常方便。本次整理一篇单机版静默安装指南,等有机会再详细整理一篇RAC静默安装文档。

一、环境准备

1.1 配置本地YUM源

因为该服务器无法连接外网,所以本次选择配置本地YUM源解决rpm包安装依赖问题。

上传Centos7镜像文件CentOS-7.9-x86_64-DVD-2009.iso至服务器/home/soft目录。

将iso镜像挂载至/mnt/ios目录

[root@192 soft]# mkdir /mnt/iso [root@192 soft]# mount -o loop /home/soft/CentOS-7.9-x86_64-DVD-2009.iso /mnt/iso [root@192 soft]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 313M 1.6G 17% /dev/shm tmpfs 1.9G 49M 1.8G 3% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 44G 7.4G 37G 17% / /dev/sda1 1014M 151M 864M 15% /boot /dev/mapper/centos-home 22G 9.5G 12G 45% /home tmpfs 375M 0 375M 0% /run/user/0 /dev/loop0 4.4G 4.4G 0 100% /mnt/iso # 修改yum配置文件 [root@192 ~]# cd /etc/yum.repos.d [root@192 yum.repos.d]# mkdir bak [root@192 yum.repos.d]# mv *.repo ./bak #新建local.repo文件 [root@192 yum.repos.d]# cat > /etc/yum.repos.d/local.repo <<EOF [base] name=CentOS baseurl=file:///mnt/iso enabled=1 gpgcheck=0 EOF # 查看生成的local.repo文件 [root@192 yum.repos.d]# cat local.repo [base] name=CentOS baseurl=file:///mnt/iso enabled=1 gpgcheck=0 #清除yum 原有信息并载入新缓存 [root@192 ~]# yum clean all [root@192 ~]# yum makecache

1.2 准备安装包

1.2.1 下载安装包

Oracle 11.2.0.4 x86_64系统安装包共7个zip文件,若只安装Oracle仅需前两个zip文件。

可从以下官网地址下载Oracle 11.2.0.4 x86_64位安装包。

Oracle 11.2.0.4 Linux x86-64 (American English)下载地址: https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip

1.2.2 上传安装包

将下载的Oracle 安装包上传至/home/soft目录,并解压。

[root@192 ~]# cd /home/soft [root@192 ~]# unzip p13390677_112040_Linux-x86-64_1of7.zip [root@192 ~]# unzip p13390677_112040_Linux-x86-64_2of7.zip [root@192 ~]# chmod -R 777 /home/soft

1.3 创建组和用户

# 创建安装Oracle数据库所需的用组和用户 [root@192 ~]# groupadd -g 600 oinstall [root@192 ~]# groupadd -g 601 dba [root@192 ~]# useradd -u 600 -g oinstall -G dba oracle # 设置Oracle用户密码 [root@192 ~]# passwd oracle

1.4 创建目录及设置权限

# 创建数据库对应目录,并修改目录权限 [root@192 ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1 [root@192 ~]# mkdir /u01/app/oracle/oradata [root@192 ~]# mkdir /u01/app/oracle/inventory [root@192 ~]# mkdir /u01/app/oracle/fast_recovery_area [root@192 ~]# chown -R oracle:oinstall /u01/app/oracle [root@192 ~]# chmod -R 775 /u01/app/oracle

1.5 编辑用户环境变量

# 切换至Oracle用户 [root@192 ~]# su - oracle # 编辑.bash_profile环境变量文件,添加如下内容 [oracle@192 ~]$ cat .bash_profile --内容如下 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' # export path export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 使环境变量生效 [oracle@192 ~]$ source .bash_profile

1.6 编辑资源限制

# 切换至root用户,编辑 /etc/security/limits.conf [root@192 ~]# cat >> /home/oracle/123 <<EOF oracle hard nproc 16384 oracle soft nofile 10240 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 * soft memlock 104857600 * hard memlock 104857600 EOF

1.7 修改内核参数

# 切换至root用户,编辑 /etc/sysctl.conf 文件 # 注意,修改shmall和shmmax建议参照如下设置 SHMALL参数:设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了SHMALL参数的设置。这个值推荐设置为物理内存大小除以分页大小。 # getconf PAGE_SIZE 对于32G、64G的内存,4K分页大小的系统而言,SHMALL的值应该设置为 select 32*1024*1024*1024/4096 from dual; == 8388608 select 64*1024*1024*1024/4096 from dual; == 16777216 SHMMAX参数:用于定义单个共享内存段的最大值。 64位linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。 内存为32G时,该值为 32*1024*1024*1024-1 = 34359738367 内存为64G时,该值为 64*1024*1024*1024-1 = 68719476735 内存为128G时,该值为 128*1024*1024*1024-1 = 137438953471 [root@192 ~]# cat >> /etc/sysctl.conf <<EOF fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 956825 kernel.shmmax = 3919157657 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 EOF # 生效内核参数 [root@192 ~]# sysctl -p

1.8 编辑/etc/pam.d/login文件

# 切换至root用户操作 [root@192 ~]# cat >> /etc/pam.d/login <<EOF session required /lib/security/pam_limits.so session required pam_limits.so EOF

1.9 安装依赖包

# root用户使用本地yum源安装如下依赖包 [root@192 ~]# yum install -y gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static libstdc++ libstdc++-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel glibc glibc-common glibc-devel

1.10 关闭防火墙

# root用户操作 [root@192 ~]# service iptables stop [root@192 ~]# systemctl stop firewalld [root@192 ~]# systemctl disable firewalld

1.11 关闭selinux

# root用户操作 [root@192 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config [root@192 ~]# cat /etc/selinux/config [root@192 ~]# setenforce 0

二、安装数据库软件

2.1 准备db_install.rsp响应文件

# 切换至Oracle用户操作 [root@192 ~]# su - oracle [oracle@192 ~]$ cp -R /home/soft/database/response/ . [oracle@192 ~]$ ll total 0 drwxr-xr-x. 2 oracle oinstall 61 May 23 22:04 response [oracle@192 ~]$ cd response/ # 编辑 db_install.rsp响应文件,主要修改以下内容 # 响应文件的格式版本,这里指定的版本为 "/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0" oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 # 安装选项,这里设置为 "INSTALL_DB_SWONLY",表示仅安装数据库软件,而不创建或配置数据库实例 oracle.install.option=INSTALL_DB_SWONLY # Oracle数据库所在的主机名 ORACLE_HOSTNAME=xxx-db # 用于安装和管理Oracle软件的Unix组名,这里设置为"oinstall" UNIX_GROUP_NAME=oinstall # Oracle Inventory(安装目录)的路径,这里设置为 "/u01/app/oraInventory"。 INVENTORY_LOCATION=/u01/app/oraInventory # 选择的语言,这里设置为 "en,zh_CN",表示英文和简体中文 SELECTED_LANGUAGES=en,zh_CN # Oracle软件的安装路径(数据库主目录) ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 # Oracle软件的基本路径 ORACLE_BASE=/u01/app/oracle # 安装的Oracle数据库版本。这里设置为 "EE",表示企业版 oracle.install.db.InstallEdition=EE # 是否选择了企业版选项,这里设置为"false",表示未选择任何企业版选项 oracle.install.db.EEOptionsSelection=false # 用于数据库管理员(DBA) 组的名称,这里设置为 "dba" oracle.install.db.DBA_GROUP=dba # 用于操作员组的名称,这里设置为 "dba",与DBA组相同 oracle.install.db.OPER_GROUP=dba # 是否拒绝安装安全更新,这里设置为 "true",表示拒绝安装安全更新 DECLINE_SECURITY_UPDATES=true # 自动更新选项,这里设置为 "SKIP_UPDATES",表示跳过自动更新 oracle.installer.autoupdates.option=SKIP_UPDATES

2.2 运行runInstaller进行安装

[oracle@192 response]$ cd /home/soft/database/ [oracle@192 database]$ ./runInstaller -silent -noconfig -ignorePrereq -responseFile /home/oracle/response/db_install.rsp # 以下是上述命令执行生成内容 Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 43276 MB Passed Checking swap space: must be greater than 150 MB. Actual 3967 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2023-05-23_10-51-54PM. Please wait ...[oracle@192 database]$ [oracle@192 database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base. CAUSE: The Central Inventory is located in the Oracle base. ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory. You can find the log of this install session at: /u01/app/oracle/inventory/logs/installActions2023-05-23_10-51-54PM.log The installation of Oracle Database 11g was successful. Please check '/u01/app/oracle/inventory/logs/silentInstall2023-05-23_10-51-54PM.log' for more details. As a root user, execute the following script(s): 1. /u01/app/oracle/inventory/orainstRoot.sh 2. /u01/app/oracle/product/11.2.0/db_1/root.sh # 此时会提示要使用root用户执行上述两个脚本 # 新打开一个会话,使用root用户执行 1) 首先执行/u01/app/oracle/inventory/orainstRoot.sh脚本 [root@192 db_1]# /u01/app/oracle/inventory/orainstRoot.sh # 生成内容如下 Changing permissions of /u01/app/oracle/inventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oracle/inventory to oinstall. The execution of the script is complete. 2)再次执行/u01/app/oracle/product/11.2.0/db_1/root.sh脚本 [root@192 db_1]# /u01/app/oracle/product/11.2.0/db_1/root.sh # 生成内容如下 Check /u01/app/oracle/product/11.2.0/db_1/install/root_192.168.20.16_2023-05-23_22-59-10.log for the output of root script # 以上两个脚本执行完毕后,返回前一个会话,按回车,结束安装,执行成功,结果如下。 Successfully Setup Software.

三、创建监听

3.1 使用netca.rsp响应文件创建监听

# 使用Oracle用户执行 [oracle@192 ~]$ netca /silent -responsefile /home/oracle/response/netca.rsp # 上述命令执行后,生成内容如下 Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /home/oracle/response/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Running Listener Control: /u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0 # 曾在一个测试环境执行时遇到如下报错 Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /home/oracle/response/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: ProfileException: Could not save Profile: TNS-04415: File i/o error caused by: java.io.FileNotFoundException: /usr/lib/oracle/19.16/client64/lib/network/admin/sqlnet.ora (Permission denied) Profile configuration complete. ListenerException: Could not save listener: TNS-04415: File i/o error caused by: java.io.FileNotFoundException: /usr/lib/oracle/19.16/client64/lib/network/admin/listener.ora (Permission denied) Oracle Net Listener Startup: Running Listener Control: /u01/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. # 对于上述报错,将/usr/lib/下oracle目录进行了修改,修改为777,再执行命令就未再报错

四、创建数据库

4.1 准备dbca.rsp响应文件

# 使用Oracle用户执行,编辑dbca.rsp响应文件,主要修改如下内容 # 全局数据库名 GDBNAME = "orcl" # 数据库实例名 SID = "orcl" # SYS用户的密码 SYSPASSWORD = "oracle" # SYSTEM用户的密码 SYSTEMPASSWORD = "oracle" # SYSMAN用户(用于Enterprise Manager)的密码 SYSMANPASSWORD = "oracle" # DBSNMP用户(用于SNMP管理)的密码 DBSNMPPASSWORD = "oracle" # 数据文件存储路径 DATAFILEDESTINATION =/u01/app/oracle/oradata # 恢复区域存储路径 RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area # 数据库字符集 CHARACTERSET = "ZHS16GBK" # 数据库实例使用的总内存大小(以MB为单位) TOTALMEMORY = "3276"

4.2 创建数据库

# 使用Oracle用户,执行如下命令 [oracle@192 ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp # 上述命令执行后生成内容如下 Copying database files 1% complete 3% complete 11% complete 18% complete 26% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 60% complete 62% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details

4.3 查看监听状态

[oracle@192 ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-MAY-2023 02:18:01 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 23-MAY-2023 23:50:11 Uptime 0 days 2 hr. 27 min. 51 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/192/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.xxx.xxx)(PORT=1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully

4.4 查看实例状态

[oracle@192 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 02:19:04 2023 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select status from v$instance; STATUS ------------ OPEN

4.5 修改local_listener

[oracle@192 ~]$ sqlplus / as sysdba SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.xxx.xxx)(PORT=1521))'; SQL> alter system register;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论