如何修改临时表空间大小

如何修改临时表空间大小,第1张

查看所有用户的临时表空间及相应的数据文件:

select d.username, t.file_name, d.temporary_tablespace from DBA_TEMP_FILES t,dba_users d where t.tablespace_name = d.temporary_tablespace;

修改临时孝尺塌表空间tmp的大小

alter database tempfile '/home/oracle/oradata/trade/temp01.dbf' resize 4096m;

将系统的默认临时表空间设为tmp:

alter database default temporary tablespace tmp;

修改用户aa的默认表空间为tmp:

alter user aa temporary tablespace tmp;

删除用户aa以前的临巧圆时困中表空间ex_aa:

drop tablespace ex_aa including contents and datafiles;

1. 如何将临时表空间缩小到自己销返想要的大小

这是11g推出这个命令的目的。

这个命令只能用于临时表空间。能够减少临时表空间的使用。

有两种方式使用: 1、将本地管理的临时表空间缩小为20M。 SQL>select bytes/1024/1024 from v$tempfileBYTES/1024/1024 --------------- 28 SQL>alter tablespace temp shrink space keep 20MTablespace altered SQL>select bytes/1024/1024 from v$tempfileBYTES/1024/1024 --------------- 21 SQL>2、自动将表空间的临时文件缩小到最小可能的大小。

2. 如何收缩表空间中的数据文件

提供一个回收表空间的简单方法供参考:通过下面的SQL语句查看表空间总大小及实用大小,然后拼出来一个SQL语句将表空间的数据文件重新设定大小select 'alter database datafile ''' || a.file_name || ''' resize ' || round(a.filesize - (a.filesize - c.hwmsize - 100) * 0.8) || 'M', a.filesize || 'M' as "数据文件的总大小", c.hwmsize || 'M' as "数据文件的实用大小" from (select file_id, file_name, round(bytes / 1024 / 1024) as filesize from dba_data_files) a, (select file_id, round(max(block_id) * 8 / 1024) as HWMsize from dba_extents group by file_id) c where a.file_id = c.file_id and a.filesize - c.hwmsize >100;上面的那个SQL语句运行可能是有点慢下面的语句更快:注意:对于此SQL语句由于dba_free_space这个视图在统计空闲空间时没有考虑表空间中的数据文件自动扩展时产生的可使用空间。

同时,对于分配给行的空间,在删除行以后,仍可继续用于表的插入 *** 作,但不将其作为可用于其他数据库对象的空间算入下面SQL查询结果中,但是对于截取表时,该空间就可用于其他的数据库对象。如果不考虑数据文件扩展的情况下用此SQL语句基本上可以满足要求了,如果要很精确的话可以考虑上面SQL语句高姿就是太慢了点。

select a.tablespace_name, a.file_name, a.totalsize, b.freesize, 'ALTER DATABASE DATAFILE ''' || a.file_name || ''' RESIZE ' || round((a.totalsize - b.freesize) + 200) || 'M' as "alter datafile" from (select a.file_name, a.file_id, a.tablespace_name, a.bytes / 1024 / 1024 as totalsize from dba_data_files a) a,。

3. 如何收缩表空间

1. 查看当前用户每个表占用空间的大小:

select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name

2. 查看当前用户占用大于10M的表间的大小:

select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name having sum(bytes)/1024/1024>10

3. 确保该表支持行移动。如果不支持,您可以使用如下命令来支持它:

alter table 表名 enable row movement

您还要确保在该表上禁用所有基于行 id 的触发器,这是因为行将会移动,行 id 可能会发生亏念饥改变。

4. 您可以通过以下命令重组该表中现有的行:

alter table 表名 shrink space pact

该命令将会在块内重新分配行,如图 1 所示,这就在 HWM 之下产生了更多的空闲块 — 但是 HWM 自身不会进行分配。

图 1:重组行后的表中的块

在执行该 *** 作后,让我们看一看空间利用率所发生的改变。使用在第一步展示的 PL/SQL 块,可以看到块现在是如何组织的:

FS1 Blocks = 0 Bytes = 0 FS2 Blocks = 0 Bytes = 0 FS3 Blocks = 1 Bytes = 0 FS4 Blocks = 0 Bytes = 0 Full Blocks = 2 Bytes = 16384

注意这里的重要改变:FS4 块(具有 75-100% 的空闲空间)的数量现在从 4,148 降为 0。我们还看到 FS3 块(具有 50-75% 的空闲空间)的数量从 0 增加到 1。但是,由于 HWM 没有被重置,总的空间利用率仍然是相同的。

var script = document.createElement('script')script.src = '/resource/baichuan/ns.js'document.body.appendChild(script)

但是需要注意的:某些表(如runfile,因为特殊字段),不能继续运行;

5. 我们可以用如下命令检查使用的空间:

select blocks from user_segments where segment_name=upper(表名);

由该表占用的块的数量 (4,224) 仍然是相同的,这是因为并没有把 HWM 从其原始位置移开。

6. 可以把 HWM 移动到一个较低的位置,并用如下命令回收空间:

alter table 表名 shrink space

注意子句 PACT 没有出现。该 *** 作将把未用的块返回给数据库并重置 HWM。

可以通过检查分配给表的空间来对其进行测试: 块的数量从 4,224 降为 8;该表内所有未用的空间都返回给表空间,以让其他段使用,如图 2 所示。

图 2:在收缩后,把空闲块返回给数据库

这个收缩 *** 作完全是在联机状态下发生的,并且不会对用户产生影响。

7. 也可以用一条语句来压缩表的索引:

alter table 表名 shrink space cascade

8. 联机 shrink 命令是一个用于回收浪费的空间和重置 HWM 的强大的特性。我把后者(重置 HWM)看作该命令最有用的结果,

因为它改进了全表扫描的性能。

4. 如何增加表空间大小

1. 查询数据库现在的表空间

select tablespace_name, file_name, sum(bytes)/1024/1024 table_size from dba_data_files group by tablespace_name,file_name

2. 建立表空间

CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M????

3.删除表空间

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES????

4. 修改表空间大小

alter database datafile '/path/NADDate05.dbf' resize 100M????5.增加表空间????

这些都是归档日志,你的库设置的自动归档时间太长了。一般设置一个月以内

删除归铅升档日志的过程

以ORACLE用户身份登录到数据库槐滚老服务器主机或通过网络连接

进入ORACLE数据备份工具

rman target/

或rman target/@orcl

在命令窗口里面执行 ,删掉7天以前的归档日志

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'

如果报这个错备厅

ORA-00257: archiver error. Connect internal only, until freed

的话

请看我的日志:http://hi.baidu.com/tj_angela/item/ef444e8a79f5b0874514cf69


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12301210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存