2.oracle--表空间管理

创建表空间:

sql 复制代码
create tablespace OGG_SOURCE datafile '/u01/app/oracle/oradata/orcl/oggsource1.dbf' size 20g autoextend on next 5m;

修改表空间增加数据文件(看情况使用)

sql 复制代码
alter tablespace OGG_SOURCE add datafile '/u01/app/oracle/oradata/orcl/oggsource2.dbf' size 20g autoextend on next 5m;

删除表空间

sql 复制代码
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
drop tablespace HMABPREPORT including contents and datafiles cascade constraint;

查看当前存在的表空间

sql 复制代码
select * from v$tablespace;

查看表空间使用情况

sql 复制代码
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; -- 单位是M

查看用户默认表空间

sql 复制代码
select username,default_tablespace from dba_users;

查询数据库中表空间对应的数据文件路径

sql 复制代码
select file_name,tablespace_name from dba_data_files;

修改用户表空间

sql 复制代码
alter user user1 default tablespace test_tbsp;

查看表空间是否自动扩展

sql 复制代码
select file_name,autoextensible,increment_by from dba_data_files where tablespace_name='TEST_TBSP';

查看临时表空间是否自动扩展

sql 复制代码
select file_name,autoextensible,increment_by from dba_temp_files;

查看表空间块大小

sql 复制代码
show parameter db_block;

表空间开启自动扩展

sql 复制代码
alter database datafile '/home/oracle/oradata/test_tbsp.dbf' autoextend on;

表空间关闭自动扩展

sql 复制代码
alter database datafile '/home/oracle/oradata/test_tbsp.dbf' autoextend off;

查看当前表空间

sql 复制代码
select username,default_tablespace from user_users;

查看表空间下所有表

sql 复制代码
select TABLE_NAME,TABLESPACE_NAME from all_tables where tablespace_name='A_DATA_BW_CZGL';

删除表

sql 复制代码
drop table tablename;

切换undotbs

sql 复制代码
-- 0. 查看正在使用的undo
SQL> show parameter undo_tablespace;
-- 1. 查询数据库中表空间对应的数据文件路径
SQL> select file_name,tablespace_name from dba_data_files;
-- 2. 创建新的UNDO表空间
SQL> CREATE UNDO TABLESPACE UNDOTBS3 DATAFILE '/u01/oradata/rac/undotbs3.dbf' SIZE 30G AUTOEXTEND ON;
-- 3. 切换到新的UNDO表空间
SQL> ALTER SYSTEM SET undo_tablespace = 'UNDOTBS3';
-- 4. 等待切换完成,可以通过查询V$UNDOSTAT来检查进度。
SQL> select dr.tablespace_name, dr.segment_name, vr.status from dba_rollback_segs dr, v$rollstat vr where dr.segment_id=vr.usn;
-- 5. 删除旧的UNDO表空间(在确认新表空间正常运行后执行)
SQL> DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;

查询每个用户所占的表空间和每个表所占空间大小

sql 复制代码
select owner,tablespace_name ,sum(bytes)/1024/1024 from dba_segments group by owner,tablespace_name;

扩展表空间:

sql 复制代码
sqlplus / as sysdba --登录sys用户
connect sys/password as sysdba --切换到sys(dba)用户
connect user/password  --切换到普通用户

--查看表空间的名字及文件所在位置

sql 复制代码
select tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_space from sys.dba_data_files order by FILE_NAME;

--查询表空间信息

sql 复制代码
select username,default_tablespace,t.* from dba_users t

--查询某个用户下的全部数据表的表名和大小

sql 复制代码
select a.segment_name,a.segment_type,a.bytes,a.bytes / 1024 / 1024 byte_m,b.created
from dba_segments a
inner join all_objects b on b.object_type = 'TABLE' and a.owner = b.owner and a.segment_name = b.object_name
where a.owner = 'USER' and a.segment_type = 'TABLE' /* and a.bytes>50000000*/
order by a.bytes desc;
a.owner后面跟想查询的用户名,查询没数据,可以试下a.owner = upper('USER')

-- 查询数据库中所有的表空间以及表空间所占空间的大小:

sql 复制代码
select tablespace_name, sum(bytes)/1024/1024/1024 from dba_data_files group by tablespace_name;

-- 查看表空间物理文件的名称及大小

sql 复制代码
select tablespace_name, file_id, file_name,   
round(bytes/(1024*1024),0) total_space   
from dba_data_files   
order by tablespace_name; 

扩展表空间:

sql 复制代码
select name from v$datafile;
1,增加数据文件
alter tablespace POTEVIO add datafile '/u01/app/oracle/oradata/orcl/POTEVIO8.dbf' size 31g autoextend on next 100m;
2,或者增大空间(默认的一个数据文件最大扩展到32G,达到32G后只能增加数据文件)
alter database datafile '/u01/app/oracle/oradata/orcl/POTEVIO.dbf' resize 100g;
RAC 只需要指定 asm磁盘的名称即可,单节点实例的oracle 才需要指定到具体的路径
alter tablespace system add datafile '+YYDB_DATA' size 30g autoextend on next 5m;
创建表空间时,创建大文件表空间(默认数据文件最大为32T,但只能拥有一个数据文件)
create bigfile tablespace POTEVIO datafile '/u01/app/oracle/oradata/orcl/POTEVIO.dbf' size 2g autoextend on next 100m;
相关推荐
白帽攻防录8 小时前
SRC 挖洞:Roundcube 预认证 SQL 注入深度复盘,CVE-2026-48842 preg_replace 转义绕过怎么打穿邮件系统
网络·数据库·sql·网络安全·sql注入
꯭自꯭闭꯭8 小时前
达梦SQL优化相关
linux·运维·数据库·sql
对空六课9 小时前
支持注意力分析的热力图工具有哪些?
前端·数据库·数据分析
南京码讯光电技术有限公司9 小时前
How to Design an Antenna System for an Industrial WiFi Module
数据库·人工智能
lusklusklusk10 小时前
Oracle数据库基础之2_体系结构
数据库·oracle
可乐ea10 小时前
从第一性原理构建 AI Agent:提示词、工具、技能与记忆全解剖
数据库·人工智能·工具调用·ai智能体·提示词工程·agent开发·智能体记忆
东方护航数据恢复(深圳)11 小时前
医疗案例:HIS/PACS 数据库页损坏修复,医院不停诊完成恢复【东方护航数据恢复深圳店】
数据库·数据恢复·医疗·二次开盘
lusklusklusk12 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle
PHP实战开发录13 小时前
MySQL字段加索引为什么没变快
数据库·mysql·php·开发
红红谈说14 小时前
标签化推送与已读统计怎么做?一次通知链路的工程复盘
数据库·消息推送·数字乡村·集合运算·已读回执·标签体系·写入放大