在 Linux 系统上部署 Oracle 数据库涉及多个步骤

在 Linux 系统上部署 Oracle 数据库涉及多个步骤,包括安装 Oracle 数据库软件、配置环境以及启动和管理数据库实例。以下是一般的安装过程,假设你正在使用 Oracle Linux 或兼容的 Linux 发行版(如 CentOS、RHEL)。这个指南基于 Oracle Database 19c 或更高版本,步骤大体相同。

1. 准备工作

在开始安装之前,确保你的系统符合 Oracle 数据库的最低硬件和软件要求。以下是基本的准备工作:

1.1 安装必要的依赖包

Oracle 数据库需要一些操作系统级别的依赖包来支持其安装和运行。在 Oracle Linux 上,你可以通过以下命令安装必要的包:

sudo yum install -y binutils gcc make sysstat ksh
sudo yum install -y compat-libcap1 compat-libstdc++-33 glibc libaio libaio-devel
sudo yum install -y libgcc libstdc++ libXi libXtst libX11
1.2 配置系统内核参数和文件描述符限制

Oracle 对内核参数有一定要求,因此你需要根据 Oracle 文档调整 /etc/sysctl.conf 文件和用户的限制。

编辑 /etc/sysctl.conf 文件,添加以下行(或者确认已存在):

fs.file-max = 6815744
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500

应用这些内核参数:

sudo sysctl -p

修改 /etc/security/limits.conf 文件,添加以下行:

oracle   soft   nofile   1024
oracle   hard   nofile   65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384

编辑 /etc/pam.d/login 文件,确保启用 pam_limits 模块:

session required pam_limits.so
1.3 创建 Oracle 用户和组

Oracle 数据库需要一个专用的系统用户和组来运行。你可以使用以下命令创建用户和组:

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle

设置 Oracle 用户密码:

sudo passwd oracle
1.4 设置交换分区和内存

确保系统有足够的内存和交换空间。Oracle 推荐至少 8GB 的交换分区。

sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
sudo mkswap /swapfile
sudo swapon /swapfile

2. 下载 Oracle 安装文件

前往 Oracle 官网 下载所需版本的 Oracle 数据库安装包。通常,Oracle 提供多个压缩文件,你需要下载所有相关的 .rpm 文件。

# 下载的文件应该包括类似以下的文件:

# oracle-database-ee-19c-1.0-1.x86_64.rpm

# oracle-database-preinstall-19c-1.0-1.x86_64.rpm

3. 安装 Oracle 数据库

在 Linux 系统中,Oracle 提供了一个预安装包,通常称为 oracle-database-preinstall,它会自动为你配置必要的环境。首先,安装 Oracle 的预安装包:

sudo yum localinstall oracle-database-preinstall-19c-1.0-1.x86_64.rpm

然后,安装 Oracle 数据库软件包:

sudo yum localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm

4. 配置 Oracle 环境

4.1 配置 Oracle 环境变量

oracle 用户下,编辑 ~/.bash_profile 文件,设置 Oracle 的环境变量:

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

应用配置:

source ~/.bash_profile
4.2 配置 Oracle 数据库

运行以下命令来启动 Oracle 数据库安装程序,并完成初步配置:

sudo /etc/init.d/oracledb_ORCLCDB configure

此命令会自动创建数据库实例,并初始化必要的文件系统结构。你可以按照提示输入密码和其他设置。

5. 启动 Oracle 数据库

配置完成后,启动 Oracle 数据库:

sudo systemctl start oracle-rdbms.service

你可以通过以下命令检查 Oracle 服务状态:

sudo systemctl status oracle-rdbms.service

6. 访问 Oracle 数据库

安装并启动 Oracle 数据库后,你可以使用 sqlplus 连接到数据库:

sqlplus / as sysdba

登录后,你可以执行 SQL 查询、创建表格或执行其他数据库操作。

7. 设置开机自启

你可以配置 Oracle 数据库在系统启动时自动启动:

sudo systemctl enable oracle-rdbms.service

8. 清理与维护

Oracle 数据库安装完成后,定期检查系统日志、进行备份以及优化数据库性能是必不可少的。

总结

部署 Oracle 数据库在 Linux 上的过程比较复杂,需要对系统进行详细配置并安装依赖包。通过遵循上述步骤,应该可以成功地在 Linux 系统上安装和配置 Oracle 数据库。记得定期检查 Oracle 的文档和补丁,确保数据库的安全性和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/17359.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

从0-1训练自己的数据集实现火焰检测

随着工业、建筑、交通等领域的快速发展,火灾作为一种常见的灾难性事件,对生命财产安全造成了严重威胁。为了提高火灾的预警能力,减少火灾损失,火焰检测技术应运而生,成为火灾监控和预防的有效手段之一。 传统的火灾检测方法,如烟雾探测器、温度传感器等,存在响应时间慢…

小程序20-样式:自适应尺寸单位 rpx

手机设备的宽度逐渐多元化,也就需要开发者开发过程中,去适配不同屏幕宽度的手机,为了解决屏幕适配问题,微信小程序推出了 rpx 单位 rpx:小程序新增的自适应单位,可以根据不同设备的屏幕宽度进行自适应缩放 …

在Ubuntu系统中,默认情况下会安装`apt`作为包管理工具(Advanced Package Tool)

文章目录 方法一:使用命令行检查apt是否存在方法二:尝试运行一个apt命令方法三:查看包列表如果apt没有安装主要功能高级用法注意事项 在Ubuntu系统中,默认情况下会安装 apt作为包管理工具。你可以通过以下几种方法来检查系统中是…

Github 2024-11-16Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-11-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Go项目1Python项目1Lapce:用 Rust 编写的极快且强大的代码编辑器 创建周期:2181 天开发语言:Rust协议类型:Apache License 2.0St…

C++:基于红黑树封装map和set

目录 红黑树的修改 红黑树节点 红黑树结构 红黑树的迭代器 红黑树Insert函数 红黑树的默认成员函数 修改后完整的红黑树 set、map的模拟实现 set map 测试封装的set和map 红黑树的修改 想要用红黑树封装map和set,需要对之前实现的key-value红黑树进行修…

LeetCode 3240.最少翻转次数使二进制矩阵回文 II:分类讨论

【LetMeFly】3240.最少翻转次数使二进制矩阵回文 II:分类讨论 力扣题目链接:https://leetcode.cn/problems/minimum-number-of-flips-to-make-binary-grid-palindromic-ii/ 给你一个 m x n 的二进制矩阵 grid 。 如果矩阵中一行或者一列从前往后与从后…

在kile 5中一个新工程的创建

这两天博主学习到了在kile5中创建一个工程,当然博主不会忘了小伙伴们的,这就和你们分享。 本次创建以STM32F103C8为例 创建过程: 1首先创建文件 名字随意,但也不要太随意,因为是外国软件,所以多少对中文…

深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras

引言 在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码…

2024-11-16 特殊矩阵的压缩存储

一、数组的存储结构 1.一维数组:各元素大小相同,且物理上连续存放。a[i]起始地址i*siezof(数组元素大小) 2.二维数组:b[j][j]起始地址(i*Nj)*sizeof(数组元素大小) 二、特殊矩阵 1.普通矩阵的存储:使用…

ISCTF2024

ezlogin 源码审计 先审源码,纯js题 const express require(express); const app express(); const bodyParser require(body-parser); var cookieParser require(cookie-parser); var serialize require(node-serialize); app.use(bodyParser.urlencoded({ e…

leetcode226:反转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出:[2,3,1]示例 3&#x…

Excel365和WPS中提取字符串的五种方法

一、问题的提出 如何在WPS或者Excel365中提取A列指定的字符串,从"面"开始一直到".pdf"? 问题的提出 二、问题的分析 我们可以采用多种方法解决这个问题,由于A列到B列的提取是非常有规律的,因此我们可以采用如下几种方…

下载jakarta-taglibs-standard-current.zip

官网:https://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 下载版本:

Qt信号和槽

信号和槽的概念 在Linux中我们也学过信号 Signal,这是进程间通信的一种方式,这里大致分为三个要素: 信号源:谁发送的信号(用户进程,系统内核,终端或者作业控制,) 信号的类…

MATLAB绘图

一、实验内容和步骤 MATLAB的图形功能非常强大,可以对二维、三维数据用图形表现,并可以对图形的线形、曲面、视觉、色彩和光线等进行处理。 1、绘制二维曲线 绘制如下图所示的图形,把图形窗口分割为2列2行,在窗口1中绘制一条正弦…

H3C NX30Pro刷机教程-2024-11-16

H3C NX30Pro刷机教程-2024-11-16 ref: http://www.ttcoder.cn/index.php/2024/11/03/h3c-nx30pro亲测无需分区备份 路由器-新机初始化设置路由器登录密码telnet进入路由器后台 刷机上传uboot到路由器后台在Windows环境下解压后的软件包中打开 tftpd64.exe在NX30Pro环境下通过以…

boost之property

简介 property在boost.graph中有使用,用于表示点属性或者边属性 结构 #mermaid-svg-56YI0wFLPH0wixrJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-56YI0wFLPH0wixrJ .error-icon{fill:#552222;}#me…

[C++] 智能指针

文章目录 智能指针的使用原因及场景分析为什么需要智能指针?异常抛出导致的资源泄漏问题分析 智能指针与RAIIC常用智能指针 使用智能指针优化代码优化后的代码优化点分析 析构函数中的异常问题解决方法 RAII 和智能指针的设计思路详解什么是 RAII?RAII 的…

Android数据存储

前言 在前面,我们已经学了控件和布局,那么我们在存储数据的时候,并不能持久化的存储,所以我们需要来学习一些如何持久化存储数据的方式. 数据存储方式 文件存储:在android中提供了openFileInput()方法和openFileOut…

Java基础——多线程

1. 线程 是一个程序内部的一条执行流程程序中如果只有一条执行流程,那这个程序就是单线程的程序 2. 多线程 指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行) 2.1. 如何创建多条线程 Java通过java.lang.Thread类的对象…