Oracle 笔记1 表空间及用户

发布于:2025-09-13 ⋅ 阅读:(23) ⋅ 点赞:(0)

特性 Oracle MySQL
开发商 Oracle 公司 最初由 MySQL AB 开发,后被 Sun 收购,现属 Oracle 公司
数据库类型 关系型数据库(RDBMS),支持对象-关系模型 关系型数据库(RDBMS)
开源性 闭源商业软件,需付费授权(有免费开发版) 开源软件(社区版免费,企业版付费)
支持的操作系统 跨平台,支持 Windows、Linux、Unix 等主流系统 跨平台,支持 Windows、Linux、Unix、macOS 等
数据类型 支持丰富的数据类型,包括 VARCHAR2、NUMBER、DATE、TIMESTAMP、LOB(BLOB、CLOB 等)、XMLType 等 支持常见数据类型,如 VARCHAR、INT、DATE、DATETIME、BLOB、TEXT 等,类型相对简洁
事务支持 完全支持 ACID 特性,支持分布式事务 支持 ACID 特性(InnoDB 引擎),MyISAM 引擎不支持事务
锁机制 支持行级锁、表级锁、页级锁等多种锁机制,锁粒度灵活 InnoDB 支持行级锁和表级锁,MyISAM 仅支持表级锁
存储引擎 单一存储引擎架构(但功能丰富) 插件式存储引擎,常用的有 InnoDB(默认)、MyISAM、Memory 等,不同引擎特性不同
分区表支持 支持多种分区方式(范围分区、列表分区、哈希分区、复合分区等),功能强大 支持范围分区、列表分区、哈希分区等,但功能相对简单
高可用性 提供 RAC(Real Application Clusters)、Data Guard 等高级高可用方案 可通过主从复制、MGR(MySQL Group Replication)等实现高可用,方案相对简单
备份与恢复 提供 RMAN(Recovery Manager)等专业备份恢复工具,支持增量备份、块级恢复等 支持 mysqldump、binlog 等备份方式,企业版有更高级的备份工具
性能优化 有完善的优化器,支持多种索引类型(B 树、位图索引等),可通过多种方式进行性能调优 优化器相对简单,主要依赖 B 树索引,性能调优方式相对基础
权限管理 基于角色的复杂权限管理系统,权限控制精细 权限管理相对简单,基于用户和数据库对象的权限控制
适用场景 大型企业级应用、复杂业务系统、高并发高可用要求高的场景 中小型应用、Web 应用、快速开发场景,对成本敏感的项目
价格 商业授权费用较高 社区版免费,企业版费用相对较低

1 安装Oracle

# 下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

# 运行容器
docker run -d -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB1 -e ORACLE_PWD=123456 -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=AL32UTF8 --name oracle registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
https://localhost:5500/em
username:sys
password:123456
Container Name:ORCLPDB1

在这里插入图片描述

在这里插入图片描述

2 创建表空间

特性 Oracle MySQL
表空间定义 数据库逻辑存储的核心单位,是数据文件的集合,所有数据库对象(表、索引等)必须存储在表空间中 仅InnoDB引擎支持表空间概念,作为数据存储的逻辑容器,默认包含系统表空间和独立表空间
默认表空间 安装后自动创建多个系统表空间:
- SYSTEM:存储数据字典
- SYSAUX:辅助系统表空间
- USERS:默认用户表空间
- TEMP:临时表空间
InnoDB默认使用:
- 系统表空间(ibdata1):存储数据字典、 undo日志等
- 独立表空间(默认开启):每个表对应一个.ibd文件
表空间与数据文件关系 一个表空间可包含多个数据文件(.dbf),数据文件大小可配置自动扩展 InnoDB表空间:
- 系统表空间:对应一个或多个ibdata文件
- 独立表空间:每个表一个.ibd文件
- 通用表空间:可包含多个表,对应一个ibd文件
表与表空间的映射 1. 表必须属于某个表空间(默认指定的表空间)
2. 可通过ALTER TABLE移动表到其他表空间
1. 独立表空间模式:每个表默认对应自己的表空间
2. 系统表空间模式:所有表共享系统表空间
3. 可通过ALTER TABLE修改表所属表空间
临时表空间 专用的TEMP表空间,用于存储临时数据(排序、分组等操作),与用户表空间严格分离 无专门的临时表空间概念,临时表数据默认存储在系统表空间的临时表区域,或通过tmp_table_size等参数控制
表空间管理方式 支持两种管理方式:
- 字典管理(早期)
- 本地管理(默认,通过位图管理空间分配)
自动管理,无需手动配置空间分配策略,由InnoDB引擎自动维护
表空间扩展 1. 可手动添加数据文件扩展表空间
2. 可配置数据文件自动扩展(AUTOEXTEND)
1. 独立表空间:随表数据增长自动扩展.ibd文件
2. 系统表空间:需手动配置自动扩展参数
表空间备份恢复 1. 支持表空间级备份(RMAN的TRANSPORTABLE TABLESPACE)
2. 可单独恢复某个表空间
1. 独立表空间可单独复制.ibd文件备份
2. 需配合表空间导出(ALTER TABLE … DISCARD TABLESPACE)操作
加密支持 支持表空间级加密(TDE,透明数据加密),保护存储在磁盘上的数据 InnoDB支持表空间加密(从MySQL 5.7开始),可对独立表空间或通用表空间加密
权限控制 可对表空间设置配额(QUOTA),限制用户使用的空间大小 无表空间级权限控制,权限管理基于表级或数据库级
主要优势 1. 表空间与数据文件映射灵活,便于存储管理
2. 支持精细的空间配额控制
3. 完善的表空间级备份恢复机制
4. 支持分区表与表空间的关联,优化大数据存储
1. 独立表空间设计简化了单表管理
2. 自动扩展机制降低了维护成本
3. 表空间与表文件一一对应,便于理解和操作
适用场景 大型数据库、需要精细存储管理的场景、多租户环境 中小型应用、Web应用、对存储管理复杂度要求较低的场景
CREATE TABLESPACE 表空间名
DATAFILE 'D:\Oracle\A.DBF'  -- 数据文件的物理路径
SIZE 100M  -- 如 100M(初始大小)
AUTOEXTEND ON  -- 开启自动扩展
NEXT 10M  -- 如 10M(每次扩展的大小)
MAXSIZE 1096M  -- 如 500M 或 UNLIMITED(无限制)
EXTENT MANAGEMENT LOCAL  -- 本地管理(推荐,默认)
SEGMENT SPACE MANAGEMENT AUTO;  -- 段空间自动管理(推荐,默认)

3 创建表空间用户

1. 核心管理用户

用户名 权限级别 主要用途 解锁与使用
SYS 最高权限(SYSDBA) 数据库字典(系统表)的所有者,负责数据库底层管理(如启动/关闭数据库、创建数据文件等)。 默认未锁定,登录需指定AS SYSDBA
CONNECT SYS/密码 AS SYSDBA;
SYSTEM 高权限(DBA角色) 用于数据库日常管理(如创建用户、授权、管理对象),权限略低于SYS,不存储数据字典。 默认未锁定,登录方式:
CONNECT SYSTEM/密码;

2. 示例与工具用户

用户名 用途 解锁方法
SCOTT 经典示例用户,包含EMP(员工表)、DEPT(部门表)等示例表,用于学习SQL。 默认锁定,解锁命令:
ALTER USER SCOTT ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY tiger;(密码设为tiger)
HR 现代示例用户,提供更复杂的人力资源相关表(如EMPLOYEESDEPARTMENTS),结构更贴近实际业务。 默认锁定,解锁命令:
ALTER USER HR ACCOUNT UNLOCK;
ALTER USER HR IDENTIFIED BY hr;
SYSMAN Oracle Enterprise Manager(OEM)的专用用户,存储OEM的监控数据和配置信息。 用于图形化管理工具(如OEM),默认密码需在安装时设置。
OUTLN 存储“存储大纲”(Stored Outline),用于固定SQL执行计划(已被SQL Profile替代,较少使用)。 通常无需手动操作,默认锁定。

3. 系统与服务用户

用户名 用途 注意事项
DBSNMP 用于数据库监控(如Oracle Intelligent Agent),收集数据库性能数据。 自动用于后台监控,不建议手动登录或修改。
APPQOSSYS 用于Oracle Application Quality of Service Management(应用服务质量管理)。 系统内部使用,一般无需用户干预。
MDSYS 存储空间数据(如地理信息),支持Oracle Spatial组件。 仅当安装Spatial组件时存在,用于空间数据管理。

4. 创建表空间用户

CREATE USER test
IDENTIFIED BY 123456
DEFAULT TABLESPACE test  -- 关联默认表空间(通常使用已存在的users表空间)
TEMPORARY TABLESPACE temp  -- 关联系统临时表空间temp
QUOTA UNLIMITED ON test;  -- 允许在users表空间无限使用空间

5. 修改表空间用户

ALTER USER SCOTT
DEFAULT TABLESPACE test
TEMPORARY TABLESPACE temp_test;

在这里插入图片描述