ORACLE SG042的笔记(4)

2019-03-10 20:07

union all

select tablespace_name, sum(bytes) / 1024 / 1024 / 1024||'GB' from dba_temp_files group by tablespace_name order by 2;

--这个是一个比较各个空间的使用情况的查询语句 select tablespace_name,

sum(bytes) / 1024 / 1024 / 1024 || ' GB', 'user_segments' from user_segments group by tablespace_name union all

select tablespace_name,

sum(bytes) / 1024 / 1024 / 1024 || ' GB', 'dba_segments' from dba_segments

group by tablespace_name union all

select tablespace_name,

sum(bytes) / 1024 / 1024 / 1024 || ' GB', 'dba_data_files' from dba_data_files

group by tablespace_name union all

select tablespace_name,

sum(bytes) / 1024 / 1024 / 1024 || ' GB', 'dba_temp_files' from dba_temp_files group by tablespace_name union all

select tablespace_name,

sum(bytes) / 1024 / 1024 / 1024 || ' GB', 'dba_free_space' from dba_free_space group by tablespace_name order by 1;

--如何建立表空间

表空间的建立有如下几种方式 --Create tablespace in Oracle

--The create tablespace statement is used to create a tablespace. -- --Permanent tablespace--

create tablespace ts_something logging

datafile '/dbf1/ts_sth.dbf' size 32m

autoextend on

next 32m maxsize 2048m extent management local;

create tablespace data datafile '/home/oracle/databases/ora10/data.dbf' size 10M autoextend on maxsize 200M extent management local uniform size 64K;

--Temporary tablespace--

create temporary tablespace temp_mtr tempfile '/dbf1/mtr_temp01.dbf' size 32m

autoextend on

next 32m maxsize 2048m extent management local;

Note, a temporary tablespace has tempfiles, not datafiles. --Undo tablespace--

create undo tablespace ts_undo datafile '/dbf/undo.dbf' size 100M; Misc

More than one datafile can be created with a single create tablespace command: create tablespace ts_sth

datafile 'c:\\xx\\sth_01.dbf' size 4M autoextend off, 'c:\\xx\\sth_02.dbf' size 4M autoextend off, 'c:\\xx\\sth_03.dbf' size 4M autoextend off logging

extent management local;

--如何更改表空间的大小

有两种方式:1--增加数据文件 2--修改数据文件大小

alter database datafile '/ocsdata/ahocs/OCS_TBS_CUST_02.dbf' resize 2047M;

alter tablespace ocs_tbs_cust add datafile '/ocsdata/ahocs/OCS_TBS_CUST_02.dbf' size 2047M;

其他表空间问题

用delete 方法删掉表中的数据后,发现数据所占的空间释放不了,怎么办?

需要你对 high water mark (高水位) 有一个认识 除了truncate表和drop表外

要释放空间,就只能重新建立表(exp/imp等)或者:

Alter table table_name move tablespace tab_space_name; 把表移动到其他表空间,这样索引会失效的 oracle的数据空间是只能增大,不能减小的

Oracle表空间小知识

Oracle表空间,底层以data_file文件形式存放,可以定义一个数据库能打开多少个数据文件,一个表空间可以有1到多个数据文件,一个数据文件只能隶属于一个表空间。 建表时:

1、指定表空间 2、指定扩展大小

普通表只能建在一个表空间,分区表可以建在多个表空间上。

delete只能删除数据,还占着表空间,用truncate命令,但truncate没有条件。

如何将表移动表空间?

ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;

如何将索引移动表空间?

ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;

查询表空间信息?

SELECT * FROM DBA_DATA_FILES;

如何查看各个表空间占用磁盘情况? SQL> col tablespace format a20 SQL> select

b.file_id 文件ID号,

b.tablespace_name 表空间名, b.bytes 字节数,

(b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩余空间,

sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 from dba_free_space a,dba_data_files b where a.file_id=b.file_id

group by b.tablespace_name,b.file_id,b.bytes order by b.file_id;

事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚 段扩展到达参数MAXEXTENTS的值(ORA-01628)的解决办法.

向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。

如何监控表空间的I/O 比例?

select B.tablespace_name name,B.file_name \A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw from v$filestat A, dba_data_files B where A.file# = B.file_id order by B.tablespace_name;

如何知道表在表空间中的存储情况?

select segment_name,sum(bytes),count(*) ext_quan from dba_extents

where tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;

如何知道索引在表空间中的存储情况? select segment_name,count(*)

from dba_extents where segment_type='INDEX' and owner='&owner' group by segment_name;

DBA_TABLESPACES 所有表空间的描述.

V$TABLESPACE

控制文件中表空间的信息

V$TEMP_EXTENT_MAP

显示所有临时表空间的每一个单元的状态信息.

V$TEMP_SPACE_HEADER

显示每一个临时表空间中每一个文件的聚集信息,涉及每个空间首部中当前使用多少空间和有多少自由空间.

USER_TABLESPACES 可存取的表空间的描述.

USER_TS_QUOTAS 用户的表空间限额.

DATABASE_PROPERTIES

列出当前缺省的临时表空间的名称.

DBA_FREE_SPACE

列出所有表空间中的空闲分区.

DBA_FREE_SPACE_COALESCED 包含表空间中合并空间的统计数据

DBA_TS_QUOTAS

所有用户的表空间的限额.

DBA_UNDO_EXTENTS

在撤消表空间的每个范围的提交时间.

USER_FREE_SPACE

用户可存取表空间中的空闲范围.

TS_PITR_CHECK

提供可能禁止表空间及时点恢复继续的依赖或约束信息

TS_PITR_OBJECTS_TO_BE_DROPPED

列出作为执行表空间及时点恢复的结果而丢失的所有对象.

Oracle高水位标志的概念 Oracle高水位标志的概念

来源:linux宝库 作者:linux宝库 发布时间:2007-09-30

Oracle高水位标志: high-water mark

能够用以下几点对high-water mark进行理解

1.指一个表中曾被用过的最后一个块

2.假如有数据被插入表,high-water mark 就移到到被使用的最后一个块

3.假如有数据被删除,high-water mark的位置不会变

4.high-water mark被储存在表的段头(segment header of the table)

5.当对表执行全表扫描时,oracle server 被任何的块直到high-water mark

另外我的理解如下,

1 假如为表分配了大量的extents , 但这些extent 还没使用能够手工收回。并且有如下两种情况


ORACLE SG042的笔记(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《赢》读书笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: