Oracle 11G如何实现表空间操作
admin
2023-05-07 17:42:04
0
  1. 查询表空间信息

    1.1: 查询数据字典视图DBA_TABLESPACES获取数据库中个表空间的名称,状态,管理方式,区的分配方式,段的管理方式,表空间类型等基本信息。

SELECT TABLESPACE_NAME,STATUS,EXTENT_MANAGEMENT,
ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,CONTENTS
FROM DBA_TABLESPACES;

  Result:

      1.2:查询数据字典视图DBA_FREE_SPACE,获取数据库中各个表空间空闲的统计信息:

SELECT TABLESPACE_NAME"TABLESPACE",FILE_ID,
COUNT(*)"PIECES",MAX(blocks)"MAXIMUM",MIN(blocks)"MINIMUM",
AVG(blocks)"AVERAGE", SUM(blocks)"TOTAL"
FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME,FILE_ID;

        1.3:查询数据字典视图DBA_TEMP_FREE_SPACE,获取临时表空间的表空间使用信息:

SELECT * FROM DBA_TEMP_FREE_SPACE

2.创建表空间

CREATE TABLESPACE语法:

CREATE [BIGFILE|SMALLFILE] [TEMPORARY|UNDO] TABLESPACE tbs_name

DATAFILE|TEMPFILE path/filename SIZE integer [K|M] [REUSE]

    [AUTOEXTEND [OFF|ON] NEXT integer [K|M]

    MAXSIZE [UNLIMITED|integer [K|M]]

[TABLESPACE GROUP tablespace_group_name]

[EXTENT MANAGEMENT DICTIONARY|LOCAL]

[AUTOALLOCATE|UNIFORM SIZE integer [K|M]]

2.1 创建一个本地管理的永久表空间TBS1,区、段采用自动管理:

CREATE TABLESPACE TBS1 DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_1.DBF' size 50M;

2.2 创建一个本地管理的永久表空间TBS2,区采用定制分配,大小为512k,段采用自动管理。

CREATE TABLESPACE TBS2 DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS2_1.DBF' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;

2.3 创建一个本地管理的永久表空间TBS4,区采用定制分配方式,大小为512K,段采用手动管理:

CREATE TABLESPACE TBS4 DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS4_1.DBF' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
SEGMENT SPACE MANAGEMENT MANUAL;

2.4 创建一个索引表空间INDX,存储所有索引信息,表空间文件自动扩展每次5M,最大为100M:

CREATE TABLESPACE INDX DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/INDX_1.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

2.5 创建一个TBS5表空间,第一个区10M,第二个区为10M,后续10%增长

CREATE TABLESPACE TBS5 DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS5_1.DBF' SIZE 50M
DEFAULT STORAGE(INITIAL 10M NEXT 10M PCTINCREASE 10)
SEGMENT SPACE MANAGEMENT MANUAL;

3. 创建大文件表空间

    3.1 查询数据库默认创建大文件还是小文件的表空间:

SELECT PROPERTY_NAME,PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME='DEFAULT_TBS_TYPE';

    3.2 创建一个大文件表空间BIGTBS1:

CREATE BIGFILE TABLESPACE BIGTBS1 DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/BIGTBS1_1.DBF' SIZE 50M
AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;

    3.3 大文件表空间信息查询:

SELECT T.NAME TBSNAME,RFILE#,D.NAME FNAME
FROM V$TABLESPACE T,V$DATAFILE D
WHERE T.TS#=D.TS# AND T.NAME='BIGTBS1'

    3.4 创建非标准块表空间

ALTER SYSTEM SET DB_16K_CACHE_SIZE=16384;
CREATE TABLESPACE TBS16
DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS16_1.DBF' SIZE 60M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K BLOCKSIZE 16K;
SELECT TABLESPACE_NAME,BLOCK_SIZE FROM DBA_TABLESPACES;

4. 维护表空间

    4.1 增加表空间文件

ALTER TABLESPACE TBS1 
ADD DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_2.DBF' SIZE 10M;

     4.1.2 增加TEMP表空间文件

    ALTER TABLESPACE TEMP ADD TEMPFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP02.DBF' SIZE 10M;

    4.2 改变数据文件大小

ALTER DATABASE DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS1_2.DBF' RESIZE 20M;

    4.3 更改文件的扩展方式:

ALTER DATABASE DATAFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TBS2_1.DBF'
 AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

    4.5 删除表空间文件:

ALTER TABLESPACE TEMP
DROP TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP02.DBF';

普通表空间只要将TEMPFILE换成DATAFILE即可

5. 设置默认表空间:

    5.1 查看当前默认表空间:

  SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME IN ('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');

    5.2 设置默认表空间:

    ALTER DATABASE DEFAULT TABLESPACE TBS1;

    5.2.1 设置默认临时表空间:

    ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;

6. 管理临时表空间

创建临时表空间与创建普通表空间语法差不多,如创建一个    TEMP2临时表空间:

CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/temp2_1.DBF' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;

可以在create与temporary之间加入BIGFILE创建大文件临时表空间(CREATE BIGFILE TEMPORARY ...)

    6.1 临时表空间组:

CREATE TEMPORARY TABLESPACE TEMP4 TEMPFILE 
'/usr/oracle/app/product/11.2.0/dbhome_1/dbs/TEMP4_1.DBF' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M
TABLESPACE GROUP TEMP_GROUP1;

    可以使用alter tablespace语句将临时表空加入组或者从表空间租移除

ALTER TABLESPACE TEMP2 TABLESPACE GROUP TEMP_GROUP1;
ALTER TABLESPACE TEMP4 TABLESPACE GROUP '';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_GROUP1;

    6.2 收缩临时表空间:

ALTER TABLESPACE temp SHRINK SPACE;
ALTER TABLESPACE TEMP2 SHRINK TEMPFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/temp2_1.DBF';

7 undo表空间

    7.1 创建undo表空间:

    CREATE UNDO TABLESPACE UNDOTBS2
DATAFILE '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/UNDOTBS2_1.DBF' SIZE 20M
AUTOEXTEND ON NEXT 2M MAXSIZE 100M;

    增加undo表空间文件与普通表空间做法一样

切换undo表空间:

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

    7.2 UNDO信息保留时间设置:

通过初始化参数UNDO_RETENTION设置回退信息的最短保留时间,单位为妙。

show parameter UNDO
可以查出当前UNDO_RETENTION的设置,修改默认值:

ALTER SYSTEM SET UNDO_RETENTION=1800;

再启用undo表空间的RETENTION GUARANTEE特性确保UNDO信息至少保留UNDO_RETENTION指定的时间。

ALTER TABLESPACE UNDOTBS2 RETENTION GUARANTEE;

相关内容

热门资讯

武汉大学打开大门,以开放拆掉“... 澎湃新闻主笔 沈彬5月13日,武汉大学正式取消社会公众进校预约制度。公众无需任何预约,仅凭本人身份证...
中方很直白:对欧洲非常失望,把... 【文/观察者网 柳白】欧盟屡借“安全风险”和“产业振兴”之名,行保护主义与差别对待之实,遭中方明确回...
韩国赚大了,但大麻烦也来了 AI正在改变世界,但不得不说,最先被深刻重塑、掀起财富狂潮的,还是韩国。有些数据,说出来都不敢相信自...
以色列执政联盟提交提前解散议会... 以色列执政联盟主席奥菲尔·卡茨13日与联盟各派别领导人共同提交一项解散议会的议案,此举可能触发以色列...
内塔尼亚胡首次公开证实曾秘访,... 以色列总理办公室13日证实,以总理内塔尼亚胡在以色列对伊朗发动大规模军事行动期间曾秘密访问阿联酋,并...
1万个外资项目,看好这个县级市 在昆山高新区的沪士电子股份有限公司门口,运输建材的卡车与满载成品的物流货车交错而行。新厂房扩建与车间...
特朗普抵达酒店,车队驶过持续6... 美国总统特朗普车队于5月13日晚8点30分左右抵达位于北京东三环的下榻酒店。凤凰卫视驻北京记者在酒店...
少出国、少用油、少买金子,莫迪... 【文/观察者网 熊超然】上周末,印度总理莫迪呼吁民众在中东战争持续的这段时间里,未来一年内适度减少燃...
岛内“新地标”,沦为民进党“抢... 被视为岛内近年来最为重大的公共建设项目之一的新北市淡江大桥,于5月12日正式通车。然而,因民进党当局...
副秘书长在以色列机场遭扣留,联... 新华社联合国5月13日电 联合国秘书长副发言人哈克13日就联合国负责安全和安保事务的副秘书长吉勒·米...