Oracle 19c on ARM64 (aarch64) 安装详解
Oracle 19c on ARM64 (aarch64) 安装详解
适用版本:Oracle Database 19c (19.19+) for LINUX ARM (aarch64) 适用场景:鲲鹏 / 飞腾 / Ampere 等 ARM 架构服务器 文档版本:v1.0 / 2026-07
目录
- 1. 概述:ARM 架构与 Oracle 的支持现状
- 2. ARM 平台前置准备
- 3. 获取 ARM64 版本安装介质
- 4. 安装 preinstall 包
- 5. 设置编译工具符号链接
- 6. 配置 CV_ASSUME_DISTID
- 7. 解压并启动安装
- 8. dbca 无法建库的解决:手工建库
- 9. 配置监听器
- 10. 安装后验证
- 11. ARM 平台性能优化建议
- 12. 常见坑与排错
- 13. 最佳实践
- 14. 参考资料
1. 概述:ARM 架构与 Oracle 的支持现状
随着国产化和绿色计算推进,基于 ARM 架构的服务器(鲲鹏 920、飞腾 2000+、Ampere Altra 等)逐渐成为数据库部署的可选平台。
Oracle 官方对 ARM 的支持现状[1][2]:
| 版本 | ARM 支持情况 |
|---|---|
| Oracle 19c 19.3 基础版 | ❌ 不支持 ARM |
| Oracle 19c 19.19+(RU) | ✅ 正式支持 aarch64 |
| Oracle 21c | ✅ 支持 |
| Oracle 23ai | ✅ 支持 |
关键事实:
- Oracle 官方在 19.19 RU 开始提供 ARM64 版本的安装介质[1][2]
- ARM64 版本目前仅支持 Oracle Linux 8 (aarch64)
- 在麒麟 V10、openEuler 等 ARM Linux 上也可安装,但需要额外处理
ARM 平台特点[3]:
| 特性 | x86 | ARM (aarch64) |
|---|---|---|
| 指令集 | CISC | RISC |
| 核数 | 通常 ≤ 64 核 | 可达 128+ 核(鲲鹏 920) |
| 内存带宽 | 中等 | 高(多通道 DDR4) |
| 功耗 | 高 | 低 |
| NUMA 特性 | 强 | 强(鲲鹏多 chip) |
| Oracle 优化 | 充分 | 较新,部分场景需调优 |
适用场景:
- 国产化替代项目(金融、政务、电信)
- 高核心数、低功耗需求
- ARM 服务器已有投入想充分利用
不适用场景:
- 老旧 x86 应用迁移成本高
- 依赖 x86 专有指令集的扩展
- 需要使用 Oracle 老版本(< 19.19)
2. ARM 平台前置准备
2.1 硬件与操作系统要求
| 资源 | 最低 | 推荐 |
|---|---|---|
| CPU | 鲲鹏 920 / 飞腾 2000+ / Ampere Altra | 鲲鹏 920 |
| 核数 | 4 核 | 16 核+ |
| 内存 | 4 GB | 16 GB+ |
| 磁盘 | 20 GB | 100 GB+ |
| 操作系统 | Oracle Linux 8 (aarch64) | OL 8.6+ (aarch64) |
| 内核 | 4.18+ | 5.4+(UEK) |
支持的 ARM 操作系统:
- Oracle Linux 8 (aarch64)(官方推荐)
- 麒麟 V10 SP3 (aarch64)
- openEuler 22.03 LTS (aarch64)
- 统信 UOS(部分版本)
查看硬件信息:
# 查看 CPU 架构
uname -m
# aarch64
# 查看 CPU 型号
cat /proc/cpuinfo | grep "model name" | head -1
# model name : Kunpeng 920
# 查看核数
lscpu
# Architecture: aarch64
# CPU(s): 64
# Model name: Kunpeng-920
# 查看内存
free -h
# 查看 NUMA
numactl --hardware
2.2 ARM 平台特殊考虑
2.2.1 NUMA 配置
鲲鹏 920 多 chip 服务器有强 NUMA 特性,需要正确配置:
# 查看 NUMA 节点
numactl --hardware
# available: 4 nodes (0-3)
# node 0 cpus: 0 1 2 ... 31
# node 1 cpus: 32 33 ... 63
# ...
# 启动 Oracle 时绑定 NUMA(推荐)
numactl --interleave=all $ORACLE_HOME/bin/oracle
Oracle 参数:
-- 启用 NUMA 优化
ALTER SYSTEM SET "_enable_NUMA_optimization" = TRUE SCOPE=SPFILE;
ALTER SYSTEM SET "_numa_memory_pool" = TRUE SCOPE=SPFILE;
2.2.2 大页配置
ARM 平台大页大小通常为 512MB(x86 是 2MB):
# 查看大页信息
cat /proc/meminfo | grep -i huge
# AnonHugePages: 0 kB
# ShmemHugePages: 0 kB
# HugePages_Total: 0
# HugePages_Free: 0
# HugePages_Rsvd: 0
# HugePages_Surp: 0
# Hugepagesize: 524288 kB -- 512MB
# 计算需要的大页数
# 假设 SGA=16GB,大页=512MB
# 需要大页数 = 16*1024/512 = 32 个
# 配置大页
echo "vm.nr_hugepages = 32" >> /etc/sysctl.conf
sysctl -p
****** 验证
cat /proc/meminfo | grep HugePages_Total
# HugePages_Total: 32
2.2.3 关闭透明大页
# 查看状态
cat /sys/kernel/mm/transparent_hugepage/enabled
# [always] madvise never -- 启用,需关闭
# 临时关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 永久关闭
cat >> /etc/rc.local <<'EOF'
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
EOF
chmod +x /etc/rc.local
3. 获取 ARM64 版本安装介质
从 Oracle 官网下载 ARM64 版本[1]:
下载地址:
https://www.oracle.com/database/technologies/oracle19c-linux-arm64-downloads.html
关键文件:
| 文件 | 大小 | SHA256 |
|---|---|---|
LINUX.ARM64_1919000_db_home.zip | 2,415,583,176 字节 | 44e9fa1b5ca84781bb496fe200b9bd648438819f053b4227b74e5622d959f125 |
LINUX.ARM64_1919000_grid_home.zip | 1,777,256,239 字节 | 9e91b68ec93620404bd30194865ad7a4e5b2bea4a06c1d34c7ca6d2369226159 |
SHA256 校验:
sha256sum LINUX.ARM64_1919000_db_home.zip
# 44e9fa1b5ca84781bb496fe200b9bd648438819f053b4227b74e5622d959f125
坑 1:必须用 ARM64 版本的安装包,不能用 x86 版本(LINUX.X64_*)。
4. 安装 preinstall 包
坑 2:ARM64 版本的 preinstall 包与 x86 不同[3]。
Oracle Linux 8 (aarch64):
# 从 Oracle yum 源
dnf install -y oracle-database-preinstall-19c
麒麟 V10 / openEuler(手动下载):
# 下载 ARM64 版本 preinstall 包
curl -o oracle-database-preinstall-19c-1.0-3.el8.aarch64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL8/latest/aarch64/getPackage/oracle-database-preinstall-19c-1.0-3.el8.aarch64.rpm
# 忽略依赖安装(麒麟/openEuler 可能缺 redhat-release)
rpm -ivh --nodeps oracle-database-preinstall-19c-1.0-3.el8.aarch64.rpm
坑 3:麒麟 V10 上会报 libnsl is needed 等依赖错误[3],用 --nodeps 跳过:
# 报错示例
# /etc/redhat-release is needed by oracle-database-preinstall-19c-1.0-3.el8.aarch64
# libnsl is needed by oracle-database-preinstall-19c-1.0-3.el8.aarch64
# 跳过依赖安装
rpm -ivh --nodeps oracle-database-preinstall-19c-1.0-3.el8.aarch64.rpm
# 手动补全缺失项
# 1. 创建 redhat-release
echo "Red Hat Enterprise Linux Server release 8.0 (Maipo)" > /etc/redhat-release
# 2. 安装 libnsl
dnf install -y libnsl
手动补全内核参数和 limits(preinstall 未生效时):
# 内核参数
cat >> /etc/sysctl.d/99-oracle.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934592
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
EOF
sysctl --system
# 资源限制
cat >> /etc/security/limits.d/oracle-database.conf <<EOF
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF
5. 设置编译工具符号链接
坑 4:ARM 平台上 Oracle 软件 relink 时会到指定位置找 ar 和 as 工具[3]。
现象:如果不设置符号链接,安装末尾 relink 会失败。
解决:
# CentOS 8 / OL 8 上虽然有这两个工具,但位置不对
# 在 Oracle 软件引用的位置创建符号链接:
mkdir -p ******
cd /opt/rh/devtoolset-8/root/usr/bin/
ln -s /usr/bin/ar ar
ln -s /usr/bin/as as
# 验证
ls -l /opt/rh/devtoolset-8/root/usr/bin/
# ar -> /usr/bin/ar
# as -> /usr/bin/as
坑 5:确保系统已安装 binutils 包提供 ar 和 as:
# 检查
which ar
# /usr/bin/ar
which as
# /usr/bin/as
# 如缺失则安装
dnf install -y binutils
6. 配置 CV_ASSUME_DISTID
坑 6:ARM 版本的 19.19 也存在 CVU 识别问题[3]。
# 设置 CV_ASSUME_DISTID
su - oracle
echo 'export CV_ASSUME_DISTID=OL8.0' >> ~/.bash_profile
source ~/.bash_profile
# 验证
echo $CV_ASSUME_DISTID
# OL8.0
注意:ARM 平台建议用 OL8.0(而非 OL7),因为 ARM 版本仅支持 OL 8+。
7. 解压并启动安装
步骤 1:创建目录
mkdir -p ******
mkdir -p ******
mkdir -p ******
mkdir -p ******
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
步骤 2:配置环境变量
su - oracle
cat >> ~/.bash_profile <<'EOF'
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CV_ASSUME_DISTID=OL8.0
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
EOF
source ~/.bash_profile
步骤 3:解压安装包
cd $ORACLE_HOME
unzip /tmp/LINUX.ARM64_1919000_db_home.zip
步骤 4:启动 OUI
# 静默安装(推荐)
cp $ORACLE_HOME/install/response/db_install.rsp /tmp/db_install.rsp
vi /tmp/db_install.rsp
响应文件关键参数:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
ORACLE_HOME=/opt/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
DECLINE_SECURITY_UPDATES=true
执行安装:
./runInstaller -silent -responseFile /tmp/db_install.rsp -ignorePrereqFailure
步骤 5:执行 root 脚本
su -
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/19.0.0/dbhome_1/root.sh
8. dbca 无法建库的解决:手工建库
坑 7:ARM 平台上 dbca 可能无法正常建库[3],需要手工建库。
现象:
dbca -silent -createDatabase ...
# 卡在 "Copying database files" 或报错
解决方案:用 CREATE DATABASE 语句手工建库。
8.1 准备 pfile
su - oracle
mkdir -p ******
cat > $ORACLE_HOME/dbs/initorcl.ora <<'EOF'
*._library_cache_advice=FALSE
*._serial_direct_read='NEVER'
*.audit_file_dest='/opt/oracle/admin/orcl/adump'
*.audit_trail='NONE'
*.compatible='19.0.0'
*.control_files='/opt/oracle/oradata/orcl/control01.ctl','/opt/oracle/oradata/orcl/control02.ctl'
*.db_block_size=8192
*.db_files=1500
*.db_name='orcl'
*.deferred_segment_creation=FALSE
*.diagnostic_dest='/opt/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.event='10949 TRACE NAME CONTEXT FOREVER:28401 TRACE NAME CONTEXT FOREVER,level 1'
*.max_dump_file_size='500M'
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=2000
*.parallel_force_local=TRUE
*.pga_aggregate_target=1289m
*.processes=1000
*.remote_login_passwordfile='EXCLUSIVE'
*.session_cached_cursors=200
*.sga_target=5868m
*.undo_tablespace='UNDOTBS1'
EOF
关键参数说明[3]:
| 参数 | 值 | 说明 |
|---|---|---|
_library_cache_advice | FALSE | ARM 平台需关闭,否则可能 crash |
_serial_direct_read | NEVER | ARM 平台需关闭直接路径读 |
compatible | 19.0.0 | 兼容版本 |
db_block_size | 8192 | 块大小 |
sga_target | 视内存调整 | SGA 大小 |
pga_aggregate_target | 视内存调整 | PGA 大小 |
8.2 创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapworcl entries=10 password=******
8.3 启动到 nomount
sqlplus / as sysdba <<EOF
CREATE SPFILE FROM PFILE;
STARTUP NOMOUNT;
EOF
验证:
SQL> SELECT status FROM v$instance;
STATUS
------------
STARTED -- nomount 状态
8.4 执行 CREATE DATABASE
sqlplus / as sysdba <<'EOF'
CREATE DATABASE orcl
USER SYS IDENTIFIED BY ******
USER SYSTEM IDENTIFIED BY ******
LOGFILE GROUP 1 ('/opt/oracle/oradata/orcl/redo0101.log','/opt/oracle/oradata/orcl/redo0102.log') SIZE 1000M BLOCKSIZE 512,
GROUP 2 ('/opt/oracle/oradata/orcl/redo0201.log','/opt/oracle/oradata/orcl/redo0202.log') SIZE 1000M BLOCKSIZE 512,
GROUP 3 ('/opt/oracle/oradata/orcl/redo0301.log','/opt/oracle/oradata/orcl/redo0302.log') SIZE 1000M BLOCKSIZE 512
MAXLOGFILES 30
MAXLOGMEMBERS 5
MAXLOGHISTORY 1000
MAXDATAFILES 5000
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/opt/oracle/oradata/orcl/system01.dbf' SIZE 2G REUSE
SYSAUX DATAFILE '/opt/oracle/oradata/orcl/sysaux01.dbf' SIZE 10G REUSE
DEFAULT TABLESPACE users
DATAFILE '/opt/oracle/oradata/orcl/users01.dbf' SIZE 2G REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/opt/oracle/oradata/orcl/temp01.dbf' SIZE 2G REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/opt/oracle/oradata/orcl/undotbs01.dbf' SIZE 2G REUSE;
EOF
8.5 运行数据字典脚本
# 以 SYSDBA 运行
sqlplus / as sysdba <<'EOF'
@?/rdbms/admin/catalog.sql -- 创建数据字典视图、动态性能视图和同义词
@?/rdbms/admin/catproc.sql -- 运行所有 PL/SQL 需要或使用的脚本
@?/rdbms/admin/utlrp.sql -- 重新编译失效状态的 PL/SQL 模块
EOF
# 以 SYSTEM 用户运行
sqlplus system/Oracle_123 <<'EOF'
@?/sqlplus/admin/pupbld.sql -- SQL*Plus 产品用户表
EOF
时间预估:
- catalog.sql:5-10 分钟
- catproc.sql:15-30 分钟
- utlrp.sql:5-10 分钟
验证:
SELECT * FROM v$version;
SELECT name, open_mode FROM v$database;
SELECT tablespace_name, status FROM dba_tablespaces;
9. 配置监听器
cat > $ORACLE_HOME/network/admin/listener.ora <<'EOF'
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
EOF
cat > $ORACLE_HOME/network/admin/tnsnames.ora <<'EOF'
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EOF
# 启动监听
lsnrctl start
lsnrctl status
10. 安装后验证
10.1 验证数据库
sqlplus / as sysdba
-- 实例状态
SELECT status FROM v$instance;
-- OPEN
-- 数据库版本
SELECT banner_full FROM v$version WHERE banner LIKE 'Oracle%';
-- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
-- Version 19.19.0.0.0
-- 平台信息
SELECT platform_name FROM v$database;
-- Linux x86 64-bit
-- 或
-- Linux ARM (64-bit)
-- 字符集
SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
-- AL32UTF8
10.2 创建业务表空间和用户
-- 创建表空间
CREATE TABLESPACE business_data
DATAFILE '/opt/oracle/oradata/orcl/business01.dbf' SIZE 1G
AUTOEXTEND ON NEXT 100M MAXSIZE 10G;
-- 创建用户
CREATE USER biz_user IDENTIFIED BY ******
DEFAULT TABLESPACE business_data
QUOTA UNLIMITED ON business_data;
GRANT CONNECT, RESOURCE TO biz_user;
10.3 性能测试
-- 简单性能测试
SET TIMING ON
SELECT COUNT(*) FROM dba_objects;
SELECT * FROM dba_objects WHERE rownum <= 1000;
11. ARM 平台性能优化建议
11.1 NUMA 优化
-- 启用 NUMA 优化
ALTER SYSTEM SET "_enable_NUMA_optimization" = TRUE SCOPE=SPFILE;
ALTER SYSTEM SET "_numa_memory_pool" = TRUE SCOPE=SPFILE;
-- 重启生效
SHUTDOWN IMMEDIATE;
STARTUP;
11.2 SGA 配置
ARM 平台多 chip 服务器建议关闭 AMM,启用 ASMM + HugePages:
-- 关闭 AMM
ALTER SYSTEM SET memory_target=0 SCOPE=SPFILE;
ALTER SYSTEM SET memory_max_target=0 SCOPE=SPFILE;
-- 启用 ASMM
ALTER SYSTEM SET sga_target=16G SCOPE=SPFILE;
ALTER SYSTEM SET sga_max_size=16G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=4G SCOPE=SPFILE;
-- 启用大页(OS 层配置见 2.2.2)
ALTER SYSTEM SET use_large_pages=ONLY SCOPE=SPFILE;
11.3 并行度配置
鲲鹏 920 多核优势明显,可以充分利用并行:
-- CPU 计数
SHOW PARAMETER cpu_count
-- 并行度配置
ALTER SYSTEM SET parallel_threads_per_cpu = 1 SCOPE=BOTH;
ALTER SYSTEM SET parallel_max_servers = 64 SCOPE=BOTH;
ALTER SYSTEM SET parallel_min_servers = 8 SCOPE=BOTH;
11.4 关闭不必要特性
-- 关闭延迟段创建(ARM 平台可能影响性能)
ALTER SYSTEM SET deferred_segment_creation=FALSE SCOPE=BOTH;
-- 关闭自适应游标共享(如计划不稳)
ALTER SYSTEM SET "_optimizer_adaptive_cursor_sharing"=FALSE SCOPE=BOTH;
-- 关闭直接路径读(已在 pfile 设置)
ALTER SYSTEM SET "_serial_direct_read"=NEVER SCOPE=BOTH;
12. 常见坑与排错
坑 1:安装末尾 relink 失败
原因:ARM 平台缺少 ar 和 as 工具的符号链接[3]。
解决:见第 5 节。
坑 2:dbca 卡在创建实例
现象:dbca 卡在 “Creating and starting Oracle instance”。
原因:ARM 平台 dbca 模板与实际环境不匹配[3]。
解决:用手工建库(见第 8 节)。
坑 3:startup 报 ORA-27102: out of memory
原因:内核参数 shmall 或 shmmax 设置过小。
解决:
# 查看当前值
sysctl kernel.shmall kernel.shmmax
# 调整为物理内存一半
echo "kernel.shmmax = $(free -b | awk '/Mem/ {print int($2/2)}')" >> /etc/sysctl.d/99-oracle.conf
echo "kernel.shmall = $(echo "$(free -b | awk '/Mem/ {print int($2/2)}') / 4096" | bc)" >> /etc/sysctl.d/99-oracle.conf
sysctl --system
坑 4:listener 启动报 libclntsh.so 找不到
解决:
su - oracle
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH' >> ~/.bash_profile
source ~/.bash_profile
lsnrctl start
坑 5:libnsl 缺失
现象:
sqlplus: error while loading shared libraries: libnsl.so.1: cannot open shared object file
解决:
dnf install -y libnsl
# 麒麟/openEuler 可能需要
dnf install -y libnsl2
ln -sf /usr/lib64/libnsl.so.2 /usr/lib64/libnsl.so.1
坑 6:CREATE DATABASE 报 ORA-01501
原因:参数文件中 compatible 设置错误。
解决:确保 *.compatible='19.0.0',且不高于已打 RU 补丁版本。
坑 7:性能明显低于 x86
原因 1:未启用大页。
解决:
cat /proc/meminfo | grep Huge
sysctl -w vm.nr_hugepages=32
原因 2:未关闭透明大页。
解决:见 2.2.3。
原因 3:NUMA 配置不当。
解决:
# 查看 NUMA
numactl --hardware
# 用 numactl 启动 Oracle
numactl --interleave=all $ORACLE_HOME/bin/sqlplus / as sysdba
坑 8:磁盘 I/O 性能差
原因:ARM 服务器 RAID 卡或 NVMe 配置不当。
解决:
# 查看磁盘
lsblk
iostat -x 1
# 配置 IO 调度器(NVMe 建议用 none)
echo none > /sys/block/nvme0n1/queue/scheduler
# SSD/SAS 建议用 mq-deadline
echo mq-deadline > /sys/block/sda/queue/scheduler
13. 最佳实践
- 用 Oracle Linux 8 (aarch64):官方推荐,兼容性最佳
- 必须用 19.19+ 版本[1][2]:19.3 基础版不支持 ARM
- 设置编译工具符号链接[3]:避免 relink 失败
- 手工建库[3]:ARM 平台 dbca 不稳定
- 关闭
_library_cache_advice[3]:ARM 平台特定坑 - 关闭
_serial_direct_read[3]:避免直接路径读问题 - 启用大页:ARM 大页 512MB,性能提升明显
- 关闭透明大页:与 Oracle 自动内存管理冲突
- NUMA 优化:充分利用鲲鹏多 chip 架构
- 关闭 AMM,启用 ASMM:ARM 平台 AMM 兼容性问题
- 用 numactl 绑定:减少跨节点访问
- 打最新 RU 补丁:19.19+ 持续优化 ARM 支持
14. 参考资料
[1] Oracle Database 19c for LINUX ARM (aarch64) 下载页: https://www.oracle.com/nz/database/technologies/oracle19c-linux-arm64-downloads.html
[2] Oracle Database 19c (19.19) for LINUX ARM 下载说明: http://www.oracle.com/bz/database/technologies/oracle19c-linux-arm64-downloads.html
[3] einyboy,《鲲鹏 ARM 构架 openEuler 操作系统安装 Oracle 19c》: https://www.zovps.com/article/?id=136654
[4] 惜分飞,《ARM Linux(麒麟操作系统)安装 Oracle 数据库》: https://www.zovps.com/article/?id=136654
[5] Oracle Database 19c Installation Guide for Linux: https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/
[6] 华为鲲鹏 920 处理器文档: https://www.hikunpeng.com/
[7] 云贝教育,《银河麒麟 kylin_v10 使用 RPM 安装 ORACLE 19C》,墨天轮: https://www.modb.pro/db/1815587493811597312
[8] Oracle MOS Note 2553472.1,Oracle Database 19c on ARM 支持矩阵: https://support.oracle.com/epmos/faces/DocumentDisplay?id=2553472.1
相关文章