11、oracle 表空间

创建和管理表空间

1、创建表空间例子

select name from v$datafile;

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u02/oracle/oradata/orcl/system01.dbf

/u02/oracle/oradata/orcl/sysaux01.dbf

/u02/oracle/oradata/orcl/undotbs01.dbf

/u02/oracle/oradata/orcl/users01.dbf

create tablespace test datafile ‘/u02/oracle/oradata/orcl/test01.dbf‘ size 10m autoextend on next 1m;

select name from v$datafile;

set long 1000

set pages 1000

set lines 120

查看真正的表空间创建语句;

select dbms_metadata.get_ddl(‘TABLESPACE‘,‘TEST‘) from dual;

CREATE TABLESPACE "TEST" DATAFILE

‘/u02/oracle/oradata/orcl/test01.dbf‘ SIZE 10485760

AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M

LOGGING ONLINE PERMANENT BLOCKSIZE 8192

EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT

NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

create tablespace ttt datafile ‘/u02/oracle/oradata/orcl/ttt.dbf‘ size 10m;

create tablespace rrr datafile ‘/u02/oracle/oradata/orcl/rrr.dbf‘ size 10m  uniform size 1m;

select dbms_metadata.get_ddl(‘TABLESPACE‘,‘TTT‘) from dual;

CREATE TABLESPACE "TTT" DATAFILE

‘/u02/oracle/oradata/orcl/ttt.dbf‘ SIZE 10485760

LOGGING ONLINE PERMANENT BLOCKSIZE 8192

EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT

NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

select dbms_metadata.get_ddl(‘TABLESPACE‘,‘RRR‘) from dual;

CREATE TABLESPACE "RRR" DATAFILE

‘/u02/oracle/oradata/orcl/rrr.dbf‘ SIZE 10485760

LOGGING ONLINE PERMANENT BLOCKSIZE 8192

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1048576 DEFAULT

NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

create table t tablespace ttt  as select * from scott.emp;

create table r tablespace rrr  as select * from scott.emp;

insert into t select * from t;

insert into r select * from r;

col SEGMENT_NAME for a20;

select SEGMENT_NAME,FILE_ID,EXTENT_ID,BLOCK_ID,BLOCKS from dba_extents where SEGMENT_NAME in (‘T‘,‘R‘);

2、删除表空间

drop tablespace ttt;

SQL> drop tablespace ttt;

drop tablespace ttt

*

ERROR at line 1:

ORA-01549: tablespace not empty, use INCLUDING CONTENTS option

drop tablespace ttt including contents; //小心

删除了表空间,数据文件还在

[[email protected] orcl]$ ll

total 1590248

-rw-r----- 1 oracle dba   9748480 May 29 05:11 control01.ctl

-rw-r----- 1 oracle dba   9748480 May 29 05:11 control02.ctl

-rw-r----- 1 oracle dba  52429312 May 29 03:16 redo01.log

-rw-r----- 1 oracle dba  52429312 May 29 03:16 redo02.log

-rw-r----- 1 oracle dba  52429312 May 29 05:11 redo03.log

-rw-r----- 1 oracle dba  10493952 May 29 04:41 rrr.dbf

-rw-r----- 1 oracle dba 555753472 May 29 05:05 sysaux01.dbf

-rw-r----- 1 oracle dba 775954432 May 29 05:08 system01.dbf

-rw-r----- 1 oracle dba  30416896 May 29 03:16 temp01.dbf

-rw-r----- 1 oracle dba  10493952 May 29 03:50 test01.dbf

-rw-r----- 1 oracle dba  10493952 May 29 05:07 ttt.dbf

-rw-r----- 1 oracle dba  73408512 May 29 05:05 undotbs01.dbf

-rw-r----- 1 oracle dba  13115392 May 29 03:16 users01.dbf

查看表空间下面有哪些表(RRR大小写区分)

select owner,table_name from dba_tables where tablespace_name=‘RRR‘;

查看用户的默认表空间:

select default_tablespace from dba_users where username=‘SCOTT‘;

删除表空间,同时删除数据文件

drop tablespace rrr including contents and datafiles; //小心

desc dba_tablespaces;

select TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces order by 1;

SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT from dba_tab

lespaces order by 1;

TABLESPACE_NAME       EXTENT_MAN ALLOCATIO SEGMEN

------------------------------ ---------- --------- ------

RRR       LOCAL  UNIFORM   AUTO

SYSAUX       LOCAL  SYSTEM    AUTO

SYSTEM       LOCAL  SYSTEM    MANUAL

TEMP       LOCAL  UNIFORM   MANUAL

TEST       LOCAL  SYSTEM    AUTO

UNDOTBS1       LOCAL  SYSTEM    MANUAL

USERS       LOCAL  SYSTEM    AUTO

7 rows selected.

数据文件信息

select * from dba_data_files;

关联数据文件及表空间文件

col FILE_NAME for a50;

col TABLESPACE_NAME for a10;

select b.FILE_NAME,a.TABLESPACE_NAME,a.EXTENT_MANAGEMENT,a.ALLOCATION_TYPE,a.SEGMENT_SPACE_MANAGEMENT from dba_tablespaces  a ,dba_data_files b  where a.TABLESPACE_NAME=b. TABLESPACE_NAME order by 1;

SQL> col FILE_NAME for a50;

SQL> /

FILE_NAME   TABLESPACE EXTENT_MAN ALLOCATIO SEGMEN

-------------------------------------------------- ---------- ---------- --------- ------

/u02/oracle/oradata/orcl/rrr.dbf   RRR      LOCAL UNIFORM   AUTO

/u02/oracle/oradata/orcl/sysaux01.dbf   SYSAUX     LOCAL SYSTEM    AUTO

/u02/oracle/oradata/orcl/system01.dbf   SYSTEM     LOCAL SYSTEM    MANUAL

/u02/oracle/oradata/orcl/test01.dbf   TEST       LOCAL SYSTEM    AUTO

/u02/oracle/oradata/orcl/undotbs01.dbf   UNDOTBS1   LOCAL SYSTEM    MANUAL

/u02/oracle/oradata/orcl/users01.dbf   USERS      LOCAL SYSTEM    AUTO

下面是ASM的结果:

col FILE_NAME for a40;

col TABLESPACE_NAME for a10;

FILE_NAME TABLESPACE EXTENT_MAN ALLOCATIO SEGMEN

---------------------------------------- ---------- ---------- --------- ------

+DATA/orcl/datafile/example.265.94330143 EXAMPLE    LOCAL      SYSTEM AUTO

3

+DATA/orcl/datafile/sysaux.257.943301251 SYSAUX     LOCAL      SYSTEM AUTO

+DATA/orcl/datafile/system.256.943301251 SYSTEM     LOCAL      SYSTEM MANUAL

+DATA/orcl/datafile/tbs.dbf         TBS_16K    LOCAL      SYSTEM AUTO

+DATA/orcl/datafile/undotbs1.258.9433012 UNDOTBS1   LOCAL      SYSTEM MANUAL

51

+DATA/orcl/datafile/users.259.943301251  USERS    LOCAL      SYSTEM AUTO

3、扩大表空间

create tablespace tttt datafile ‘/u02/oracle/oradata/orcl/tttt.dbf‘ size 1m;

create table t tablespace tttt as select * from scott.emp;

insert into t select * from t;

SQL> /

insert into t select * from t

*

ERROR at line 1:

ORA-01653: unable to extend table SYS.T by 8 in tablespace TTTT

解决方法:

增加数据文件

alter tablespace tttt add datafile ‘/u02/oracle/oradata/orcl/tttt02.dbf‘ size 1m;

alter tablespace tttt add datafile ‘/u02/oracle/oradata/orcl/tttt03.dbf‘ size 1m autoextend on next 1m; 自动扩展

select tablespace_name,file_name,bytes/1024/1024||‘M‘ from dba_data_files where tablespace_name=‘TTTT‘;

或者

alter database datafile ‘/u02/oracle/oradata/orcl/tttt02.dbf‘ resize 100m;

alter tablespace tttt drop datafile ‘/u02/oracle/oradata/orcl/tttt02.dbf‘ size 1m;

时间: 2024-12-27 15:30:22

11、oracle 表空间的相关文章

zabbix自动发现oracle表空间并监控其使用率

监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创建表空间时可以根据应用需求指定是否开启表空间自动扩展.那么在这里我们需要分析一个监控策略,就是当zabbix监控到某个表空间使用率达到95%,那么就让触发器触发警告(Warning)信息,并发送邮件给DBA或管理者.当检测到表空间没有开启自动扩展时,则触发Information信息.说明一下:ora

oracle 表空间tablespace_name 文件满了,扩充方法

当然:还是建议在简历表空间时就让其自动扩充的,代码如下:(注意倒数三行) create tablespace prmms_log   logging    datafile 'C:\app\Administrator\product\11.2.0\dbhome_1\database\prmms_log.dbf'   size 50m   autoextend on    next 50m maxsize 20480m   extent management local; 好吧,假如你和博主一样给

Oracle表空间维护总结

1. 概念:表空间:最大的逻辑存储文件,与物理上的一个或多个数据文件对应,每个数据库至少拥有一个表空间,表空间的大小等于构成表空间的所有数据文件的大小总和,用于存储用户在数据库中存储的所有内容. 2. 种类:分为基本表空间.临时表空间.大文件表空间.非标准数据块表空间和撤销表空间.基本表空间:用于存储用户的永久性数据临时表空间:排序.汇总时产生的临时数据大文件表空间:存储大型数据,如LOB非标准数据块表空间:创建数据块大小不同的表空间撤销表空间:存储事务的撤销数据,在数据恢复时使用 3. 系统默

Oracle 表空间查询与操作方法

一.查询篇 1.查询oracle表空间的使用情况 select b.file_id 文件ID,  b.tablespace_name 表空间,  b.file_name 物理文件名,  b.bytes 总字节数,  (b.bytes-sum(nvl(a.bytes,0))) 已使用,  sum(nvl(a.bytes,0)) 剩余,  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比  from dba_free_space a,dba_data_files b 

Oracle 表空间的日常维护与管理

目录 Oracle 表空间的日常维护与管理 1.创建数据表空间 2.创建临时表空间 3.创建 UNDO 表空间 4.表空间的扩展与修改大小 5.表空间重命名 6.表空间的删除 7.更改表空间的读写模式 8.更改表空间的在线模式 Oracle 表空间的日常维护与管理 1.创建数据表空间 查询有关表和视图:[使用版本Oracle 11gR2] 1.查看表空间信息 dba_tablespaces v$tablespace 2.查看数据文件 dba_data_files v$datafile 3.查看临

Oracle表空间

Oracle表空间,布布扣,bubuko.com

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

44.oracle表空间的使用

要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得"这不是我的事,我只是个小打工的",团建要放在首位.不可在下属面前"装B",别人也不傻. Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的. ORACLE数据库被划分成称作为表空间[1]  的逻辑区域--形成ORACLE数据库的逻辑结构.一个ORACLE数据库能够

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客"怎样玩转千万级别的数据"提到了过表分区的概念,其实表分区说到本质上就是按一定条件把不同数据放在不同的数据文件里,这些数据文件在物理上是相对独立的,在逻辑上又是一个整体.特别强调一下,在SQL Server中,建表时是默认把所有的表都保存在PRIMARY默认文件组 ,当数据库中表很多,并且数据量很大时,会

SQL创建Oracle表空间、用户以及给用户赋权的方法

//创建表空间 Create tablespace examination//创建表空间examination datafile 'c:\Oracle\zhangwei\examination.dbf'//与表空间关联的文件存放位置(要预先手动建好文件夹) size 100m//文件初始大小,千万不要写成mb(这里以下可略) autoextend on//文件大小可自动拓展 next 30m//每次拓展30m maxsize unlimited//不限制文件大小的上限 logging//生成对于