前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >临时表空间故障处理 (33天)

临时表空间故障处理 (33天)

作者头像
jeanron100
发布2018-03-13 17:56:57
1.9K0
发布2018-03-13 17:56:57
举报

最近测试环境需要把一些现有的存储空间匀出一部分来给新增的环境使用。 unix组的人很快就空间按照指定的比例重新切分好了。环境交给我的时候,我先把数据库起来,没有任何问题,因为需要到处一个创建用户的语句,就简单执行了一个查询。 select dbms_metadata.get_ddl('USER',u.username) from dba_users u WHERE USERNAME in('TEST'); 但是让我意外的,报了如下的错误。 SQL> select dbms_metadata.get_ddl('USER',u.username) from dba_users u WHERE USERNAME in('TEST'); ERROR: ORA-01157: cannot identify/lock data file 201 - see DBWR trace file ORA-01110: data file 201: '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' ORA-06512: at "SYS.DBMS_METADATA", line 4018 ORA-06512: at "SYS.DBMS_METADATA", line 5843 ORA-06512: at line 1 no rows selected 想数据文件被清掉了,先给offline了重新配置一下。 offline不可以,offline drop也不行。 SQL> alter database datafile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' offline; alter database datafile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' offline * ERROR at line 1: ORA-01516: nonexistent log file, data file, or temporary file "/u01/oracle/TEST/oratmp01/temp/temp01.dbf" SQL> alter database datafile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' offline drop; alter database datafile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' offline drop * ERROR at line 1: ORA-01516: nonexistent log file, data file, or temporary file "/u01/oracle/TEST/oratmp01/temp/temp01.dbf" 我说不能offline,offline drop,有的人说得放在mount状态下执行,我试了也不行。 我直接删除表空间重新建得了,oracle已经开始给我哭穷了,说不能删除默认的临时表空间。 SQL> drop tablespace temp including contents and datafiles; drop tablespace temp including contents and datafiles * ERROR at line 1: ORA-12906: cannot drop default temporary tablespace 那我删除这个临时文件,oracle又说这个临时表空间里只有一个数据文件。 SQL> alter tablespace temp drop tempfile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf'; alter tablespace temp drop tempfile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf' * ERROR at line 1: ORA-03261: the tablespace TEMP has only one file 我还是自己查看下文件夹到底在不在。一查文件夹都被清掉了。 SQL> !ls -l /dbusgsPT1/oracle/PETUSG1/oratmp01/temp ls: /dbusgsPT1/oracle/PETUSG1/oratmp01/temp: No such file or directory 先把文件夹给补上 SQL> !mkdir -p /u01/oracle/TEST/oratmp01/temp 建立一个别名的临时文件,马上见temp01的临时数据文件还不行。 SQL> alter tablespace temp add tempfile '/u01/oracle/TEST/oratmp01/temp/temp02.dbf' size 20G; Tablespace altered. 然后再去删除其实不存在的临时数据文件。从数据字典里进行更新。 SQL> alter tablespace temp drop tempfile '/u01/oracle/TEST/oratmp01/temp/temp01.dbf'; Tablespace altered. 后续就如果需要可以把临时数据文件的名字从temp02.dbf改成temp01.dbf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档