当前位置: 首页 > news >正文

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

目录

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

# 创建 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 解压和安装
  1. 解压下载的 Oracle 软件包

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

    sudo su - oracle
    cd /u01/app/oracle/product/19.0.0/dbhome_1
    ./runInstaller
    

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

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

    netca
    
  2. 按照提示完成监听程序的配置。

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

  1. 解压 Oracle Database 软件

    解压 Oracle Database 安装包。

  2. 执行 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_Oracledef 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 和网络加密,确保数据安全。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JUC高并发编程1:JUC概述
  • 【学习笔记】IOC容器
  • 用工厂模式演示springboot三种注入方式 | @Autowired
  • C++基础知识7 list
  • css如何设置间距
  • Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐
  • zabbix入门单机部署
  • SpringBoot如何在使用MongoRepository时启用@Created
  • Laravel邮件发送:从配置到发邮件的指南!
  • 《程序猿之设计模式实战 · 观察者模式》
  • 随机掉落的项目足迹:100vh - 50px——减法居然还能这么玩儿?
  • Apifox 「定时任务」操作指南,解锁自动化测试的新利器
  • MATLAB系列09:图形句柄
  • Java 微服务框架 HP-SOA v1.1.4
  • sudo yum remove 误删 恢复
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • CSS中外联样式表代表的含义
  • express.js的介绍及使用
  • gitlab-ci配置详解(一)
  • in typeof instanceof ===这些运算符有什么作用
  • interface和setter,getter
  • IOS评论框不贴底(ios12新bug)
  • js 实现textarea输入字数提示
  • MySQL用户中的%到底包不包括localhost?
  • React的组件模式
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 简单易用的leetcode开发测试工具(npm)
  • 码农张的Bug人生 - 初来乍到
  • -- 数据结构 顺序表 --Java
  • kubernetes资源对象--ingress
  • 从如何停掉 Promise 链说起
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #pragma 指令
  • #预处理和函数的对比以及条件编译
  • (C语言)二分查找 超详细
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (备忘)Java Map 遍历
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (循环依赖问题)学习spring的第九天
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (一)SvelteKit教程:hello world
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • ./configure、make、make install 命令
  • .Mobi域名介绍
  • .NET CLR Hosting 简介
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net framework profiles /.net framework 配置
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET的微型Web框架 Nancy
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验