1. 首页 > 软件安装教程 > 正文

Oracle安装-Oracle11gR2单机安装配置 FOR RHEL/OEL7 Linux详细过程

1. 硬件环境要求

在安装Oracle 11gR2之前,必须对服务器的硬件环境进行全面检查,确保满足最低要求。更多学习教程www.fgedu.net.cn

# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 62G 2.1G 58G 8.5M 1.8G 59G
Swap: 32G 0B 32G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 8.5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 500G 20G 480G 4% /oracle

# 检查CPU核心数
# nproc
32

# 检查系统架构
# uname -m
x86_64

生产环境建议:最小内存8GB(测试环境),生产环境建议32GB以上。SWAP分区:内存8-16GB时,SWAP等于内存大小;内存16-64GB时,SWAP为16GB;内存64GB以上时,SWAP为32GB。临时文件系统/dev/shm至少为4GB。

2. 操作系统准备

Oracle 11gR2支持Oracle Linux 7.9、Red Hat Enterprise Linux 7.9等操作系统。本文以Oracle Linux 7.9为例。学习交流加群风哥微信: itpux-com

# 检查操作系统版本
# cat /etc/oracle-release
Oracle Linux Server release 7.9

# 检查内核版本
# uname -r
5.4.17-2136.302.7.2.el7uek.x86_64

# 检查SELinux状态
# getenforce
Disabled

# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled

# 检查防火墙状态
# systemctl status firewalld

# 关闭防火墙(生产环境建议开放特定端口而非完全关闭)
# systemctl stop firewalld
# systemctl disable firewalld

3. 依赖包安装

Oracle 11gR2需要安装一系列依赖包,使用yum进行安装。

# 安装Oracle预安装包(推荐方式)
# yum install -y oracle-rdbms-server-11gR2-preinstall

# 如果无法使用预安装包,手动安装依赖
# yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio
libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat

# 安装额外依赖包
# yum install -y smartmontools xclock xauth

风哥提示:使用oracle-rdbms-server-11gR2-preinstall包可以自动完成大部分系统配置,包括用户创建、内核参数设置等,是生产环境推荐的方式。

4. 内核参数配置

内核参数对Oracle数据库的性能和稳定性至关重要,需要根据服务器硬件配置进行调整。学习交流加群风哥QQ113257174

# 编辑sysctl.conf文件
# vi /etc/sysctl.conf

# 添加以下内核参数
fs.file-max = 6815744
kernel.shmmax = 34359738368
kernel.shmall = 8388608
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
vm.swappiness = 10
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

# 使内核参数生效
# sysctl -p

# 验证参数设置
# sysctl -a | grep kernel.sem
kernel.sem = 250 32000 100 128

# sysctl -a | grep fs.file-max
fs.file-max = 6815744

# 配置用户资源限制
# vi /etc/security/limits.conf

# 添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

生产环境内核参数说明:kernel.shmmax设置为物理内存的一半或更大,用于单个共享内存段的最大大小;kernel.shmall设置为物理内存除以页面大小(通常为4096);kernel.sem依次为SEMMSL、SEMMNS、SEMOPM、SEMMNI;net.ipv4.ip_local_port_range设置可用端口范围,避免与Oracle端口冲突;vm.swappiness设置为10,减少使用swap。

5. 大内存页配置

大内存页(HugePages)可以减少页表项数量,提高内存访问效率,对Oracle数据库性能有显著提升。

# 检查当前大内存页配置
# grep Huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB

# 检查透明大内存页状态
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

# 禁用透明大内存页
# vi /etc/default/grub

# 在GRUB_CMDLINE_LINUX中添加:transparent_hugepage=never
GRUB_CMDLINE_LINUX=”crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap transparent_hugepage=never”

# 重新生成grub配置
# grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启系统使配置生效
# reboot

# 配置大内存页数量(假设SGA为40GB,每个大页2MB)
# vi /etc/sysctl.conf

# 添加大内存页配置
vm.nr_hugepages = 20480
vm.hugetlb_shm_group = 54321

# 使配置生效
# sysctl -p

# 验证大内存页配置
# grep HugePages /proc/meminfo
HugePages_Total: 20480
HugePages_Free: 20480
HugePages_Rsvd: 0
HugePages_Surp: 0

生产环境建议:SGA为40GB,需要配置约20480个大页(每个大页2MB)。对于使用大内存页的系统,需要专门规划大内存页大小。更多学习教程公众号风哥教程itpux_com

6. NUMA配置

NUMA(Non-Uniform Memory Access)架构对Oracle数据库性能有重要影响,需要正确配置。

# 检查NUMA状态
# numactl –hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23
node 0 size: 32768 MB
node 0 free: 31024 MB
node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
node 1 size: 32768 MB
node 1 free: 32156 MB
node distances:
node 0 1
0: 10 21
1: 21 10

# 检查当前NUMA策略
# numactl –show
policy: default
preferred node: current

# 禁用NUMA(推荐在BIOS中禁用,或在GRUB中添加参数)
# vi /etc/default/grub

# 在GRUB_CMDLINE_LINUX中添加:numa=off
GRUB_CMDLINE_LINUX=”crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap transparent_hugepage=never
numa=off”

# 重新生成grub配置
# grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启系统
# reboot

# 验证NUMA已禁用
# dmesg | grep -i numa
No NUMA configuration found

风哥提示:对于Oracle数据库,建议禁用NUMA以避免内存访问的不一致性,特别是在多路服务器上。

7. TMPFS配置

TMPFS(临时文件系统)用于存储临时文件,对Oracle数据库的性能有一定影响。

# 检查当前TMPFS配置
# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 32G 0 32G 0% /dev/shm

# 检查当前挂载选项
# mount | grep tmpfs
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)

# 配置TMPFS大小(建议设置为物理内存的50%-75%)
# vi /etc/fstab

# 修改tmpfs行
tmpfs /dev/shm tmpfs defaults,size=48g 0 0

# 重新挂载TMPFS
# mount -o remount /dev/shm

# 验证配置
# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 48G 0 48G 0% /dev/shm

生产环境建议:TMPFS大小建议设置为物理内存的50%-75%,用于存储Oracle的临时文件和共享内存段。

8. 用户和组配置

Oracle数据库需要特定的用户和组来运行,需要提前创建并配置。

# 创建Oracle用户组
# groupadd -g 54321 oinstall
# groupadd -g 54322 dba
# groupadd -g 54323 oper

# 创建Oracle用户
# useradd -u 54321 -g oinstall -G dba,oper oracle

# 设置Oracle用户密码
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

# 验证用户和组
# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper)

# 配置用户资源限制
# vi /etc/security/limits.conf

# 添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

9. 目录结构配置

按照OFA(Optimal Flexible Architecture)标准创建Oracle目录结构。

# 创建Oracle基础目录
# mkdir -p /oracle/app/oracle
# mkdir -p /oracle/app/oraInventory
# mkdir -p /oracle/app/oracle/product/11.2.0/db_1
# mkdir -p /oracle/app/oracle/oradata
# mkdir -p /oracle/app/oracle/fast_recovery_area
# mkdir -p /oracle/app/oracle/admin/fgedudb
# mkdir -p /backup

# 设置目录权限
# chown -R oracle:oinstall /oracle
# chown -R oracle:oinstall /oracle/app/oraInventory
# chmod -R 775 /oracle
# chmod -R 755 /backup

# 验证目录结构
# ls -la /oracle/app/oracle/
total 28
drwxr-xr-x 7 oracle oinstall 4096 Mar 29 10:00 .
drwxr-xr-x 3 oracle oinstall 4096 Mar 29 10:00 ..
drwxr-xr-x 3 oracle oinstall 4096 Mar 29 10:00 admin
drwxr-xr-x 3 oracle oinstall 4096 Mar 29 10:00 fast_recovery_area
drwxr-xr-x 3 oracle oinstall 4096 Mar 29 10:00 oradata
drwxr-xr-x 3 oracle oinstall 4096 Mar 29 10:00 product

风哥提示:OFA目录结构有助于数据库的管理和维护,建议严格按照标准创建。

10. 环境变量配置

配置Oracle用户的环境变量,包括ORACLE_HOME、PATH等。

# 切换到oracle用户
# su – oracle

# 编辑.bash_profile
$ vi ~/.bash_profile

# 添加以下环境变量
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=fgedudb
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”
export TMP=/tmp
export TMPDIR=/tmp
export DISPLAY=:0.0

# 使环境变量生效
$ source ~/.bash_profile

# 验证环境变量
$ echo $ORACLE_HOME
/oracle/app/oracle/product/11.2.0/db_1

$ echo $ORACLE_SID
fgedudb

$ env | grep ORACLE
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
ORACLE_SID=fgedudb

生产环境建议:环境变量配置完成后,建议重新登录验证所有变量是否正确设置。NLS_LANG设置为AL32UTF8以支持中文,NLS_DATE_FORMAT设置为标准日期格式便于日志分析。

11. Oracle 11gR2安装

在完成所有准备工作后,开始安装Oracle 11gR2数据库软件。

# 解压Oracle 11gR2安装介质
$ cd /backup
$ unzip -q p13390677_112040_Linux-x86-64_1of7.zip
$ unzip -q p13390677_112040_Linux-x86-64_2of7.zip

# 执行图形化安装
$ cd database
$ ./runInstaller

# 安装过程中的关键步骤:
1. 取消勾选”我希望通过My Oracle Support接收安全更新”
2. 选择”创建和配置数据库”
3. 选择”服务器类”
4. 选择”单实例数据库安装”
5. 选择”企业版”
6. 设置Oracle基目录:/oracle/app/oracle
7. 设置软件位置:/oracle/app/oracle/product/11.2.0/db_1
8. 选择”通用用途或事务处理”
9. 数据库标识符:
– 全局数据库名:fgedudb
– 系统标识符(SID):fgedudb
10. 配置管理选项:选择”使用Database Control管理数据库”
11. 设置数据库密码:为所有账户设置统一密码
12. 选择”文件系统”
13. 指定数据库文件位置:/oracle/app/oracle/oradata
14. 指定快速恢复区:/oracle/app/oracle/fast_recovery_area
15. 不启用自动维护任务
16. 检查先决条件,点击”下一步”
17. 点击”完成”开始安装
18. 安装完成后,运行root脚本

# 以root用户运行配置脚本
# /oracle/app/oraInventory/orainstRoot.sh
Changing permissions of /oracle/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /oracle/app/oraInventory to oinstall.
The execution of the script is complete.

# /oracle/app/oracle/product/11.2.0/db_1/root.sh
Check /oracle/app/oracle/product/11.2.0/db_1/install/root_fgedudb01_202403291000.log for the output of root
script

12. 数据库创建

安装完成后,数据库已经自动创建。如果需要创建额外的数据库,可以使用DBCA工具。

# 使用DBCA创建数据库
$ dbca

# 创建数据库的关键步骤:
1. 选择”创建数据库”
2. 选择”通用用途或事务处理”
3. 数据库标识符:
– 全局数据库名:fgedudb
– 系统标识符(SID):fgedudb
4. 配置管理选项:选择”使用Enterprise Manager”
5. 设置数据库密码
6. 选择”文件系统”
7. 指定数据库文件位置:/oracle/app/oracle/oradata
8. 指定快速恢复区:/oracle/app/oracle/fast_recovery_area
9. 不启用自动维护任务
10. 配置内存参数:
– SGA:40GB
– PGA:8GB
11. 配置字符集:AL32UTF8
12. 配置示例方案
13. 点击”完成”开始创建

13. 安装后配置

安装完成后,需要进行一些必要的配置,包括开启归档、配置监听器等。

— 启动数据库
$ sqlplus / as sysdba

SQL> STARTUP

— 开启归档模式
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

— 配置归档日志位置
SQL> ALTER SYSTEM SET log_archive_dest_1=’LOCATION=/oracle/app/oracle/fast_recovery_area/fgedudb/archivelog’
SCOPE=SPFILE;

— 配置强制归档
SQL> ALTER SYSTEM SET log_archive_format=’fgedudb_%t_%s_%r.arc’ SCOPE=SPFILE;

— 检查归档模式
SQL> ARCHIVE LOG LIST
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oracle/app/oracle/fast_recovery_area/fgedudb/archivelog
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2

— 配置监听器
$ netca

— 配置监听器的关键步骤:
1. 选择”监听程序配置”
2. 选择”添加”
3. 输入监听程序名称:LISTENER
4. 选择协议:TCP
5. 输入端口号:1521
6. 选择”不”
7. 点击”完成”

— 启动监听器
$ lsnrctl start

— 检查监听器状态
$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 29-MAR-2024 10:00:00

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=fgedudb01)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 – Production
Start Date 29-MAR-2024 10:00:00
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /oracle/app/oracle/diag/tnslsnr/fgedudb01/listener/alert/log.xml

Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fgedudb01)(PORT=1521)))

Services Summary…
Service “fgedudb” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…
Service “fgedudbXDB” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…

— 配置TNS
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

FGEDUDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fgedudb01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgedudb)
)
)

— 测试连接
$ sqlplus system/Oracle123@fgedudb

SQL*Plus: Release 11.2.0.4.0 Production on Fri Mar 29 10:00:00 2024
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>

14. 安装验证

验证Oracle 11gR2数据库是否安装成功。

— 检查数据库版本
SQL> SELECT * FROM v$version;

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
PL/SQL Release 11.2.0.4.0 – Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 – Production
NLSRTL Version 11.2.0.4.0 – Production

— 检查数据库状态
SQL> SELECT status FROM v$instance;
STATUS
————
OPEN

— 检查数据文件状态
SQL> SELECT file_name, status FROM dba_data_files;

FILE_NAME STATUS
————————————————– ——–
/oracle/app/oracle/oradata/fgedudb/system01.dbf SYSTEM
/oracle/app/oracle/oradata/fgedudb/sysaux01.dbf ONLINE
/oracle/app/oracle/oradata/fgedudb/undotbs01.dbf ONLINE
/oracle/app/oracle/oradata/fgedudb/users01.dbf ONLINE

— 检查表空间状态
SQL> SELECT tablespace_name, status FROM dba_tablespaces;

TABLESPACE_NAME STATUS
—————————— ——–
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE

— 检查归档日志
SQL> SELECT name, sequence#, first_change# FROM v$archived_log ORDER BY sequence#;

NAME SEQUENCE# FIRST_CHANGE#
—————————————————————– ———- ————–
/oracle/app/oracle/fast_recovery_area/fgedudb/archivelog/fgedudb_1_1_ 1 1234567
/oracle/app/oracle/fast_recovery_area/fgedudb/archivelog/fgedudb_1_2_ 2 1234568

— 检查监听器
$ lsnrctl status | grep -i “service”
Services Summary…
Service “fgedudb” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…
Service “fgedudbXDB” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…

生产环境建议:安装后建议进行全面的测试,包括功能测试、性能测试、安全测试等,确保数据库能够正常运行。from:www.itpux.com

15. 生产环境建议

以下是Oracle 11gR2单机安装的生产环境建议。

1. 内存配置:
– SGA大小建议设置为物理内存的40%-60%
– PGA大小建议设置为物理内存的10%-20%
– 使用大内存页(HugePages)提高性能
– 配置适当的SGA_TARGET和PGA_AGGREGATE_TARGET

2. 存储配置:
– 数据文件、控制文件、重做日志文件分开存储
– 使用ASM或文件系统存储
– 配置足够的快速恢复区空间
– 定期备份归档日志

3. 网络配置:
– 配置监听器使用专用端口
– 使用TNS别名简化连接
– 配置连接池提高性能
– 开启SQL*Net加密提高安全性

4. 安全配置:
– 定期修改数据库密码
– 限制SYSDBA权限
– 开启审计功能
– 定期应用安全补丁

5. 维护计划:
– 定期收集统计信息
– 定期重建索引
– 定期清理归档日志
– 定期检查表空间使用情况
– 定期进行数据库备份

6. 监控配置:
– 配置Enterprise Manager进行监控
– 设置告警阈值
– 监控数据库性能指标
– 定期检查AWR报告

风哥提示:Oracle 11gR2是一个成熟稳定的数据库版本,适合生产环境使用。建议定期应用补丁,保持数据库的安全性和稳定性。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息