在Linux下安装Oracle 10g的步骤指南,如何在Linux系统上轻松安装Oracle 10g?,如何在Linux系统上轻松搞定Oracle 10g安装?
在Linux系统上安装Oracle 10g需依次完成环境准备、软件配置及数据库创建,首先确保系统满足硬件要求(内存≥1GB,磁盘空间≥2.5GB),并安装必要的依赖包(如libaio
、gcc
),修改内核参数(/etc/sysctl.conf
)和用户限制(/etc/security/limits.conf
),创建Oracle用户组及用户,解压安装包后,运行runInstaller
启动图形化界面,按提示配置安装路径、字符集等选项,最后执行根脚本(root.sh
)完成配置,并通过dbca
工具创建数据库实例,安装后可通过sqlplus
验证连接,建议关闭非必要服务以优化性能,注意:需提前配置正确的环境变量(如ORACLE_HOME
)以避免常见错误。
在Linux系统上部署Oracle 10g数据库需要系统性地完成环境准备、软件配置和数据库创建三大步骤,首先需要确保系统满足最低硬件要求(包括内存、交换空间和磁盘空间),并安装必要的依赖包(如libaio
、gcc
等),然后创建专用的Oracle用户和组,配置内核参数(通过/etc/sysctl.conf
文件)及用户环境变量(在~/.bash_profile
中设置),解压安装包后,运行runInstaller
启动图形化安装界面,根据提示选择安装类型、设置目录路径和监听端口,安装过程中需要以root身份执行orainstRoot.sh
和root.sh
两个关键脚本,最后使用DBCA工具创建数据库实例,并通过lsnrctl status
命令验证监听服务状态,特别提醒:安装前应关闭防火墙和SELinux以避免潜在冲突,安装完成后建议使用SQL*Plus进行连接测试。
系统要求
硬件配置要求
- 内存:最低1GB(生产环境推荐4GB以上,大型应用建议8GB或更高)
- 交换空间:
- 物理内存≤2GB时:建议为物理内存的2倍
- 2GB<物理内存<8GB时:建议为物理内存的1.5倍
- 物理内存≥8GB时:建议与物理内存等量
- 磁盘空间:
- 基础安装:至少5GB用于Oracle软件(考虑日志和临时文件)
- 数据库文件:初始1.5GB起(根据实际数据量调整,建议预留50%增长空间)
- 临时空间:建议1GB以上(用于安装过程中的解压操作)
操作系统兼容性
Oracle 10g支持以下主流Linux发行版及其特定版本:
发行版 | 支持版本 | 架构要求 |
---|---|---|
Red Hat Enterprise Linux | 0/4.0/5.0 | 32位/64位(需对应版本) |
SUSE Linux Enterprise Server | 9/10 | 32位/64位 |
Asianux | 0/3.0 | 32位(亚洲地区专用) |
安装前准备工作
创建专用用户和组
# 创建Oracle安装组和管理组(推荐使用标准命名规范) groupadd -g 1000 oinstall groupadd -g 1001 dba groupadd -g 1002 oper # 创建Oracle用户并设置密码(建议禁止交互式登录) useradd -u 1000 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash oracle echo "oracle:YourSecurePassword123" | chpasswd # 创建必要的目录结构 mkdir -p /home/oracle/.ssh chmod 700 /home/oracle/.ssh
规划安装目录结构
# 创建Oracle基础目录(遵循OFA标准) mkdir -p /u01/app/oracle/product/10.2.0/db_1 mkdir -p /u01/app/oracle/{admin,cfgtoollogs,diag,fast_recovery_area} # 设置目录权限(确保安全性与功能性平衡) chown -R oracle:oinstall /u01 chmod -R 775 /u01 find /u01 -type d -exec chmod g+s {} \;
系统内核参数优化
编辑/etc/sysctl.conf
文件,添加以下经过优化的参数配置:
# 共享内存设置(根据实际内存调整) kernel.shmall = 1073741824 # 总共享内存页数 kernel.shmmax = 4294967296 # 最大共享内存段大小(4GB) kernel.shmmni = 4096 # 共享内存段最大数量 # 信号量设置(进程间通信) kernel.sem = 250 32000 100 128 # 参数说明:SEMMSL SEMMNS SEMOPM SEMMNI # 文件系统优化 fs.file-max = 6815744 # 系统最大文件句柄数 fs.aio-max-nr = 1048576 # 异步IO请求数 # 网络参数优化(高并发环境需调整) 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 sysctl -a | grep -E 'shm|sem|file-max'
用户资源限制配置
编辑/etc/security/limits.conf
文件,添加以下经过优化的限制设置:
# 进程数限制 oracle soft nproc 2047 oracle hard nproc 16384 # 文件描述符限制 oracle soft nofile 65536 oracle hard nofile 65536 # 堆栈大小限制 oracle soft stack 10240 oracle hard stack 32768 # 内存锁定限制(适用于RAC) oracle soft memlock 3145728 oracle hard memlock 3145728
安装必要依赖包
根据不同发行版选择对应的安装命令:
RHEL/CentOS系统:
yum groupinstall -y "Development Tools" yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \ gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc \ libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel \ pdksh ksh xorg-x11-utils xorg-x11-xauth libXp
SLES系统:
zypper install -t pattern devel_basis zypper install libaio1 libstdc++33 glibc-32bit libgcc_s1-32bit libXp6-32bit
Oracle 10g安装过程
配置Oracle用户环境变量
编辑~/.bash_profile
文件,添加以下经过优化的环境配置:
# Oracle基础设置 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=orcl # 路径设置 export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib # 字符集设置(推荐使用Unicode) export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 终端和编辑器设置 export EDITOR=vi export TERM=xterm-256color # SQL*Plus优化设置 export SQLPATH=$ORACLE_HOME/sqlplus/admin
使配置立即生效:
source ~/.bash_profile
准备安装文件
# 创建临时目录并解压安装包 mkdir -p /tmp/oracle_install unzip 10201_database_linux32.zip -d /tmp/oracle_install # 验证文件完整性 cd /tmp/oracle_install/database md5sum -c response/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/*.jar | grep FAILED # 设置正确的文件权限 chown -R oracle:oinstall /tmp/oracle_install find /tmp/oracle_install -type f -exec chmod 644 {} \; find /tmp/oracle_install -type d -exec chmod 755 {} \;
启动图形化安装界面
# 设置DISPLAY变量(根据实际环境调整) export DISPLAY=your_workstation_ip:0.0 xhost +local:oracle # 解决可能的libXp依赖问题 if ! ldconfig -p | grep libXp.so.6; then yum install -y libXp fi # 启动安装程序(推荐使用静默模式检查先决条件) cd /tmp/oracle_install/database ./runInstaller -ignoreSysPrereqs -waitforcompletion -silent \ -responseFile /tmp/oracle_install/database/response/enterprise.rsp
图形界面安装步骤详解
-
欢迎界面
- 选择"高级安装"模式以获得完整配置选项
- 记录安装日志路径(默认在
$ORACLE_BASE/oraInventory/logs
)
-
安装类型选择
- 企业版(完整功能,包含分区选项、OLAP等)
- 标准版(基础功能,适合中小型应用)
- 自定义安装(可选组件,适合高级用户)
-
Oracle主目录配置
- 名称:OraDb10g_home1
- 路径:
$ORACLE_BASE/product/10.2.0/db_1
- 验证目录可写性和空间充足性
-
产品组件选择
- Oracle Database 10g
- Oracle Net Services
- Oracle Enterprise Manager
- Oracle SQL Developer Kit
-
数据库配置
- 全局数据库名:
orcl.yourdomain.com
- SID前缀:orcl(保持与
$ORACLE_SID
一致) - 字符集:AL32UTF8(Unicode,推荐)或ZHS16GBK(简体中文)
- 全局数据库名:
-
管理选项
- 配置Database Control进行本地管理
- 设置通知邮箱(可选)
- 配置每日自动备份(建议启用)
-
数据库存储
- 文件系统(默认)
- ASM(需要额外配置)
- 裸设备(高级配置)
-
备份与恢复
- 启用自动备份
- 设置快速恢复区(建议
$ORACLE_BASE/fast_recovery_area
) - 配置备份计划
-
安全设置
- 为SYS/SYSTEM设置复杂密码(12字符以上,含大小写、数字和特殊字符)
- 选择是否使用相同的密码(生产环境不建议)
执行root脚本
安装完成后,按照提示以root身份执行以下脚本:
# 第一个脚本:配置inventory目录 /u01/app/oracle/oraInventory/orainstRoot.sh # 第二个脚本:配置root权限 /u01/app/oracle/product/10.2.0/db_1/root.sh # 验证执行结果 grep 'SUCCESS' /u01/app/oracle/oraInventory/logs/install*.log
安装后配置
启动数据库服务
# 启动监听器(详细模式) su - oracle -c "lsnrctl start LISTENER" # 连接数据库并启动实例 sqlplus / as sysdba <<EOF STARTUP; ALTER SYSTEM REGISTER; SELECT status FROM v$instance; EXIT; EOF # 验证监听状态 lsnrctl status | grep -E 'Service|Status'
配置自动启动
创建优化的系统服务脚本/etc/init.d/dbora
:
#!/bin/bash # chkconfig: 345 99 10 # description: Oracle 10g auto start-stop script ORACLE_OWNER=oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 case "" in 'start') echo -n $"Starting Oracle DB: " su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" >/var/log/oracle_start.log 2>&1 su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" >>/var/log/oracle_start.log 2>&1 touch /var/lock/subsys/dbora echo "OK" ;; 'stop') echo -n $"Stopping Oracle DB: " su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" >/var/log/oracle_stop.log 2>&1 su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" >>/var/log/oracle_stop.log 2>&1 rm -f /var/lock/subsys/dbora echo "OK" ;; 'restart')chmod 755 /etc/init.d/dbora chkconfig --add dbora chkconfig dbora on systemctl enable dbora # 对于systemd系统stop常见问题解决方案
start ;; *) echo "Usage:图形界面显示问题
{start|stop|restart}" exit 1 esac exit 0
配置服务自启动:
# 确保X11转发配置正确 echo $DISPLAY # 应显示类似 localhost:10.0 # 解决常见X11错误 yum install -y xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils # 如果使用SSH转发 ssh -Y oracle@server_ip
依赖包缺失错误
# 使用yum-utils工具自动查找依赖 yum install -y yum-utils repoquery --whatprovides "libaio.so.1" # 安装32位兼容库 yum install -y libstdc++-*.i686 glibc-*.i686 libaio-*.i686 # 验证库文件 ldd $ORACLE_HOME/bin/oracle | grep "not found"
数据库连接问题
listener.ora 示例:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost.example.com)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) )tnsnames.ora 示例:
检查并优化网络配置文件:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.example.com) ) ) EMREP = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = orcl) (UR = A) ) )
重要安全建议
版本升级计划
- 如必须使用,应应用最新的补丁集(10.2.0.5)
-
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY ACCESS; AUDIT EXECUTE PROCEDURE BY ACCESS;
- 密码策略:备份策略优化
- 最小权限原则:
rman target / <<EOF RUN { ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT '/backup/%U.bak'; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; BACKUP CURRENT CONTROLFILE; CROSSCHECK BACKUP; DELETE NOPROMPT OBSOLETE; } EOF
- 启用审计:性能监控方案
-
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); END; /
- RMAN全备脚本示例:
SELECT *
- RMAN全备脚本示例:
-
- 自动生成AWR报告:
- 关键指标监控:
-
安全加固措施
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 90 PASSWORD_REUSE_TIME 365 PASSWORD_REUSE_MAX 10;
REVOKE ALL ON SYS.USER$ FROM PUBLIC; REVOKE EXECUTE ON UTL_FILE FROM PUBLIC;
相关阅读:
1、VPS.qingguo.co m,一站式在线业务助力解决方案,实现飞跃发展!
3、Linux 系统下安装 PHP 7.1 的详细教程,如何在Linux系统轻松安装PHP 7.1?,想在Linux系统一键搞定PHP 7.1安装?这份超详细教程教你轻松完成!
4、在Linux系统中,访问其他用户的目录通常需要适当的权限。以下是几种常见方法及注意事项,如何在Linux中安全访问其他用户的目录?,如何在Linux中安全访问其他用户目录而不泄露隐私?
5、Linux的alias命令详解,如何通过别名提升工作效率,还在重复输入冗长命令?Linux alias命令如何让你效率翻倍?,还在重复输入冗长命令?Linux alias命令如何让你效率翻倍?