在CentOS上搭建Oracle环境是一个复杂的过程,涉及多个步骤。以下是一个基本的指南,帮助你在CentOS上安装Oracle 19c。请注意,这个过程可能需要根据你的具体需求进行调整。
准备工作
-
设置主机名:
sudo hostnamectl set-hostname db
-
安装依赖包:
sudo yum install libnsl libnsl2-devel libaio-devel libcap-devel xorg-x11-utils xauth gcc make libstdc++-devel sysstat smartmontools glibc-compat-2.17
-
关闭SELinux:
sudo setenforce 0 sudo vi /etc/selinux/config # 将 SELINUX=enforcing 改为 SELINUX=disabled
-
创建用户和组:
sudo groupadd oinstall sudo groupadd dba sudo useradd -g oinstall -g dba oracle sudo passwd oracle
-
修改内核参数:
sudo vi /etc/sysctl.conf # 添加以下内容 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1073741824 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 sudo sysctl -p
-
配置用户参数:
sudo vi /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文件:
sudo vi /etc/pam.d/login # 添加以下内容 session required pam_limits.so
-
修改/etc/profile文件:
sudo vi /etc/profile # 添加以下内容 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi source /etc/profile
安装Oracle 19c
-
下载安装包: 从Oracle官方网站下载适用于CentOS的Oracle 19c安装包。
-
解压安装包:
unzip oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
-
创建目录并上传安装文件:
sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 sudo chown -R oracle:oinstall /u01
-
执行安装程序:
cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller -silent -responseFile /path/to/response_custom.rsp
配置与测试
-
配置环境变量:
sudo vi ~/.bashrc # 添加以下内容 export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=ORCL export PATH=$PATH:$ORACLE_HOME/bin source ~/.bashrc
-
创建数据库实例:
sudo su - oracle sqlplus / as sysdba CREATE DATABASE orcl
-
测试数据库连接:
sqlplus /nolog
常见问题及解决方案
- 内存不足:确保在配置系统参数时合理分配内存。
- 数据库启动失败:检查监听器配置及数据库日志,确定问题所在并采取相应的解决方案。
以上步骤提供了一个基本的框架,但在实际操作中可能需要根据具体情况进行调整和优化。