oracle 第14章 表空间管理

2015-10-19

目录

#查看表空间
SQL> desc dba_tablespaces;
SQL> select tablespace_name,status,contents,logging from dba_tablespaces;
#创建表空间
SQL> create tablespace user_data datafile '/u01/app/oracle/oradata/orcl/userdata1.dbf' size 100M;
SQL> select tablespace_name,logging,status from dba_tablespaces;
#查看数据文件
SQL> desc dba_data_files;
SQL> col file_name for a45;
SQL> col tablespace_name for a10;
SQL> select file_name,tablespace_name,status from dba_data_files where tablespace_name='USER_DATA';
或
SQL> desc v$datafile;
SQL> col name for a45;
SQL> select name,status from v$datafile;

#创建数据字典管理的表空间
#SYSTEM表空间的Extent必须是DICTIONARY,oracle 11g r2已经不支持
SQL> create tablespace beijing_data datafile '/u01/app/oracle/oradata/orcl/beijing01.dbf' size 100M,'/u01/app/oracle/oradata/orcl/beijing02.dbf' size 100M,'/u01/app/oracle/oradata/orcl/beijing03.dfb' size 100M minimum extent 20k extent management dictionary default storage(initial 20k next 20k maxextents 500 pctincrease 0);

#创建本地管理的表空间
SQL> create tablespace shanghai_data datafile '/u01/app/oracle/oradata/orcl/shanghai01.dbf' size 100M extent management local uniform size 1M;

SQL> create tablespace JS_data datafile '/u01/app/oracle/oradata/orcl/JS01.dbf' size 100M,'/u01/app/oracle/oradata/orcl/JS02.dbf' size 100M extent management local uniform size 1M;

#创建还原表空间
SQL> create undo tablespace user_undo datafile '/u01/app/oracle/oradata/orcl/user_undo.dbf' size 30M;
SQL> select tablespace_name,status,contents,logging,extent_management from dba_tablespaces;

#创建临时表空间
SQL> create temporary tablespace user_temp tempfile '/u01/app/oracle/oradata/orcl/user_temp.dbf' size 20M extent management local uniform size 1M;

#查看临时文件
SQL> desc v$tempfile;
SQL> col name for a45;
SQL> select status,enabled,name from v$tempfile;

#查看默认临时表空间
SQL> col property_name for a30;
SQL> col property_value for a20;
SQL> col description for a40;
SQL> select * from database_properties where property_name like 'DEFAULT%';

#切换临时表空间
SQL> alter database default temporary tablespace user_temp;

#删除当前默认临时表空间
SQL> alter database default temporary tablespace temp;
SQL>drop tablespace user_temp;

#创建大文件表空间
SQL> create bigfile tablespace bfile datafile '/u01/app/oracle/oradata/orcl/bfile.dbf' size 2G;

#查看数据文件
SQL> col tablespace_name for a20;
SQL> col file_name for a45;
SQL> select tablespace_name,file_name from dba_data_files;

#查看表空间
SQL> select tablespace_name,contents,extent_management,segment_space_management from dba_tablespaces;

#修改默认表空间类型为大表
SQL> alter database set default bigfile tablespace;

#修改大文件表空间大小
SQL> alter tablespace bfile resize 4G;

#修改大文件表空间自动扩展
SQL> alter tablespace bfile autoextend on next 1G;

#查看默认表空间类型
SQL> desc database_properties;
SQL> col property_name for a20;
SQL> col property_value for a20;
SQL> col description for a30;
SQL> select * from database_properties where property_name like 'DEFAULT_TBS_TYPE';

PROPERTY_NAME         PROPERTY_V DESCRIPTION
-------------------- ---------- ----------------------------------------
DEFAULT_TBS_TYPE     BIGFILE    Default tablespace type

#修改表空间状态
1.将表空间bfile设为脱机状态
SQL> alter tablespace bfile offline;

2.将表空间bfile设为联机状态
SQL> alter tablespace bfile online;

3.将表空间bfile设为只读状态
SQL> alter tablespace bfile read only;

4.将只读表空间bfile恢复正常状态
SQL> alter tablespace bfile read write;

#验证
SQL> select tablespace_name,status,contents,logging from dba_tablespaces;
或
SQL> col name for a50;
SQL> select file#,name,status from v$datafile;

#修改表空间大小
1.创建表空间时自动扩展
SQL> create tablespace tbs1 datafile '/u01/app/oracle/oradata/orcl/tbs1.dbf' size 100M autoextend on;

2.修改表空间自动扩展
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/tbs1.dbf' autoextend on next 1M;

3.向表空间增加数据文件
SQL>alter tablespace tbs1 add datafile '/u01/app/oracle/oradata/orcl/tbs2.dbf' size 50M;

4.修改表空间数据文件
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/tbs1.dbf' resize 100M;

#验证
SQL> col tablespace_name for a15;
SQL> col file_name for a45;
SQL> select tablespace_name,file_name,autoextensible from dba_data_files;  

#删除表空间
SQL> drop tablespace tbs1 including contents and datafiles;

#迁移系统表空间
SQL> select tablespace_name,file_name from dba_data_files;
SQL> conn system/oracle as sysdba;
SQL> shutdown immediate;
SQL> host cp /u01/app/oracle/oradata/orcl/system01.dbf /u02/app/oracle/oradata/orcl/system02.dbf;
SQL> startup mount;
SQL> alter database rename file '/u01/app/oracle/oradata/orcl/system01.dbf' '/u02/app/oracle/oradata/orcl/system02.dbf' ;
SQL> recover database;
SQL> alter database open;
SQL> select tablespace_name,file_name from dba_data_files;

#迁移非系统表空间
SQL> alter tablespace tbs1 offline;
SQL> host cp /u01/app/oracle/oradata/orcl/tbs01.dbf /u02/app/oracle/oradata/orcl/tbs02.dbf;
SQL> alter database rename file '/u01/app/oracle/oradata/orcl/tbs01.dbf' '/u02/app/oracle/oradata/orcl/tbs02.dbf' ;
SQL> alter tablespace tbs1 online;
SQL> select tablespace_name,file_name from dba_data_files;

创建表空间

/*分为四步 */
/*第1步:创建临时表空间  */
create temporary tablespace user_temp  
tempfile '/u01/app/oracle/oradata/orcl/user_temp.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
/*第2步:创建数据表空间  */
create tablespace user_data  
logging  
datafile '/u01/app/oracle/oradata/orcl/user_data.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
/*第3步:创建用户并指定表空间  */
create user username identified by password  
default tablespace user_data  
temporary tablespace user_temp;  
 
/*第4步:给用户授予权限  */
grant connect,resource,dba to username;

参考资料

[1] 林树泽.Oracle 11g R2 DBA操作指南[M].北京:清华大学出版社,2013

[2] oracle创建表空间

[3] oracle 创建表空间详细介绍

[4] Oracle 查看表空间的大小及使用情况sql语句

[5] ORACLE表空间管理维护

[6] Oracle表空间(tablespaces)

[7] Oracle表空间、段、区和块简述

[8] Oracle建立表空间和用户

[9] Oracle数据库-建库、建表空间,建用户

[10] oracle表空间表分区详解及oracle表分区查询使用方法

[11] ORACLE DBA学习笔记--表空间的管理(tablespace)

[12] oracle区管理和段空间管理详细介绍

[13] oracle 表空间管理

[14] ORACLE表空间管理

[15] Oracle基本表空间管理命令

[16] Oracle管理表空间和数据文件详解

[17] Oracle 本地表空间管理与字典表空间管理

原文地址:https://www.cnblogs.com/cenliang/p/4891358.html