Tablespaces&Datafiles

a.目标
1.定义表空间和数据文件,熟悉相关的脚本参数
2.创建表空间和管理表空间
3.使用OMF创建表空间
4.使用相关的视图查看表空间和数据文件的信息
b.数据库结构
1.一个数据库由多个表空间组成,一个表空间由多个segment(table,index and so on)组成,一个segment由多个extent组成,一个extent(不能跨多个数据文件)由逻辑上连续的oracle blocks组成。
c.表空间类型
1.一个数据库至少要有一个表空间(System),包含了数据字段,9i包含有撤销段
2.非系统表空间(permanent,undo,temporary)
d.表空间常用操作
1.参考sql language reference
2.c
查看表空间在控制文件里的信息
select * from v$tablespace
查看表空间里有多少数据文件
select * from dba_data_files
增加表空间
creata tablespace tablespacename datafile filename size 20m
迁移表空间为本地管理表空间
dbms_space_admin.tablespace_migrate_to_local('System')
1>全备份你的数据库
2>保证你的临时表空间不是系统表空间
select * from database_properties
select tablespace_name,contents,extent_management from dba_tablespaces;
修改数据库的默认临时表空间
alter database default temporary tablespace temp
创建临时表空间
create temporary tablespace tempname
tempfile '' extent management local uniform 4m

Hints:
1>不能被删除,直到不是默认的临时表空间
2> 不能离线操作
3>不能修改为永久表空间

设置表空间为只读,用户可以删除对象,不可以删除数据(删除对象是删除的是字典数据)
alter tablespace userdata read only
移动数据库表空间
----method1
sql>alter tablespace tablesapceName offline
sql>host copy oldstation to newstation
sql>alter tablespace tablespaceName rename datafile '' to  ''
sql>alter tablespace tablespaceName online
----method2
sql>shutdown immediate
sql>startup mount
sql>host copy oldstation to newstation
sql>alter database rename file '' to ''
sql>alter database open

Hints:
1.系统表空间不能被Drop掉
2.Has active segment的表空间也不能drop

删除表空间
1.including contents and datafiles [delete datafiles]
2.including contents [drops the segment]
3.cascade constraints [drop all referential integrity constaints]
sql>drop tablespace tabspaceName including contents and datafiles;

重要的视图
dba_tablespaces
v$tablespace
dba_data_files
v$datafile
dba_temp_files
v$tempfile
重要的参数
db_create_file_dest

你可能感兴趣的:(数据结构,oracle,sql,c,脚本)