Heim > Datenbank > MySQL-Tutorial > 如何管理Oracle的表空间和数据文件

如何管理Oracle的表空间和数据文件

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 17:08:30
Original
977 Leute haben es durchsucht

SQLgt; conn sys/xin as sysdba 已连接。 SQLgt; set wrap off SQLgt; set linesize 100 1. 一些基本的操作 (1) 查看表空间:

SQL> conn sys/xin as sysdba
已连接。
SQL> set wrap off
SQL> set linesize 100
1. 一些基本的操作
(1) 查看表空间:
SQL> select * from v$tablespace;
(2) 查看数据文件:
SQL> select * from v$datafile;
(3) 查看tablespace 和data files之间的对应关系(通过表空间的号连接在一起):
SQL> select t1.name,t2.name
2 from v$tablespace t1, v$datafile t2
3 where t1.ts#=t2.ts#
4 ;
(4) 更改表空间
SQL> alter tablespace users
2 add datafile 'E:\Oracle\ORADATA\XINER\USERS02.DBF' size 10m;
表空间已更改。
2. 管理表空间
在oracle 里将表空间分为系统表空间和非系统表空间。
(1) 系统表空间包括系统表,数据字典,以及系统回滚段等信息。
查看系统回滚段:
SQL> select * from dba_rollback_segs;
(2) 非系统表空间用来分离段(分开临时数据和永久性数据,,索引和表放在不同的表空间等等)可以给系统的性能带来
好处,同时可以控制分配给用户的空间限额。
控制用户对空间的使用:
SQL> alter user HR
2 quota 10m on users;
用户已更改。
(3) 如何创建表空间:([]均表示可选)
create tablespace xxx
[datafile 'xxx']---OMF时可以不指定
[size xxx--kb,mb]
[extent management local/dictionary]
[default storage(xxx)]
dictionary-managed tablespaces在oracle 9i 里已经不建议使用。
SQL> create tablespace ice
2 datafile 'e:\oracle\oradata\xiner\ice.dbf' size 5m
3 extent management dictionary
4 default storage(
5 initial 100k
6 next 100k
7 pctincrease 10)
8 offline;
表空间已创建。
如果表空间管理指定为Local型,则不能使用default storage。此时不会和数据字典表打交道,不会和系统表产生
资源争用,也不会产生回滚数据(因为不涉及修改系统表),其次也不会有递归的资源争用。
SQL> create tablespace ice1
2 datafile 'e:\oracle\oradata\xiner\ice1.dbf' size 5m
3 extent management local
4 uniform size 1m;
表空间已创建。
SQL> create tablespace ice2
2 datafile 'e:\oracle\oradata\xiner\ice2.dbf' size 5m
3 extent management local autoallocate;
表空间已创建。
(4) Undo 表空间用来存储undo段,不能包括其他的数据对象,使用locally管理。
undo 段主要用来保存数据改变的旧值,可以回滚transcation(rollback)。
SQL> show parameter undo
SQL> create undo tablespace ice3
2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m
3 extent management local
4 uniform size 1m; //此时不能定义uniform size
uniform size 1m
*
ERROR 位于第 4 行:
ORA-30024: CREATE UNDO TABLESPACE 的说明无效
SQL> del 4
SQL> run
1 create undo tablespace ice3
2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m
3* extent management local
表空间已创建。
不能在回滚表空间建立表对象(不能放其他的数据对象):
SQL> create table tt1
2 (id int)
3 tablespace ice3;
create table tt1
*
ERROR 位于第 1 行:
ORA-30022: 无法在撤消表空间中创建段
(5) 临时表空间用来支持排序,不能包括永久的数据对象,建议使用locally管理。
SQL> create temporary tablespace ice4
2 tempfile 'e:\oracle\oradata\xiner\ice4.ora' size 5m
3 extent management local;
表空间已创建。
SQL> create table tt1
2 (id int)
3 tablespace ice4;
create table tt1
*
ERROR 位于第 1 行:
ORA-02195: 尝试创建的PERMANENT对象在TEMPORARY表空间中
(6) 缺省的临时表空间:
SQL> alter database default temporary tablespace ice4
数据库已更改。
临时表空间不可以被置为offline,也不能指定为read only,不可以被删除,除非用另外一个表空间代替它。
SQL> alter talbespace ice4 offline
alter talbespace ice4 offline
*
ERROR 位于第 1 行:
ORA-00940: 无效的 ALTER 命令
SQL> alter tablespace ice4
2 read only;
alter tablespace ice4
*
ERROR 位于第 1 行:
ORA-03217: 变更 TEMPORARY TABLESPACE 无效的选项
(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复
(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复
SQL> alter tablespace users offline;
表空间已更改。
SQL> alter tablespace users online;
表空间已更改。
不可以置为offline状态的表空间包括:system表空间(如果要对系统表空间的文件进行改变则要关闭数据库);
包括active undo 段的表空间;缺省的临时表空间
(8) read only 表空间:对表空间只能进行读操作;数据对象可以从表空间删除
SQL> alter tablespace users read only;
表空间已更改。
(9) 删除表空间:
SQL> create table tt1
2 (id int)
3 tablespace ice;
表已创建。
SQL> drop tablespace ice1;
表空间已丢弃。
SQL> drop tablespace ice2
2 including contents and datafiles;
表空间已丢弃。
(10) resize表空间:自动扩张(autoextend on)、手动(resize)
3. 管理数据文件
(1) 移动data files:
表空间必须是offline(使用alter tablespace xxx rename datafile 'xx' to 'xx');
目标数据文件必须已经存在;
如果是不能处于offline状态的表空间则要关闭数据库,将其启动到mount状态,同时目标数据文件必须已经存在。
(使用alter database rename file 'xx' to 'xx')
(2) 配置OMF文件来创建表空间的时候DB_CREATE_FILE_DEST会将数据文件存放在缺省的位置。如果想要更改位置则用
alter system set db_create_file_dest='xx';
用OMF创建表空间:create tablespace xxx; 删除:drop tablespace xxx; 

linux

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage