ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 管理表空间,个人总结

管理表空间,个人总结

原创 Linux操作系统 作者:yuhan_r 时间:2010-07-08 23:46:09 0 删除 编辑

表空间分类
 1.system 表空间(数据库必须,数据字典,SYSTEM还原段,随数库据创建)
 2.非SYSTEM表空间(用于分开存储段,易于空间管理,控制 分配给用户的空间量)

创建表空间命令
 create tablespace ts01
  datafile '/u01/oradata/SID/te01.dbf' size 100M
  autoextend on next 10M  maxsize 500M;
  
我们只用本地管理表空间
本地管理表空间
 create tablespace ts01
  datafile '/u01/oradata/SID/te01.dbf' size 100M
  extent management local uniform. size 12k;
 
SYSTEM表空间是LOCAL MANAGEMENT 那么  其它的表空间肯定是LOCAL MANAGEMENT

UNDO TABLESPACE 还原表空间
 1.用来存储还原(回退)段.
 2.不能包含任何其它对象.
 3.其中区要在本地管理.
 4.只能用DATAFILE 和 EXTENT MANAGEMENT子句.
 
 create undo tablespace ud01
 datafile '/u01/oradata/SID/ud01.dbf' size 100M;

TEMPTABLESPACE 临时表空间
 1.用来存储排序操作.
 2.不能包含永久对象.
 3.建议在本地管理
 
 create temporary tablespace temp01
 tempfile 'u01/oradata/SID/temp01.dbf' size 500M;
 extent management local uniform. size 4M;
 
 uniform. 指定 按照大小统一为SIZE字节数的各个区来管理表空间.
 
缺省的临时表空间
 指定数据库范围内的缺省的临时表空间.
 避免使用SYSTEM 表空间存储 临时数据.
 可以使用以下命令进行创建.
 1.CREATE DATABASE
  DEFAULT TEMPORARY TABLESPACE temp
   TEMPFILE 'u01/oradata/SID/temp01.bdf' size 400M;
 2.先创建一个临时表空间
  然后 改变数据库
  ALTER DATABASE
   ALTER DATABASE DEFAULT TEMPORARY TABLESPACE  temp01;

只读表空间
 ALTER TABLESPACE temp read only;
  导致检查点操作.
  数据只用于读操作(没有COMMIT ROLLBACE的话数据库会HALT掉等他完成后 再进行数据库的修改)
  可以从表空间删除对象. (只是改变数据字内而不够成亲的表空间的文件,避免更新位图 )


使临时表空间脱机.
  不能脱机的表空间
   1.SYSTEM表空间
   2.缺省的临时表空间.
   3.具有活动的还原段的表空间.
alter tablespace userdata offline;

作用:
 1.使数据库一部分不可用,但允许正常访问正常的数据库部分,
 2.执行脱 机表空间备分,
 3.在数据库打开时恢复表空间或数据文件.
 4.在数据库打开时移动数据文件.
alter tablespace userdata online; 

查表空间用的情况的方法
 DBA_DATA_FILES 查一共有 多少表空间  select sum(bytes) from DBA_DATA_FILES group by tablespace_name;
 DBA_FREE_SPACE 查还有多少表空间没用 select sum(bytes) from   DBA_FREE_SPACE group by tablespace_name;

调整表空间的大小
 二种文式:
  1.更改数据文件的大小.
    使用AUTOEXTEND ON自动调整
    使用ALTER DATABASE手动调整
  2.使用 ALTER TABLESPACE 添加数据文件.
  
 自动的:
 
  使数据文件变成自动调整的方法
  
  为新的数据文件指定AUTOEXTEND ON
  1. CREATE DATABASE的时候
  2. CREATE TABLESPACE temp datafile '/u01/oradata/SID/tmp.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
  3. ALTER TABLESPACE temp datafile '/u01/oradata/SID/tmp.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
  
  修改旧的数据文件指定 AUTOEXTEND ON
  4. ALTER DATABASE  datafile '/u01/oradata/SID/tmp.dbf'  AUTOEXTEND ON NEXT 10M MAXSIZE 500M;  这个不用size 100M了因为 这是已有的数据文件 已经设过了.
    
  
  手动的:
  
  ALTER DATABASE datafile '/u01/oradata/SID/tmp.dbf' resize 200M;
  
  
  删除表空间:
   不能删的:(这点与不能OFFLINE相似 但是少一个临时表空间)
    1.SYSTEM表空间.
    2.具有活动的还原段的表空间.
    
    drop tablespace data01 including contents and datafiles;
    
重要:!!!记住在哪查TEMPFILE的信息 dba_temp_files; V$tempfile; (不是在DBA_DATA_FILES vDATAFILE中查)    
  
  
  
 管理表空间练习
  
  create tablespace data01 datafile '/u01/oradata/ora9/data01.dbf'size 10M extent management local uniform. size 100k

create tablespace index01 datafile '/u01/oradata/ora9/index01.dbf'size 10M autoextend on next 500k maxsize 20m uniform. size 4k

查看表空间有多大
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

使表空间变大 在表空间中添加数据文件
alter tablespace data01 add datafile'/u01/oradata/ora9/data03.dbf' size 500k;


alter tablespace index01 rename datafile '/u01/oradata/ora9/index01.dbf' to '/u01/u06/oradata/ora9/index01.dbf'
重定向表空间数据文件.
1. alter tablespace index01 offline;
2. cp '/u01/oradata/ora9/index01.dbf' '/u01/u06/oradata/ora9/index01.dbf'
3.  alter tablespace index01 rename datafile'/u01/oradata/ora9/index01.dbf' to '/u01/u06/oradata/ora9/index01.dbf'
4. alter tablespace index01 online;


create undo tablespace undo001 datafile'/u01/oradata/ora9.undo00101.dbf' size 10m;
create temporary tablespace temp001 tempfile '/u01/oradata/ora9/temp00101.dbf' size 100M uniform. size 128k;

查找数据文件是否自动扩展 select file_name,autoextensible from dba_data_files;
1. 三种方法创建自动扩展的数据文件(创建数据库.创建表空间,在表空间中添加数据文件)
 alter tablespace data01 add datafile'/u01/oradata/ora9/data03.dbf' size 500k autoextend on next 10k maxsize 600k;
2.将已有的不自动扩展的数据文件 改成自动扩展的数据文件.
 alter database datafile '/u01/oradata/ora9/data01.dbf' autoextend on next 100K maxsize 500k;
 
 
手动调整数据文件的大小
alter database datafile '/u01/oradata/ora9/data01.dbf' resize 5M;(当初我们设了10M  参考第一行)
但我们设成5M的时候没有报错 因为 我们没有用掉5M, 但如果我们改成极端值1K 会报错的.
如:
 alter database datafile '/u01/oradata/ora9/data01.dbf' resize 1k
 *
   ERROR at line 1:
   ORA-03214: File Size specified is smaller than minimum required
  
   删除表空间:
  
   drop tablespace index01 including contents and datafiles;


重要:!!!记住在哪查TEMPFILE的信息 dba_temp_files; V$tempfile; (不是在DBA_DATA_FILES vDATAFILE中查)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23877751/viewspace-667621/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-07-08

  • 博文量
    4
  • 访问量
    4602