本文描述的是CDB环境
有关表空间和用户在PDB的使用,参考:Oracle19c表空间
表空间与表
完成的效果:在表空间test_data上创建数据表table1
步骤:
(1)新建表空间 :test_data
-- 创建永久表空间
create tablespace test_data datafile 'C:\oracledata\test_data.dbf'
size 5m autoextend on next 5m
-- 创建临时表空间:
create temporary tablespace test_temp tempfile 'C:\oracledata\test_temp.dbf'
size 5m autoextend on next 5m;
复制
(2)创建表的同时指定表空间
create table table1
(
t_id number,
t_name varchar(20)
) tablespace test_data; -- 指定表空间
复制
(3)查询数据表所在哪个表空间
select table_name 表名, tablespace_name 表空间
from user_tables where table_name='TABLE2';
复制
(4)查询表空间的数据文件
select tablespace_name 表空间名称, file_name 文件路径, file# 文件编号, v.status 状态, v.enabled 可用
from dba_data_files d, v$datafile v
where d.file_id=v.file#;
复制
注意:C:\oracledata 为存放数据文件的服务器路径,在虚拟机里面可以事先创建(有关内容参考:Oracle19c安装指南)
表空间与全局用户
(1) 创建全局用户 (c##开头)
-- 创建全局用户 c##admin 和密码 123
create user c##admin identified by 123;
-- 授权 (后续根据需要可以随时修改权限)
grant create table,connect,resource to c##admin;
复制
(2) 创建表空间
-- 创建永久表空间:
create tablespace admin_data
datafile 'C:\oracledata\admin_data1.dbf'
size 5m autoextend
on next 5m
-- 创建临时表空间:
create temporary tablespace admin_temp
tempfile 'C:\oracledata\admin_temp.dbf'
size 5m autoextend
on next 5m;
复制
注意:在CDB下给用户分配表空间时,此表空间必须在没有pdb的情况或者pdb下有相同表空间名称的时候才能成功
如何知道有哪些PDB:show pdbs;
接着切换数据库到每个PDB创建 admin_data 和 admin_temp 表空间
(关于PDB的创建参考:Oracle19c的CDB和PDB)
-- schooldb数据库创建:
create tablespace admin_data
datafile 'C:\oracledata\admin_data_schooldb.dbf'
size 5m autoextend
on next 5m;
create temporary tablespace admin_temp
tempfile 'C:\oracledata\admin_temp_schooldb.dbf'
size 5m autoextend
on next 5m;
-- school数据库创建:
create tablespace admin_data
datafile 'C:\oracledata\admin_data_school.dbf'
size 5m autoextend
on next 5m;
create temporary tablespace admin_temp
tempfile 'C:\oracledata\admin_temp_school.dbf'
size 5m autoextend
on next 5m;
复制
(3) 分配表空间给c##admin
alter user c##admin default tablespace admin_data temporary tablespace admin_temp;
复制
(4) 查看c##admin的表空间
select default_tablespace 永久表空间名称, temporary_tablespace 临时表空间名称
from dba_users where username='C##ADMIN';
复制
(5) 新建c##admin的连接
在SQL Developer图形化开发工具创建新的连接,通过它可以直接连接到c##admin创建的表
(6) 创建c##admin的表test1
create table test1
(
id number,
name varchar(20)
);
复制
(7) 查看test1的表空间
select table_name 表名, tablespace_name 表空间
from user_tables where table_name='TEST1';
复制
(8) 查看admin_data表空间的表
select table_name from all_tables where tablespace_name='ADMIN_DATA';
复制
文章转载自全栈精英,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
578次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
537次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
440次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
432次阅读
2025-04-08 09:12:48
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
430次阅读
2025-04-22 00:20:37
墨天轮个人数说知识点合集
JiekeXu
430次阅读
2025-04-01 15:56:03
Oracle SQL 执行计划分析与优化指南
Digital Observer
430次阅读
2025-04-01 11:08:44
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
407次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
395次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
367次阅读
2025-04-08 23:57:08