oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle表空间与存储结构

Oracle数据库、表空间与存储结构图文详解

作者:迷茫的坐标

在Oracle数据库中,查询表空间信息是一个常见需求,它可以帮助数据库管理员或开发者了解数据库的存储情况,这篇文章主要给大家介绍了关于Oracle数据库、表空间与存储结构的相关资料,需要的朋友可以参考下

一、核心概念:像理解仓库一样理解Oracle

想象一下一个大仓库(数据库),这个仓库被划分成了几个大的区域(表空间),比如“家电区”、“食品区”。每个大区域里放着很多货架(段),比如“电视货架”、“冰箱货架”。每个货架又是由一连串的货位(区) 组成的,而最小的存储单位就是每一个货位(数据块)

1. 数据块 (Data Block)

2. 区 (Extent)

3. 段 (Segment)

4. 表空间 (Tablespace)

5. 数据库 (Database)

二、动手实践:如何创建数据库和表空间

方法一:界面方式(推荐新手使用)

创建数据库:使用DBCA(数据库配置助手)工具。

这是一个图形化向导,按照步骤选择数据库名称、字符集、存储位置等即可轻松完成创建。

启动DBCA,进入cmd命令行输入dbca;在搜索栏搜索dbca文件以管理员的方式运行(推荐使用后者)出现“欢迎使用”界面,如图所示,单击“下一步”按钮进入创建数据库的向导。

在“操作”窗口中,用户可以选择要执行的操作,这里选中“创建数据库”选项,如图所示,单击“下一步”按钮。

在“数据库模板”窗口中,选择相应选项后单击“显示详细资料”按钮可查看该数据库模板的各种信息。这里选择“一般用途或事务处理”选项,如图所示,单击“下一步”按钮。

在“数据库标识”窗口中输入“全局数据库名”和“SID”,如图所示,单击“下一步”按钮。

在“管理选项”窗口中可以选择配置Enterprise Manager企业管理器或者配置Database Control管理本地数据库,这里保持默认设置,如图所示,单击“下一步”按钮。

在“数据库身份证明”窗口中,将所有账户设置为同一管理口令,如图所示,单击“下一步”按钮。

在“数据库文件所在位置”窗口中,选择“所有数据库文件使用公共位置”,单击“浏览”按钮选择数据库文件的存放路径,如图所示,单击“下一步”按钮。

下一步

选择你自己找的到的地方

注意勾选示例方案

在“初始化参数”和“数据库存储”窗口中也保持默认配置,两次单击“下一步”按钮。

在“创建选项”窗口中选择“创建数据库”选项,如图3.9所示,单击“完成”按钮,之后会弹出确认创建的对话框,单击“确定”按钮开始创建数据库。

耐心等待

创建数据库完毕后,系统会弹出窗口显示相关的提示信息,如图所示,需要在这一步解锁SCOTT、SYSTEM、SYS账户并设置其口令,单击窗口中的“口令管理”按钮,弹出“口令管理”对话框。找到以上三个用户账户,将“是否锁定账户”一栏里的勾去掉,修改口令。

计算机管理->服务与应用程序->服务,注意将所有与Oracle有关的服务打开

创建表空间:使用navicat工具。

关于nvicat连接Oracle服务器的链接:https://www.jb51.net/database/349734h29.htm

连接服务器,其他->表空间

新建表空间,输入名称、大小;注意下面的路径、自动扩展和下一个大小。

保存输入表名称

在用户这里查看,没有刚刚创建的话就新建一个

新建用户,注意用户名和表空间要与刚刚创建的表空间一致,保存。

之后就能查询到创建的表空间。

方法二:命令方式(需掌握的核心技能)

手动创建数据库(谨慎操作!)

```sql
-- 1. 创建初始化参数文件(initmydb.ora),设置必要参数如:
DB_NAME=mydb
CONTROL_FILES=("E:\app\...\control01.ctl", "E:\app\...\control02.ctl")
...

-- 2. 连接并启动实例到NOMOUNT状态
CONN sys/password AS SYSDBA
STARTUP NOMOUNT pfile='E:\app\...\initmydb.ora';

-- 3. 执行CREATE DATABASE命令(核心)
CREATE DATABASE mydb
LOGFILE GROUP 1 ('redo01.log') SIZE 50M,
         GROUP 2 ('redo02.log') SIZE 50M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
CHARACTER SET ZHS16GBK -- 使用中文常用字符集
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'system01.dbf' SIZE 500M
SYSAUX DATAFILE 'sysaux01.dbf' SIZE 500M
UNDO TABLESPACE undotbs DATAFILE 'undotbs01.dbf' SIZE 200M
DEFAULT TABLESPACE users DATAFILE 'users01.dbf' SIZE 100M;

-- 4. 创建附加表空间(可选)
CREATE TABLESPACE mytbs DATAFILE 'mytbs01.dbf' SIZE 100M;
```

**注意**:手动创建极易出错,如果出错,需要**删除所有已创建的数据文件**后重新运行。

使用SQL命令创建表空间

这是最常用的命令操作,必须掌握:

```sql
-- 创建一个名为`mytbs`的本地管理、自动段空间管理的表空间
CREATE TABLESPACE mytbs
  DATAFILE 'E:\app\oradata\mydb\mytbs01.dbf' -- 数据文件路径
  SIZE 100M                                  -- 初始大小
  AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED   -- 自动扩展
  EXTENT MANAGEMENT LOCAL                    -- 本地化管理
  SEGMENT SPACE MANAGEMENT AUTO;             -- 段空间自动管理

-- 创建一个大数据文件表空间(BIGFILE)
CREATE BIGFILE TABLESPACE liyu_big
  DATAFILE 'liyu_big.dbf' SIZE 2G;

-- 修改表空间大小
ALTER TABLESPACE liyu_big RESIZE 1G;

-- 重命名表空间(注意:SYSTEM和SYSAUX不能重命名)
ALTER TABLESPACE liyu_2 RENAME TO new_liyu_2;

-- 删除表空间( INCLUDING CONTENTS 会同时删除段数据)
DROP TABLESPACE liyu_big INCLUDING CONTENTS AND DATAFILES;
```

三、总结与回顾

概念类比解释创建方式
数据库整个仓库数据物理和逻辑的集合CREATE DATABASEDBCA
表空间仓库分区最大的逻辑存储单元,由数据文件组成CREATE TABLESPACEOEM
货架存储数据库对象(表、索引等)(随表/索引自动创建)
一组货位由连续数据块组成,分配存储的最小单位(自动分配)
数据块单个货位最小的I/O逻辑存储单位(由参数决定)

学习建议

  1. 理解概念:务必搞清这些概念之间的包含关系:数据库 > 表空间 > 段 > 区 > 数据块
  2. 动手练习:在自己安装的Oracle环境或学校实验室中,优先使用DBCA创建数据库,然后多用SQL命令练习表空间的创建、修改和删除。这是最实际有效的学习方式。
  3. 谨慎操作DROP命令一旦执行无法撤回,操作前务必确认无误。

到此这篇关于Oracle数据库、表空间与存储结构的文章就介绍到这了,更多相关Oracle表空间与存储结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文