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 解压和安装
-
解压下载的 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_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 和网络加密,确保数据安全。
相关文章:
Oracle 单机和集群环境部署教程
目录 一、Oracle 单机环境部署1. 环境准备2. 安装 Oracle Database2.1 下载 Oracle Database2.2 创建 Oracle 用户和组2.3 配置内核参数和系统限制2.4 解压和安装2.5 配置监听程序2.6 创建数据库 3. 单机部署注意事项 二、Oracle 集群环境部署 (Oracle RAC)1. 环境准备2. 安装 …...
springboot 整合酷狗获取MV视频最高画质(使用自己账户)
在此声明,本内容仅供个人学习、研究或娱乐之用,严禁任何形式的商业用途。若您发现本内容被用于商业目的,请立即删除,及时与小编联系,我们将删除原代码。 请根据上一篇文章使用该代码:SpringBoot 整合酷狗获…...

数字孪生平台,助力制造设备迈入超感知与智控新时代!
痛点剖析 当前,制造业面临系统分散导致的数据孤岛问题,严重阻碍了有效监管与统计分析;同时,设备多样化且兼容性不足,增加了管理难度;台账记录方式混乱,工单审批流程繁琐且效率低下;…...

音视频入门基础:AAC专题(10)——FFmpeg源码中计算AAC裸流每个packet的pts、dts、pts_time、dts_time的实现
音视频入门基础:AAC专题系列文章: 音视频入门基础:AAC专题(1)——AAC官方文档下载 音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件 音视频入门基础:AAC…...

pycirclize python包画circos环形图
pycirclize python包画circos环形图 很多小伙伴都有画环形图的需求,网上也有很多画环形图的教程,讲解circos软件和circlize R包的比较多,本文介绍一款python包:pyCirclize。适合喜欢python且希望更灵活作图的小伙伴。 pyCirclize包实际上也…...
Redis Sorted Set 跳表的实现原理和分析
跳表(Skip List)是一种随机化的数据结构,基于有序链表,通过在链表上增加多级索引来提高数据的查找效率。它是由 William Pugh 在 1990 年提出的。 为什么 Redis 中的 Sorted Set 使用跳跃表 Redis 的有序集合(Sorted …...

新手教学系列——在MySQL分表中批量调整表结构的实践与优化
在当今的互联网业务中,随着数据量的不断增长,单个数据库的处理能力往往难以满足高并发、高性能的要求。因此,分库分表已经成为解决数据库扩展性问题的主流方案之一。然而,分表虽然能有效提升数据库的读写性能,但也带来了一个新的挑战:当业务需求变化时,需要对大量分表进…...

解决事务提交延迟问题:Spring中的事务绑定事件监听机制解析
目录 一、背景二、事务绑定事件介绍三、事务绑定事件原理四、结语 一、背景 实际工作中碰到一个场景,现存系统有10w张卡需要进行换卡,简单来说就是为用户生成一张新卡,批量换卡申请需要进行审核,审核通过后异步进行处理。 为什么…...

Python 异步编程的秘密武器:Asyncio
python编程中,异步编程是一个重要概念。它允许我们在等待某些操作(如网络请求或文件读写)时,不阻塞程序的其他部分运行。 在 Python 中,asyncio 是实现异步编程的强大工具。今天,我们将一同探索 asyncio 的…...

10年计算机考研408-计算机网络
【题33】下列选项中,不属于网络体系结构所描述的内容是() A.网络的层次 B.每一层使用的协议 C.协议的内部实现细节 D.每一层必须完成的功能 解析: 本题考查的是网络体系结构相关的概念。 图1描述了网络的7层架构以及每一层所要完成…...
深信服校招面试总结
许久没有更新博客,这两个月里发生的事情有些多。最近稍微稳定下来了,应该可以重新开始吧。 背景 首先感觉自己的笔试做的还行,除了第三个编程题没做出来,其他的应该都做出来了。当时忘记并查集的路径压缩怎么写了,加上…...

【LeetCode热题100】模拟
这篇博客记录了模拟相关的题目,也就是按照题目的描述写代码,很锻炼代码实现能力,包括了替换所有的问号、Z字形变换、外观数列、数青蛙4道题。 class Solution { public:string modifyString(string s) {int n s.size();for(int i 0 ; i <…...

如何在Chrome最新浏览器中调用ActiveX控件?
小编最近登陆工商银行网上银行,发现工商银行的个人网银网页,由于使用了ActiveX安全控件,导致不能用高版本Chrome浏览器打开,目前只有使用IE或基于IE内核的浏览器才能正常登录网上银行,而IE已经彻底停止更新了ÿ…...

一款好用的远程连接工具:MobaXterm
在日常工作中,作为开发者或运维人员,你是否经常需要远程连接服务器进行调试和管理?传统的SSH工具常常不够灵活,操作繁琐,无法满足日益复杂的工作需求。而MobaXterm的出现,带来了远程连接工具的全新体验。它…...

Spring Boot使用配置方式整合MyBatis
文章目录 一、实战目标二、步骤概览1. 创建部门映射器接口2. 创建映射器配置文件3. 配置全局映射器4. 测试映射器接口 三、详细步骤1、创建部门映射器接口2、创建映射器配置文件3、配置全局映射器4、测试映射器接口 四、结语 一、实战目标 在本实战课程中,我们将学…...
HarmonyOS第一课-应用程序框架基础习题答案
声明:本题库为最新的HarmonyOS第一课的学习题库,仅供参考学习! 一、判断题 1. 在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。(正确) 正确(True) 错误(False) -…...
滚雪球学SpringCloud[10.2讲]:微服务项目的性能优化与调优
全文目录: 前言性能优化与调优概述性能优化的核心目标常见的性能瓶颈来源 性能瓶颈分析与调优策略1. 服务间通信优化优化策略: 2. 数据库优化优化策略: 3. 线程池优化优化策略: 4. 缓存优化优化策略: 常见问题的排查与解决1. 慢查…...

EasyExcel将数据库里面的数据生成excel文件
EasyExcel官方文档 1.在model模块导入依赖 <!-- 生成报表--> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.3</version> </dependency> 2.修饰实体类 package…...

【YOLO学习】YOLOv1详解
文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…...

HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)
致力于,UI开发拿来即用,提高开发效率 常量格式枚举enum格式正则表达式...手机号校验...邮箱校验 文件判断文件是否存在 网络下载下载图片从沙箱中图片转为Base64格式从资源文件中读取图片转Base64 组件输入框...矩形输入框...输入框堆叠效果(…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...