Oracle XE命令行创建数据库的一波三折(已解决)

news2024/12/26 16:04:48

这是一个目录

  • 前言
  • 创建预备
  • 创建
    • 一、创建配置文件+指定控制文件路径
    • 二、使用命令行创建数据库
    • 三、初始化数据库
    • 四、创建服务
    • 五、配置监听
  • Oracle XE
  • 尾声

前言

这篇文章是我在误装了oracle xe(精简版数据库)后有感而写,对于xe的具体区别将在文末进行说明。(ps:本文的操作方法并未在oracle11标准版数据库上尝试过(因为某盘下载实在是太慢啦!!!),仅仅针对XE版本

在这里插入图片描述

数据库实验课上,老师要求我们下载oracle database,于是我“壮志满怀”的去下载了

在这里插入图片描述

可是,一找一个不吱声!!官网全是23AI版本,下载后安装还有一堆问题,一顿找没找到官网的11g(如果找别人博客的链接,又几乎全是某网盘,慢慢慢!!烦死啦!!)

幸运的是,好兄弟找到并将网址发给我辣!!可是大大大大问题就此开始了…(此时我还在得意的笑)

网址:oracle11g

在这里插入图片描述

于是我正式开始实验,发现书上的教程是使用DBCA创建案例数据库(创建一个新的,安装好的有一个默认的数据库,我的是XE)。

我就在那一顿找啊…最后才了解到我下载的版本是精简版(对,难怪那么小,damn!!)。

不就是安装一个数据库,我mysql都精通了,这不是小case,洒洒水就给他拿下!



啊?怎么和我设想的不一样??!!
…(省略一万次的尝试)

经过一次又一次的失败,终于创成功辣!!!!

创建预备

这里会简单的介绍一下大致的内容:

  1. oracle中每个数据库都会对应一个控制文件,这个文件是数据库的核心
  2. 每个数据库都需要至少两个重做日志文件
  3. 每个数据库需要几个关键的角色(必不可少,如:sys…)
  4. 如果需要图形化界面链接数据库,则需要配置windows服务,配置监听服务

创建

一、创建配置文件+指定控制文件路径

创建数据库文件夹

路径:...\app\oracle\oradata\

在该目录下创建一个文件夹,名字为你要创建的数据库名字,

在这里插入图片描述

创建配置文件

路径:...\app\oracle\product\11.2.0\server\database\

该目录统一存放配置文件(用于指定一些基础配置,如:数据库名称、控制文件路径)

在这里插入图片描述

创建配置文件intiXXX.ora,其文件内容如下:

DB_NAME= BOOKSALE
MEMORY_TARGET =1G
PROCESSES = 200
CONTROL_FILES =(...\app\oracle\oradata\BOOKSALE\CONTROL.DBF) //指定控制文件路径

可以直接cv initXE.ora文件(该目录下应该存在一个安装时默认数据库的配置文件),然后改名成为你要创建的数据库名字(我的是initBOOKSALE.ora)

二、使用命令行创建数据库

先使用sqlplus打开数据库

关闭当前数据库

shutdown;

切换实例到NOMOUNT状态,用新配置文件重新启动实例

STARTUP NOMOUNT PFILE='...app\oracle\product\11.2.0\server\database\initBOOKSALE.ora';

创建数据库

需要在.../app/oracle/fast_recovery_area路径下创建数据库文件夹,该文件夹用来存放重做日志文件

在这里插入图片描述

CREATE DATABASE BOOKSALE
   USER SYS IDENTIFIED BY 123456
   USER SYSTEM IDENTIFIED BY 123456
   LOGFILE GROUP 1 ('.../app/oracle/fast_recovery_area/BOOKSALE/redo01.log') SIZE 100M,
           GROUP 2 ('.../app/oracle/fast_recovery_area/BOOKSALE/redo02.log') SIZE 100M
   MAXLOGFILES 32
   MAXDATAFILES 100
   DATAFILE '.../app/oracle/oradata/BOOKSALE/SYSTEM.DBF' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
   UNDO TABLESPACE undo_ts
   DATAFILE '.../app/oracle/oradata/BOOKSALE/UNDO_TS.DBF' SIZE 100M AUTOEXTEND ON
   SYSAUX DATAFILE '.../app/oracle/oradata/BOOKSALE/SYSAUX.DBF' SIZE 100M AUTOEXTEND ON;

在这里插入图片描述

如此,数据库就“暂时”创建好了

三、初始化数据库

当完成上述内容后,数据库被创建好了,但是你几乎什么都干不了,这是因为数据库还没有初始化!

初始化数据库

运行脚本来初始化,直接在sqlplus中运行就行

@?/rdbms/admin/catalog.sql;
@?/rdbms/admin/catproc.sql;//这个可能会跑的比较久,等就完了

执行完上述操作后,可以使用cmd打开services.msc查看,会多出一个叫作OracleServerXXX的服务(这个服务就是监听你外部的图形化界面的链接的)

如果没有创建成功,则执行第四步,否则执行第五步

四、创建服务

创建windows服务(使用管理员启动cmd)

oradim -NEW -SID BOOKSALE -STARTMODE auto -PFILE "...\app\oracle\product\11.2.0\server\dbs\initBOOKSALE.ora"

然后打开services.msc查看,会多出一个叫作OracleServerXXX的服务

五、配置监听

配置listener.ora文件

路径:...\app\oracle\product\11.2.0\server\network\ADMIN\

该文件是服务器端的配置文件,用于定义 Oracle Listener 的设置。Oracle Listener 是 Oracle 网络服务的一部分,负责接受客户端的连接请求并将其转发到相应的数据库实例。在内部添加如下内容:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      //...
      (ADDRESS = (PROTOCOL = TCP)(HOST = LAPTOP-xxxxx)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = LAPTOP-xxxxx)(PORT = 1531))
    )
  )

1531这个端口你也可以不设置,就采用默认的1521(因为Oracle XE一次只能开启一个数据库,所以开多个端口监听其实没啥用,但是在每次切换数据库的时候需要将对对应数据库的服务开启)

配置tnsnames.ora文件

路径:...\app\oracle\product\11.2.0\server\network\ADMIN\

该文件是客户端和服务器端都可以使用的配置文件,用于配置连接到数据库所需的连接字符串(TNS 地址)。该文件定义了数据库服务的名称以及如何通过网络连接到这些服务。在内部添加如下内容:

BOOKSALE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LAPTOP-xxxxx)(PORT = 1531))//这个LAPTOP号和你的listener.ora的一样
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = BOOKSALE)
    )
  )

该文件一定要配置,不然你使用图形化界面就会发现找不到对应的数据库服务名,不过这里的端口也可以配置成1521(不会冲突的,因为不可能出现两个端口同时开启监听的状况)

配置完之后需要重启一下OracleXETNSListener服务


然后你就可以快乐的继续做折磨人的实验啦!!

Oracle XE

Oracle XE(Express Edition)是Oracle提供的一种轻量级、免费的数据库版本,适合小型应用、开发和学习用途。它提供了Oracle数据库的基本功能,但有一些限制:

  1. 内存限制:Oracle XE最多只能使用2 GB的内存,即使系统内存更高,也无法突破这一限制。
  2. CPU限制:只能使用最多两个CPU线程,即如果系统有多核,Oracle XE只能使用两个线程进行处理。
  3. 存储限制:数据库存储空间被限制为12 GB。对于较小的数据库,这个限制通常足够,但不适用于大型数据库应用。
  4. 数据库实例:Oracle XE每次只能打开一个数据库实例,即如果你有多个数据库,需要关闭当前的数据库才能切换到另一个。
  5. 不支持集群和高级特性:Oracle XE不支持Oracle的集群(RAC)、分布式事务、数据守护(Data Guard)等企业级功能,这些功能在企业版中才有。

简单来说,XE有点弱,他甚至不能同时开启两个数据库来监听外部访问!!!

尾声

对了,写完这篇文章的我刚把数据库的课给退掉(问就是教务处搞错了,莫名其妙多了好多课,上了半学期了才被告知能退掉!!!)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5bff32e246f04e069df3deb4d8d39ed9.pn

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

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

相关文章

第四十一章 Vue之初识VueX

目录 一、引言 1.1. vuex的概念 1.2. vuex使用场景 1.3. 优势 二、创建演示项目 2.1. 构建项目步骤 2.2. 项目最终生成结构 2.3. 创建项目文件 2.3.1. App.vue 2.3.2. Son1.vue 2.3.3. Son2.vue 三、创建一个空仓库 3.1. 安装vuex 3.2. 新建仓库 3.3. 挂载仓库…

机器学习-35-提取时间序列信号的特征

文章目录 1 特征提取方法1.1 特征提取过程1.2 两类特征提取方法2 基于数据驱动的方法2.1 领域特定特征提取2.2 基于频率的特征提取2.2.1 模拟信号2.2.2 傅里叶变换2.2.3 抽取最大幅值对应特征2.2.4 抽取峰值幅值对应特征2.3 基于统计的特征提取2.4 基于时间的特征提取3 参考附录…

My_SQL day3

知识点:约束 1.dafault 默认约束 2.not null 非空约束 3.unique key 唯一约束 4.primary key 主键约束 5.anto_increment 自增长约束 6.foreign key 外键约束 知识点:表关系 1.一对一 2.一对多 3.多对多 知识点:约束 1.default 默认约束 …

caozha-CEPCS(新冠肺炎疫情防控系统)

caozha-CEPCS,是一个基于PHP开发的新冠肺炎疫情防控系统,CEPCS(全称:COVID-19 Epidemic Prevention and Control System),可以应用于单位、企业、学校、工业园区、村落等等。小小系统,希望能为大…

深度学习推荐系统的工程实现

参考自《深度学习推荐系统》——王喆,用于学习和记录。 介绍 之前章节主要从理论和算法层面介绍了推荐系统的关键思想。但算法和模型终究只是“好酒”,还需要用合适的“容器”盛载才能呈现出最好的味道,这里的“容器”指的就是实现推荐系统…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品,是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要,专门加工配置而成的配方食品,包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

Ubuntu 的 ROS 2 操作系统安装与测试

引言 机器人操作系统(ROS, Robot Operating System)是一种广泛应用于机器人开发的开源框架,提供了丰富的库和工具,支持开发者快速构建、控制机器人并实现智能功能。 当前,ROS 2 的最新长期支持版本为 Humble Hawksbil…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named ‘XXX‘异常的解决办法

网上各种各样的:1、关于_pycache_影响conftest的;2、目录路径的;3、配置环境的; 4、发现自己是powershell后,设置环境: $env:environment"local" 仍然报错的:5、最后发现是自己的 …

JAVA:探索 EasyExcel 的技术指南

1、简述 在 Java 开发中,Excel 文件的读写操作是一项常见的需求。阿里巴巴开源的 EasyExcel 提供了一种高效、简洁的解决方案,特别是在处理大规模数据时表现尤为突出。本文将详细介绍 EasyExcel 的优缺点、应用场景,并通过实例展示其基本用法…

Python自动化小技巧24——实现自动化输出模板表格报告

背景 很多人拿到数据excel文件,然后要写报告,做表格,要各种计算,各种排序,分组聚合,数据透视,然后合并单元格,添加边框,加粗,添加显示规则,添加数…

C# 通俗易懂的介绍基础知识(七)——栈Stack(从日常生活开始讲解)

目录 一、前言 二、栈是排列方式 三、栈的单词 四、程序中的栈 五、栈的方法 1.声明并初始化栈 2.往栈里放东西(学名:入栈) 3.从栈往外拿东西 (学名:出栈) 4.清空栈 5.遍历 Stack 6.获取Stack的长…

Vue全栈开发旅游网项目(10)-用户管理后端接口开发

1.异步用户登录\登出接口开发 1.设计公共响应数据类型 文件地址:utils/response404.py from django.http import JsonResponseclass BadRequestJsonResponse(JsonResponse):status_code 400def __init__(self, err_list, *args, **kwargs):data {"error_c…

PostgreSQL中如果有Left Join的时候索引怎么加

在PostgreSQL中,当你的查询包含多个LEFT JOIN和WHERE条件时,合理地添加索引可以显著提高查询性能。以下是一些具体的优化步骤和建议: 1. 分析查询 使用 EXPLAIN ANALYZE 命令分析你的查询,了解查询的执行计划,识别出连…

A027-基于Spring Boot的农事管理系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

Vue的基础使用

一、为什么要学习Vue 1.前端必备技能 2.岗位多,绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能(Vue2Vue3) 二、什么是Vue 概念:Vue (读音 /vjuː/,类似于 view) 是一套 构建用户界面 的 渐进式 框架…

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

我们都知道时钟树综合在数字IC后端实现中的重要性。做clock tree主要有传统clock tree做法,H tree,Flexible H-tree,fishbone等做法。接下去小编将拿cadence官方的这份Innovus Flexible H-tree and Multi-Tap Clock Flow和对应的lab data来做…

【MySQL】MySQL数据库安装以及报错处理技巧

前言: 本节内容讲述在Ubuntu环境下怎么进行MySQL的安装。 以及一些安装过程中遇到的报错如何处理的问题。 ps:注意, 本篇文章不是图形化界面的MySQL安装教程哦。想要安装图形化界面的MySQL的友友们可以另寻资源了。 目录 更新软件包列表 安装M…

ISP——你可以从这里起步(二)

接上一篇,上一篇是原理篇,这一篇是实战篇,为了实现下面框图中的不完美ISP。 第一章 做一张RAW图自己用 不是所有的人都能获得raw图,即使获得了raw图也需要对应的sensor参数才能把它用起来,所以我找了一条野路子可以把…

CTF攻防世界小白刷题自学笔记14

fileclude,难度:1,方向:Web 题目来源:CTF 题目描述:好多file呀! 给一下题目链接:攻防世界Web方向新手模式第17题。 打开一看,这熟悉的味道,跟上一篇文章基本一摸一样的&#xff…