在经典的 CentOS 6.7 系统上部署 Oracle 数据库是一项兼具挑战性与实用价值的任务,尽管 CentOS 6.7 和相应版本的 Oracle(如 11g R2)已不是最新技术栈,但其在许多企业级应用中依然扮演着稳定可靠的角色,本文旨在提供一个清晰、详尽的指南,帮助您顺利完成整个安装与配置过程,确保数据库系统能够高效、安全地运行。
系统环境准备与硬件要求
在开始安装之前,充分的准备工作是成功的关键,这包括确认硬件资源、安装必要的依赖包以及进行系统级配置。
硬件资源检查
Oracle 数据库对系统资源有明确的要求,不满足这些要求往往会导致安装失败或运行性能低下,以下是基本的硬件要求参考:
项目 | 最低要求 | 推荐配置 |
---|---|---|
物理内存 (RAM) | 1 GB | 4 GB 或以上 |
交换空间 | 5 倍物理内存或 2 GB | 2 倍物理内存 |
磁盘空间 | /tmp 至少 1 GB,软件安装目录至少 5.5 GB,数据文件至少 10 GB | 软件目录 20 GB,数据文件根据业务需求预留 |
处理器 (CPU) | 64 位 | 多核处理器 |
您可以使用 free -m
和 df -h
命令来检查当前的内存和磁盘空间。
安装必要的软件包
Oracle 安装程序依赖一系列系统库和开发工具,在 CentOS 6.7 中,可以通过 yum
命令方便地安装它们,请以 root
用户执行以下命令:
yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
创建 Oracle 用户和用户组
出于安全考虑,Oracle 不应使用 root
用户运行,我们需要创建专门的用户和组。
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle # 为 oracle 用户设置密码
配置内核参数
Oracle 需要调整内核参数以优化共享内存、信号量等资源,编辑 /etc/sysctl.conf
文件,在文件末尾添加以下内容:
fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 # 通常设为物理内存的一半或更多 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.ip_local_port_range = 9000 65500
保存后,执行 sysctl -p
使配置立即生效。
设置 Oracle 用户的 Shell 限制
编辑 /etc/security/limits.conf
文件,在末尾添加:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
编辑 /etc/pam.d/login
文件,确保包含以下行(通常已默认存在):
session required pam_limits.so
Oracle 软件安装过程
准备工作就绪后,我们就可以开始图形化的安装过程了。
解压安装文件
将从 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
解压后会生成一个 database
目录。
配置环境变量并启动安装程序
切换到 oracle
用户,并设置临时环境变量,为了永久生效,可以将这些变量添加到 oracle
用户的 .bash_profile
文件中。
su - oracle export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH
进入 database
目录,执行安装脚本:
./runInstaller
图形化安装界面配置
如果您的服务器支持图形界面,将会弹出 Oracle Universal Installer (OUI) 窗口,请按以下步骤操作:
- 配置安全更新:取消勾选“我希望通过 My Oracle Support 接收安全更新”,点击“下一步”。
- 安装选项:选择“创建和配置数据库”,点击“下一步”。
- 系统类:选择“服务器类”,点击“下一步”。
- 节点安装:选择“单实例数据库安装”,点击“下一步”。
- 安装类型:选择“典型安装”,这是最简单的方式。
- 典型安装配置:
- Oracle 基目录:设置为之前创建的
/u01/app/oracle
。 - 软件位置:通常会自动填充为
$ORACLE_BASE/product/11.2.0/dbhome_1
。 - 存储类型:选择“文件系统”。
- 数据库文件位置:指定一个数据文件存放目录,如
/u01/app/oracle/oradata
。 - 字符集:选择“Unicode标准UTF-8 AL32UTF8”,以支持多语言。
- 全局数据库名和 SID:设置为
orcl
(或您喜欢的名称)。 - 为管理员账户(
SYS
,SYSTEM
,SYSMAN
,DBSNMP
)设置统一的密码。
- Oracle 基目录:设置为之前创建的
- 执行先决条件检查:OUI 会自动检查系统是否满足所有安装条件,如果检查失败,请根据提示修复问题,在确保核心参数正确后,可以勾选“忽略全部”,继续安装。
- 概要:确认安装信息无误后,点击“完成”开始安装。
安装过程中,系统会提示您需要以 root
用户身份执行两个脚本,请打开一个新的终端,切换到 root
用户,并按提示路径执行:
su - root /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
执行完毕后,回到安装界面点击“确定”,安装完成后,OUI 会显示数据库管理界面的访问地址。
安装后配置与验证
安装完成后,还需要进行一些后续配置以确保数据库能够正常启动和远程访问。
配置监听器
监听器是 Oracle 接收远程连接请求的进程,以 oracle
用户执行:
netca
在图形界面中,选择“监听程序配置” -> “添加” -> “监听程序名称”(默认 LISTENER
) -> “协议”(TCP) -> “端口”(默认 1521),完成后启动监听器。
设置数据库开机自启动
编辑 /etc/oratab
文件,将数据库实例 orcl
对应的最后一行的 N
改为 Y
:
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
在 /etc/init.d/
目录下创建一个启动脚本,oracle
,并添加以下内容:
#!/bin/bash # oracle: Start/Stop Oracle Database 11g R2 # # chkconfig: 345 90 10 # description: The Oracle Database is an Object-Relational Database Management System. # . /etc/rc.d/init.d/functions ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1" ORACLE_OWNER="oracle" case "$1" in 'start') echo -n $"Starting Oracle Database:" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" touch /var/lock/subsys/oracle echo "OK" ;; 'stop') echo -n $"Shutting down Oracle Database:" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" rm -f /var/lock/subsys/oracle echo "OK" ;; 'restart') $0 stop $0 start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit 0
赋予脚本执行权限并添加到开机启动项:
chmod +x /etc/init.d/oracle chkconfig --add oracle chkconfig oracle on
验证安装
以 oracle
用户登录,使用 sqlplus
连接数据库:
sqlplus / as sysdba SQL> select instance_name, status from v$instance;
如果能看到实例名和状态为 OPEN
,则说明数据库已成功安装并运行。
相关问答 (FAQs)
问题1:在安装过程中,先决条件检查提示“Swap space”不足,但我无法增加物理交换分区,该如何解决?
解答: 这是一个常见问题,您可以通过创建一个交换文件来临时或永久地增加交换空间。
- 创建交换文件:使用
dd
命令创建一个指定大小的文件,创建一个 4GB 的交换文件:
dd if=/dev/zero of=/swapfile bs=1024 count=4194304
- 格式化为交换空间:
mkswap /swapfile
- 启用交换文件:
swapon /swapfile
- 验证:执行
free -m
或swapon -s
查看交换空间是否已增加。 - 永久生效:编辑
/etc/fstab
文件,在末尾添加一行,使系统重启后自动挂载:
/swapfile swap swap defaults 0 0
完成这些步骤后,重新运行 Oracle 安装程序,先决条件检查应该就能通过了。
问题2:数据库安装成功,本地可以连接,但从其他客户端机器无法连接到数据库,提示“ORA-12170: TNS:Connect timeout occurred”,这是什么原因?
解答: 这通常是防火墙阻止了连接,Oracle 数据库默认使用 1521 端口进行通信,在 CentOS 6.7 中,防火墙服务是 iptables
,您需要开放这个端口。
- 添加防火墙规则:以
root
用户执行以下命令,允许 TCP 1521 端口的入站连接:
iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
- 保存规则:添加的规则在重启后会失效,需要保存配置:
/etc/init.d/iptables save
- 重启防火墙:
service iptables restart
执行完以上操作后,客户端应该就能成功连接到数据库了,如果仍然无法连接,请检查客户端和服务器的网络连通性(如ping
命令)以及监听器是否在服务器上正常运行(lsnrctl status
)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复