Oracle表空间的操作语句

    技术2022-05-19  56

    建立表空间 CREATE TABLESPACE devdata DATAFILE '/oracle/oradata/db/devdata.dbf' SIZE 500M UNIFORM SIZE 128k;             #指定区尺寸为128k,如不指定,区尺寸默认为64k

    删除表空间 DROP TABLESPACE devdata INCLUDING CONTENTS AND DATAFILES;

    修改表空间大小 alter database datafile '/path/devdata.dbf' resize 100M              

    移动表至另一表空间 alter table move tablespace room1;

    一、建立表空间 CREATE TABLESPACE devdata DATAFILE '/oracle/oradata/db/devdata.dbf' SIZE 500M UNIFORM SIZE 128k;             #指定区尺寸为128k,如不指定,区尺寸默认为64k

    二、建立UNDO表空间 CREATE UNDO TABLESPACE UNDOTBS02 DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

    #注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:

    ALTER SYSTEM SET undo_tablespace=UNDOTBS02 scope=both;

    三、建立临时表空间 CREATE TEMPORARY TABLESPACE temp_data TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

    四、改变表空间状态

    1.使表空间脱机 ALTER TABLESPACE devdata OFFLINE; 如果是意外删除了数据文件,则必须带有RECOVER选项 ALTER TABLESPACE devdata OFFLINE FOR RECOVER;

    2.使表空间联机 ALTER TABLESPACE devdata ONLINE;

    3.使数据文件脱机 ALTER DATABASE DATAFILE 3 OFFLINE;

    4.使数据文件联机 ALTER DATABASE DATAFILE 3 ONLINE;

    5.使表空间只读 ALTER TABLESPACE devdata READ ONLY;

    6.使表空间可读写 ALTER TABLESPACE devdata READ WRITE;

    五、删除表空间 DROP TABLESPACE devdata INCLUDING CONTENTS AND DATAFILES;

    六、扩展表空间

    首先改变数据库的字符

    export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

    查看表空间的名字和所属文件 select   b.file_name 物理文件名,   b.tablespace_name 表空间,   b.bytes/1024/1024 大小M,   (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,   substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率   from dba_free_space a,dba_data_files b   where a.file_id=b.file_id   group by b.tablespace_name,b.file_name,b.bytes   order by b.tablespace_name;

    1.增加数据文件   ALTER TABLESPACE devdata   ADD DATAFILE '/oracle/oradata/db/devdata2.dbf' SIZE 1000M;

    2.手动增加数据文件尺寸   ALTER DATABASE DATAFILE '/oracle/oradata/db/devdata.dbf'   RESIZE 4000M;

    3.设定数据文件自动扩展   ALTER DATABASE DATAFILE '/oracle/oradata/db/devdata.dbf'   AUTOEXTEND ON NEXT 100M   MAXSIZE 10000M;

    4.设定后查看表空间信息   select   a.a1 表空间名称,   c.c2 类型,   c.c3 区管理,   b.b2/1024/1024 表空间大小M,   (b.b2-a.a2)/1024/1024 已使用M,   substr((b.b2-a.a2)/b.b2*100,1,5) 利用率   from   (select tablespace_name a1, sum(nvl(bytes,0)) a2 from   dba_free_space group by tablespace_name) a,   (select tablespace_name b1,sum(bytes) b2 from   dba_data_files group by tablespace_name) b,   (select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces) c   where a.a1=b.b1 and c.c1=b.b1;


    最新回复(0)