Oracle误删UNDO表空间故障处理
ORA-01092 oracle instance terminated disconnection forced问题解决办法
ORA-01092 oracle instance terminated disconnection forced问题解决办法ORA-30012基本是由于参数文件中的undo_tablespace的值和控制文件中记录的值不一致导致的。
可以使用ALTER SYSTEM修改或者直接修改参数文件中有关undo_tablespace的部分和控制文件中的一致即可。
ora-01092 oracle instance terminated disconnection forcedORA-30012: 撤消表空间 'UNDOSTB1' 不存在或类型不正确查看了以下信息来确认undo表空间的问题捕鱼游戏#sqlplus / nolog;SQL>connect / as sysdba;SQL>startup mountSQL>select name from v$datafile;SQL>show parameter undo;SQL>select name from v$tablespace;找到正确的表空间名称,做以下操作进行更改:SQL>create spfile from pfile;SQL>shutdown immediate;SQL>startup;易火棋牌SQL>show parameter undo;SQL>alter system set undo_management=auto scope=spfile;修改表空间名称:SQL>alter system set undo_tablespace='正确的表空间'scope=spfile;重启验证:SQL>shutdown immediate;SQL>startup;SQL>create pfile from spfile;SQL>show parameter undo;第二种方法:SQL>startup mount;SQL>select * from v$tablespace;SQL>show parameter spfile;SQL>select a.SID,a.VALUE from v$spparameter a where like '%undo_tablespace%'可以看到UNDO表空间的名称和从控制文件中查到的名称不一致,下面修改SPFILE文件中有关UNDO表空间的部分,如下所示:SQL>alter system set undo_tablespace='******' SID='*****';SQL>select a.SID,a.VALUE from v$spparameter a where like '%undo_tablespace%'棋牌评测网查看和控制文件中的记录一致时,启动数据库。
ORACLE 数据库故障解决方案 (2)
ORACLE 数据库故障解决方案一、背景介绍ORACLE是一种常用的关系型数据库管理系统,广泛应用于企业级应用中。
然而,在使用ORACLE数据库的过程中,可能会遇到各种故障问题,如数据库无法启动、数据丢失、性能下降等。
为了保证数据库的稳定运行和高效性能,需要及时解决这些故障问题。
二、故障解决方案1. 数据库无法启动- 检查数据库实例是否正常运行,可以使用SQL*Plus连接到数据库实例并执行"SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;"命令来检查实例状态。
- 如果实例状态为"STARTED",则说明实例正常运行,可以尝试重启数据库。
- 如果实例状态为"SHUTDOWN",则需要尝试启动数据库实例。
可以使用SQL*Plus执行"STARTUP"命令来启动数据库实例。
- 如果启动失败,可以检查数据库日志文件中的错误信息,通常位于$ORACLE_HOME/rdbms/log目录下,根据错误信息进行故障排查和修复。
2. 数据丢失- 数据丢失可能是由于误删除、意外断电等原因导致的。
- 针对误删除数据的情况,可以使用RMAN(Recovery Manager)工具进行数据恢复。
RMAN可以从备份中恢复丢失的数据。
- 针对意外断电等原因导致的数据丢失,可以尝试使用闪回技术进行数据恢复。
闪回技术可以在不需要备份的情况下,将数据库恢复到指定的时间点。
- 如果以上方法无法解决数据丢失问题,可以考虑使用专业的数据恢复工具或者咨询ORACLE技术支持。
3. 性能下降- 数据库性能下降可能是由于查询语句优化不足、索引失效、硬件资源不足等原因导致的。
- 针对查询语句优化不足的情况,可以使用SQL调优工具(如SQL Tuning Advisor)来分析和优化查询语句,提高查询性能。
- 针对索引失效的情况,可以使用索引重建工具(如Index Rebuild)来重新构建索引,提高查询性能。
oracle常见故障处理手册
oracle常见故障处理手册一、数据库启动与关闭故障1.数据库启动失败原因:可能是由于Oracle数据库配置不正确、系统环境变量设置不正确、初始化参数设置不正确等原因导致。
解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。
2.数据库关闭失败原因:可能是由于数据库事务未完成、数据库锁未释放等原因导致。
解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。
二、连接故障1.连接不成功原因:可能是由于网络连接问题、数据库用户名或密码错误、数据库实例名错误等原因导致。
解决方法:检查网络连接是否正常,检查数据库用户名和密码是否正确,检查数据库实例名是否正确。
2.连接断开原因:可能是由于网络不稳定、数据库服务器异常等原因导致。
解决方法:检查网络连接是否正常,检查数据库服务器是否正常。
三、数据恢复故障1.数据丢失原因:可能是由于数据库损坏、磁盘故障等原因导致。
解决方法:根据数据丢失的原因,选择相应的恢复方法,如使用备份恢复数据或使用日志文件恢复数据。
2.数据不一致原因:可能是由于数据修改不一致、数据复制不一致等原因导致。
解决方法:检查数据修改和复制的日志文件,找到不一致的数据并修复。
四、性能优化故障1.性能下降原因:可能是由于CPU占用过高、内存占用过高、磁盘IO过大等原因导致。
解决方法:优化数据库配置参数,如增加内存、优化磁盘IO等。
2.查询速度慢原因:可能是由于查询语句不优化、表没有建立索引等原因导致。
解决方法:优化查询语句,为表建立索引等。
五、存储管理故障1.存储空间不足原因:可能是由于磁盘空间不足、表空间不足等原因导致。
解决方法:清理磁盘空间,增加磁盘空间,调整表空间大小等。
2.数据文件丢失或损坏原因:可能是由于磁盘故障、人为误删除或修改等原因导致。
解决方法:使用备份恢复数据文件或修复损坏的数据文件。
六、网络连接故障1.网络连接中断原因:可能是由于网络设备故障、网络连接线故障等原因导致。
Oracle-undo-表空间管理
Oracle-undo-表空间管理Oracle的Undo表空间管理是Oracle数据库中非常重要而又基础的管理工作之一。
因为数据库中的Undo表空间与事务有着紧密的联系,影响着数据库的性能和稳定性。
本文将对Oracle的Undo表空间管理进行详细介绍,包括Undo表空间的概念、作用、管理方法、优化等方面。
一、Undo表空间的概念Undo表空间是用来存储Oracle数据库中操作的回滚信息,主要的作用是进行事务的回滚和恢复。
在Oracle数据库中,事务的ACID属性可以保证数据的完整性和一致性,而Undo表空间就是为了保证事务的ACID属性而存在的。
在Oracle数据库中,Undo表空间分为两种类型:System Undo表空间和User Undo表空间。
系统Undo表空间是由系统自动创建的一个表空间,用于存储系统级的回滚信息,用户不能自己创建或删除该表空间。
而用户Undo表空间则是由用户自己创建的,用来存储用户级别的回滚信息,一个数据库中可以有多个用户Undo表空间。
二、Undo表空间的作用Undo表空间的作用非常重要,它主要用来完成以下几个方面的功能:1. 事务的回滚当某个事务需要回滚时,Oracle会将该事务所做的修改操作写入到Undo表空间中,然后撤销这些操作来回滚事务。
因此Undo表空间的存储能力和速度直接影响着Oracle数据库回滚事务的性能和效率。
2. 数据库恢复当数据库需要恢复时,Oracle会利用Undo表空间中的回滚信息将数据库恢复到特定的时间点。
因此Undo表空间存储的时间范围和存储能力对数据库恢复能力有着直接的影响。
3. MVCC机制在Oracle数据库中,MVCC(多版本并发控制)机制是一种用来实现并发控制的技术,它需要利用Undo表空间中的回滚信息来实现数据的版本控制。
当多个事务同时对一个数据进行操作时,Undo表空间就派上用场了。
三、Undo表空间的管理方法为了更好地管理Undo表空间,我们需要掌握以下几种管理方法:1. 创建Undo表空间在Oracle数据库中,可以通过语句CREATE UNDO TABLESPACE来创建Undo表空间。
undo表空间损坏
JServer Release 9.2.0.1.0 - Production
[ora920@tkyte-pc-isdn ora920]$ ls
control01.ctl cwmlite01.dbf indx01.dbf redo02.log redo0B.log temp01.dbf
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
create spfile='E:\oracle\ora92\database\SPFILESHAOMF.ORA' FROM pfile='E:\oracle\admin\shaomf\pfile\init.ora.162007221035';
大功告成。
==================
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU1$ ONLINE UNDOTBS1
create spfile='d:\oracle\ora92\database\SPFILESFRJORCL.ORA' FROM pfile='d:\oracle\admin\sfrjorcl\pfile\init.ora.5102010215215';
ORACLERAC11G添加以及删除UNDO表空间
ORACLERAC11G添加以及删除UNDO表空间在⽣产环境上,由于闪存盘的容量有限,现在需要将闪存盘⾥⾯的UNDO表空间,替换到⾮闪存的磁盘⾥⾯。
磁盘的使⽤情况如下:表空间使⽤情况如下:RAC两个节点占⽤将近167G的空间。
操作步骤如下:在其他磁盘新建RAC两个节点的undo表空间,然后设置成默认的UNDO表空间,后⾯再新建名称⼀模⼀样的UNDO表空间,切换回来(之所以要切换回⼀样的UNDO表空间,是防⽌某些应⽤程序写死)。
操作如下,RAC两个节点:⼀、新建UNDO表空间节点1:create undo tablespace undo11 datafile '+HDATADG' size 10g autoextend on next 2g;alter system set undo_tablespace='UNDO11' SCOPE=BOTH;节点2:create undo tablespace undo22 datafile '+HDATADG' size 10g autoextend on next 2g;alter system set undo_tablespace='UNDO22' scope=both;⼆、删除原UNDO表空间drop tablespace UNDOTBS1 including contents and datafiles;drop tablespace UNDOTBS2 including contents and datafiles;三、新建原UNDO表空间原名称的UNDO表空间,并切换,以及删除步骤⼆新建的UNDO表空间create undo tablespace UNDOTBS1 datafile '+HDATADG' size 10g autoextend on next 2g; alter tablespace UNDOTBS1 add datafile '+HDATADG' size 10g autoextend on next 2g;create undo tablespace UNDOTBS2 datafile '+HDATADG' size 10g autoextend on next 2g; alter tablespace UNDOTBS2 add datafile '+HDATADG' size 10g autoextend on next 2g;切换回来UNDO表空间:alter system set undo_tablespace='UNDOTBS1' SCOPE=BOTH;alter system set undo_tablespace='UNDOTBS2' scope=both;删除步骤⼆建的UNDO表空间:drop tablespace UNDO11 including contents and datafiles;drop tablespace UNDO22 including contents and datafiles;查看磁盘空间:⽴马闪存磁盘空间变多了。
undo表空间
undo表空间undo表空间是指用于存储数据库中被修改过的数据信息的空间。
在数据库中,undo表空间是非常重要的,它可以用于回滚事务、恢复被删除的数据以及在查询时提供一致性视图等功能。
因此,undo表空间的管理和维护对于保障数据库的安全性和可靠性非常重要。
首先,在创建数据库时就要为其分配足够的undo表空间以保证其正常运行。
在使用过程中,还应该及时监控undo表空间的使用情况,以便防止空间不足导致系统出现故障。
如果undo表空间过小,就需要扩展其大小。
扩展undo表空间的方法有两种:一种是增加undo表空间的数据文件,另一种是增加表空间中的数据文件大小。
在增加undo表空间后,需要使用ALTER TABLESPACE语句来将新的数据文件加入到undo表空间中。
除了扩展undo表空间,还需要进行定期的清理和管理。
undo表空间中存储的历史数据随着时间的推移不断增多,而这些数据可能已经没有作用了。
因此,需要定期清除过期的undo数据。
可以使用命令ALTER SYSTEM来清除undo表空间中旧的undo数据,以释放空间。
此外,对于undo表空间中的未提交事务,也需要及时清理以避免增加其大小。
在进行undo表空间管理时,还需要注意一些其他的问题。
例如,在备份数据库时需要确保undo表空间中的数据也得到备份,以便在恢复数据时协调事务。
此外,在数据库中执行长时间运行的操作时,可能会导致undo表空间无法及时释放,因此需要特别注意。
总之,undo表空间的管理和维护是数据库管理中的重要任务之一。
只有通过定期监控、清理和扩展空间等措施,才能保障数据库的安全性和可靠性,确保其正常运行。
oracle undo_retention 参数
oracle undo_retention 参数详解`undo_retention` 是Oracle 数据库中的一个参数,它指定了UNDO 表空间中回滚段保留Undo 数据的时间长度,以秒为单位。
这个参数的作用是控制UNDO 数据的保留时间,确保长时间运行的事务有足够的时间来完成,从而防止由于UNDO 数据不足而导致的回滚段过期。
以下是`undo_retention` 参数的详细说明:1. undo_retention 值的含义-默认值:`undo_retention` 的默认值是900 秒(15 分钟)。
-取值范围:参数的取值范围是0 到2147483647 秒(约68 年)。
2. 作用和影响-UNDO 表空间的大小:`undo_retention` 的值会影响UNDO 表空间的大小。
长时间运行的事务需要更长的UNDO 数据保留时间,因此需要更大的UNDO 表空间。
-长事务处理:当`undo_retention` 设置得足够长时,可以确保长时间运行的事务有足够的时间来完成,从而防止回滚段过期。
-系统性能:如果`undo_retention` 设置得太长,可能导致UNDO 表空间的资源被占用过多,从而影响系统性能。
3. 设置和调整-动态调整:`undo_retention` 可以通过`ALTER SYSTEM` 或者`ALTER SESSION` 语句动态调整。
例如:```sqlALTER SYSTEM SET UNDO_RETENTION = 1800; --将undo_retention 设置为1800 秒(30 分钟)```-退避策略:当长时间运行的事务发现回滚段空间不足时,系统可能会选择采用退避策略,将`undo_retention` 增加到满足事务需要的水平。
4. 注意事项-表空间大小:确保分配给UNDO 表空间的大小足够满足事务的需要,特别是当`undo_retention` 设置得较大时。
损坏undo文件的恢复
有备份的情况和正常的数据文件恢复一样注:在做下面的任何恢复操作前必须做整个数据库的完全备份(数据文件的copy) SQL> conn block_user/block已连接。
SQL> DELETE FROM T2 ;已删除3750行。
--abort方式关闭数据库SQL> CONN /AS SYSDBA已连接。
SQL> SHUTDOWN ABORTORACLE 例程已经关闭。
--重新启动数据库SQL> STARTUPORACLE 例程已经启动。
Total System Global Area 135339844 bytesFixed Size 454468 bytesVariable Size 109051904 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件2 - 请参阅DBWR 跟踪文件ORA-01110: 数据文件2: 'D:\ORACLE\ORADA TA\ORCL\UNDOTBS01.DBF'SQL> RECOVER DA TABASEORA-00283: 恢复会话因错误而取消ORA-01110: 数据文件2: 'D:\ORACLE\ORADA TA\ORCL\UNDOTBS01.DBF' ORA-01157: 无法标识/锁定数据文件2 - 请参阅DBWR 跟踪文件ORA-01110: 数据文件2: 'D:\ORACLE\ORADA TA\ORCL\UNDOTBS01.DBF'SQL> exit从Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production中断开C:\Documents and Settings\Administrator>rman恢复管理器: 版本9.2.0.4.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN> connect target /连接到目标数据库: ORCL (DBID=1186898049)RMAN> run{restore datafile 2;}启动restore 于20-11月-08正在使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道ORA_DISK_1: sid=12 devtype=DISK通道ORA_DISK_1: 正在开始恢复数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00002恢复到D:\ORACLE\ORADA TA\ORCL\UNDOTBS01.DBF通道ORA_DISK_1: 已恢复备份段1段handle=D:\BACKSCRIPT\DA TA\DBFULL_ORCL_D2*******_T670763188_S25_P1 tag=DB-FULLparams=NULL通道ORA_DISK_1: 恢复完成完成restore 于20-11月-08RMAN> recover datafile 2 ;启动recover 于20-11月-08使用通道ORA_DISK_1正在开始介质的恢复存档日志线程 1 序列 1 已作为文件D:\ORACLE\ORA92\RDBMS\ARC00001.001 存在于磁盘上存档日志线程 1 序列 2 已作为文件D:\ORACLE\ORA92\RDBMS\ARC00002.001 存在于磁盘上存档日志线程 1 序列 3 已作为文件D:\ORACLE\ORA92\RDBMS\ARC00003.001 存在于磁盘上存档日志线程 1 序列 4 已作为文件D:\ORACLE\ORA92\RDBMS\ARC00004.001 存在于磁盘上存档日志线程 1 序列 5 已作为文件D:\ORACLE\ORA92\RDBMS\ARC00005.001 存在于磁盘上存档日志文件名=D:\ORACLE\ORA92\RDBMS\ARC00001.001 线程=1 序列=1 存档日志文件名=D:\ORACLE\ORA92\RDBMS\ARC00002.001 线程=1 序列=2 存档日志文件名=D:\ORACLE\ORA92\RDBMS\ARC00003.001 线程=1 序列=3 完成介质的恢复完成recover 于20-11月-08RMAN> alter database open ;数据库已打开RMAN>无备份的情况—数据库正常关闭(包括归档和非归档)SQL> conn / as sysdba已连接。
ORACLE 数据库故障解决方案
ORACLE 数据库故障解决方案一、引言ORACLE 数据库是一种常用的关系型数据库管理系统,用于存储和管理大量的结构化数据。
然而,在数据库运行过程中,可能会遇到各种故障,如数据库崩溃、数据丢失、性能下降等。
本文将介绍一些常见的ORACLE数据库故障解决方案,以匡助管理员快速恢复数据库的正常运行。
二、数据库崩溃的解决方案1. 数据库崩溃可能由于硬件故障、软件错误、人为操作等原因引起。
当数据库崩溃时,管理员应采取以下步骤进行故障排查和修复:a. 检查数据库日志文件,查找崩溃前的异常信息;b. 尝试重启数据库实例,使用备份恢复数据;c. 如果无法恢复数据,可以考虑使用数据库恢复工具进行修复。
2. 数据丢失的解决方案数据丢失可能由于误删除、磁盘损坏等原因导致。
为了防止数据丢失,管理员应采取以下预防措施:a. 定期备份数据库,并将备份文件存储在安全的位置;b. 使用数据库的日志文件功能,可以实现数据的增量备份;c. 配置RAID技术,提高数据库的容错能力。
3. 性能下降的解决方案当数据库性能下降时,可能会导致用户访问延迟、查询速度变慢等问题。
管理员可以采取以下措施来提高数据库性能:a. 优化数据库的查询语句,使用索引、视图等技术来加速查询;b. 增加硬件资源,如CPU、内存等,提升数据库的处理能力;c. 定期清理数据库,删除不必要的数据和索引,减少数据库的负载。
4. 数据库安全的解决方案数据库安全是保护数据库免受未经授权的访问和数据泄露的重要任务。
管理员应采取以下安全措施来保护数据库:a. 设置强密码策略,要求用户使用复杂的密码,并定期更换密码;b. 限制数据库用户的权限,只赋予其必要的访问权限;c. 定期更新数据库软件和补丁,以修复已知的安全漏洞;d. 使用防火墙和入侵检测系统,监控数据库的网络访问。
三、总结本文介绍了ORACLE数据库常见故障的解决方案,包括数据库崩溃、数据丢失、性能下降和数据库安全等方面。
undo表空间使用案例分析(UNDOTBS1使用率100%,enq:US
undo表空间使用案例分析(UNDOTBS1使用率100%,enq:US问题描述:近几天发现Oracle10.2.0.4数据库undo tablespace表空间使用率很高(最高时达到100%),报警系统频繁报障undo tablespace 表空间使用率过高。
TABLESPACE_NAME TOTAL USED FREE PUSE D PFREE----------------- ---------- ---------- ---------- ---------- ----------UNDOTBS1 6141 % %查询所有表空间使用情况(今天发现自己创建的表空间在使用完的情况,这个查询语句或者其它查询语句查不出已经使用完的表空间,只能自己删除掉一些使用该表空间的用户,以便释放自己创建的表空间)SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTE S) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOT TE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 1;问题分析2.1 业务系统影响undo tablespace表空间使用率达到100%时,没有业务系统用户反映系统出现表空间不能扩展的报错(ORA-30036),但曾经出现过快照过旧报错(ORA-01555)。
Oracle释放过度使用的Undo表空间
Oracle释放过度使⽤的Undo表空间故障现象:UNDO表空间越来越⼤,长此下去最终数据因为磁盘空间不⾜⽽崩溃;问题分析:产⽣问题的原因主要以下两点:1. 有较⼤的事务量让Oracle Undo⾃动扩展,产⽣过度占⽤磁盘空间的情况;2. 有较⼤事务没有收缩或者没有提交所导制;说明:本问题在ORACLE系统管理中属于⽐较正常的⼀现象,⽇常维护多注意对磁盘空间的监控。
备份: (如果没有在线事务,可以不做,关闭监听)$>exp vas/vas file=/opt/oracle/data_1.dmp,/opt/oracle/data_2.dmp log=/opt/oracle/date.log owner=vas rows=y indexes=y compress=n buffer=65536 feedback=100000 volsize=0 filesize=1000M解决步骤:1. 启动SQLPLUS,并⽤sys登陆到数据库。
#su - oracle$>sqlplus /nologSQL*Plus: Release 9.2.0.4.0 - Production on Wed Nov 8 13:45:10 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> conn sys/qq994238@ddptest as sysdba;Connected.2. 查找数据库的UNDO表空间名#cat $ORACLE_HOME/dbs/initddptest.ora……*.undo_management=’AUTO’*.undo_retention=10800*.undo_tablespace=’UNDOTBS2’……3. 确认UNDO表空间;SQL> select name from v$tablespace;NAME------------------------------CWMLITEDRSYSEXAMPLEINDXODMSYSTEMTOOLSUSERSXDBTEMPTESTLIBUNDOTBS24. 检查数据库UNDO表空间占⽤空间情况以及数据⽂件存放位置;SQL>select file_name,bytes/1024/1024 from dba_data_files2 where tablespace_name like 'UNDOTBS2';5. 查看回滚段的使⽤情况,哪个⽤户正在使⽤回滚段的资源,如果有⽤户最好更换时间(特别是⽣产环境)。
oracle如何删除被误删物理文件的表空间
oracle如何删除被误删物理文件的表空间oracle 如何删除被误删物理文件的表空间.txt为什么我们在讲故事的时候总要加上从前?开了一夏的花,终落得粉身碎骨,却还笑着说意义。
oracle 如何删除被误删物理文件的表空间.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。
一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
如何删除alter database ... offline drop掉文件的表空间?QL> connect / as sysdbaConnected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 336662768 bytesFixed Size 450800 bytesVariable Size 117440512 bytesDatabase Buffers 218103808 bytesRedo Buffers 667648 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 3 - see DBWR trace fileORA-01110: data file 3: '/home/oracle/oradata/esal/ts_cybercafe01.dbf'SQL> alter tablespace cybercafe offline;alter tablespace cybercafe offline*ERROR at line 1:ORA-01109: database not openSQL> alter database datafile '/home/oracle/oradata/esal/ts_cybercafe01.dbf' offline drop;Database altered.SQL> alter database open;Database altered.//如果还提示文件不存在的话,那就继续执行datafile的drop命令,直到数据库可以open 为止;SQL> select * from v$tablespace;TS# NAME INC---------- ------------------------------ ---0 SYSTEM YES1 UNDOTBS1 YES2 TEMP YES3 INDX YES4 TOOLS YES5 USERS YES6 IMUSE01 YES7 IMUSE01_INDEX YES8 BILL YES9 IMUSE01_TEMP YES10 EUP_DATA YESTS# NAME INC---------- ------------------------------ ---11 EUP_TEMP YES12 EUP_INDEX YES13 DLSC YES14 DLSC_TEMP YES15 rows selected.SSQL> drop tablespace imuse01 including contents; Tablespace dropped.SQL> drop user imuse508 cascade;User dropped.SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS------------------------------ ---------SYSTEM ONLINEUNDOTBS1 ONLINETEMP ONLINETS_CYBERCAFE OFFLINE。
深度理解Oracle10g中UNDO_RETENTION参数的使用
每一中数据库都需要有一种管理回滚或者撤销数据的方法。
当一个DML发生以后,在用户还没有提交(COMMIT)改变,用户不希望这种改变继续保持,需要撤销所做的修改,将数据回退到没有发生改变以前,这时就需要使用一种被称为撤销记录的数据。
使用撤销记录,我们可以:1、当使用ROLLBACK语句时回滚事务,撤销DML操作改变的数据2、恢复数据库3、提供读取的一致性4、使用Oracle Flashback Query分析基于先前时间点的数据5、使用Oracle Flashback特性从逻辑故障中恢复数据库Oracle10g中的自动撤销管理(AUM)在Oracle10g中对于回滚段的管理可以通过配置参数而实现自动管理。
为启用撤销空间的自动管理,首先必须在init.ora中或者SPFILE文件中指定自动撤销模式。
其次需要创建一个专用的表空间来存放撤销信息,这保证用户不会在SYSTEM 表空间中保存撤销信息。
此外还需要为撤销选择一个保留时间。
如果需要实现AUM,需要配置以下3个参数:UNDO_MAMAGEMENTUNDO_TABLESPACEUNDO_RETENTION查看初始化参数的设置:SQL> show parameter undo_tablespace;NAME TYPE VALUE------------------------------------ ----------------------------------undo_tablespace string UNDOTBS1SQL> show parameter undo_management;NAME TYPE VALUE------------------------------------ ----------------------------------undo_management string AUTOSQL> show parameter undo_retention;NAME TYPE VALUE------------------------------------ ----------------------------------undo_retention integer 900SQL>初始化参数的描述:Initialization Parameter DescriptionUNDO_MANAGEMENT If AUTO, use automatic undo management. The default is MANUALUNDO_TABLESPACE An optional dynamic parameter specifying the name of an undo tablespace. This parameter should be used only when the database has multiple undo tablespaces and you want to direct the database instance to use a particular undo tablespace.UNDO_RETENTION The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database may overwrite unexpired undo information when tablespace space becomes low.For an undo tablespace with the AUTOEXTEND option enabled, the databaseattempts to honor the minimum retention period specified byUNDO_RETENTION. When space is low, instead of overwriting unexpired undo information, the tablespace auto-extends. If the MAXSIZE clause is specified for an auto-extending undo tablespace, when the maximum size is reached, the database may begin to overwrite unexpired undo information.如果将初始化参数UNDO_MANAGEMENT设置为AUTO,则Oracle10g将启用AUM。
Oracle数据库误删数据如何恢复
Oracle数据库误删数据如何恢复在这个高科技时代,数据库对企业IT系统的重要性不言而喻,Oracle数据库作为行业的技术领跑者,被全球各行各业广泛使用着。
在使用Oracle数据库的过程中,数据误删问题是大家都无法避免的,如何恢复Oracle数据库中的数据逐渐成为大家关注的焦点。
从目前来看,有哪些方法可以恢复Oracle数据库中误删的数据呢?对于Oracle数据库误删的数据,我们可以有以下几个方法进行恢复:1)日志文件恢复。
在数据库操作中,当我们误删除了表、数据或者是视图等,可以利用日志文件对Oracle 数据库数据进行恢复。
2)数据库备份恢复当Oracle数据库误删数据后,如果用户有比较新的数据库备份,就可以通过备份来恢复。
新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。
3)关联表恢复当Oracle数据库误删数据后,如果用户没有备份,但是数据在写入表的时候同时会写入其它一些关联表的话,那么用户就可以尝试通过写SQL语句从其它表取数据出来insert 到被删除的表中。
4)专业数据库恢复机构恢复上海天盾数据恢复中心是国内最早专业从事数据恢复技术研究和数据恢复服务的公司之一,自成立以来,一直采用先进的国际标准和专业的运营模式,专业从事数据恢复服务及其产品研发,目前服务领域主要为:硬件数据恢复、U盘数据恢复、数码相机数据恢复、苹果机数据恢复、软件数据恢复、硬件故障恢复、笔记本数据恢复、服务器数据恢复、硬盘数据恢复、RAID数据恢复等等,市场覆盖全国。
该数据恢复中心经过多年对Oracle数据库文件结构的研究,成功开发出数据库碎片恢复技术,可以从磁盘和分区恢复丢失的数据库文件与数据库备份文件,轻松解决数据库数据误删问题。
该中心有几百套Oracle数据库恢复经历,版本有ORACLE 7、ORACLE 8、ORACLE 9I、ORACLE 10G、ORACLE 11G、ORACLE 12C等,平台有Linux、Windows等,恢复面非常广。
建错oracle 表空间路径 处理方法-概述说明以及解释
建错oracle 表空间路径处理方法-概述说明以及解释1.引言1.1 概述概述部分的内容应该对文章的主题进行简要介绍,并提供一些背景信息。
在这种情况下,我们正在讨论错误的Oracle表空间路径以及处理方法。
下面是文章1.1概述部分的一个例子:引言:Oracle是一种广泛使用的关系型数据库管理系统,被广泛用于企业级应用程序的开发和管理。
然而,在使用Oracle时,有时候会遇到错误的表空间路径的问题,这可能会对我们的数据库工作和业务流程产生负面影响。
本文旨在探讨这些错误的原因,并提供几种处理方法来解决这些问题。
在这篇文章中,我们将首先分析导致错误表空间路径的可能原因。
之后,我们将介绍三种常见的处理方法,以帮助我们解决这些问题。
最后,我们将总结本文的主要观点,并提供一些建议和展望未来可能的研究方向。
通过阅读本文,读者将能够更好地理解和解决与错误表空间路径相关的问题,并提高他们在Oracle数据库管理方面的技能和知识。
无论是初学者还是有经验的数据库管理员,本文都将向他们提供有用的信息和实用的解决方案。
接下来,我们将详细阐述错误表空间路径的原因以及相应的处理方法。
1.2 文章结构文章结构部分主要介绍了本篇文章的组织结构和内容安排。
本文分为引言、正文和结论三个部分。
引言部分首先概述了文章的主要内容,即处理Oracle表空间路径建错的方法。
然后说明了本文的结构,包括引言、正文和结论三个部分。
最后,明确了本文的目的,即帮助读者了解并掌握处理建错Oracle表空间路径的方法。
正文部分是本文的核心内容,主要包括错误原因分析和处理方法。
在错误原因分析部分,将详细探讨导致建错Oracle表空间路径的原因,包括操作失误、配置错误等。
在处理方法部分,将提供三种不同的处理方法,分别是处理方法1、处理方法2和处理方法3。
每种方法都会详细介绍具体的操作步骤和注意事项,以便读者能够根据自己的实际情况选择合适的处理方法。
结论部分对整篇文章进行总结,并提出具体的建议和展望。
undo表空间
undo表空间Oracle数据库中的undo表空间是用于维护数据一致性和回滚操作的关键组件之一。
在Oracle中,当进行DML操作(如INSERT、UPDATE和DELETE)时,系统需要记录这些操作产生的“更改记录”,以便在需要时可以回滚这些操作。
这些更改记录被存储在undo表空间中,并且通过undo日志进行备份。
此外,undo表空间还用于支持事务的并发控制。
在Oracle中,多个用户可以同时执行事务,但是这些事务可能会尝试对同一行进行更改。
如果这些更改都被接受,就会导致数据不一致。
因此,Oracle使用并发控制机制来避免这种情况的发生。
undo表空间是这种机制的核心组件之一。
当一个用户对数据进行更改时,Oracle会在undo表空间中记录该更改。
如果另一个用户尝试对同一行进行更改,Oracle会检索undo表空间中记录的原始值,并使用这个值来进行比较和决策。
由于undo表空间是Oracle数据库中的关键组件之一,因此对其进行管理和优化非常重要。
以下是一些掌握undo表空间的重点内容和技巧。
1. undo表空间的创建和管理在Oracle中,可以使用CREATE UNDO TABLESPACE语句来创建undo表空间。
这个语句类似于创建其他类型的表空间的语句,但是需要指定undo日志的文件路径。
例如:CREATE UNDO TABLESPACE undo_data01DATAFILE'/u01/app/oracle/oradata/ORCL/undo_data01.dbf' SIZE100M;在创建undo表空间时,需要注意以下几点:- 通常建议将undo表空间单独存储在硬盘的不同位置,并使用RAID或其他技术来保证数据的安全性和可靠性。
- 可以使用UNDO_RETENTION参数来控制undo数据的保留时间,以避免出现ORA-01555错误。
这个参数的值表示undo数据的保留时间,以秒为单位。
oracle回收站恢复表的原理
一、介绍Oracle回收站Oracle数据库在删除表或数据时,并不是立即将数据从数据库中删除,而是将其放入一个特殊的地方,这个地方就是Oracle回收站(Recycle Bin)。
回收站可以在一定程度上防止误删数据,同时也为恢复操作提供了便利。
二、恢复表的原理当我们在Oracle数据库中删除表时,实际上是将表移动到了回收站中,而不是直接删除。
这样,我们就可以通过简单的步骤将表恢复到原来的状态。
三、使用FLASHBACK TABLE语句恢复表1. 使用FLASHBACK TABLE语句可以很方便的将回收站中的表恢复到原来的状态。
这条语句的具体用法如下:```FLASHBACK TABLE 表名 TO BEFORE DROP;```2. 使用该语句之前,我们需要确认一下回收站中是否存在需要恢复的表,可以通过以下语句查询回收站中的表信息:```SELECT * FROM recyclebin;```4. 通过FLASHBACK TABLE语句,我们可以将回收站中的表还原到删除之前的状态,这样就可以避免了数据的永久丢失。
四、使用FLASHBACK DROP语句恢复表1. 另一种恢复表的方法是使用FLASHBACK DROP语句,该语句可以用来还原回收站中的对象,其具体用法如下:```FLASHBACK DROP TABLE 表名 TO BEFORE DROP;```2. 通过以上语句,我们可以将回收站中的表直接还原到删除之前的状态,同样可以避免数据的永久丢失。
五、恢复表的注意事项1. 在进行表恢复之前,我们需要充分确认需要恢复的表是否存在于回收站中,可以通过查询回收站的表信息来进行确认。
2. 在进行表恢复之前,我们需要对数据库进行备份,以避免意外情况导致数据的进一步损失。
3. 在进行表恢复操作时,需要谨慎操作,避免对其他数据产生影响。
4. 在恢复表后,需要对数据库进行一些必要的检查,以确保数据的完整性和一致性。
oracle误删除表空间的数据文件
事故原因:1.由于误操作用hp unix 命令 rm -f datafilename 删除表空间的数据文件2.alter tablespace tablespacenaem drop datafile datafile ;3.drop tablespace tablespacename including content and datafiles;上述两个步骤我用了近三个小时都没有执行完,最后导致数据库宕机。
下面把我当时启动数据的后台页面展现给大家,为以后出现同样的问题,提供一个参照的作用.SP2-0734: unknown command beginning "sqlplus /n..." - rest of line ignored.SQL> conn sys/passwd as sysdba;Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 3.2212E 10 bytesFixed Size 2115136 bytesVariable Size 3204450752 bytesDatabase Buffers 2.8991E 10 bytesRedo Buffers 14659584 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 39 - see DBWR trace fileORA-01110: data file 39: '/data/tbs_db_bas2.dbf'SQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 3.2212E 10 bytesFixed Size 2115136 bytesVariable Size 3204450752 bytesDatabase Buffers 2.8991E 10 bytesRedo Buffers 14659584 bytesDatabase mounted.SQL> recover datafile tbs_db_bas2.dbf;ORA-02236: invalid file nameSQL> recover datafile '/data/tbs_db_bas2.dbf';ORA-00283: recovery session canceled due to errorsORA-01110: data file 39: '/data/tbs_db_bas2.dbf'ORA-01157: cannot identify/lock data file 39 - see DBWR trace fileORA-01110: data file 39: '/data/tbs_db_bas2.dbf'SQL> revover database;SP2-0734: unknown command beginning "revover da..." - rest of line ignored. SQL> recover database;ORA-00283: recovery session canceled due to errorsORA-01110: data file 39: '/data/tbs_db_bas2.dbf'ORA-01157: cannot identify/lock data file 39 - see DBWR trace fileORA-01110: data file 39: '/data/tbs_db_bas2.dbf'SQL> shutdown immediat;SP2-0717: illegal SHUTDOWN optionSQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 3.2212E 10 bytesFixed Size 2115136 bytesVariable Size 3204450752 bytesDatabase Buffers 2.8991E 10 bytesRedo Buffers 14659584 bytesDatabase mounted.SQL> alter database datafile '/data/tbs_db_bas1.dbf' offline drop;Database altered.SQL> alter database open;alter database open*ERROR at line 1:ORA-01157: cannot identify/lock data file 39 - see DBWR trace fileORA-01110: data file 39: '/data/tbs_db_bas2.dbf'SQL> alter database datafile '/data/tbs_db_bas2.dbf' offline drop;Database altered.SQL> alter database open;Database altered.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsoracle@hljww:/oracle/oracle/OraHome_1/network/admin$ lsnrctlLSNRCTL for HPUX: Version 10.2.0.4.0 - Production on 03-MAY-2010 20:13:51Copyright (c) 1991, 2007, Oracle. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> stopConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hljww)(PORT=1521))) The command completed successfullyLSNRCTL> startStarting /oracle/oracle/OraHome_1/bin/tnslsnr: please wait...TNSLSNR for HPUX: Version 10.2.0.4.0 - ProductionSystem parameter file is /oracle/oracle/OraHome_1/network/admin/listener.oraLog messages written to /oracle/oracle/OraHome_1/network/log/listener.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hljww)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hljww)(PORT=1521))) STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for HPUX: Version 10.2.0.4.0 - ProductionStart Date 03-MAY-2010 20:14:08Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /oracle/oracle/OraHome_1/network/admin/listener.oraListener Log File /oracle/oracle/OraHome_1/network/log/listener.logListening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hljww)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))Services Summary...Service "hljwxwl" has 1 instance(s).Instance "hljwxwl", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully-- 总结上述报错原因是由于我的数据文件没有在oracle内部进行删除导致数据库重新启动时找不到相应的数据文件,报上述错误,所以我建议大家遇到问题时,要沉着,冷静,不要乱,做好备份工作,特别是遇到错误时我们上网查一下oracle错误,进行相应的处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 误删UNDO表空间故障处理
H.sdon
操作人员操删除ORACLE UNDO表空间,系统报ORA-01116: error in opening database file 25错误。
解决思路:删除原有UNDO表空间,新建一个UNDOTBS2表空间进行替换。
1、生成init文件
Create pfile from spfile
记住:在生成新的init文件前应对原有文件做好备份或将init文件生成在不同的目录名称下面
2、修改init.ora文件
undo_management=MANUAL
undo_retention=10800
undo_tablespace=undotbs01
rollback_segments='SYSTEM'
3、使用PFILE重新启动数据库
Startup pfile=’$ORACLE_HOME/dbs/init[sid].ora
此步数据库已经能正常OPEN,但在做数据库操作的时候还会报以下错误
SQL> shutdown immediate;
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '/oradata/irms/undotbs01.dbf'
4、使用以下命令对数据文件进行offline drop
alter database datafile '/oradata/irms/undotbs04.dbf' offline drop;
alter database datafile '/oradata/irms/undotbs03.dbf' offline drop;
alter database datafile '/oradata/irms/undotbs01.dbf' offline drop;
alter database datafile '/oradata/irms/undotbs02.dbf' offline drop;
5、创建新的UNDO表空间UNDOTBS2
create undo tablespace undotbs2
datafile '/oradata/irms/undotbs20.dbf' size 500M;
6、在init.ora更改默认UNDO表空间,使其启动后默认UNDO表空间为undotbs2,undo_management=AUTO后重新启动
7、删除UNDOTBS1表空间,报
Drop tablespace undotbs1
ORA-01548: 已找到活动回退段'_SYSSMU1$',
8、查看回滚段使用情况
select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU1$ NEEDS RECOVERY UNDOTBS1
_SYSSMU2$ NEEDS RECOVERY UNDOTBS1
_SYSSMU3$ NEEDS RECOVERY UNDOTBS1
_SYSSMU4$ NEEDS RECOVERY UNDOTBS1
_SYSSMU5$ NEEDS RECOVERY UNDOTBS1
_SYSSMU6$ NEEDS RECOVERY UNDOTBS1
_SYSSMU7$ NEEDS RECOVERY UNDOTBS1
_SYSSMU8$ NEEDS RECOVERY UNDOTBS1
_SYSSMU9$ NEEDS RECOVERY UNDOTBS1
_SYSSMU10$ NEEDS RECOVERY UNDOTBS1
可以看到_SYSSMU1$-_SYSSMU10$状态都为need recovery状态
9、关闭数据库,更改init.ora默认UNDO表空间及其它参数
undo_management=manual
undo_retention=10800
undo_tablespace=undotBS2
_CORRUPTED_ROLLBACK_SEGMENTS
=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$, _SYSSMU10$)
10、以新的init.ora启动数据库
Startup pfile=’$ORACLE_HOME/dbs/init[sid].ora
11、删除UNDOTBS1
Drop tablespace undotbs1 including contents
查看回滚段状态,UNDOTBS中的信息已经没有
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
SYSSMU11$ ONLINE UNDOTBS2
_SYSSMU12$ ONLINE UNDOTBS2
_SYSSMU13$ ONLINE UNDOTBS2
_SYSSMU14$ ONLINE UNDOTBS2
_SYSSMU15$ ONLINE UNDOTBS2
_SYSSMU16$ ONLINE UNDOTBS2
_SYSSMU17$ ONLINE UNDOTBS2
_SYSSMU18$ ONLINE UNDOTBS2
_SYSSMU19$ ONLINE UNDOTBS2
_SYSSMU20$ ONLINE UNDOTBS2
11、将SPFILE中的UNDO_TABLESPACE改成UNDOTBS2后启动正常
附言:。