☰
Linux 7上Oracle 11.2.0.4数据库安装与配置指南
2026/10/27 4:09:55 网站建设 项目流程

1. 项目概述

在Linux 7系统上安装Oracle 11.2.0.4数据库是一个需要谨慎操作的过程。作为一款经典的企业级数据库系统,Oracle 11.2.0.4虽然已经发布多年,但仍在很多传统业务系统中广泛使用。这个版本特别适合需要长期稳定运行的关键业务场景,比如金融、电信等行业的核心系统。

我曾在多个生产环境中部署过这个版本的Oracle数据库,深知其中的技术要点和常见陷阱。本文将分享我在CentOS/RHEL 7系统上安装Oracle 11.2.0.4的完整经验,包括环境准备、参数配置、安装过程以及后期优化建议。

2. 环境准备

2.1 系统要求检查

在开始安装前,必须确保系统满足Oracle 11.2.0.4的最低要求:

  • 操作系统:RHEL/CentOS 7.x 64位
  • 内存:至少2GB(建议4GB以上)
  • 交换空间:内存1.5-2倍(8GB内存以下按此规则,超过8GB可适当减少)
  • 磁盘空间:/tmp目录至少1GB,Oracle安装目录建议50GB以上
  • 软件包:需要安装特定的依赖包

检查内存和交换空间:

free -h

检查磁盘空间:

df -h

2.2 安装必要依赖包

Oracle数据库运行需要一系列系统库和工具,执行以下命令安装:

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

对于图形化安装界面,还需要安装:

yum install -y xorg-x11-utils xorg-x11-xauth xorg-x11-server-utils

2.3 创建Oracle用户和组

Oracle不建议使用root用户直接安装,需要创建专门的用户和组:

groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba,oper oracle echo "oracle" | passwd --stdin oracle

2.4 配置内核参数

Oracle数据库对系统内核参数有特定要求,编辑/etc/sysctl.conf文件:

cat >> /etc/sysctl.conf <<EOF fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 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 -p

2.5 配置用户限制

编辑/etc/security/limits.conf文件:

cat >> /etc/security/limits.conf <<EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 EOF

3. Oracle软件安装

3.1 准备安装文件

从Oracle官网下载以下文件:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

解压文件:

unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip

3.2 配置响应文件

创建响应文件可以简化安装过程,以下是示例响应文件内容:

cat > /home/oracle/db_install.rsp <<EOF oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=localhost UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.memoryLimit=800 oracle.install.db.config.starterdb.password.ALL=Oracle123 oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle/fast_recovery_area EOF

3.3 运行安装程序

切换到oracle用户执行安装:

su - oracle cd database ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq

安装过程中会提示执行两个root脚本:

/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

4. 数据库配置

4.1 创建数据库

安装完成后,可以使用DBCA工具创建数据库:

dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl -sid orcl -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -memoryPercentage 40 \ -emConfiguration LOCAL \ -sysPassword Oracle123 \ -systemPassword Oracle123 \ -dbsnmpPassword Oracle123 \ -datafileDestination /u01/app/oracle/oradata \ -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \ -storageType FS \ -sampleSchema true

4.2 配置环境变量

编辑oracle用户的.bash_profile文件:

cat >> /home/oracle/.bash_profile <<EOF export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=\$PATH:\$ORACLE_HOME/bin export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 EOF source /home/oracle/.bash_profile

4.3 配置监听器

编辑listener.ora文件:

cat > $ORACLE_HOME/network/admin/listener.ora <<EOF LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) EOF

启动监听器:

lsnrctl start

5. 常见问题与解决方案

5.1 OUI-25031错误

如果在安装过程中出现OUI-25031错误,提示无法创建目录,通常是因为权限问题。解决方法:

chown -R oracle:oinstall /u01 chmod -R 775 /u01

5.2 图形界面无法显示

如果使用X11转发时图形界面无法显示,可以尝试:

export DISPLAY=your_client_ip:0.0 xhost +

5.3 数据库创建失败

如果数据库创建失败,可以检查日志文件:

cat $ORACLE_BASE/cfgtoollogs/dbca/orcl/trace.log

常见原因是内存不足或磁盘空间不足,可以调整参数后重试。

5.4 监听器无法启动

如果监听器无法启动,检查端口是否被占用:

netstat -tulnp | grep 1521

如果端口被占用,可以修改listener.ora文件中的端口号。

6. 安装后优化

6.1 配置自动启动

创建/etc/init.d/oracle脚本:

cat > /etc/init.d/oracle <<EOF #!/bin/bash # chkconfig: 345 99 10 # description: Oracle auto start-stop script. case "\$1" in 'start') su - oracle -c "\$ORACLE_HOME/bin/dbstart \$ORACLE_HOME" su - oracle -c "\$ORACLE_HOME/bin/lsnrctl start" ;; 'stop') su - oracle -c "\$ORACLE_HOME/bin/dbshut \$ORACLE_HOME" su - oracle -c "\$ORACLE_HOME/bin/lsnrctl stop" ;; *) echo "Usage: \$0 start|stop" exit 1 ;; esac exit 0 EOF chmod 750 /etc/init.d/oracle chkconfig --add oracle

6.2 性能调优

编辑$ORACLE_HOME/dbs/init$ORACLE_SID.ora文件,添加以下参数:

cat >> $ORACLE_HOME/dbs/initorcl.ora <<EOF processes=300 sessions=335 transactions=400 db_block_size=8192 sga_target=1G pga_aggregate_target=300M EOF

6.3 定期维护

设置定期归档日志清理:

sqlplus / as sysdba <<EOF ALTER SYSTEM SET log_archive_dest_1='location=/u01/app/oracle/archivelog' SCOPE=BOTH; ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=SPFILE; CREATE OR REPLACE DIRECTORY archivelog_dir AS '/u01/app/oracle/archivelog'; GRANT READ, WRITE ON DIRECTORY archivelog_dir TO sys; EOF

7. 安全加固建议

7.1 修改默认密码

安装完成后立即修改所有默认密码:

sqlplus / as sysdba <<EOF ALTER USER sys IDENTIFIED BY new_password; ALTER USER system IDENTIFIED BY new_password; ALTER USER dbsnmp IDENTIFIED BY new_password; EOF

7.2 启用审计

配置基本审计策略:

sqlplus / as sysdba <<EOF AUDIT CREATE SESSION; AUDIT ALTER USER; AUDIT CREATE USER; AUDIT DROP USER; AUDIT GRANT ANY PRIVILEGE; EOF

7.3 限制网络访问

编辑sqlnet.ora文件限制访问:

cat >> $ORACLE_HOME/network/admin/sqlnet.ora <<EOF tcp.validnode_checking=yes tcp.invited_nodes=(localhost, your_trusted_ip) tcp.excluded_nodes=(10.0.0.0/8, 192.168.0.0/16) EOF

8. 备份与恢复

8.1 配置RMAN备份

设置基本的RMAN备份策略:

rman target / <<EOF CONFIGURE RETENTION POLICY TO REDUNDANCY 2; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backup/%F'; CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup/%U'; EOF

8.2 创建备份脚本

创建每日备份脚本:

cat > /home/oracle/backup.sh <<EOF #!/bin/bash export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=\$PATH:\$ORACLE_HOME/bin export ORACLE_SID=orcl rman target / << RMAN_EOF RUN { ALLOCATE CHANNEL ch1 DEVICE TYPE DISK; BACKUP DATABASE PLUS ARCHIVELOG; BACKUP CURRENT CONTROLFILE; RELEASE CHANNEL ch1; } RMAN_EOF EOF chmod +x /home/oracle/backup.sh

8.3 测试恢复流程

定期测试数据库恢复流程:

rman target / <<EOF STARTUP MOUNT; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; EOF

9. 监控与维护

9.1 配置OEM

配置Oracle Enterprise Manager Database Control:

emctl start dbconsole

访问地址:https://localhost:1158/em

9.2 设置AWR快照

调整AWR快照设置:

sqlplus / as sysdba <<EOF EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 60, RETENTION => 43200); EOF

9.3 日常检查脚本

创建日常检查脚本:

cat > /home/oracle/daily_check.sql <<EOF SET LINESIZE 200 SET PAGESIZE 100 COLUMN name FORMAT A50 COLUMN value FORMAT A50 PROMPT ========== Database Status ========== SELECT name, open_mode, log_mode FROM v\$database; PROMPT ========== Tablespace Usage ========== SELECT tablespace_name, ROUND(used_space/1024/1024,2) used_mb, ROUND(tablespace_size/1024/1024,2) total_mb, ROUND(used_percent,2) pct_used FROM dba_tablespace_usage_metrics; PROMPT ========== Session Count ========== SELECT status, COUNT(*) FROM v\$session GROUP BY status; PROMPT ========== Top SQL by CPU ========== SELECT sql_id, executions, cpu_time/1000000 cpu_sec FROM v\$sqlarea ORDER BY cpu_time DESC FETCH FIRST 10 ROWS ONLY; EOF

10. 升级与补丁

10.1 应用PSU补丁

下载最新的PSU补丁并应用:

unzip psu_patch.zip cd patch_dir opatch apply

10.2 检查补丁状态

验证已安装的补丁:

opatch lsinventory

10.3 升级到新版本

准备升级到新版本时,先执行预升级检查:

cd $ORACLE_HOME/rdbms/admin sqlplus / as sysdba @utlu112i.sql

根据检查结果解决所有问题后再进行升级。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询