oracle如何收缩,oracle表空间收缩

oracle怎么收缩数据文

--找出目前TEST表空间最大的block_id

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、雅安服务器托管、营销软件、网站建设、洮北网站维护、网站推广。

SELECT MAX(block_id)FROM dba_extentsWHERE tablespace_name = 'TEST';

MAX(BLOCK_ID)

-------------    

136

--计算目前最大块的段所占用的空间(该数据库的block大小是8192)

show parameter db_block_size ;

NAME                         TYPE     VALUE

------------------------------------ ----------- ------------------------------

db_block_size                    integer     8192

SELECT 136*8192/1024/1024  "MAX(M)" FROM dual;

MAX(M)

----------

1.0625

--查看表空间物理文件的名称及大小

set line 200

col file_name for a50

select

tablespace_name, file_id, file_name,round(bytes/(1024*1024),0)

"total_space(M)"from dba_data_fileswhere tablespace_name ='TEST' ;

TABLESPACE_NAME          FILE_ID    FILE_NAME                                                       total_space(M)

------------------------------ ---------- -------------------------------------------------- --------------

TEST                                      6             /u01/oradata/source/test01.dbf                   100

4

--resize表空间

SQL ALTER DATABASE DATAFILE '/u01/oradata/source/test01.dbf' RESIZE 1M;

ALTER DATABASE DATAFILE '/u01/oradata/source/test01.dbf' RESIZE 1M*ERROR at line 1:

ORA-03214: File Size specified is smaller than minimum required

SQL ALTER DATABASE DATAFILE '/u01/oradata/source/zfl01.dbf' RESIZE 2M;

Database altered.

oracle怎么收缩已经分

删除数据不能缩小表空间,只是可再利用的多了.

要实际缩小,让操作系统可以利用,需要先把表move tablespace

也可以在原来的tablespace上move一遍,再缩小tablespace就可以了.

例如:

alter table your_table move tablespace yourtablespace;

oracle表空间太大,有哪些优化办法?

给您提供建议如下:

(1)如果表空间的数据没存满,可以考虑执行表空间收缩操作。

(2)如果表空间的数据存满了,可以考虑建多个表空间文件。

(3)从业务的角度考虑,是否可以考虑将部分数据进行剥离,存放在历史库。

(4)从业务角度进行分析,该表空间中最大的几张表中的数据都是必须、有用的吗?是否可以将部分无用数据备份后执行清理操作。

(5)如果是undo表空间,可以执行undo表空间收缩操作。

(6)如果是temp表空间,可以将原表空间文件drop掉后重建表空间文件。


分享文章:oracle如何收缩,oracle表空间收缩
标题路径:http://scyanting.com/article/hsjgds.html