Oracle安装-Oracle26ai单机ASM安装配置 FOR RHEL/OEL9 Linux详细过程
1. 硬件环境要求
在安装Oracle 26ai ASM之前,必须对服务器的硬件环境进行全面检查,确保满足最低要求。更多学习教程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
/dev/sdc1 200G 0 200G 0% /asm
# 检查CPU核心数
# nproc
32
# 检查系统架构
# uname -m
x86_64
2. 操作系统准备
Oracle 26ai支持Oracle Linux 9.2、Red Hat Enterprise Linux 9.2等操作系统。本文以Oracle Linux 9.2为例。学习交流加群风哥微信: itpux-com
# cat /etc/oracle-release
Oracle Linux Server release 9.2
# 检查内核版本
# uname -r
5.14.0-284.11.1.el9_2.x86_64
# 检查SELinux状态
# getenforce
Disabled
# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled
# 检查防火墙状态
# systemctl status firewalld
# 关闭防火墙(生产环境建议开放特定端口而非完全关闭)
# systemctl stop firewalld
# systemctl disable firewalld
3. 依赖包安装
Oracle 26ai需要安装一系列依赖包,使用dnf进行安装。
# dnf install -y oracle-database-preinstall-26ai
# 如果无法使用预安装包,手动安装依赖
# dnf 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
# 安装额外依赖包
# dnf install -y smartmontools xclock xauth
# 安装ASM相关包
# dnf install -y oracleasm-support
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
oracle soft memlock 3145728
oracle hard memlock 3145728
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
# groupadd -g 54324 asmadmin
# groupadd -g 54325 asmdba
# groupadd -g 54326 asmoper
# 创建Oracle用户
# useradd -u 54321 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper 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),54324(asmadmin),54325(asmdba),54326(asmoper)
# 配置用户资源限制
# 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
oracle soft memlock 3145728
oracle hard memlock 3145728
9. 目录结构配置
按照OFA(Optimal Flexible Architecture)标准创建Oracle目录结构。
# mkdir -p /oracle/app/oracle
# mkdir -p /oracle/app/oraInventory
# mkdir -p /oracle/app/oracle/product/26ai/db_1
# mkdir -p /oracle/app/oracle/product/26ai/grid_1
# mkdir -p /oracle/app/oracle/oradata
# mkdir -p /oracle/app/oracle/fast_recovery_area
# mkdir -p /oracle/app/oracle/admin/fgedudb
# mkdir -p /asm
# mkdir -p /backup
# 设置目录权限
# chown -R oracle:oinstall /oracle
# chown -R oracle:oinstall /oracle/app/oraInventory
# chown -R oracle:asmadmin /asm
# 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/26ai/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/26ai/db_1
$ echo $ORACLE_SID
fgedudb
$ env | grep ORACLE
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=/oracle/app/oracle/product/26ai/db_1
ORACLE_SID=fgedudb
11. ASM配置
配置Oracle ASM,用于存储数据库文件。
# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x12345678.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-419430399, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-419430399, default 419430399):
Created a new partition 1 of type ‘Linux’ and of size 200 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
# 创建ASM磁盘
# oracleasm createdisk DATA01 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# 查看ASM磁盘
# oracleasm listdisks
DATA01
12. Oracle 26ai安装
在完成所有准备工作后,开始安装Oracle 26ai数据库软件。
$ cd /backup
$ unzip -q LINUX.X64_26AI_db_home.zip -d /oracle/app/oracle/product/26ai/db_1
# 执行图形化安装
$ cd /oracle/app/oracle/product/26ai/db_1
$ ./runInstaller
# 安装过程中的关键步骤:
1. 选择”Install database software only”
2. 选择”Single instance database installation”
3. 选择企业版
4. 设置Oracle基目录:/oracle/app/oracle
5. 设置软件位置:/oracle/app/oracle/product/26ai/db_1
6. 选择”Use Oracle Automatic Storage Management”
7. 选择ASM磁盘组:DATA
8. 设置ASM密码
9. 检查先决条件,点击”下一步”
10. 点击”完成”开始安装
11. 安装完成后,运行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/26ai/db_1/root.sh
Check /oracle/app/oracle/product/26ai/db_1/install/root_fgedudb01_202403291000.log for the output of root script
13. 数据库创建
安装完成后,使用DBCA工具创建数据库。
$ dbca
# 创建数据库的关键步骤:
1. 选择”创建数据库”
2. 选择”高级配置”
3. 数据库标识符:
– 全局数据库名:fgedudb
– 系统标识符(SID):fgedudb
4. 选择”使用Oracle Automatic Storage Management”
5. 选择ASM磁盘组:DATA
6. 配置管理选项:选择”使用Enterprise Manager”
7. 设置数据库密码
8. 选择”文件系统”
9. 指定数据库文件位置:+DATA
10. 指定快速恢复区:+DATA/FRA
11. 不启用自动维护任务
12. 配置内存参数:
– SGA:40GB
– PGA:8GB
13. 配置字符集:AL32UTF8
14. 配置示例方案
15. 点击”完成”开始创建
14. 安装后配置
安装完成后,需要进行一些必要的配置,包括开启归档、配置监听器等。
$ 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=+DATA/FRA’ 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 +DATA/FRA
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 26.0.0.0.0 – Production on 29-MAR-2024 10:00:00
Copyright (c) 1991, 2024, 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 26.0.0.0.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/26ai/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 26.0.0.0.0 – Production on Fri Mar 29 10:00:00 2024
Version 26.0.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 26ai Enterprise Edition Release 26.0.0.0.0 – Production
Version 26.0.0.0.0
SQL>
15. 安装验证
验证Oracle 26ai数据库是否安装成功。
SQL> SELECT * FROM v$version;
BANNER
——————————————————————————–
Oracle Database 26ai Enterprise Edition Release 26.0.0.0.0 – Production
Version 26.0.0.0.0
PL/SQL Release 26.0.0.0.0 – Production
CORE 26.0.0.0 Production
TNS for Linux: Version 26.0.0.0.0 – Production
NLSRTL Version 26.0.0.0.0 – Production
— 检查数据库状态
SQL> SELECT status FROM v$instance;
STATUS
————
OPEN
— 检查数据文件状态
SQL> SELECT name, status FROM v$datafile;
NAME STATUS
————————————————– ——–
+DATA/fgedudb/system01.dbf SYSTEM
+DATA/fgedudb/sysaux01.dbf ONLINE
+DATA/fgedudb/undotbs01.dbf ONLINE
+DATA/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, total_mb, free_mb FROM v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
———- ———- ———-
DATA 204800 102400
— 检查ASM磁盘
SQL> SELECT name, path, total_mb FROM v$asm_disk;
NAME PATH TOTAL_MB
——– ————- ———-
DATA01 ORCL:DATA01 204800
— 检查归档日志
SQL> SELECT name, sequence#, first_change# FROM v$archived_log ORDER BY sequence#;
NAME SEQUENCE# FIRST_CHANGE#
—————————————— ———- ————–
+DATA/FRA/fgedudb_1_1_123456789.arc 1 123456789
+DATA/FRA/fgedudb_1_2_123456789.arc 2 123456790
16. 生产环境建议
以下是Oracle 26ai单机ASM安装的生产环境建议。
– SGA大小建议设置为物理内存的40%-60%
– PGA大小建议设置为物理内存的10%-20%
– 使用大内存页(HugePages)提高性能
– 配置适当的SGA_TARGET和PGA_AGGREGATE_TARGET
– 使用独立的物理磁盘或SAN存储
– 配置多个ASM磁盘组
– 使用ASM镜像提高可用性
– 定期检查ASM磁盘状态
– 配置监听器使用专用端口
– 使用TNS别名简化连接
– 配置连接池提高性能
– 开启SQL*Net加密提高安全性
– 定期修改数据库密码
– 限制SYSDBA权限
– 开启审计功能
– 定期应用安全补丁
– 定期收集统计信息
– 定期重建索引
– 定期清理归档日志
– 定期检查表空间使用情况
– 定期进行数据库备份
– 配置Enterprise Manager进行监控
– 设置告警阈值
– 监控数据库性能指标
– 定期检查AWR报告
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
