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

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

这是一个目录

  • 前言
  • 创建预备
  • 创建
    • 一、创建配置文件+指定控制文件路径
    • 二、使用命令行创建数据库
    • 三、初始化数据库
    • 四、创建服务
    • 五、配置监听
  • 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.kler.cn/a/390280.html

相关文章:

  • Linux如何更优质调节系统性能
  • sql server 查看io资源使用
  • 基于混合配准策略的多模态医学图像配准方法研究
  • 俏美韵从心出发,与女性一道为健康生活贡献力量
  • DNS面临的4大类共计11小类安全风险及防御措施
  • libcurl.net入门使用
  • 深度学习在推荐系统中的应用
  • Taro React-Native IOS 打包发布
  • 【R78/G15 开发板测评】串口打印 DHT11 温湿度传感器、DS18B20 温度传感器数据,LabVIEW 上位机绘制演化曲线
  • 本地连接IP地址的自主设置指南‌
  • 力扣 LeetCode 209. 长度最小的子数组
  • 传统型视频展台方案分享
  • IDEA打开项目后,所有文件都在报错(包括JDK自带的类也报错)
  • 磁集成技术给磁性材料带来哪些新要求?
  • 使用闲置安卓手机实现程图传
  • 【C++笔记】C++三大特性之继承
  • wordpress搬家迁移后怎么修改数据库用户名
  • redis 三种持久化对比
  • websocket服务器(协程风格)--swoole进阶篇
  • 【Spring Boot 入门四】Spring Boot安全机制 - 保护你的应用安全
  • Mi动漫 2.2.1 | 全新UI,永久免费无广告,免登录畅享动漫
  • 2024 高质量 Java 面试题集锦:高级 Java 工程师面试八股汇总
  • 宏远股份转战北交所:现金流连年为负,核心技术人员兼任董监高
  • 关于 3D Engine Design for Virtual Globes(三维数字地球引擎设计)
  • C++:搜索二叉树
  • 第十七章 TCP 客户端 服务器通信 - 使用OPEN命令