目录

Oracle-笔记1-表空间及用户

Oracle 笔记1 表空间及用户

特性OracleMySQL
开发商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
usernamesys
password123456
Container NameORCLPDB1

https://i-blog.csdnimg.cn/direct/d0e9dccdcdc14944b9448a222ddee546.png

https://i-blog.csdnimg.cn/direct/88628cf1e0484b66ad39363adc677b4d.png

2 创建表空间

特性OracleMySQL
表空间定义数据库逻辑存储的核心单位,是数据文件的集合,所有数据库对象(表、索引等)必须存储在表空间中仅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 SYSDBACONNECT 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;
SYSMANOracle 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;

https://i-blog.csdnimg.cn/direct/5efcef1bb758478ebd3dd9d3e9a3f472.png