在CentOS上配置Oracle数据库是一个复杂的过程,涉及多个步骤。以下是一个详细的指南,帮助你在CentOS系统上安装和配置Oracle数据库:
检查系统要求:
更新系统:
sudo yum update -y
安装必要的依赖包:
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 用户和组:
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle
配置内核参数:
编辑 /etc/sysctl.conf 文件,添加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
配置用户限制:
编辑 /etc/security/limits.conf 文件,添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
配置 PAM 模块:
编辑 /etc/pam.d/login 文件,添加以下内容:
session required pam_limits.so
创建 Oracle 安装目录:
sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
下载 Oracle 数据库安装包:
访问 Oracle 官方网站,下载适用于 Linux x86_64 的 Oracle 数据库安装包(如 Oracle 19c)。
上传安装包到服务器:
将下载的安装包上传到 CentOS 服务器的 /u01/app/oracle 目录。
解压安装包:
cd /u01/app/oracle
unzip LINUX.X64_193000_db_home.zip
在服务器端配置 tnsnames.ora:
编辑 $ORACLE_HOME/network/admin/tnsnames.ora 文件,添加以下内容:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <服务器IP或主机名>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) # 全局数据库名 ) )
将 <服务器IP或主机名> 替换为服务器的实际 IP 地址或主机名。
在客户端配置 tnsnames.ora:
在客户端的 tnsnames.ora 文件中添加与服务器端相同的配置。文件通常位于以下路径:
开放 Oracle 监听端口:
默认情况下,Oracle 监听器使用 1521 端口。确保防火墙允许该端口的流量。
在 CentOS 7/8 上开放端口:
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
sudo firewall-cmd --reload
编辑 sqlnet.ora 文件:
编辑 $ORACLE_HOME/network/admin/sqlnet.ora 文件,确保以下配置:
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES= (NTS)
使用 SQL*Plus 测试连接:
在客户端使用 SQL*Plus 测试远程连接:
sqlplus username/password@ORCL
将 username 和 password 替换为实际的数据库用户名和密码。
使用 TNSPING 测试连接:
在客户端使用 tnsping 测试网络服务名配置:
tnsping ORCL
如果配置正确,会显示类似以下内容:
Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <服务器IP或主机名>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) OK (10 msec)
检查数据库监听地址:
确保数据库监听地址正确。可以通过以下 SQL 查询检查:
SELECT * FROM v$listener_network;
检查数据库服务名:
确保数据库服务名正确。可以通过以下 SQL 查询检查:
SELECT name, value FROM v$parameter WHERE name = 'service_names';
检查客户端和服务器的时间同步:
确保客户端和服务器的时间同步,否则可能会导致连接问题。
检查日志文件:
如果连接失败,检查以下日志文件以获取更多信息:
$ORACLE_HOME/network/log/listener.log$ORACLE_HOME/network/log/sqlnet.log