oracle数据库安装和配置详细讲解

在这里插## 标题入图片描述

大家好,我是程序员小羊!

前言:

Oracle 数据库是全球广泛使用的关系型数据库管理系统 (RDBMS),提供高性能、可靠性、安全性和可扩展性,广泛应用于企业关键任务系统。下面详细介绍如何在 CentOS 系统上安装和配置 Oracle 数据库。

1. 前提条件

1.1 硬件要求
  • 内存:最小 1GB,推荐 2GB 以上。
  • 硬盘:至少 10GB 的可用空间,视具体应用需求而定。
1.2 软件要求
  • 操作系统:CentOS 7 或 CentOS 8(确保操作系统为 64 位)。
  • 用户和组:安装 Oracle 数据库需要创建 oracle 用户,并为其分配合适的用户组和权限。
  • 依赖包:安装前,确保操作系统具备 Oracle 安装所需的依赖库和工具。

2. 下载 Oracle 数据库

  1. 访问 Oracle 官方下载页面。
  2. 根据系统架构选择对应的 Oracle 数据库版本(建议下载 Oracle 19c 或更高版本)。
  3. 下载 rpmzip 安装包到 CentOS 系统中。

3. 安装前的系统配置

3.1 配置主机名

Oracle 数据库要求系统有正确的主机名配置:

hostnamectl set-hostname yourhostname
3.2 关闭 SELinux 和防火墙

在安装期间建议关闭 SELinux 和防火墙,以免影响安装过程:

# 暂时关闭 SELinux
setenforce 0# 修改 SELinux 配置文件,永久禁用
vi /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.3 安装依赖包

Oracle 数据库依赖于一些特定的库和工具包。可以使用 yum 安装这些依赖包:

yum install -y binutils compat-libcap1 compat-libstdc++ gcc gcc-c++ glibc glibc-devel \
libaio libaio-devel libXext libXtst libX11 libXau libXi make sysstat ksh
3.4 创建 Oracle 用户和组

Oracle 数据库需要运行在特定的用户和用户组下:

groupadd -g 54321 oinstall
groupadd -g 54322 dba
useradd -u 54321 -g oinstall -G dba oracle
passwd oracle  # 设置密码
3.5 配置系统内核参数

为确保 Oracle 正常运行,需要调整一些内核参数。编辑 /etc/sysctl.conf

vi /etc/sysctl.conf

添加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

应用内核参数:

sysctl -p
3.6 配置用户资源限制

编辑 /etc/security/limits.conf,为 oracle 用户设置系统资源限制:

vi /etc/security/limits.conf

添加以下内容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
3.7 创建 Oracle 安装目录

为 Oracle 数据库创建安装和数据文件的存放目录,并为 oracle 用户设置权限:

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01

4. 安装 Oracle 数据库

4.1 解压安装包

如果下载的是 zip 文件,解压到 Oracle 用户的目录中:

unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
4.2 配置环境变量

切换到 oracle 用户并配置环境变量。编辑 .bash_profile 文件:

su - oracle
vi ~/.bash_profile

添加以下内容:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

加载环境变量:

source ~/.bash_profile
4.3 运行安装程序

oracle 用户身份进入解压后的安装目录,并启动 Oracle Universal Installer:

cd $ORACLE_HOME
./runInstaller

安装程序将启动一个图形界面,以下是安装流程的主要步骤:

  1. 配置文件位置:选择安装位置,一般保持默认。
  2. 安装类型:选择 Create and Configure a database(创建并配置数据库)。
  3. 典型安装:根据提示填写全局数据库名和管理员密码。
  4. 先决条件检查:安装程序会自动检查系统是否满足安装需求,必要时根据提示安装缺少的包。
  5. 开始安装:点击开始安装,安装完成后执行提示的脚本,如 /u01/app/oracle/root.sh

5. 数据库配置

5.1 数据库监听程序配置

安装完成后,配置监听程序以允许远程连接数据库。可以使用 netca 配置网络监听:

netca

按照提示配置监听服务,选择默认值即可。

5.2 创建 Oracle 数据库

使用 dbca 工具创建新的数据库:

dbca
  • 选择 Create a Database(创建数据库)。
  • 选择数据库类型(典型或自定义配置)。
  • 设置数据库名称(如 orcl)和管理员密码。
  • 选择数据库存储位置,推荐使用 ASM 或文件系统。
  • 设置内存分配、字符集和数据库文件位置。
  • 最后,点击完成开始创建数据库。
5.3 启动和停止 Oracle 实例
  • 启动数据库:
    sqlplus / as sysdba
    startup
    
  • 停止数据库:
    sqlplus / as sysdba
    shutdown immediate
    

6. 配置自动启动

要使 Oracle 数据库和监听程序在系统启动时自动启动,编辑 /etc/oratab 文件,将最后的 N 修改为 Y

orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y

然后,创建一个启动脚本 /etc/rc.d/init.d/oracle,内容如下:

#!/bin/bash
# Oracle auto start-stop script.
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
case "$1" in'start')su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"su - oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
startup
EOF";;'stop')su - oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
shutdown immediate
EOF"su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop";;*)echo "Usage: $0 {start|stop}"exit 1;;
esac
exit 0

设置脚本权限并将其添加为服务:

chmod 750 /etc/rc.d/init.d/oracle
chkconfig --add oracle

7. 连接 Oracle 数据库

通过 sqlplus 连接 Oracle 数据库:

sqlplus sys as sysdba

输入管理员密码后可以执行 SQL 命令管理数据库。要从其他计算机连接,可以使用 Oracle SQL Developer 工具,指定数据库 IP、端口和 SID 进行连接。

8. 总结

在 CentOS 上安装和配置 Oracle 数据库涉及多个步骤,包括系统准备、依赖包安装、数据库安装与配置,以及网络监听与数据库创建。掌握这些步骤后,你可以轻松地在 CentOS 系统上部署 Oracle 数据库,并进行日常管理。

结尾

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树

在安卓源码的设计中&#xff0c;将将屏幕分为了37层&#xff0c;不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析&#xff0c;整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

智能家居环境监测系统设计(论文+源码)

1. 系统方案 系统由9个部分构成&#xff0c;分别是电源模块、烟雾传感器模块、GSM发送短信模块、报警模块、温度传感器模块、人体红外感应模块、按键设置模块、显示模块、MCU模块。各模块的作用如下&#xff1a;电源模块为系统提供电力&#xff1b;烟雾传感器模块检测烟雾浓度&…

[项目实战]EOS多节点部署

文章总览&#xff1a;YuanDaiMa2048博客文章总览 EOS多节点部署 &#xff08;一&#xff09;环境设计&#xff08;二&#xff09;节点配置&#xff08;三&#xff09;区块信息同步&#xff08;四&#xff09;启动节点并验证同步EOS单节点的环境如何配置 &#xff08;一&#xf…

开放系统,面向各类业务需求可提供定制化服务的智慧物流开源了

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的…

计算机毕业设计 智慧物业服务系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Python数据分析 Pandas库-初步认识

Python数据分析 Pandas库-初步认识 认识Pandas ​ pandas是一个非常实用的Python工具&#xff0c;我们可以把它想象成一个超级强大的表格处理工具&#xff0c;它比Excel更智能&#xff0c;操作更为简单。pands可以从各种文件格式&#xff08;CSV、JSON、SQL、Excel&#xff0…

ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯

IGT-DSER智能网关模块支持西门子、三菱、欧姆龙、罗克韦尔AB等各种品牌的PLC之间通讯&#xff0c;同时也支持PLC与Modbus协议的工业机器人、智能仪表、变频器等设备通讯。网关有多个网口、串口&#xff0c;也可选择WIFI无线通讯。无需PLC内编程开发&#xff0c;只要在IGT-DSER智…

AI大模型与产品经理:替代与合作的深度剖析

在创业的征途中&#xff0c;产品经理常常被外界以一种半开玩笑的口吻提及&#xff1a;“就差一个程序员了。”这句话背后&#xff0c;既蕴含着对产品经理创意与策略能力的认可&#xff0c;也揭示了技术实现环节对于产品成功不可或缺的重要性。然而&#xff0c;随着AI技术的飞速…

2024年微电子与纳米技术国际研讨会(ICMN 2024) Microelectronics and Nanotechnology

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网&#xff1a;https://ais.cn/u/vEbMBz提交检索&#xff1a;EI Compendex、IEEE Xplore、Scopus大会时间&#xff1a;2024年9月20-22日地点&#xff1a;成都…

Golang数据流处理:掌握Reader和Writer接口的技巧

Golang数据流处理&#xff1a;掌握Reader和Writer接口的技巧 引言理解Reader和Writer接口Reader接口的定义和基本方法Writer接口的定义和基本方法 Reader接口的深入探讨Reader接口的实现示例使用io.Reader读取文件内容从网络连接中读取数据 常用Reader类型及其应用场景strings.…

Selenium打开浏览器后闪退问题解决

笔者这两天在做一个自动化方案&#xff0c;用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问&#xff0c;而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常&#xff08;表现在有些复制粘贴按钮显示不太灵敏&#xff09;。 但在Edge浏览器上基本正常&#…

Unity3d 以鼠标位置点为中心缩放视角(正交模式下)

思路整理&#xff1a; 缩放前&#xff1a; 缩放后&#xff1a; 记录缩放前鼠标的屏幕坐标 A&#xff0c;计算鼠标位置对应的世界坐标 A_world 缩放完成后&#xff0c;根据当前屏幕下A所对应的世界坐标A1_world 计算A1_world 和 A_world 的偏移量 移动摄像机 代码&#xff…

数据集 wider person 户外密集行人检测 >> DataBall

数据集 wider person 用于野外密集行人检测的多样化数据集 行人检测 目标检测 户外密集行人检测的多样化数据集 WiderPerson: A Diverse Dataset for Dense Pedestrian Detection in the Wild article{zhang2019widerperson, Author {Zhang, Shifeng and Xie, Yiliang and Wa…

TiDB 数据库核心原理与架构_Lesson 01 TiDB 数据库架构概述课程整理

作者&#xff1a; 尚雷5580 原文来源&#xff1a; https://tidb.net/blog/beeb9eaf 注&#xff1a;本文基于 TiDB 官网 董菲老师 《TiDB 数据库核心原理与架构&#xff08;101) 》系列教程之 《Lesson 01 TiDB 数据库架构概述》内容进行整理和补充。 课程链接&#xff1a;…

跟《经济学人》学英文:2024年09月14日这期 Demand for high-end cameras is soaring

Demand for high-end cameras is soaring The ubiquity of smartphones has helped ubiquity: 美 [juːˈbɪkwəti] 到处存在&#xff1b;遍在 注意发音 原文&#xff1a; Buying a Leica feels like buying a piece of art. Made in Germany, the cameras are sold in th…

电容的充放电时间的计算(容性负载的输出建立时间)

本文重点叙述开关电源带容性负载时&#xff0c;电源的输出建立时间&#xff08;对应电容的充电时间&#xff09;和掉电时间&#xff08;对应电容的放电时间&#xff09;。 无论是恒压源还是恒流源&#xff0c;其输出的电流都是可以确定的&#xff0c;因此&#xff0c;电容的充…

高职院校人工智能技术和无人机技术实训室建设方案

一、方案背景与需求分析 1.1 人工智能与无人机技术发展概况 人工智能&#xff08;AI&#xff09;和无人机技术作为当今科技领域的两大热点&#xff0c;正以前所未有的速度发展和渗透到各行各业中。根据国际数据公司(IDC)的报告&#xff0c;全球人工智能市场规模预计将在2024年…

function uuid_generate_v4()不存在

说明&#xff1a;记录一次使用postgresql函数错误&#xff0c;如下&#xff1a; 项目中的一个SQL用到了uuid_generate_v4()函数生成uuid作为记录的主键&#xff0c;结果报上面这个错误&#xff1b; 分析&排查 首先&#xff0c;我连接上了数据库&#xff0c;在数据库里敲下…

【JavaScript】数据结构之字典 哈希表

字典 键值对存储的&#xff0c;类似于js的对象&#xff0c;但在js对象中键[key]都是字符串类型或者会转换成字符串类型&#xff0c;因此后声明的键值会覆盖之前声明的值。字典以map表示&#xff0c;map的键不会转换类型。 let map new Map() map.set(a, 1) map.set(b, 2) ma…

electron-vite vue3离线使用monaco-editor

目录 1.搭建一个 electron-vite 项目 2.安装monaco-editor和vite-plugin-monaco-editor 3.electron.vite.config.mjs配置 4.创建 worker.js并在main.js 引入 5.创建组件 MonacoVite.vue 组件 6. App.vue中引入组件 7.运行测试 1.搭建一个 electron-vite 项目 pnpm creat…