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
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进行安装。
# 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
4. 内核参数配置
内核参数对Oracle数据库的性能和稳定性至关重要,需要根据服务器硬件配置进行调整。学习交流加群风哥QQ113257174
# 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
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
# 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
6. NUMA配置
NUMA(Non-Uniform Memory Access)架构对Oracle数据库性能有重要影响,需要正确配置。
# 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
# 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
7. TMPFS配置
TMPFS(临时文件系统)用于存储临时文件,对Oracle数据库的性能有一定影响。
# 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)
# 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
8. 用户和组配置
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目录结构。
# 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
10. 环境变量配置
配置Oracle用户的环境变量,包括ORACLE_HOME、PATH等。
# 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
11. 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脚本
# /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
# 创建数据库的关键步骤:
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…
$ 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…
15. 生产环境建议
以下是Oracle 11gR2单机安装的生产环境建议。
– SGA大小建议设置为物理内存的40%-60%
– PGA大小建议设置为物理内存的10%-20%
– 使用大内存页(HugePages)提高性能
– 配置适当的SGA_TARGET和PGA_AGGREGATE_TARGET
– 数据文件、控制文件、重做日志文件分开存储
– 使用ASM或文件系统存储
– 配置足够的快速恢复区空间
– 定期备份归档日志
– 配置监听器使用专用端口
– 使用TNS别名简化连接
– 配置连接池提高性能
– 开启SQL*Net加密提高安全性
– 定期修改数据库密码
– 限制SYSDBA权限
– 开启审计功能
– 定期应用安全补丁
– 定期收集统计信息
– 定期重建索引
– 定期清理归档日志
– 定期检查表空间使用情况
– 定期进行数据库备份
– 配置Enterprise Manager进行监控
– 设置告警阈值
– 监控数据库性能指标
– 定期检查AWR报告
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
