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

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置

目录

  • 一. 前置条件
  • 二. Win10安装配置Oracle数据库
    • 2.1 数据库获取
    • 2.2 数据库安装
    • 2.3 数据库配置确认
    • 2.4 数据库访问
  • 三. Win10配置Oracle数据库可对外访问
    • 3.1 打开文件和打印机共享
    • 3.2 开放1521端口
  • 四. 端口与地址确认
    • 4.1 查看监听器的状态
    • 4.2 Win10查看1521端口是否被监听
    • 4.3 Ubuntu虚拟机测试与Win10虚拟机的连接
  • 五. Ubuntu虚拟机安装配置Sqlplus客户端
    • 5.1 获取Sqlplus客户端
    • 5.2 安装配置Sqlplus客户端
    • 5.3 libaio库配置
    • 5.4 解决乱码问题
  • 六. ORA-12541 数据库的监听器服务未启动


一. 前置条件

  • 虚拟机中有两个操作系统
    • Win10
    • Ubuntu-24.04.1
  • 在Win10的虚拟机中安装Oracle数据库
  • 本机通过ssh连接Ubuntu虚拟机,然后在虚拟机中连接Win10中的oracle

二. Win10安装配置Oracle数据库

2.1 数据库获取

  • Oracle Database Express Edition (XE) Downloads 官网
    • https://www.oracle.com/cn/database/technologies/xe-downloads.html
  • Oracle Database 21c Express Edition for Windows x64 下载链接
    • https://download.oracle.com/otn-pub/otn_software/db-express/OracleXE213_Win64.zip

2.2 数据库安装

⏹ 解压安装包之后,通过setup.exe一步步安装即可。
在这里插入图片描述
⏹ 安装的详细过程可参考这篇博客
https://www.cnblogs.com/Javaer1995/p/17485495.html

⏹默认情况下会安装在如下路径中

C:\app\用户名\product\21c\

2.3 数据库配置确认

⏹环境变量确认
在这里插入图片描述

⏹listener.ora和tnsnames.ora的确认

  • 路径
    • C:\app\用户名\product\21c\homes\OraDB21Home1\network\admin
  • 作用
    • 重要的网络配置文件,用于支持客户端与数据库之间的连接。
    • listener.ora 文件定义了数据库监听器的配置信息。监听器是一个服务器端进程,负责监听客户端的连接请求,并将请求转发给相应的数据库实例。
    • tnsnames.ora 文件在客户端侧用于定义数据库连接字符串的别名。它让用户通过简单的名称连接数据库,而不需要记住复杂的网络配置信息。
  • 💥注意点💥
    tnsnames.oralistener.ora中的配置和电脑名称又关联性,当电脑名称修改之后,不修改对应的配置文件,会无法访问oracle
    在这里插入图片描述

2.4 数据库访问

  • 账户名:system(oracle自带的系统账户)
  • 密码: oracle
sqlplus system/oracle@192.168.118.137

⏹可以看到成功登录oracle数据库

在这里插入图片描述


三. Win10配置Oracle数据库可对外访问

3.1 打开文件和打印机共享

⏹如下图所示,打开文件和打印机共享

  • 如果不打开的话,外部计算机无法通过ping命令访问到虚拟机

在这里插入图片描述

3.2 开放1521端口

⏹Oracle默认监听1521端口,开放1521端口,确保外部可以通过1521端口访问到Oracle数据库

  • 如下图所示,通过防火墙的高级设置,进入入站规则

在这里插入图片描述

⏹添加入站规则:

  • 在左侧点击 入站规则。
  • 在右侧点击 新建规则。
  • 在规则类型中选择 端口,然后点击 下一步。
  • 选择 TCP,并在“特定本地端口”中输入 1521。
  • 点击 下一步,选择 允许连接。
  • 点击 下一步,根据需求勾选 域、专用、公用。
  • 点击 下一步,为规则命名(例如“Oracle 1521 TCP”),然后完成。

在这里插入图片描述


四. 端口与地址确认

4.1 查看监听器的状态

# 查看监听器的状态
lsnrctl status
# 监听器没有启动的话,启动监听器
lsnrctl start

在这里插入图片描述

4.2 Win10查看1521端口是否被监听

netstat -an | findstr 1521

在这里插入图片描述

4.3 Ubuntu虚拟机测试与Win10虚拟机的连接

  • 查看与目标服务器IP地址是否能ping通
  • 查看是否能访问目标服务器的指定端口
ping 目标服务器ip地址
telnet 目标服务器ip地址 1521

在这里插入图片描述


五. Ubuntu虚拟机安装配置Sqlplus客户端

5.1 获取Sqlplus客户端

  • 官方网站
    https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html
  • Sqlplus客户端安装包
    • ⏹instantclient-basic-linux.x64-21.16.0.0.0dbru.zip
      • https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-basic-linux.x64-21.16.0.0.0dbru.zip
    • ⏹instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip
      • https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip

在这里插入图片描述

5.2 安装配置Sqlplus客户端

⏹创建客户端所在的文件夹,将zip文件解压到指定的文件夹中

# 创建客户端所在的文件夹
mkdir -p /opt/oracle/instantclient# 将zip文件解压到指定的文件夹中
unzip instantclient-basic-linux*.zip -d /opt/oracle/instantclient
unzip instantclient-sqlplus-linux*.zip -d /opt/oracle/instantclient

⏹配置环境变量

  • 编辑.bashrc文件
vim ~/.bashrc
  • .bashrc末尾追加下面的内容
# oracle客户端的路径
export ORACLE_BASE=/opt/oracle/instantclient
# oracle客户端实例的路径
export ORACLE_HOME=$ORACLE_BASE/instantclient_21_16
# 动态库的路径
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH# 将$ORACLE_HOME加入PATH中,下面这种写法可以避免既存的PATH环境变量被覆盖
export PATH=$ORACLE_HOME:$PATH
  • 使配置生效
source ~/.bashrc

⏹配置远程连接,定义远程数据库服务

  • 创建tnsnames.ora文件
touch $ORACLE_HOME/network/admin/tnsnames.ora
  • 编辑如下内容到tnsnames.ora文件中
    • HOST:远程oracle的地址
    • SERVICE_NAME:远程oracle的实例
apluser@ubuntu24-01:~$ cat $ORACLE_HOME/network/admin/tnsnames.ora
ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.137)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)))

5.3 libaio库配置

⏹按照上述配置完成之后,在控制台输入sqlplus,会出现如下错误,提示sqlplus运行缺少libaio.so.1

apluser@ubuntu24-01:~$ sqlplus
sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

⏹在网上搜索了很多资料,基本上都会提示让安装如下库

sudo apt update
sudo apt install libaio1

⏹但在24.04.1 LTS的ubuntu安装时,出现了如下的错误

# 我的ubuntu版本
apluser@ubuntu24-01:~$ cat /etc/os-release | grep VERSION=
VERSION="24.04.1 LTS (Noble Numbat)"
# 实际安装时,出现了下面的错误
apluser@ubuntu24-01:~$ sudo apt install libaio1
[sudo] password for apluser:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libaio1 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another sourceE: Package 'libaio1' has no installation candidate

⏹终于在下面这篇文章中找到了解决办法
https://askubuntu.com/questions/1511776/ubuntu-24-04-php-8-3-oci8-and-libaio-so-1

  • 安装libaio1t64
  • libaio.so.1t64创建链接,指向/libaio.so.1
sudo apt-get install libaio1t64
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1

5.4 解决乱码问题

😵按照如上配置之后,使用sqlplus愉快的连接oracle数据库,却发现存在如下如图所示的乱码问题

在这里插入图片描述

🤔如果 sqlplus 使用的字符集与服务器端的字符集不匹配,可能会导致乱码问题。

  • 通过如下SQL在oracle数据库中进行确认
  • 可以看到oracle数据库的字符集是AL32UTF8
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET%';

在这里插入图片描述

👍通过如下设置,确保客户端的环境变量 NLS_LANG 与数据库的 NLS_CHARACTERSET 一致

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

😜可以看到乱码的问题最终得到了解决

在这里插入图片描述

🧐如果不想每次进入终端时都手动进行设置,可以配置到.bashrc文件中

echo "export NLS_LANG=AMERICAN_AMERICA.AL32UTF8" >> ~/.bashrc
source ~/.bashrc

六. ORA-12541 数据库的监听器服务未启动

😵 当Win10虚拟机重启之后,再一次连接数据库时,提示无监听服务

在这里插入图片描述

😓通过sysdba进入数据库之后,通过show parameter service_names;进行查询,可以看到并没有任何service。

PS C:\Windows\system32> sqlplus / as sysdbaSQL*Plus: Release 21.0.0.0.0 - Production on 星期日 1222 15:41:25 2024
Version 21.3.0.0.0Copyright (c) 1982, 2021, Oracle.  All rights reserved.连接到:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0SQL>
SQL> set markup csv on
SQL>
SQL> show parameter service_names;"NAME","TYPE","VALUE"
"service_names","string"
SQL>

😓通过lsnrctl status来查看状态,也会提示无监听状态。
并且通过netstat -an | findstr 1521也显示1521的端口根本就没有被监听。

在这里插入图片描述

🧐如下图所示,在管理员权限下,执行lsnrctl start,开启监听即可。

在这里插入图片描述

😜此时再一次通过sysdba登录数据库查看service,可以看到XE服务已经被开启。

PS C:\Windows\system32> sqlplus / as sysdbaSQL*Plus: Release 21.0.0.0.0 - Production on 星期日 1222 15:41:25 2024
Version 21.3.0.0.0Copyright (c) 1982, 2021, Oracle.  All rights reserved.连接到:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0SQL>
SQL> set markup csv on
SQL>
SQL> show parameter service_names;"NAME","TYPE","VALUE"
"service_names","string","XE"
SQL>

相关文章:

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置

目录 一. 前置条件二. Win10安装配置Oracle数据库2.1 数据库获取2.2 数据库安装2.3 数据库配置确认2.4 数据库访问 三. Win10配置Oracle数据库可对外访问3.1 打开文件和打印机共享3.2 开放1521端口 四. 端口与地址确认4.1 查看监听器的状态4.2 Win10查看1521端口是否被监听4.3 …...

arcgisPro将面要素转成CAD多段线

1、说明:正常使用【导出为CAD】工具,则导出的是CAD三维多线段,无法进行编辑操作、读取面积等。这是因为要素面中包含Z值,导出则为三维多线段数据。需要利用【复制要素】工具禁用M值和Z值,再导出为CAD,则得到…...

相机内外参知识

已知相机的内外参数矩阵,可以求得相机在世界坐标系下的原点坐标。这里需要理解几个概念: 内参数矩阵(Intrinsic Matrix): 描述相机本身的属性,比如焦距、主点位置等。外参数矩阵(Extrinsic Matrix&#xf…...

从代币角度介绍solana账户体系

1、solana 的账户概念介绍 Solana的账户体系是其区块链的核心组成部分,它允许数据和价值在链上存储和转移。以下是Solana账户体系的一些关键特点: • 账户模型: • 在Solana上,所有数据都存储在所谓的“账户”中,类似…...

前端引入字体文件

1. 字体下载 阿里矢量图图标库地址 https://www.iconfont.cn/,页面打开后选中,素材库 > 字体库 左侧两个标签页可以切换,右侧放大镜图标可以搜索自己需要的字体 字体预览区域可以自行调整进行字体预览 右上角点击字体包下载,下…...

qemu启动后网络怎么设置?配合qemu-system-riscv64的命令设置

QEMU启动的时候,可以选择组网方式,一般有两种选择,user模式和tap模式 user模式就是用NAT,tap模式就是用bridge网桥模式。以前也有过一次实践:FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客 user…...

如何测量分辨率

一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...

汇总贴:cocos creator

1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统(cc.tween) 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…...

[N1CTF 2018]eating_cms

[N1CTF 2018]eating_cms 知识点 文件上传 解题 这个题感觉还好,知识点真心不难,就是全混在一起。 思路差不多挺离谱 首先看到,有一个登录界面,然后猜测有注册界面 admin注册不了,随便注册一个账号。 注册之后&…...

重拾设计模式--建造者模式

文章目录 建造者模式(Builder Pattern)概述建造者模式UML图作用:建造者模式的结构产品(Product):抽象建造者(Builder):具体建造者(Concrete Builder&#xff…...

【机器学习】以机器学习为翼,翱翔网络安全创新苍穹

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在数字化浪潮汹涌澎湃的当下,网络安全如同守护数字世界的坚固堡垒,其重要性不言而喻。而机器学习技术的蓬勃…...

人工智能在VR展览中扮演什么角色?

人工智能(AI)在VR展览中扮演着多重关键角色,这些角色不仅增强了用户体验,还为展览的组织者提供了强大的工具。 接下来,由专业从事VR展览制作的圆桌3D云展厅平台为大家介绍AI在VR展览中的一些主要作用: 个性…...

mysql,创建数据库和用户授权核心语句

一.库操作1.创建库create database if not exists 库名 default 字符集 default 校对规则2.删除库drop database if exists 库名3.修改库的,字符集,校对规则alter databse 库名 default 字符集 default 校对规则4.查看当前使用的库seclect databse();5.查看库show databases;…...

日期区间选择器插件的操作流程

我们知道,在开发过程中,为了能够在规定时间内完成项目,有时候我们都会使用插件来大大提高我们的开发效率,有些插件是可以直接拿来用,但是有些插件拿过来之后是需要进行修改,在使用插件的时候还有很多的注意…...

【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例 WPS 嵌套域(WPS Nested Domains)USGS 和 MODIS 土地利用重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)1. 什么是重力波拖拽方案(GWDO)静态…...

深度学习的DataLoader是什么数据类型,为什么不可用来索引

在 Python 中,DataLoader是torch.utils.data.DataLoader类的实例对象,用于加载数据,它本身不是一种基本数据类型,而是一种特殊的迭代器类型,主要用于按批次加载数据,以下是其通常不可索引的原因&#xff1a…...

物理信息神经网络(PINN)八课时教案

物理信息神经网络(PINN)八课时教案 第一课:物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络(Physics-Informed Neural Networks,简称PINN)是一种将物理定律融入神经网络训练过程中的先进方…...

Linux setfacl 命令详解

文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...

电商环境下的财务ERP系统架构

先介绍一下自己的工作经历,2002年开始进入ERP实施行业,专注于O记EBS系统,正好赶上中国经济和信息化高度发展的阶段,先后实施过很多大国企和民企的大型ERP项目,在实施过程中逐渐对ERP系统的架构、模块设计有更深入的认识…...

Linux相关概念和易错知识点(25)(信号原理、操作系统的原理、volatile)

目录 1.信号的产生 (1)kill (2)raise、abort 2.对block、pending、handler表的管理 (1)信号集(sigset_t) (2)block表的管理 ①操作相关的函数 ②sigpr…...

别再硬算方程了!用Zemax的‘傻瓜式’方法搞定三片摄影物镜设计

颠覆传统:用Zemax高效设计三片摄影物镜的实战指南 在光学设计领域,三片摄影物镜一直被视为经典案例,它既包含了基础光学原理的精髓,又能满足实际摄影需求。然而,传统设计流程中繁琐的方程求解和反复试错让许多工程师望…...

为Claude Code配置Taotoken作为备用模型服务商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken作为备用模型服务商 对于经常使用Claude Code进行编程辅助的开发者而言,直接依赖单一服务商…...

TEngine与服务器集成:.NET Core 8.0前后端一体化开发指南

TEngine与服务器集成:.NET Core 8.0前后端一体化开发指南 【免费下载链接】TEngine Unity 商用级别开发框架,原生内置 AI 工作流支持,集成 HybridCLR 高性能热更、Obfuz 代码混淆加固、YooAssets 企业级资源管理方案,构建高效、安…...

别再只当Atlas是元数据仓库了!手把手教你用它的UI搞定数据分类与血缘追溯

别再只当Atlas是元数据仓库了!手把手教你用它的UI搞定数据分类与血缘追溯 数据治理工具常被视为"高大上"的架构师专属玩具,但Apache Atlas的UI界面却藏着连一线工程师都能立刻上手的实用功能。上周排查一个报表异常时,我发现团队里…...

Captain AI助Ozon Listing全链路优化,流量与转化双提升

Listing是Ozon商家获取流量、提升转化的核心载体,优质的Listing能让商品在海量竞品中脱颖而出,而多数商家却深陷“标题违规、主图不达标、关键词无效”的困境,导致商品曝光低、转化率差,难以突破运营瓶颈。Captain AI深耕Ozon Lis…...

过拟合和欠拟合

模型容量可以视作模型的复杂度。如果数据比较简单,却选择了模型容量高的(复杂模型),可能会出现过拟合(underfitting)如果数据比较复杂,却选择类简单模型,可能会出现欠拟合&#xff0…...

风云三国2.4问鼎天下:不靠作弊代码,用TXT文件修改实现俘虏名将和强制投降

风云三国2.4问鼎天下:TXT文件修改实现俘虏名将与强制投降的硬核技巧 在《风云三国2.4问鼎天下》这款经典MOD中,许多玩家都渴望能够招降那些赫赫有名的武将,比如关羽、诸葛亮等,但游戏机制往往让这些名将难以归顺。传统的作弊代码虽…...

别再自己写弹窗了!UniApp内置的showLoading、showToast、showModal,5分钟搞定App常用交互

UniApp内置交互API实战:5分钟打造专业级弹窗体验 第一次接触UniApp开发时,我花了整整两天时间调试一个自定义加载动画——结果在iOS上卡顿,在Android上闪退。直到发现showLoading这个内置API,三行代码就解决了所有问题。这段经历让…...

别再手画电路图了!用Fritzing快速搞定Arduino项目接线图(附传感器库文件下载)

告别手绘时代:Fritzing高效绘制Arduino接线图的完整指南 在Arduino项目开发中,清晰的接线图不仅是项目文档的重要组成部分,更是团队协作和后期维护的关键参考。传统的手绘方式不仅效率低下,还容易出错,尤其当项目涉及多…...

Logisim保姆级避坑指南:从布尔表达式到卡诺图,一次搞定数字逻辑实验常见错误

Logisim数字逻辑实验避坑实战:从表达式到卡诺图的深度解法 为什么你的Logisim电路总是不工作? 刚接触数字逻辑实验时,我总在Logisim里反复调试同一个电路——明明按照教材步骤操作,仿真结果却和预期不符。直到某次深夜debug才发现…...