`

Oracle dbf(database datafile)不断增大为题解决方案

 
阅读更多

Oracle 安装在系统盘了,最近越来越庞大,以至于系统处于崩溃的边缘,仔细找了找,发现有个临时文件占了很大的空间,解决方法如下:
 
第一步:
alter database tempfile 'F:\oracle\product\10.1.0\oradata\orcl\TEMP01.DBF' drop;
第二步:
alter tablespace temp add tempfile  'F:\oracle\product\10.1.0\oradata\orcl\TEMP01.DBF'  size 2048M reuse autoextend on next 100M;
第三步:
select d.file_name, d.file_id, d.tablespace_name, d.bytes  from dba_temp_files d;
第四步:
alter database tempfile 'F:\oracle\product\10.1.0\oradata\orcl\TEMP01.DBF' autoextend off;
(只是为了解决小问题,不深究。)
 
正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段a的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。

----------------------------------------------------------------------------------------------------------------------------------------
在检查aix5.3系统的磁盘空间时,发现临时表空间所在临时数据文件已经达到20G,已经占用了100%。

因为是正式数据库服务器,不能随便重启数据库。

以下的操作是用数据库的sys超级用户操作

刚开始打算把临时表空间的数据文件重新缩小就好了

执行:

SQL> alter database tempfile

2 '/oracle/oms/oradata/temp/temp01.dbf' resize 10240M;

数据库报错,重新设置的空间大小不能满足需要。

看来需要重新建立新的临时表空间替换当前的表空间了

1、首先查看当前的数据库默认表空间:

SQL>select * from database_properties  where property_name='DEFAULT_TEMP_TABLESPACE';

确认当前的临时表空间为TEMP

2、查看目前临时表空间的大小:

SQL>select file_name,tablespace_name,bytes/1024/1024 "MB",autoextensible from dba_temp_files;

3、创建新的临时表空间:(先在其他的磁盘空间借用一下空间)
SQL> create temporary tablespace temp02 tempfile '/oracle/oms/oradata/undo/temp02.dbf'  size 512M;

4、把新建的临时表空间却换成数据库的默认临时表空间
SQL> alter database default temporary tablespace temp02;

5、确认目前数据库的默认临时表空间

SQL>select * from database_properties  where property_name='DEFAULT_TEMP_TABLESPACE';

确认temp02为当前的数据库默认表空间

6、在删除temp临时表空间之前,先把运行在temp临时表空间的sql语句kill掉,这样的sql语句多为排序的语句

SQL>Select se.username,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value))as Space,
tablespace,segtype,sql_text  from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash
and s.address=su.sqladdr
order by se.username,se.sid;

查询出来之后,kill掉这些sql语句:

SQL>alter system kill session '524,778'; (假如某一条运行的sql语句的SID为524,serial#为778)

确认在temp临时表空间中没有运行的sql语句之后,则可以删除temp临时表空间数据文件了

7、删除temp临时表空间

SQL> drop tablespace temp including contents and datafiles;

这样很快就可以删除了临时表空间的数据文件

8、现在temp02临时表空间占据了别人的磁盘空间,需要重新把临时表空间建立在原来的位置,重新建立temp临时表空间

SQL> create temporary tablespace temp2 tempfile '/oracle/oms/oradata/temp/temp01.dbf'

size 512M autoextend on maxsize 15G;
新建一个512M的自动扩展临时表空间,最大的扩展为15G。

查看新建的temp临时表空间是否正确:
SQL>select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024,autoextensible from dba_temp_files;

9、把新建的temp临时表空间却换成数据库的默认临时表空间
SQL> alter database default temporary tablespace temp;

10、确认目前数据库的默认临时表空间
SQL>select * from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';
确认temp为当前的数据库默认表空间

11、目前把原来的temp临时表空间变成了512M,把剩余的磁盘空间空了出来,temp02临时表空间就没有用了,删除temp02临时表空间
SQL> drop tablespace temp02 including contents and datafiles;

分享到:
评论

相关推荐

    Oracle的UNDOTBS01.DBF文件太大的解决办法

    ALTER DATABASE DATAFILE 'full_path\undotbs01.dbf' AUTOEXTEND OFF; ``` 其中`full_path\undotbs01.dbf`需要替换为实际的UNDOTBS01.DBF文件路径。禁用自动扩展后,UNDOTBS01.DBF文件将不会自动增长,而是保持在...

    Oracle根据DBF文件恢复.rar

    8. **重命名或移动数据文件**:如果数据文件在新位置,需要更新控制文件中的路径,然后使用ALTER DATABASE DATAFILE命令重命名或移动文件。 9. **打开数据库**:使用ALTER DATABASE OPEN或OPEN RESETLOGS命令打开...

    Oracle11g通过DBF恢复数据

    在Oracle11g中,可以使用RMAN的`RESTORE DATABASE`或`RESTORE DATAFILE`命令来恢复数据文件。 4. **应用重做日志**:恢复数据文件后,必须应用从故障时间点到当前的重做记录,以使数据达到一致状态。`RECOVER ...

    Oracle11g 崩溃后-dbf数据库文件恢复

    首先,dbf文件,全称Datafile,是Oracle数据库存储数据的基本单元。当数据库系统发生故障时,这些文件可能损坏或丢失,恢复的第一步就是确保拥有所有必要的dbf文件。如果数据库在崩溃前已经正常关闭,那么数据文件...

    alter database操作.docx

    alter database create datafile '/opt/oracle/datafile/users01.dbf' as '/opt/oracle/datafile/users01.dbf'; alter database create datafile 4 as '/opt/oracle/datafile/users01.dbf'; 这些命令可以创建新的...

    oracle增加表空间大小

    ALTER DATABASE DATAFILE 'C:\oracle\ora81\oradata\\sid\users.dbf' RESIZE 1000M; ``` 这里需要注意的是,在调整数据文件大小之前,应确保磁盘空间足够,避免因为磁盘空间不足导致数据文件无法正常扩展。 #### ...

    如何正确的删除Oracle表空间数据文件

    2. 如果数据文件已被删除,可以使用`ALTER DATABASE CREATE DATAFILE N AS '/tmp/ts_dd_lhr02.dbf';`创建新的数据文件,执行恢复和ONLINE操作,最后使用`ALTER TABLESPACE XXX DROP DATAFILE N;`删除。但如果在此...

    Oracle DBA Commands

    ALTER DATABASE DATAFILE '/opt/oracle/datafile/users01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 1G; ``` ### 修改临时文件 临时文件用于存储临时数据,如排序操作或大查询的结果。与数据文件类似,临时文件也可以...

    Oracle dbf文件移动的方法

    ALTER DATABASE DATAFILE '/home/oracle/oradata/ora12c/upbs_data.dbf' MOVE '/new/path/oradata/ora12c/upbs_data.dbf'; ``` 6. **更改数据库表空间的路径**: - 如果需要改变整个表空间的路径,可以使用`...

    linux oracle 建表,表空间以及删除命令

    建立表空间的命令为:CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M UNIFORM SIZE 128k;其中,data01 是表空间的名称,/oracle/oradata/db/DATA01.dbf 是数据文件的路径,SIZE 500M...

    oracle - answer

    ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata03.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M; (4) ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example02.dbf’ RESIZE 40M; (5) ...

    oracle表空间操作详解

    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M; ``` - 查看表空间使用情况: ```sql SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B....

    ORACLE 表空间的部分操作

    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M; ``` 通过以上步骤,可以有效地管理Oracle数据库中的表空间,确保数据库的稳定运行和数据的安全存储。在进行...

    ORACLE数据库期末考试试题练习题 训练题.pdf

    ALTER TABLESPACE CC RENAME DATAFILE 'd:\cc.dbf' TO 'e:\cc.dbf'; ALTER TABLESPACE CC ONLINE; ``` 这些知识点覆盖了Oracle数据库的各个方面,包括数据库的启动与管理、安全配置、参数文件操作、控制文件管理...

    oracle删除哪些内容可以减少USERS01.DBF数据文件的大小

    - 示例命令:`ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\polytree\USERS01.DBF' RESIZE 13100M;` - 此命令将`USERS01.DBF`的大小调整为13.1GB。需要注意的是,在执行此操作之前,请确保已经备份...

    oracle数据库存储管理

    CREATE TABLESPACE mytbs DATAFILE 'E:\oracledata\mydatafile.dbf' SIZE 50M; 删除数据文件可以使用 DROP TABLESPACE 语句,例如删除名为 mytbs 的表空间: DROP TABLESPACE mytbs INCLUDING CONTENTS AND DATA...

    ORACLE SYSTEM表空间已满解决方案.docx

    ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/yourdb/system01.dbf' RESIZE 10G; ``` 2. **优化数据存储**:对表进行重新组织,删除不必要的数据或归档历史数据。 3. **调整数据库设计**:例如,将大表...

    Oracle Database 12c新特性设计与实现.pptx

    例如,可以通过`ALTER DATABASE MOVE DATAFILE`语句实现这一操作,如示例所示,将"sysaux01.dbf"数据文件从原路径移动到新的目标路径,数据库在这种情况下依然保持在线状态,业务不受影响。 在线数据文件移动的实现...

Global site tag (gtag.js) - Google Analytics