cat /etc/redhat-release
和uname -r
验证。df -h
检查)。free -h
查看,不足时用dd if=/dev/zero of=/swapfile bs=1M count=2048
创建并mkswap /swapfile && swapon /swapfile
启用)。Oracle 19c需要多个系统依赖包支持,推荐通过oracle-database-preinstall-19c
预安装包自动配置(简化流程):
yum install -y oracle-database-preinstall-19c
该包会自动安装以下关键依赖:binutils
、compat-libcap1
、compat-libstdc++-33
、elfutils-libelf-devel
、gcc
、gcc-c++
、glibc
、glibc-devel
、ksh
、libaio
、libaio-devel
、libX11
、libXau
、libXi
、libXtst
、make
、sysstat
、unixODBC
、unixODBC-devel
等。
Oracle需要oinstall
(安装组)、dba
(数据库管理员组)和oper
(数据库操作员组),并创建oracle
用户归属这些组:
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle # 设置oracle用户密码(如Oracle123)
/home/oracle19c/app/oracle/product/19.0.0/db_1
)。/home/oracle19c/oradata
)。/home/oracle19c/oraInventory
)。mkdir -p /home/oracle19c/app/oracle/product/19.0.0/db_1
mkdir -p /home/oracle19c/oradata
mkdir -p /home/oracle19c/oraInventory
chown -R oracle:oinstall /home/oracle19c # 递归设置目录所有者
chmod -R 775 /home/oracle19c/app/oracle # 设置目录权限
编辑/etc/sysctl.conf
,添加Oracle所需的内核参数(优化系统性能):
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934591 # 建议设置为物理内存的80%(如8GB内存则为8*1024*1024*1024=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
使配置生效:
sysctl -p
编辑oracle
用户的~/.bash_profile
文件,添加Oracle相关环境变量:
export ORACLE_BASE=/home/oracle19c/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl # 数据库实例名(可自定义,如orcl、testdb)
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 字符集(推荐UTF-8)
使配置生效:
source ~/.bash_profile
从Oracle官网下载LINUX.X64_193000_db_home.zip
(Oracle 19c Linux x64安装包),上传到/home/oracle19c
目录,解压到Oracle主目录:
unzip LINUX.X64_193000_db_home.zip -d /home/oracle19c/app/oracle/product/19.0.0/db_1
切换到oracle
用户,进入安装目录,使用响应文件进行静默安装(避免图形界面):
su - oracle
cd /home/oracle19c/app/oracle/product/19.0.0/db_1
./runInstaller -silent -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/response/db_install.rsp
响应文件参数说明(需提前创建/home/oracle19c/app/oracle/product/19.0.0/db_1/response/db_install.rsp
):
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle19c/oraInventory
ORACLE_HOME=/home/oracle19c/app/oracle/product/19.0.0/db_1
ORACLE_BASE=/home/oracle19c/app/oracle
oracle.install.db.InstallEdition=EE # 企业版(可选择SE、SEONE等)
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false # 静默安装无需root执行
安装完成后,会提示执行两个root脚本(需切换到root用户执行):
exit # 退出oracle用户
su - # 切换到root
/home/oracle19c/oraInventory/orainstRoot.sh
/home/oracle19c/app/oracle/product/19.0.0/db_1/root.sh
使用netca
工具配置监听器(默认端口1521):
netca -silent -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/netca/netca.rsp
使用dbca
工具创建数据库(静默模式):
dbca -silent -createDatabase -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/dbca/dbca.rsp
响应文件参数说明(需提前创建/home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/dbca/dbca.rsp
):
gdbName=orcl # 全局数据库名(与ORACLE_SID一致)
sid=orcl
createAsContainerDatabase=false # 是否创建容器数据库(false为单实例)
templateName=General_Purpose.dbc # 数据库模板(General_Purpose、Data_Warehouse等)
sysPassword=Oracle123 # SYS用户密码
systemPassword=Oracle123 # SYSTEM用户密码
emConfiguration=NONE # 不配置EM Express
datafileDestination=/home/oracle19c/oradata # 数据文件目录
characterSet=AL32UTF8 # 字符集(推荐UTF-8)
totalMemory=2048 # 分配给数据库的内存(MB,根据系统内存调整,如2GB内存分配2048MB)
执行完成后,数据库实例会自动启动。
使用sqlplus
工具登录数据库(SYSDBA权限):
sqlplus / as sysdba
输入命令查看数据库状态:
SELECT status FROM v$instance; -- 应返回“OPEN”
EXIT;
lsnrctl status
应显示监听器正在运行,且包含orcl
服务的监听信息。
创建systemd服务文件,实现Oracle数据库开机自启动:
cat > /etc/systemd/system/oracle-database.service <<EOF
[Unit]
Description=Oracle Database Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/home/oracle19c/app/oracle/product/19.0.0/db_1/bin/dbstart /home/oracle19c/app/oracle/product/19.0.0/db_1
ExecStop=/home/oracle19c/app/oracle/product/19.0.0/db_1/bin/dbshut /home/oracle19c/app/oracle/product/19.0.0/db_1
Restart=no
[Install]
WantedBy=multi-user.target
EOF
启用并启动服务:
systemctl daemon-reload
systemctl enable oracle-database
systemctl start oracle-database
oracle
用户对/home/oracle19c
及其子目录有读写权限(chown -R oracle:oinstall /home/oracle19c
)。listener.ora
($ORACLE_HOME/network/admin
)中的端口,或停止占用进程(lsof -i:1521
)。dbca.rsp
中的totalMemory
参数(减少内存分配)。