Oracle 单机和集群环境部署教程

目录

    • [一、Oracle 单机环境部署](#一、Oracle 单机环境部署)
      • [1. 环境准备](#1. 环境准备)
      • [2. 安装 Oracle Database](#2. 安装 Oracle Database)
        • [2.1 下载 Oracle Database](#2.1 下载 Oracle Database)
        • [2.2 创建 Oracle 用户和组](#2.2 创建 Oracle 用户和组)
        • [2.3 配置内核参数和系统限制](#2.3 配置内核参数和系统限制)
        • [2.4 解压和安装](#2.4 解压和安装)
        • [2.5 配置监听程序](#2.5 配置监听程序)
        • [2.6 创建数据库](#2.6 创建数据库)
      • [3. 单机部署注意事项](#3. 单机部署注意事项)
    • [二、Oracle 集群环境部署 (Oracle RAC)](#二、Oracle 集群环境部署 (Oracle RAC))
      • [1. 环境准备](#1. 环境准备)
      • [2. 安装 Grid Infrastructure](#2. 安装 Grid Infrastructure)
        • [2.1 下载和解压 Grid Infrastructure 软件](#2.1 下载和解压 Grid Infrastructure 软件)
        • [2.2 运行 Grid Setup](#2.2 运行 Grid Setup)
        • [2.3 配置 ASM(Automatic Storage Management)](#2.3 配置 ASM(Automatic Storage Management))
      • [3. 安装 Oracle Database RAC](#3. 安装 Oracle Database RAC)
      • [4. 集群部署注意事项](#4. 集群部署注意事项)
    • [三、Oracle 使用案例](#三、Oracle 使用案例)
      • [1. Java 示例:使用 JDBC 连接 Oracle](#1. Java 示例:使用 JDBC 连接 Oracle)
        • [1.1 添加 Maven 依赖](#1.1 添加 Maven 依赖)
        • [1.2 编写 Java 代码](#1.2 编写 Java 代码)
      • [2. Python 示例:使用 cx_Oracle 连接 Oracle](#2. Python 示例:使用 cx_Oracle 连接 Oracle)
        • [2.1 安装 cx_Oracle](#2.1 安装 cx_Oracle)
        • [2.2 编写 Python 代码](#2.2 编写 Python 代码)
    • 总结

一、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 需要独立的用户和组进行管理。

bash 复制代码
# 创建 Oracle 用户和组
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
2.3 配置内核参数和系统限制

编辑 /etc/sysctl.conf,添加以下内容:

bash 复制代码
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

应用配置:

bash 复制代码
sudo sysctl -p

编辑 /etc/security/limits.conf,添加以下内容:

bash 复制代码
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2.4 解压和安装
  1. 解压下载的 Oracle 软件包

    bash 复制代码
    unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
  2. 切换为 Oracle 用户并运行安装程序

    bash 复制代码
    sudo su - oracle
    cd /u01/app/oracle/product/19.0.0/dbhome_1
    ./runInstaller

安装过程将启动图形界面,按照提示完成安装。

2.5 配置监听程序
  1. 启动监听程序配置工具

    bash 复制代码
    netca
  2. 按照提示完成监听程序的配置。

2.6 创建数据库

使用 dbca(Database Configuration Assistant)创建数据库:

bash 复制代码
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 软件,并解压到每个节点。

bash 复制代码
unzip linuxx64_193000_grid_home.zip -d /u01/app/19.0.0/grid
2.2 运行 Grid Setup

oracle 用户身份执行以下命令:

bash 复制代码
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

  1. 解压 Oracle Database 软件

    解压 Oracle Database 安装包。

  2. 执行 Oracle 安装程序

    在每个节点上执行安装程序:

    bash 复制代码
    ./runInstaller

    选择"Oracle Real Application Cluster"并安装。

4. 集群部署注意事项

  • 共享存储:确保所有节点能够访问共享存储。
  • 网络配置:配置私有网络和公共网络,确保集群通信正常。
  • 心跳检测:配置好节点之间的心跳检测机制,防止脑裂现象。
  • 高可用性:使用 Grid Infrastructure 提供的高可用功能,确保节点故障时自动故障转移。

三、Oracle 使用案例

1. Java 示例:使用 JDBC 连接 Oracle

1.1 添加 Maven 依赖

pom.xml 中添加 Oracle JDBC 驱动依赖:

xml 复制代码
<dependencies>
    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>19.8.0.0</version>
    </dependency>
</dependencies>
1.2 编写 Java 代码
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
bash 复制代码
pip install cx_Oracle
2.2 编写 Python 代码
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 和网络加密,确保数据安全。
相关推荐
小诸葛的博客10 分钟前
pg入门12—pg中的subscriptions是什么
数据库·oracle
Flying_Fish_roe12 分钟前
Flyway 数据库差异处理
数据库·oracle
TTBIGDATA1 小时前
【ranger编译报错】cloudera-manager-api-swaggerjar7.0.3 not found
java·大数据·数据库·hadoop·oracle·ambari·cloudera
AmHardy2 小时前
系统架构设计师 数据库篇
数据库·mysql·postgresql·oracle·sqlserver·系统架构
Leoysq2 小时前
Oracle 数据库常用命令与操作指南
数据库·笔记·oracle
天蓝蓝235282 小时前
MySQL数据库的备份与恢复
数据库·mysql·oracle
Leoysq2 小时前
Navicate 链接Oracle 提示 Oracle Library is not loaded ,账号密码都正确地址端口也对
数据库·oracle
Q186000000005 小时前
用java语言写一个表的查询操作
java·开发语言·oracle
好看资源平台16 小时前
Oracle 数据库安装和配置教程
oracle