一,
1,创建数据表空间
createtablespace tiger logging datafile '/u01/tiger/oradata/orcl2/tiger.dbf' size 1mautoextend on next 10M maxsize 120M extent management local;
,2,创建临时表空间
create temporarytablespace temp1 tempfile '/u01/tiger/oradata/orcl2/temp1.dbf' size 10mautoextend on next 1M maxsize 120M extent management local;
3,创建undo表空间
SQL> createundo tablespace untotbs1 datafile '/u01/tiger/oradata/orcl2/undotbs01' size10M;
创建表空间的说明
第一,nologging和logging参数的区别
有nologging参数的时候创建表空间不创建重做日志
有logging是时候创建表空间的时候创建重做日志,要记录在日志里
第二,extent management
extent management local是采用本地管理的方式管理表空间
二,管理表空间
1,删除表空间
drop tablespaceuntotbs1 including contents and datafiles
2,联机表空间
alter tablespacetiger online,
3,联机日志文件
alter databasedatafile 5 online;,
4,脱机表空间
alter tablespacetiger offline
5,脱机数据文件
alter databasedatafile 5 offline,
6,获取创建表空间元数据
selectdbms_metadata.get_ddl('TABLESPACE','TIGER') from dual;,
7,使得表空间变为只读模式
SQL> altertablespace tiger read only;,
8,使得表空间位读写模式
SQL> altertablespace tiger read write; 记得read和write之间没有逗号
三,空间管理
1,查看表空间大小和名字对应的数据文件
SQL> selecttablespace_name,file_name,bytes/(1024*1024) from dba_data_FIles;
记住这里的1024*1024必须加上括号
2,给表空间增加数据文件
SQL> altertablespace tiger add datafile '/u01/tiger/oradata/orcl2/tiger01.dbf' size 20m;
3,修改表空间数据文件大小
SQL> alterdatabase datafile '/u01/tiger/oradata/orcl2/tiger01.dbf' resize 10M;
4,修改表空间自动扩展
SQL> alterdatabase datafile '/u01/tiger/oradata/orcl2/tiger01.dbf' autoextend on next 10Mmaxsize 100M;
四,创建用户的时候指定表空间和临时表空间
SQL> createuser lion identified by lion default tablespace tiger temporary tablespacetemp;
补充:
1,查询表空间类型
selecttablespace_name,contents from dba_tablespaces;
2,查询表空间状态
selecttablespace_name,status from dba_tablespaces;
3,修改表空间名字
alter tablespacetiger rename to zhu;
4,不能offline的表空间有
1,systemtablespace
2,defaulttemporary
3,包含事物的UNDOtablespace
取消数据文件自动增长
alter databasedatafile '/u01/tiger/oradata/orcl2/tiger01.dbf' autoextend off;
如果表空间有约束的删除
drop tablesapcetiger including contents and datafiles cascade constraints;
数据文件的移动和改名
(1)使用altertablespace 命令
SQL> selectname from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/tiger/oradata/orcl2/system01.dbf
/u01/tiger/oradata/orcl2/tiger.dbf
/u01/tiger/oradata/orcl2/sysaux01.dbf
/u01/tiger/oradata/orcl2/users01.dbf
/u01/tiger/oradata/orcl2/undotbs02.dbf
/u01/tiger/oradata/orcl2/undotbs01
/u01/tiger/oradata/orcl2/tiger01.dbf
7 rows selected.
SQL> altertablespace tiger offline;
Tablespace altered.
SQL> !mv/u01/tiger/oradata/orcl2/tiger01.dbf /bk/
SQL> altertablespace tiger rename datafile '/u01/tiger/oradata/orcl2/tiger01.dbf' to'/bk/tiger01.dbf';
Tablespacealtered.
SQL> altertablespace tiger online;
Tablespacealtered.
SQL> selectname from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/tiger/oradata/orcl2/system01.dbf
/u01/tiger/oradata/orcl2/tiger.dbf
/u01/tiger/oradata/orcl2/sysaux01.dbf
/u01/tiger/oradata/orcl2/users01.dbf
/u01/tiger/oradata/orcl2/undotbs02.dbf
/u01/tiger/oradata/orcl2/undotbs01
/bk/tiger01.dbf
7 rows selected.
(2),使用alterdatabase 命令
使用这个命令的时候数据库在mount状态下才行
mount状态下
SQL> !mv/bk/tiger01.dbf /u01/tiger/oradata/orcl2/
SQL> alterdatabase rename file '/bk/tiger01.dbf' to '/u01/tiger/oradata/orcl2/tiger01.dbf';
Databasealtered.
SQL> alterdatabase open;
Databasealtered.
SQL> selectname from v$datafile;
NAME
----------------------------------------
/u01/tiger/oradata/orcl2/system01.dbf
/u01/tiger/oradata/orcl2/tiger.dbf
/u01/tiger/oradata/orcl2/sysaux01.dbf
/u01/tiger/oradata/orcl2/users01.dbf
/u01/tiger/oradata/orcl2/undotbs02.dbf
/u01/tiger/oradata/orcl2/undotbs01
/u01/tiger/oradata/orcl2/tiger01.dbf
7 rows selected.