Oracle 单机和集群环境部署教程
一、Oracle 单机环境部署
1. 环境准备
- 操作系统:Linux(推荐 Oracle Linux、RedHat、CentOS 等),或 Windows Server。
- Oracle 版本:Oracle Database 19c(推荐最新长期支持版本)。
- 硬件要求:
- 内存:至少 8 GB。
- 磁盘空间:至少 45 GB。
- CPU:至少 2 核。
2. 安装 Oracle Database
2.1 下载 Oracle Database
从 Oracle 官网 下载适合你操作系统的 Oracle Database 19c 安装包。
2.2 创建 Oracle 用户和组
在 Linux 上,Oracle 需要独立的用户和组进行管理。
# 创建 Oracle 用户和组
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
2.3 配置内核参数和系统限制
编辑 /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
编辑 /etc/security/limits.conf
,添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2.4 解压和安装
-
解压下载的 Oracle 软件包:
unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
-
切换为 Oracle 用户并运行安装程序:
sudo su - oracle cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller
安装过程将启动图形界面,按照提示完成安装。
2.5 配置监听程序
-
启动监听程序配置工具:
netca
-
按照提示完成监听程序的配置。
2.6 创建数据库
使用 dbca
(Database Configuration Assistant)创建数据库:
dbca
选择创建数据库,设置 SID、存储选项等。
3. 单机部署注意事项
- 系统资源配置:确保 Oracle 数据库有足够的内存和 CPU 资源。
- 监听配置:确保监听程序配置正确,特别是外部访问时要注意开放端口。
- 备份:配置 RMAN 进行定期备份,防止数据丢失。
- 安全性:配置用户权限,确保数据库的安全访问。
二、Oracle 集群环境部署 (Oracle RAC)
Oracle Real Application Cluster (RAC) 允许多个服务器共享一个 Oracle 数据库实例,提供高可用性和负载均衡。
1. 环境准备
- 操作系统:Linux(推荐 Oracle Linux)。
- 集群节点数量:至少 2 台服务器。
- 存储要求:共享存储(例如 ASM、NFS)。
- 网络要求:
- 公共网络:所有节点之间的通信。
- 私有网络:用于节点间心跳检测和数据传输。
2. 安装 Grid Infrastructure
Grid Infrastructure 提供集群服务和共享存储管理。
2.1 下载和解压 Grid Infrastructure 软件
下载 Grid Infrastructure 软件,并解压到每个节点。
unzip linuxx64_193000_grid_home.zip -d /u01/app/19.0.0/grid
2.2 运行 Grid Setup
以 oracle
用户身份执行以下命令:
cd /u01/app/19.0.0/grid
./gridSetup.sh
选择“Configure Oracle Grid Infrastructure for a Cluster”,并根据提示完成安装。
2.3 配置 ASM(Automatic Storage Management)
安装完成后,使用 asmca
配置 ASM 以管理共享存储。
3. 安装 Oracle Database RAC
-
解压 Oracle Database 软件:
解压 Oracle Database 安装包。
-
执行 Oracle 安装程序:
在每个节点上执行安装程序:
./runInstaller
选择“Oracle Real Application Cluster”并安装。
4. 集群部署注意事项
- 共享存储:确保所有节点能够访问共享存储。
- 网络配置:配置私有网络和公共网络,确保集群通信正常。
- 心跳检测:配置好节点之间的心跳检测机制,防止脑裂现象。
- 高可用性:使用 Grid Infrastructure 提供的高可用功能,确保节点故障时自动故障转移。
三、Oracle 使用案例
1. Java 示例:使用 JDBC 连接 Oracle
1.1 添加 Maven 依赖
在 pom.xml
中添加 Oracle JDBC 驱动依赖:
<dependencies>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.8.0.0</version>
</dependency>
</dependencies>
1.2 编写 Java 代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class OracleExample {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:ORCLCDB";
String user = "myuser";
String password = "mypassword";
try {
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employees");
while (rs.next()) {
System.out.println(rs.getString("name") + ", " + rs.getString("position"));
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. Python 示例:使用 cx_Oracle 连接 Oracle
2.1 安装 cx_Oracle
pip install cx_Oracle
2.2 编写 Python 代码
import cx_Oracle
def query_database():
conn = cx_Oracle.connect("myuser/mypassword@localhost:1521/ORCLCDB")
cursor = conn.cursor()
cursor.execute("SELECT * FROM employees")
for row in cursor:
print(row)
cursor.close()
conn.close()
if __name__ == "__main__":
query_database()
总结
通过以上步骤,我们完成了 Oracle 单机和集群环境的部署,并实现了 Java 和 Python 的简单连接示例。Oracle 数据库作为企业级数据库管理系统,适用于各种高可用性和高性能需求的场景。
部署过程中的注意事项
- 硬件要求:确保服务器满足 Oracle 数据库的资源要求,尤其是 RAC 集群部署。
- 网络配置:在集群环境下,确保网络配置正确,特别是节点间通信和存储访问。
- 存储管理:在 RAC 中使用 ASM 管理共享存储,确保数据高效管理和安全性。
- 安全性:配置用户权限、启用 SSL 和网络加密,确保数据安全。
原文地址:https://blog.csdn.net/qq_42568323/article/details/142412868
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!