Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2951952
  • 博文数量: 412
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 7374
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-25 15:15
个人简介

学习是一种信仰。

文章分类

全部博文(412)

文章存档

2014年(108)

2013年(250)

2010年(11)

2009年(43)

我的朋友

分类: Oracle

2013-11-30 19:59:15

第9章  管理表空间和数据文件
----表空间和数据文件的增(建立)删改(修改、扩展、移动)查
一、建立表空间
1、建立本地管理表空间(local managed tablespace)
SQL> create tablespace user01 datafile 'd:/Oracle_Database/DEMO/user01.dbf'
  2  size 10M uniform size 128k;
表空间已创建。
----uniform:指定区尺寸;
SQL> create tablespace user02 datafile 'd:/Oracle_Database/DEMO/user02.dbf'
  2  size 10M autoallocate;
----autoallocate:区尺寸大小由系统自动分配;
表空间已创建。
2、建立字典管理表空间(dictionary-managed tablespace)
为与早期版本兼容,本地管理表空间更优,Oracle建议采用本地管理表空间;
3、建立大文件表空间
10g新特性,最多可以有4G可数据块,若数据块为8k,则可达32TB;大文件表空间只能包含一个数据文件;
create bigfile tablespace big_tbs datafile 'd:/Oracle_Database/DEMO/big.dbf' size 100G;
4、建立undo表空间
SQL> create undo tablespace undotbs datafile 'd:/Oracle_Database/DEMO/undotbs.dbf' size 10M;
表空间已创建。
5、建立临时表空间
(1)建立本地管理临时表空间
SQL> create temporary tablespace temp01 tempfile 'd:/Oracle_Database/DEMO/temp01.dbf' size 10M uniform size 256k;
表空间已创建。
(2)建立大文件临时表空间
SQL>create bigfile temporary tablespace temp02 tempfile 'd:/Oracle_Database/DEMO/temp02.dbf' size 100G;
(3)使用临时表空间组
SQL> create temporary tablespace temp02 tempfile 'd:/Oracle_Database/DEMO/temp02.dbf' size 5M tablespace group group1;
表空间已创建。
SQL> alter tablespace temp01 tablespace group group2;
表空间已更改。
SQL> alter tablespace temp01 tablespace group group1;
表空间已更改。
6、建立非标准块表空间
SQL> show parameter db_block_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------
db_block_size                        integer     8192
SQL>
(1)分配非标准数据高速缓存
SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------
db_cache_size                        big integer 800M
SQL> alter system set db_cache_size=700M;
系统已更改。
SQL> alter system set db_16K_cache_size=100M;
alter system set db_16K_cache_size=100M
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00384: 没有足够的内存来增加高速缓存的大小
SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------------
db_cache_size                        big integer 704M
SQL> alter system set db_16K_cache_size=10M;
系统已更改。
(2)建立非标准块表空间
SQL> create tablespace tbs_16k datafile 'd:\Oracle_Database\DEMO\tbs_dbf' size 10M blocksize 16k;
表空间已创建。
SQL>
二、维护表空间
1、改变表空间可用性(脱机、联机)
SQL> alter tablespace user01 offline;
表空间已更改。
SQL> alter tablespace user01 online;
表空间已更改。
SQL> alter database datafile 'D:\ORACLE_DATABASE\DEMO\USER01.DBF' offline
数据库已更改。
SQL> alter database datafile 'D:\ORACLE_DATABASE\DEMO\USER01.DBF' online;
alter database datafile 'D:\ORACLE_DATABASE\DEMO\USER01.DBF' online
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'D:\ORACLE_DATABASE\DEMO\USER01.DBF'
SQL> select * from v$dbfile;
     FILE# NAME
---------- ----------------------------------------------------
         2 D:\ORACLE_DATABASE\DEMO\UNDOTBS1.DBF
         3 D:\ORACLE_DATABASE\DEMO\SYSAUX01.DBF
         1 D:\ORACLE_DATABASE\DEMO\SYSTEM01.DBF
         4 D:\ORACLE_DATABASE\DEMO\USER01.DBF
         5 D:\ORACLE_DATABASE\DEMO\USER02.DBF
         6 D:\ORACLE_DATABASE\DEMO\UNDOTBS.DBF
         7 D:\ORACLE_DATABASE\DEMO\TBS_DBF
已选择7行。
SQL> alter database datafile 6 offline;
数据库已更改。
SQL> alter database datafile 6 online;
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01113: 文件 6 需要介质恢复
ORA-01110: 数据文件 6: 'D:\ORACLE_DATABASE\DEMO\UNDOTBS.DBF'
SQL> col name format a50;
SQL> select file#,name,status from v$datafile;
     FILE# NAME                                               STATUS
---------- -------------------------------------------------- -------
         1 D:\ORACLE_DATABASE\DEMO\SYSTEM01.DBF               SYSTEM
         2 D:\ORACLE_DATABASE\DEMO\UNDOTBS1.DBF               ONLINE
         3 D:\ORACLE_DATABASE\DEMO\SYSAUX01.DBF               ONLINE
         4 D:\ORACLE_DATABASE\DEMO\USER01.DBF                 RECOVER
         5 D:\ORACLE_DATABASE\DEMO\USER02.DBF                 ONLINE
         6 D:\ORACLE_DATABASE\DEMO\UNDOTBS.DBF                RECOVER
         7 D:\ORACLE_DATABASE\DEMO\TBS_DBF                    ONLINE
已选择7行。
2、改变表空间可读写状态
SQL> alter tablespace user02 read only;
表空间已更改。
SQL> alter tablespace user02 read write;
表空间已更改。
3、修改表空间名称
SQL> alter tablespace user02 rename to user03;
表空间已更改。
4、修改数据库用户的默认表空间
SQL> alter database default tablespace user01;
数据库已更改。
SQL> alter database default temporary tablespace temp01;
数据库已更改。
SQL> alter database default temporary tablespace group1;
数据库已更改。
5、删除表空间
SQL> drop tablespace tbs_16k including contents and datafiles;
表空间已删除。
三、扩展表空间
1、为表空间增加数据文件
SQL> alter tablespace user01 add datafile 'd:\Oracle_Database\DEMO\user01_2.dbf' size 10M;
表空间已更改。
2、改变数据文件尺寸
SQL> alter database datafile 'd:\Oracle_Database\DEMO\user02.dbf' resize 20M;
数据库已更改。
3、允许数据文件自动扩展
SQL> alter database datafile 'd:\Oracle_Database\DEMO\user02.dbf' autoextend on next 10M maxsize 1G;
数据库已更改。
四、移动数据文件
1、open状态下移动数据文件
(1)offline表空间
(2)移动文件
(3)alter tablespace
(4)online表空间
2、mount状态下移动数据文件
system和sysaux表空间不能脱机;
(1)数据库重启到mount状态
(2)移动文件
(3)alter database
(4)打开数据库
五、显示表空间和数据文件信息
1、显示表空间信息
SQL> select * from dba_tablespaces;
SQL> select * from v$tablespace;
2、显示表空间数据文件信息
SQL> select *from dba_data_files;
SQL> select *from v$datafile;
3、显示临时表空间和临时文件信息
SQL> select * from dba_tablespace_groups;
SQL> select * from dba_temp_files;;
SQL> select * from v$tempfile;;
六、使用OEM管理表空间和数据文件
增删改查

阅读(765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~