oracle数据库闪回目录空间不足导致drop user cascade报错

合集下载

ORACLE 数据库故障解决方案

ORACLE 数据库故障解决方案

ORACLE 数据库故障解决方案一、背景介绍ORACLE数据库是一种常用的关系型数据库管理系统,广泛应用于企业级应用中。

然而,在使用ORACLE数据库的过程中,可能会遇到各种故障,例如数据库无法启动、数据丢失、性能下降等问题。

本文将介绍一些常见的ORACLE数据库故障,并提供相应的解决方案。

二、常见故障及解决方案1. 数据库无法启动故障现象:当尝试启动ORACLE数据库时,可能会遇到无法启动的情况。

解决方案:- 检查数据库实例是否已经启动。

可以使用命令`ps -ef | grep pmon`来检查数据库实例进程是否存在。

- 检查数据库监听器是否已经启动。

可以使用命令`lsnrctl status`来检查监听器状态。

- 检查数据库日志文件,查找错误信息。

可以通过查看数据库的alert日志文件来获取更多信息。

2. 数据库数据丢失故障现象:数据库中的部分或全部数据丢失。

解决方案:- 恢复备份数据。

如果有定期备份数据库的策略,可以使用备份数据进行恢复。

- 使用闪回技术。

ORACLE数据库提供了闪回技术,可以将数据库恢复到某个时间点的状态。

- 使用数据恢复工具。

如果以上方法无法解决问题,可以考虑使用第三方的数据恢复工具。

3. 数据库性能下降故障现象:数据库的响应时间变慢,性能下降。

解决方案:- 分析数据库性能指标。

可以使用ORACLE提供的性能监控工具,如AWR报告、ASH报告等,来分析数据库的性能指标,找出性能瓶颈所在。

- 优化SQL语句。

通过分析慢查询日志,找出执行时间较长的SQL语句,并进行优化,如添加索引、重写SQL语句等。

- 调整数据库参数。

根据数据库的负载情况,适当调整数据库的参数配置,如SGA大小、PGA大小等。

4. 数据库实例崩溃故障现象:数据库实例突然崩溃,无法正常工作。

解决方案:- 检查数据库错误日志。

可以通过查看数据库的alert日志文件来获取崩溃的原因。

- 恢复数据库实例。

可以使用ORACLE提供的恢复工具,如RECOVER命令、RMAN工具等,来恢复数据库实例。

oracle表空间已满解决

oracle表空间已满解决

oracle表空间已满解决在⽇常的oralce使⽤中最长遇到的问题就是oralce的表空间满了,数据⽆法写⼊报错,这种情况下通常是磁盘没有⾜够的空间或者表空间的数据⽂件达到32G(linux最⼤限制单个⽂件不超过32G)⽆法继续⾃动扩展。

1、⾸先分享⼀个查看表空间使⽤情况的语句(看着有点恶⼼但是不⽤怕,不⽤看不⽤去理解,保存好⽤的时候拿来直接⽤即可),只⽤看如下红⾊框起来的部分即可,只要表空间⼤⼩没有到32G(⼀个表空间⽂件32G,n个表空间⽂件32G*n)即使后⾯使⽤率⾼了也不⽤管,不够他会⾃动扩展。

(创建的时候开启了表空间⾃动扩展)。

SELECT UPPER (f.tablespace_name) AS "表空间名",d.tot_grootte_mb AS "表空间⼤⼩(M)",d.tot_grootte_mb - f.total_bytes AS "已使⽤空间(M)",TO_CHAR (ROUND ( (d.tot_grootte_mb - f.total_bytes)/ d.tot_grootte_mb* 100,2),'990.99') AS "使⽤⽐",f.total_bytes AS "空闲空间(M)", f.max_bytes AS "最⼤块(M)"FROM (SELECT tablespace_name,ROUND (SUM (BYTES) / (1024 * 1024), 2) AS total_bytes,ROUND (MAX (BYTES) / (1024 * 1024), 2) AS max_bytesFROM SYS.dba_free_spaceGROUP BY tablespace_name) f,(SELECT dd.tablespace_name,ROUND (SUM (dd.BYTES) / (1024 * 1024),2) AS tot_grootte_mbFROM SYS.dba_data_files ddGROUP BY dd.tablespace_name) dWHERE d.tablespace_name = f.tablespace_nameORDER BY 4 DESC2、查看已有的表空间物理⽂件在什么位置select * from dba_data_files注:只看第⼀列即可,⼀看现有的表空间对应的数据⽂件存在/u01/app/oracle/oradata/orcl⽬录下,知道这个就可以了3、给空间快满的表空间增加新的表空间⽂件并设置为可以⾃动扩展的(这样相当于给快满的表空间⼜增加了32G的可以空间)alter tablespace <tablespace_name> add datafile 'filepath' size <filesize> autoextend on next <autosize> maxsize filemaxsize[unlimited];例如:alter tablespace sales add datafile '/u01/app/oracle/oradata/orcl/newsales.dbf' size 1G autoextend on next 10m maxsize unlimited如上语句的含义是给名称为为sales的表空间新增⼀个物理⽂件/u01/app/oracle/oradata/orcl/newsales.dbf,⽂件初始⼤⼩为1G,是⾃动扩展的每次⾃动扩展的空间为10m。

归档日志卷空间不足导致数据库故障解决方法

归档日志卷空间不足导致数据库故障解决方法

将归档日志的的目录更换为新目录,然后进行新的归档操作。 当原归档日志目录所在文件系统有足够的空间后,可以将归档日志目录更换为原归档日志目录。 步骤三:将归档日志目录更换为原目录: $svrmgrl svrmgrl>connect internal/ svrmgrl> alter system set log_archive_dest_1='location=/opt/oracle/arch/ORCL'; svrmgrl>alter system switch logfile; svrmgrl>exit; 将归档日志目录恢复为原目录后,进行归档。 步骤四:将临时目录下的归档日志拷贝回来 利用操作系统命令将步骤二产生的归档日志拷贝回归档日志的目录。 步骤五:业务测试 数据库恢复后进行各项业务的测试,确保业务正常。 步骤六:备份数据库 根据现场数据库的使用情况对数据库进行备份。 日常维护:
归档日志卷空间不故障解决方法 2007年07月01日 星期日 13:09
/cn_chenfeng/archive/2004/10/04/124804.aspx 操作系统:Sun Solaris 8 双机软件: Sun Cluster 3.0 数据库:Oracle 8.1.7.3 故障现象: 网通客户反映mSwitch软交换系统中所有与数据库相关的操作都无法完成,如OSS、NMS等界面的查询、修改等操作都返回数据库连接错误。在sqlplus中使用wacos 等用户登录时出现如下错误: ORA-00257: archiver error. Connect internal only, until freed. 故障分析: mSwitch系统的数据库运行模式为归档模式,当redo log被重写前需要利用arch进程进行将该redo log进行备份生成归档日志。如果在归档过程中归档日志使用的卷磁 盘空间满,归档就无法进行,oracle将会一直处于等待归档完成状态,此时任何与数据库相关的操作都会无法完成,导致业务中断。 故障处理: 如果现场的存储设备有空余空间,可以增加归档日志卷的空间,如果没有多余空间可以删除部分归档日志来腾出部分空间。 注意:归档日志对数据库的恢复非常重要,在删除归档日志前最好确保系统有成功的备份,所删除的归档日志也应该是备份前的归档日志。 在确保归档日志所在卷有一定的空间后,利用internal用户登录数据库进行如下的操作。 步骤一:确定归档日志的目录: $svrmgrl svrmgrl>connect internal/ svrmgrl>archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /opt/oracle/arch/ORCL Oldest online log sequence 176 Next log sequence to archive 178 Current log sequence 178 svrmgrl>exit 输出中的Archive destination就是数据库所在的归档目录。 步骤二:更换归档日志目录: $svrmgrl svrmgrl>connect internal/ svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch'; svrmgrl>alter system switch logfile; svrmgrl>exit;

解决oracle表空间不足的问题

解决oracle表空间不足的问题

解决oracle表空间不⾜的问题问题描述:ORA-01683: 索引 HB.PK_T1703_HISDATA_1M 分区 SYS_P9572 ⽆法通过 128 (在表空间 TS_1703_INDEX 中) 扩展:原因:表空间满了导致数据写不进库;解决⽅案:新建表空间。

等这些缓存⽂件跑完数据就恢复了。

解决步骤:1、打开PL/SQL客户端,输⼊账号信息,选择数据库,点击【OK】登录:2、新建SQL Windows,查看表空间使⽤情况:select a.tablespace_name,total,free,total-free used,a.file_name from( select tablespace_name,sum(bytes)/1024/1024 total,file_name from dba_data_filesgroup by tablespace_name,file_name) a,( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_spacegroup by tablespace_name) bwhere a.tablespace_name=b.tablespace_nameand a.tablespace_name='TS_1703_INDEX';3、增加表空间⼤⼩--新增表空间create tablespace ts_aw_c03 logging  datafile 'd:\app\Administrator\product\tablespace\ts_aw.dbf' size 10M autoextend on next 5M maxsize 20480M;alter user DBusername identified by DBPassword default tablespace ts_aw_c03;--修改表空间alter tablespace TS_1703_INDEXadd datafile '/oracleDB/oradata/ORCL4/BA069EFF266D2312E0530481BC0A6791/datafile/TS_1703_INDEX_20211210.dbf'size 100mautoextend onnext 10mmaxsize 10240m;4、指定⽤户默认表空间(第⼆步如果是新增表空间,就需要进⾏第三步指定⽤户默认表空间;如果第⼆步是修改表空间,就不需要第三步)。

Oracle临时表游标未释放导致回滚段空间不足的解决方案

Oracle临时表游标未释放导致回滚段空间不足的解决方案

Oracle临时表游标未释放导致回滚段空间不足的解决方案Oracle临时表游标未释放导致回滚段空间不足时会报出多个ORA-01650错误,造成数据库无法运行。

本文我们主要就介绍了这一问题的解决方案,接下来就让我们来一起了解一下这部分内容。

先分析一下相关背景。

产生报错的程序是一个数据处理模块,每天会将其他系统传过来的平面文件中的内容处理后放入数据库中,事务量很大。

我们的系统是9i,划分了16个回滚段,其中两个大的batch回滚段,每个batch回滚段有6G的足够空间。

而数据处理模块会在事务中指定使用BATCH1。

再分析报错的模块。

检查相关的数据事务处理部分,由于业务需要保持数据的一致性,需要处理完1个文件后才能提交,中间如果出错就要全部回滚。

经过确认,这部分代码有很长时间没有做改动了。

然后再确认数据量,可以确认,今天(周五)是一周之内文件内容最少的一天。

也就是说,如果由于数据量引起错误,其他时间的概率应该更大。

但是,有一点需要注意。

指定回滚段是针对事务的,不是针对回滚段。

也就是说,我们可以指定某个事务只使用某个回滚段,但是不能保证这个回滚段只被这个事务事务。

当一个事务申请使用回滚段时,如果没有自己指定,oracle就会根据当时的各个回滚段的使用情况,分配一个最合适的回滚段给这个事务使用。

因此,报回滚段空间不足的事务可能不一定就是导致回滚段空间不足的事务。

还有一种可能就是,事务所指定的回滚段被其他事务所占用了。

于是我们就检查是否还有其他事务占用了该回滚段。

1.SELECT s.sid, /doc/dc2790910.html,ername, s.osuser, s.machine, s.program,2.t.xidusn,t.ubafil,t.ubablk,/doc/dc279 0910.html,ed_ublk, t.log_io, t.phy_io, t.cr_get, t.cr_change, /doc/dc2790910.html,, q.sql_text4.FROM v$session s,v$transaction t, v$RollName r, v$sqlarea q5.WHERE s.saddr=t.ses_addr6.and t.xidusn = /doc/dc2790910.html,n7.and s.sql_address = q.address(+)8.and s.sql_hash_value = q.hash_value(+)And r,name = 'RBS_BATCH1';果然发现有5个事务在占用BATCH1。

oracle 闪回恢复区问题

oracle 闪回恢复区问题

3. 无法连接到数据库(麻醉客户端,pl sql等)2010-07-26 23:30现象:出现问题时间2010-07-26 23:30之前都正常操作,21点左右都还在正常用。

报出的错误:最初出现这个问题时报错如下图:当时看到问题,我以为在做备份数据库,之后大概1小时过后仍有这个问题,问题原因:闪存恢复区(flash_recover_area)空间已满。

数据库开启的自动归档模式,归档日志将闪存恢复区几乎占满。

SQL> connect sys/mdsd as sysdba已连接。

SQL> select * from v$log;GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ----------------FIRST_CHANGE# FIRST_TIME------------- --------------1 1 1453 52428800 1 NO CURRENT71492758 26-7月-103 1 1452 52428800 1 NO INACTIVE71415126 26-7月-102 1 1451 52428800 1 NO INACTIVE71365115 26-7月-10SQL> select * from v$recovery_file_dest;NAME--------------------------------------------------------------------------------SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES----------- ---------- ----------------- ---------------D:\oracle\product\10.2.0\flash_recovery_area2147483648 2114804224 0 44SQL> select * from v$flash_recovery_area_usage;FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES ------------ ------------------ ------------------------- ---------------CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 98.48 0 44 BACKUPPIECE 0 0 0 IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 0已选择6行。

ORACLE 数据库故障解决方案

ORACLE 数据库故障解决方案

ORACLE 数据库故障解决方案故障解决方案是指在出现故障时,通过一系列的步骤和方法来解决问题,恢复系统的正常运行。

针对ORACLE数据库故障,下面将提供一种标准的解决方案,希望对您有所帮助。

1. 故障描述:在使用ORACLE数据库时,出现了无法连接数据库的故障,无法进行正常的数据操作和查询。

2. 故障原因分析:(根据实际情况进行分析,以下为示例)可能的原因有:- 数据库服务未启动- 数据库实例崩溃- 数据库表空间不足- 数据库连接配置错误3. 解决方案:以下是一种解决ORACLE数据库故障的标准方案,您可以根据具体情况进行调整和执行。

步骤一:检查数据库服务状态1. 打开命令行窗口,输入命令`lsnrctl status`,查看数据库监听器的状态。

2. 如果监听器状态正常,继续执行下一步;如果监听器未启动,使用命令`lsnrctl start`启动监听器。

步骤二:检查数据库实例状态1. 打开命令行窗口,输入命令`sqlplus / as sysdba`,以管理员身份登录数据库。

2. 输入命令`select status from v$instance;`,查看数据库实例的状态。

3. 如果数据库实例状态正常,继续执行下一步;如果数据库实例未启动,使用命令`startup`启动数据库实例。

步骤三:检查数据库表空间1. 打开命令行窗口,输入命令`sqlplus / as sysdba`,以管理员身份登录数据库。

2. 输入命令`select tablespace_name, sum(bytes)/1024/1024 as total_size,sum(bytes)/1024/1024 - sum(bytes_free)/1024/1024 as used_size from dba_data_files group by tablespace_name;`,查看数据库表空间的使用情况。

3. 如果表空间使用率过高,可以考虑进行表空间的扩容或清理操作。

Oracle回闪空间不足引起的ORA-03113问题排解

Oracle回闪空间不足引起的ORA-03113问题排解

Oracle回闪空间不足引起的ORA-03113问题排解现象:数据库startup时,出现数据库无法正常mount,并报ORA-03113错误。

SQL> startupORACLE instance started.Total System Global Area 830930944 bytesFixed Size 2217912 bytesVariable Size 599787592 bytesDatabase Buffers 222298112 bytesRedo Buffers 6627328 bytesDatabase mounted.ORA-03113: end-of-file on communication channelProcess ID: 6846Session ID: 125 Serial number: 5分析:根据进程号(Process ID)查找到LOG文件的:oral-ora-6846.trc,查看到报错信息ORA-19815: WARNING: db_recovery_file_dest_size of 4039114752 bytes is 100.00% used, and has 0 remaining bytes available.结论:db_recovery_file_dest_size被全部耗尽,导致数据库宕机及无法启动。

解决方法:1、清理过期文件1.1进入rman命令状态[oracle@localhost ~]$ rman target/Recovery Manager: Release 11.2.0.1.0 - Production on Sat Sep 25 14:18:53 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ONLINE (DBID=2094135012)1.2查看所有LOG文件RMAN> crosscheck archivelog all;1.3删除所有LOG文件RMAN> delete archivelog all;PS:其间遇到crosscheck命令无效,主要是进入rman时,返回“connected to target database: (no database start)”。

oracle数据库解决磁盘空间不足问题

oracle数据库解决磁盘空间不足问题

至此数据库已能将原D盘无法存放的新历史数据存放至E盘的相应文件中,可通过重新同步数据库等操作,解决因磁盘空间不够造成的相关问题。
之后若在同台机器上添加硬盘或在另一个分区上进行数据存储设置,只需在“SUPER2K→存储→表空间→USERS→数据文件”中的“E:\USERS01.ORA”上点鼠标右键选择“类似创建”,在创建对话框中“名字”输入新的盘符路径和文件名进行创建即可。
在“数据文件”上点鼠标右键选择“创建”,弹出创建对话框;
在“名字”内输入“E:\USERS.ORA”,文件大小输入“1024”,勾上“重用现有文件”前的选择框;
在“存储”菜单选项中,勾上“数据文件已满后自动扩展”前的选择框,增量输入“1280”,最大容量选择“无限制”;
点击“创建”,等待显示“创建完成”提示框,此时在“SUPER2K→存储→表空间→INDX→数据文件”中会显示刚才创建的“E:\USERS.ORA”;
设原数据库存放于D盘相应目录,现D盘空间不足,E盘有足够空间。
打开“开始→程序→Oracle-OraHome81→Database Administration→DBA Studio";
选择“以独立模式启动”,点击“确定”;

展开树型目录“SUPER2K→存储→表空间→USERS→数据文件”
在“SUPER2K→存储→表空间→USERS→数据文件”中的原“.ORA”文件上点鼠标右键选择“类似创建”,在创建对话框中“名字”输入“E:\USERS01.ORA”,点击“创建”,等待显示“创建完成”提示框,此后在“SUPER2K→存储→表空间→USERS→数据文件”中会显示刚才创建的“E:\USERS01.ORA”;

oracle内存不足处理

oracle内存不足处理

oracle内存不⾜处理alter⽇志TNS-12535: TNS:operation timed outns secondary err code: 12606nt main err code: 0nt secondary err code: 0nt OS err code: 0Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.0.93.33)(PORT=52614))WARNING: inbound connection timed out (ORA-3136) 原因:客户端连接超时导致,可以忽略alter⽇志:Errors in file /u01/app/oracle/diag/rdbms/sncwgs/sncwgs/trace/sncwgs_j001_48431308.trc:ORA-04031: unable to allocate 760 bytes of shared memory ("shared pool","unknown object","KKSSP^2174","kglss")继续查看sga,pgaSQL> show parameter sga;SQL> show parameter pga;原因:内存不⾜导致调整步骤:当前系统MEM128GB 数据库可以调整⾄80G1、修改数据库参数SQL>alter system set sga max size=80g;SQL>set sga target =80g scope=both;2、重启数据库使更改⽣效SQL> shutdown immediate;SQL> startupSQL> show parameter sga;SQL> show parameter pga;awr对应的⽣成报告对应的脚本为为awrrpt.sql,语句如下:SQL> @?\rdbms\admin\spreport.sql注意提⽰:⼀是需要选择报告格式,默认为html,⼆是还需要选择显⽰多少天内的快照——然后还是选择起⽌快照号,指定报告名,其他的就交给Oracle⾃⼰来做:。

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决作者:chensheng 发文时间:2005.06.15在使用ORACLE的过程中,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。

毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。

写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。

ORA-01650: unable to extend rollback segment NAME by NUM intablespace NAME产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。

当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

解决方法:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体情况可以增加一个或多个表空间。

当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意增加回滚段表空间的大小,可使用下列语句先查询一下剩余的tablespace空间有多少:select user_name,sql_text from V$open_cursor where user_name='';如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。

你也可以用以下语句来检测一下rollback segment的竞争状况:和如果任何一个class in count/sum(value)大于1%,就应该考虑增加rollback segment。

oracle表空间不足解决办法

oracle表空间不足解决办法

oracle表空间不⾜解决办法oracle 表空间不⾜解决办法oracle表空间不⾜,⼀般有两个原因:⼀,原表空间太⼩,没有⾃增长;⼆,表空间已⾃增长,⽽且表空间也已⾜够⼤,对于这两种原因分别有各⾃的解决办法。

最近服务器数据库报ora-01653错误,⽆法创建新表,有些表插⼊数据有问题,有些表先删后插的可以之前已经做了表空间的⾃动增长,怀疑是表空间⽂件超过32G(window服务器环境下,oracle数据⽂件最⼤32G),经查询果真如此,于是增加⼀个新的表空间⽂件,直接设置为32G⼤⼩,其实也可以设置较⼩的值,然后再设为⾃动增长即可以下是⽹上搜的解决⽅案和检查办法--1、查看表空间USERS使⽤情况SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUSFROM DBA_TABLESPACES T,DBA_DATA_FILES DWHERE T.TABLESPACE_NAME =D.TABLESPACE_NAMEand T.TABLESPACE_NAME='USERS'ORDER BY TABLESPACE_NAME,FILE_NAME;--2、修改表空间为⾃动增长ALTER DATABASEDATAFILE 'D:\oradata\orcl\USERS01.DBF' AUTOEXTENDON NEXT 500M MAXSIZE UNLIMITED--3、⾃动增长还是不⾏,可能是数据库⽂件满了【注意:DBF⽂件在windows平台32g就不能⽤了】,就增加⼏个数据库⽂件ALTER TABLESPACE USERS ADD DATAFILE 'D:\oradata\orcl\USERS02.DBF' SIZE 1G AUTOEXTEND ON NEXT 1G MAXSIZE 30g;【检查原因】1、查看表在那个表空间 select tablespace_name,table_name from user_talbes where table_name='test';2、获取⽤户的默认表空间 select username, DEFAULT_TABLESPACE from dba_users where username='MXH';3、查看表空间所有的⽂件 select * fromdba_data_files where tablespace_name='USERS';4、查看表空间使⽤情况: SELECT tbs 表空间名, sum(totalM) 总共⼤⼩M, sum(usedM) 已使⽤空间M, sum(remainedM) 剩余空间M, sum(usedM)/sum(totalM)*100 已使⽤百分⽐, sum(remainedM)/sum(totalM)*100 剩余百分⽐ FROM( SELECT b.file_id ID, b.tablespace_name tbs, b.file_namename, b.bytes/1024/1024 totalM, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM, sum(nvl(a.bytes,0)/1024/1024)remainedM, sum(nvl(a.bytes,0)/(b.bytes)*100), (100 - (sum(nvl(a.bytes,0))/(b.bytes)*100)) FROM dba_free_space a,dba_data_filesb WHERE a.file_id = b.file_id GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes ORDER BY b.tablespace_name ) GROUP BY tbs【解决办法-原因⼀】只要将表空间设置为⾜够⼤,并设置为⾃增长即可。

oracle表空间不足

oracle表空间不足

alter index SMSBILL.IX_BT20100710_FSMID rebuild;
…..
需要注意的地方:压缩表带来的影响
CPU开销增加
压缩后再进行不压缩,会出现可以对表增加列的动作,但是不可以对表的列进行DROP动作,根据metalink的说法,是oracle的一个bug,在10g r2的测试都不通过
当出现一个表空间不足的时候,可以采用的方法
1. 清理失效的对象以及碎片
1)检查是否出现行迁移记录的表
SQL> select owner,table_name,tablespace_name ,chain_cnt from dba_tables where chain_cnt>0;
'ALTERTABLE'||D.OWNER||'.'||D.TABLE_NAME||'MOVECOMPRESS;'
--------------------------------------------------------------------------------
alter table SMSBILL.BILLINGTABLE20100731 move compress;
5. 检查是否有临时表的数据,考虑定时备份清除
6. 历史数据表的清理,确实是可以进行清理,例如前几年的数据
3. 根据表空间下表访问和修改程度分二种
1) 对于经常要进行dml语句的表可以通过如下去处理,
A.
alter table test enable row movement; #仅对表是ASSM管理的才有效
注意:
alter table XXX enable row movement语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效。执行完成后,最好执行一下utlrp.sql来编译无效的对象。

oracle数据库闪回目录空间不足导致dropusercascade报错

oracle数据库闪回目录空间不足导致dropusercascade报错

oracle数据库闪回目录空间不足导致dropusercascade报错闪回目录空间不足导致drop user cascade报错imp数据的过程中出错,所有drop user gspx cascade,但一直无法执行完毕,无奈的关闭终端,重新连接数据库后,再次执行drop user gspx cascade ,这次报错如下:第1 行出现错误:ORA-01940: cannot drop a user that is currently connected 从v$session中查看,没有与gspx用户相关的sessionconn gspx/gspx 又报错如下:普通连接报错:ORA-00257: archiver error. Connect internal only,until freed 系统不能进行归档:SQL> select * from v$log;GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------FIRST_CHANGE# FIRST_TIME------------- ---------------1 1 10 52428800 1 NO INACTIVE15711794 31-MAY-072 1 11 52428800 1 NO CURRENT15730194 31-MAY-073 1 9 52428800 1 NO INACTIVEARC字段的值都是NO,表明数据库无法自动归档。

检查归档空间使用情况:SQL> select * from v$flash_recovery_area_usage;FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES------------ ------------------ ------------------------- ---------------CONTROLFILE 0 0 0ONLINELOG 0 0 0ARCHIVELOG 99.99 0 527BACKUPPIECE 0 0 0IMAGECOPY 0 0 0FLASHBACKLOG 0查看闪回目录的路径以及空间配额SQL> show parameter db_recovery_file_destNAME TYPE V ALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string /opt/oracle/flash_recovery_are adb_recovery_file_dest_size big integer 2G最终确认,因为归档日志的路径是在闪回区目录内,而闪回目录安装时默认2G大小,而归档日志一直都没有备份删除,导致当drop user 时,新增的日志无法归档,这样数据库就会自动挂起,无法执行命令。

基于ORA-19815闪回空间爆满问题的处理方法

基于ORA-19815闪回空间爆满问题的处理方法

基于ORA-19815闪回空间爆满问题的处理⽅法闪回区爆满问题也是经常会遇到的问题,最关键的是闪回设置⼤⼩以及归档被默认存放在了闪回⽬录,恰巧今天⼜遇到了这个问题,就记录下处理步骤,仅供遇到这类问题的⼈参考。

⼀、错误现象描述1)应⽤端错误信息Error: 2016-11-26 11:45:25 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.Error: 2016-11-26 11:45:25 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.Error: 2016-11-26 11:45:25 init connpool:one or more conn open error.2)数据库端错误信息Sat Nov 26 12:13:14 2016Errors in file /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc2_929.trc:ORA-19815: WARNING: db_recovery_file_dest_size of 42949672960 bytes is 100.00% used, and has 0 remaining bytes available.Sat Nov 26 12:13:14 2016************************************************************************You have following choices to free up space from recovery area:1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,then consider changing RMAN ARCHIVELOG DELETION POLICY.2. Back up files to tertiary device such as tape using RMANBACKUP RECOVERY AREA command.3. Add disk space and increase db_recovery_file_dest_size parameter toreflect the new space.4. Delete unnecessary files using RMAN DELETE command. If an operatingsystem command was used to delete files, then use RMAN CROSSCHECK andDELETE EXPIRED commands.************************************************************************Sat Nov 26 12:13:14 2016Errors in file /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc2_929.trc:ORA-19809: limit exceeded for recovery filesORA-19804: cannot reclaim 524288000 bytes disk space from 42949672960 limit⼆、错误分析从应⽤⽇志看,是由于不能归档导致的DB连接池不能被初始化打开,基本可以判断是由于数据库的归档⽂件所在磁盘空间满导致。

oracle表空间不足

oracle表空间不足

解决方法1:增大数据文件
alter database datafile '全路径的数据文件名称' resize ***M;
--增加对应的表空间里面的某个数据文件的大小为***M。
解决方法2:增加数据文件
获取创建表空间的语句:
SELECT dbms_metadata.get_ddl('TABLESPACE', 'USER_DATA') FROM dual;
确认磁盘空间足够,增加一个数据文件【用操作系统UNIX、Linux中的df -g命令(查看下可以使用的磁盘空间大小)】
alter tablespace 表空间名称 add daห้องสมุดไป่ตู้afile '全路径的数据文件名称' size ***M
autoextend on maxsize 20G;
PS:表空间一般让空闲百分比保持在10%以上,且数据文件大小最好不要超过2G。当表空间不足时,要么resieze datafile,要么增加datafile。
ORACLE ORA-01653: unable to extend table 的错误
今天用PL SQL Developer往oracle数据库中导入数据时,突然报错,只能终止,错误的具体内容如下:
ORA-01653: unable to extend table USER_DATA.JKHDFXJL by 128 in tablespace MSMS
tablespace_name,
bytes / 1024 / 1024 "bytes MB",
maxbytes / 1024 / 1024 "maxbytes MB"

Oracle FRA报空间不足

Oracle FRA报空间不足
原因:
闪回区超过限制大小,因此数据库就夯住了。
解决办法:
1.查看磁盘空间是否已满。 Nhomakorabea[oracle@localhost flash_recovery_area]$ df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
ext3 383G 13G 351G 4% /
Oracle FRA报空间不足
现象:IMP导入到某个大表的时候卡主。用rman备份数据库报告错误信息。
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 52428800 bytes disk space from 2147483648 limit
/dev/sda1 ext3 99M 12M 82M 13% /boot
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
查看磁盘使用情况后确定不是磁盘空间不足。
2.查看闪回区使用情况:
SQL> select * from v$recovery_file_dest;
NAME
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
oraclelocalhostflashrecoveryareadfth文件系统类型容量已用可用已用挂载点devmappervolgroup00logvol00ext3383g13g351g4devsda1ext399m12m82m13boottmpfstmpfs20g020g0devshm查看磁盘使用情况后确定不是磁盘空间不足

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间设置及查看 归档空间不足引发的问题及解决方法【VIP专享】

Oracle归档日志空间不足引发的问题及解决方法归档日志空间不足现的问题的现象1、软件正在操作,突然点击任何菜单无反应;2、打开登录界面后,输入用户名和密码长时间没反应;3、再次打开登录界面登录时,登录画面异常,同时输入用户名和密码后,出现需要提交license提示界面;以下系统管理员操作4、oracle登录操作系统,输入以下命令:[oracle@OASERVER ~]$sqlplussql>connect oa/oa //回车后出现报错5、打开EM时(IE中输入http://10.31.1.200:1158/em),报ORA-00257、ORA-01033等错误;6、oracle客户端工具(如:PLSQL Developer等)连接数据库时报ORA-00257、ORA-01033等错误;*******************************************************************************说明:因oracle归档日志还在开启,需定期检测归档日志占用空间大小,归归档日志达到一定比例时要及时清理,以防止归档日志问题导致的oracle服务停止现象,从而影响使用使用OA系统。

1、检测oracle是否可以正常归档oracle用户登录系统[oracle@OASERVER ~]$sqlplussql>connect / as sysdbasql>select * from v$logGROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME-------- ------- ---------- ---------- ---------- --- ------ ------------- ------------1 1 263 52428800 1 NO CURRENT 5924771 13-DEC-102 1 261 52428800 1 YES INACTIVE 5878129 12-DEC-103 1 262 52428800 1 YES INACTIVE 5899219 13-DEC-10说明:上面列表可看出ARC列可正常归档,如果全部为NO,oracle将无法进行归档,此时oracle实例会自动关闭。

oracle常见错误处理方法

oracle常见错误处理方法

1.删除用户表时出错删除oracle用户nim出现下面的错误:SQL> drop user nim cascade;drop user nim cascade*ERROR 位于第1 行:ORA-00604: 递归SQL 层1 出现错误ORA-24005: 必须使用DBMS_AQADM.DROP_QUEUE_TABLE 删除队列表处理方式:先执行这条语句:alter session set events'10851 trace name context forever,le vel 2';在执行:drop user nim cascade;删除用户nim2.关于Error:ORA-01033:ORACLE initialization or shutdown in progress错误怎么解决把*.control_files='E:\oracle\oradata\ora\CONTROL01.CTL','E:\oracle\oradata\ora\CONTROL0 2.CTL','E:\oracle\oradata\ora\CONTROL03.CTL'改成*.control_files='E:\oracle\oradata\ora\CONTROL01.CTL'然后sqlplus /nologconn / as sysdbacreate spfile from pfile;startup nomout;alter database mount;看看有没有打错的地方其实就是把你的initORA.ora中的controlfile变成一个呀。

应该正常不会有问题,要不行就sqlplus /nologconn / as sysdbashutdown immediatelstartup pfile='你的initORA.ora文件的完整路径'打开 SQLPLUS, 输入用户名和密码后 , 却总是报 ORA-01033: ORACLE initialization or shutdown in progress 的错误 . 在网上搜索解决办法和大家分享 :1) 开始 - 运行 -cmd2) 命令行中输入 SQLPLUS SYS/SYS AS SYSDBA3) 输入 SHUTDOWN4) 输入 STARTUP.在第四步的时候留意它输出的错误。

Oracle常见错误及解决方法

Oracle常见错误及解决方法

Oracle常见错误及解决方法来源:考试大【分享考试大• 共建考试大】 2007年10月17日1、ORA-12541:TNS:没有监听器原因:没有启动监听器或者监听器损坏。

如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。

在添加之前可能需要把所有的监听器先删除!)2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误原因:ORACLE的数据库服务没有启动。

使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。

如果仍没有解决,请继续向下看。

3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:1)ORADIM -DELETE -SID oradb 删除数据库服务项2)ORADIM -NEW -SID oradb 新增数据库服务项注:这个过程中如果出错,就重启计算机!4、ORA-12154:TNS:能解析服务名原因:ORACLE的网络服务名没有正确配置。

请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。

如果仍没有解决,请继续向下看。

5、ORA-1034 :TNS:ORACLE不可用原因:ORACLE的数据库服务正确启动,但是数据库没有打开!使用命令:1)svrmgrl 启动服务管理器2)connect internal 以internal身份登陆3)startup 打开数据库6、ORA-12560:TNS:协议适配器错误(顽固性的)原因:未知。

解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!PS:1、我的ora_startup.bat:net start OracleOraHome81TNSListenernet start ORACLESERVICEORADBsvrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

闪回目录空间不足导致drop user cascade报错
imp数据的过程中出错,所有drop user gspx cascade,但一直无法执行完毕,无奈的关闭终端,重新连接数据库后,
再次执行drop user gspx cascade ,这次报错如下:
第1 行出现错误:
ORA-01940: cannot drop a user that is currently connected
从v$session中查看,没有与gspx用户相关的session
conn gspx/gspx 又报错如下:
普通连接报错:
ORA-00257: archiver error. Connect internal only,until freed
系统不能进行归档:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ---------------
1 1 10 52428800 1 NO INACTIVE
15711794 31-MAY-07
2 1 11 52428800 1 NO CURRENT
15730194 31-MAY-07
3 1 9 52428800 1 NO INACTIVE
ARC字段的值都是NO,表明数据库无法自动归档。

检查归档空间使用情况:
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 99.99 0 527
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0
查看闪回目录的路径以及空间配额
SQL> show parameter db_recovery_file_dest
NAME TYPE V ALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /opt/oracle/flash_recovery_are
a
db_recovery_file_dest_size big integer 2G
最终确认,因为归档日志的路径是在闪回区目录内,而闪回目录安装时默认2G大小,而归档日志一直都没有备份删除,导致当drop user 时,新增的日志无法归档,这样数据库就会自动挂起,无法执行命令。

alter system set db_recovery_file_dest_size=3G
增加闪回目录大小后,重新执行drop user gspx cascade 成功!。

相关文档
最新文档