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;
相关推荐
程序员清风6 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
天衍四九-6 小时前
MySQL中如何定位慢查询?如果SQL语句执行很慢,如何分析和优化?
数据库·sql·mysql
尚久龙6 小时前
mysql-5.7.26-winx64的安装步骤
数据库·mysql
医疗信息化王工6 小时前
DataForge:基于 Python 的数据库批量导出 Excel 工具——从架构到部署的全流程实战
数据库·python·excel
实心儿儿6 小时前
MySQL 的安装
数据库·mysql·adb
程序员阿鹏8 小时前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
瀚高PG实验室9 小时前
使用pg_stat_statements抓取数据库TOP SQL
数据库·sql·postgresql·瀚高数据库
yanwumuxi11 小时前
【数据库系列】opensearch数据备份和恢复
数据库
anxiao_m11 小时前
2026企业AI数字孪生选型攻略,不同场景对应不同解决方案
大数据·网络·数据库
SelectDB11 小时前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单(实战笔记)
大数据·数据库·数据分析