确保CentOS系统满足Oracle数据库的最低要求:
free -h命令查看,若不足可通过sudo fallocate -l 2G /swapfile创建并启用)。Oracle安装与运行需关闭SELinux(避免权限限制)和防火墙(避免端口拦截):
# 临时关闭SELinux
sudo setenforce 0
# 永久禁用SELinux(修改配置文件)
sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 临时关闭防火墙
sudo systemctl stop firewalld
# 永久禁用防火墙(可选)
sudo systemctl disable firewalld
Oracle数据库需要依赖多个系统工具与库文件,通过以下命令安装:
sudo yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
上述命令涵盖了Oracle安装所需的核心依赖,确保后续步骤不会出现依赖缺失错误。
Oracle需以专用用户(oracle)和组(oinstall、dba)运行,避免权限冲突:
# 创建组(oinstall用于安装管理,dba用于数据库管理员权限)
sudo groupadd oinstall
sudo groupadd dba
# 创建用户(归属oinstall组,附加dba权限)
sudo useradd -g oinstall -G dba oracle
# 设置用户密码(交互式输入)
sudo passwd oracle
创建完成后,建议通过id oracle命令验证用户组归属是否正确。
Oracle对系统内核参数有特定要求,需修改/etc/sysctl.conf文件调整:
sudo vi /etc/sysctl.conf
添加或修改以下参数(关键参数说明见注释):
# 控制异步I/O请求的最大数量
fs.aio-max-nr = 1048576
# 系统最大文件句柄数
fs.file-max = 6815744
# 共享内存总页数(每页4KB)
kernel.shmall = 2097152
# 单个共享内存段的最大大小(字节)
kernel.shmmax = 4294967295
# 共享内存段的最大数量
kernel.shmmni = 4096
# 信号量集合的最大数量
kernel.sem = 250 32000 100 128
# 本地端口范围(避免与Oracle端口冲突)
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
修改后执行以下命令使配置立即生效:
sudo sysctl -p
为oracle用户设置环境变量,确保其能正确访问Oracle软件与库文件:
sudo vi /home/oracle/.bashrc
添加以下内容(根据实际安装路径调整,示例为Oracle 19c):
# Oracle基础目录
export ORACLE_BASE=/u01/app/oracle
# Oracle home目录(软件安装路径)
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
# 数据库实例名(SID)
export ORACLE_SID=orcl
# 将Oracle bin目录加入PATH
export PATH=$PATH:$ORACLE_HOME/bin
# 将Oracle库目录加入LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
# 设置字符集(避免乱码)
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
保存后执行以下命令使配置生效:
source /home/oracle/.bashrc
Oracle安装包需解压到专用目录(建议使用/u01/app/oracle),并设置正确权限:
# 创建安装目录
sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
# 设置目录所有者(oracle用户拥有完全控制权,oinstall组有读权限)
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 775 /u01/app/oracle
linux.x64_193000_db_home.zip);/tmp目录);# 解压安装包(假设上传至/tmp)
unzip /tmp/linux.x64_193000_db_home.zip -d /u01/app/oracle/
# 设置目录所有者
sudo chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/dbhome_1
切换至oracle用户,进入安装目录运行安装脚本:
# 切换至oracle用户
su - oracle
# 进入安装目录
cd /u01/app/oracle/product/19.3.0/dbhome_1/bin
# 运行安装程序(图形界面模式)
./runInstaller
安装过程中需完成以下步骤:
ORACLE_BASE(/u01/app/oracle)和ORACLE_HOME(/u01/app/oracle/product/19.3.0/dbhome_1)路径正确;orcl)和SID(如orcl);SYS、SYSTEM等管理员账户设置强密码;监听器负责接收客户端连接请求,使用netca(Net Configuration Assistant)工具配置:
# 运行netca(图形界面模式)
netca
按照向导选择“Listener configuration”(监听器配置),添加TCP协议监听端口(默认1521),完成配置后监听器会自动启动。
使用dbca(Database Configuration Assistant)工具创建数据库:
# 运行dbca(图形界面模式)
dbca
按照向导选择“Create a database”(创建数据库),选择“General Purpose”模板,输入数据库名(如orcl)和SID(如orcl),设置字符集(推荐AL32UTF8),完成配置后数据库实例会自动创建。
使用sqlplus(SQL*Plus)工具连接到数据库并启动:
# 以sysdba身份连接(无需密码,因为当前用户为oracle且属于dba组)
sqlplus / as sysdba
# 启动数据库
SQL> startup
# 退出sqlplus
SQL> exit
再次连接数据库,执行简单查询验证是否成功:
sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
若返回OPEN,则表示数据库已成功启动,安装配置完成。
sga_target参数(位于$ORACLE_HOME/network/admin/sqlnet.ora文件中),增大SGA内存分配;$ORACLE_HOME/network/admin/listener.ora文件,将HOST设置为服务器IP地址,并开放1521端口(sudo firewall-cmd --add-port=1521/tcp --permanent,sudo firewall-cmd --reload);RMAN工具),避免数据丢失。