oracle在centos配置流程
在CentOS上配置Oracle数据库是一个复杂的过程,涉及多个步骤。以下是一个详细的指南,帮助你在CentOS系统上安装和配置Oracle数据库:
系统准备
-
检查系统要求:
- 操作系统:CentOS 7 或 CentOS 8(推荐 CentOS 7)。
- 内存:至少 2 GB RAM(建议 4 GB 或更高)。
- 磁盘空间:至少 10 GB 用于安装,建议 20 GB 或更多。
- Swap 空间:根据内存大小配置。
-
更新系统:
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 数据库安装包:
访问 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 文件中添加与服务器端相同的配置。文件通常位于以下路径:
- Windows:%ORACLE_HOME%\network\admin\tnsnames.ora
- Linux:$ORACLE_HOME/network/admin/tnsnames.ora
配置防火墙
-
开放 Oracle 监听端口:
默认情况下,Oracle 监听器使用 1521 端口。确保防火墙允许该端口的流量。
在 CentOS 7/8 上开放端口:
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent sudo firewall-cmd --reload
配置 Oracle Net 服务
-
编辑 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
- 服务器端监听器日志: