设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] 11、oracle 表空间

[复制链接]

尚未签到

发表于 2018-9-6 12:22:34 | 显示全部楼层 |阅读模式
  创建和管理表空间
  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'>  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'>  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'>
  create tablespace rrr datafile '/u02/oracle/oradata/orcl/rrr.dbf'>  select dbms_metadata.get_ddl('TABLESPACE','TTT') from dual;
  CREATE TABLESPACE "TTT" DATAFILE

  '/u02/oracle/oradata/orcl/ttt.dbf'>  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'>  LOGGING ONLINE PERMANENT BLOCKSIZE 8192

  EXTENT MANAGEMENT LOCAL UNIFORM>  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; //小心
  删除了表空间,数据文件还在
  [oracle@oracle250 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'>  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'>
  alter tablespace tttt add datafile '/u02/oracle/oradata/orcl/tttt03.dbf'>  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'>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-564061-1-1.html 上篇帖子: Oracle local write wait等待事件 下篇帖子: 关于oracle实例恢复的前滚和回滚的理解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表