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

[经验分享] Oracle表空间管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-4-3 09:31:38 | 显示全部楼层 |阅读模式
?      表空间

Oracle磁盘管理中的最高逻辑层是表空间,Oracle11g中必须创建的4个表空间是SYSTEM, SYSAUX,TEMP, UNDOTBS1。

?       SYSTEM:存储数据字典等,pl/sql代码等。

?       SYSAUX:存储与数据库选项相关的数据

?       TEMP:用于大的排序操作

?       UNDUTBS1:为读一致性和恢复的目的,存储事务信息。

表空间的下一层是段,一个段只能驻留在一个表空间中;一个或多个区可以组成一个段,每个区只能驻留在一个数据文件中;一组连续的数据块可以组成一个区。如果要查询表空间与对应的数据文件的相关信息,可以从dba_data_files数据字典中查询表空间及其包含的数据文件,举例如下:

SQL> col tablespace_name for a10;

SQL> col file_name for a50;

SQL> col bytes for 999,999,999;

SQL>Select tablespace_name,file_name, bytes fromdba_data_files order by tablespace_name;

1、 SYSTEM表空间

SYSTEM表空间存放内部数据和数据字典,主要存放SYS用户的各个对象和其他用户的少量对象。例如:查询USERS表空间中存放的数据对象及其类型和拥有者。

SQL>col owner for a10;

SQL>col segment_name for a30;

SQL>col segment_type for a20;

SQL>select segment_type,segment_name,owner fromdba_segments where tablespace_name='USERS';

2、 SYSAUX表空间

SYSAUX表空间充当SYSTEM表空间的辅助表空间,主要用于存储除数据字典以外的其他数据对象。例如,查询SYSAUX表空间所存放的用户及其所拥有的对象数量:

Select owner as 用户, count(segment_name) as 对象数量 fromdba_segments where tablespace_name='SYSAUX' group by owner;

3、 创建表空间

创建表空间的语法如下:

Create [smallfile | bigfile] tablespace tablespace_name

Datafile '/path/filename' size num[k|m] reuse

['/path/filename' size num[k|m]reuse]

[, …]

[autoextend [on|off] next ] num[k|m]

[maxsize [unlimited | num[k|m]]]

[mininum extent num[k|m]]

[default storage storage]

[online | offline]

[logging | nologging]

[permanent | temporary]

[extent management dictionary | local [autoallocate |uniform size num[k|m]]];

说明:

?        smallfile | bigfile:表示创建的是小文件表空间还是大文件表空间

?        autoextend [on|off] next:表示数据文件为自动扩展或非自动扩展,如为自动扩展则需要设置next的值。

?        maxsize:表示数据文件自动扩展时,允许数据文件扩展的最大长度字节数,如果指定unlimited关键字,则不需要指定字节长度。

?        minimum extent:指出在表空间的extent的最小值,这个参数可以减少空间碎片,保证在表空间的extent是这个数值的整数倍。

?        online | offline:创建表空间时可以指定为在线或离线。

?        permanent | temporary:指定创建表空间是永久表空间或临时表空间。默认为永久表空间。

?        logging | nologging:指定该表空间内的表在加载数据时是否产生日志,默认为产生日志,即使设定为nologging,但在进行insert,update,delete操作时,oracle仍会将信息记录到redo log buffer中。

?        extent management dictionary | local:指定表空间的扩展方式是使用数据字典管理还是本地化管理。默认为本地化管理。

?        autoallocate | uniform size:如果采用本地化管理,在表空间扩展时,指定每次区的扩展大小是系统自动指定还是按照同等大小进行。如果设定uniform关键字,默认扩展大小为1MB。

?        reuse:表示如果该文件存在,则清除该文件再重建该文件;若文件不存在,则创建该文件。

?        default storage:设定以后要创建的表、索引、簇的存储参数值。

4、 删除表空间

?        删除空的表空间,但是不包含物理文件

drop tablespacetablespace_name;

?        删除非空表空间,但是不包含物理文件

drop tablespacetablespace_name including contents;

?        删除空表空间,包含物理文件

drop tablespace tablespace_nameincluding datafiles;

?        删除非空表空间,包含物理文件

drop tablespacetablespace_name including contents and datafiles;

?        如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADECONSTRAINTS

drop tablespacetablespace_name including contents and datafiles CASCADE CONSTRAINTS;

5、 案例

?        创建表空间,然后删除该表空间。

Createtablespace exampletb

   Datafile 'E:\ examp01.dbf' size 5M autoextend on next 128k maxsize 1000m,

         'E:\ examp02.dbf' size 5Mautoextend on next 128k maxsize 1000m;

说明:以上例子创建的表空间由examp01.dbf和examp02.dbf两个文件组成。创建完成后,可以发现在相应路径下增加了2个文件。

drop tablespaceexampletb;

?        创建表空间和表,然后删除该表空间。

Createtablespace exampletb   Datafile 'E:\ examp01.dbf'size 5M autoextendon next 128k maxsize 1000m reuse,

         'E:\examp02.dbf' size 5Mautoextend on next 128k maxsize 1000m reuse;

create tablescott.student

(

  id number,

  name VARCHAR2(10)

)tablespaceexampletb;

说明:向student表插入数据时,数据将存储在表空间exampletb中,而exampletb表空间拥有一个或多个数据文件,所以student数据最终存储到examp01和examp02的数据文件中。

drop tablespaceexampletb including contents;

?        创建表空间,然后删除该表空间及数据文件。

Create tablespaceexampletb

   Datafile 'E:\ examp01.dbf' size 5M autoextend on next 128k maxsize 1000mreuse,

         'E:\examp02.dbf' size 5Mautoextend on next 128k maxsize 1000m reuse;

drop tablespaceexampletb including datafiles;

?        创建表空间和表,然后删除该表空间及数据文件。

Createtablespace exampletb

   Datafile 'E:\ examp01.dbf' size 5M autoextend on next 128k maxsize 1000m,

         'E:\examp02.dbf' size 5Mautoextend on next 128k maxsize 1000m;

create tablescott.student

(

  id number,

  name VARCHAR2(10)

)tablespaceexampletb;

drop tablespaceexampletb including contents and datafiles;

说明:如果drop tablespace语句中含有datafiles,那datafiles之前必须有contents关键字,不然会提示错误。

?        创建两个表空间,分别在其中创建主码表和外码表,然后删除包含主码表的表空间及数据文件。

Createtablespace exampletb1

   Datafile 'E:\ examp03.dbf' size 5M autoextend on next 128k maxsize 1000m;

Createtablespace exampletb2

   Datafile 'E:\ examp02.dbf' size 5M autoextend on next 128k maxsize 1000m;

create tabletest1(mobile number(13) primary key)tablespace exampletb1;

create table test2(mobile number(13) references test1(mobile)) tablespace exampletb2;

drop tablespace exampletb1 including contents and datafiles cascade constraints;


运维网声明 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.yunweiku.com/thread-16714-1-1.html 上篇帖子: Oracle Dataguard之物理standby的基本配置 下篇帖子: Oracle 数据库如何搜集指定SQL的执行计划和解决过程中的ORA-... Oracle 空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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