
oem打开oracle 10g 数据库 *** 作界面,会显示如下错误信息: “ 由于输出设备已满或不可用, 归档程序无法归档重做日志。”数据库无法使用现将解决办法稍作总结:方法一:增大归档日志空间的大小可以通过下面的方法来调整系统的回闪恢复区大小:
首先是关闭数据库:以SYS身份链接到oracle,执行>shutdown immediate;
启动数据库到mount状态:>startup mount
查看回闪恢复区的大小和存放目标:>show parameter db_recovery_file_dest
修改回闪恢复区的大小>alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小)
最后打开数据库:>alter database open; OK , 问题解决。数据库恢复使用。方法二 :进入oracle清空日志信息,把空间释放出来启动数据库到mount状态: >sqlplus “/as sysdba”>startup mount新起一个终端,用rman进入把归档日志删除命令>rman target/ (只安装了一个oracle10g数据库)命令>crosscheck archivelog all; (列出归档日志信息)命令>delete expired archivelog all; (将上述列出的归档日志删除)命令>exit;此时最好将数据库重新备份一下把数据库的mount状态更改为open状态>alter database open; OK问题解决,数据库可以使用。 误区: 在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份
1最简单的是,先删除1个日志,然后在新的路径下创建一个日志,直到所有的日志都重新创建完成即可完成迁移。删除前先备份。
2再有一个方法,先关闭数据库,把日志拷贝新的位置,然后修改初始化参数,再启动数据库。(推荐这种方法,因为能保留重做信息)
第二种方法的实施步骤(仅供参考)
1
关闭数据库,shutdown
immediate;
2
把日志拷贝到新的位置
3
启动数据库到mount状态,startup
mount;
4
修改初始化参数,Alter
database
rename
file
‘c:\test\redo01log’
to
‘d:\test\redo01log’;
5
启动数据库,alter
database
open;
Oracle更改数据文件位置
方法一:offline表空间
1、offline表空间:alter tablespace tablespace_name offline;
2、复制数据文件到新的目录;
3、rename修改表空间,并修改控制文件;
4、online表空间;
1、offline表空间zerone
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> alter tablespace zerone offline;
表空间已更改。
2、复制数据文件到新的目录
复制数据文件C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF到C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF。
3、rename修改表空间数据文件为新的位置,并修改控制文件
SQL> alter tablespace zerone rename datafile 'c:\oracle\product\1020\oradata\zerone01dbf' to 'c:\oracle\product\1020\oradata\orcl\zerone01dbf';
表空间已更改。
4、online表空间
SQL> alter tablespace zerone online;
表空间已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------------------------------------------
ZERONE C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
方法二:SQL修改数据文件位置
1、关闭数据库;
2、复制数据文件到新的位置;
3、启动数据库到mount状态;
4、通过SQL修改数据文件位置;
5、打开数据库;
1、关闭数据库
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2、复制数据文件到新的位置;
将数据文件C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF复制到C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF。
3、启动数据库到mount状态;
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 96470372 bytes
Database Buffers 67108864 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
4、通过SQL修改数据文件位置;
SQL> alter database rename file 'c:\oracle\product\1020\oradata\orcl\zerone01dbf' to 'c:\oracle\product\1020\oradata\zerone01dbf';
数据库已更改。
5、打开数据库;
SQL> alter database open;
数据库已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
-------------------------------------------------------------------------------------------------
ZERONE C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
1,首先排除设置了正确的SID连接
如:C:\Users\Administrator>set ORACLE_SID = orcl //确定本机数据库实例名
linux下用export ORACLE_SID=orcl
2,以sysdba连接,关闭数据库
sqlplus / as sysdba
shutdown immediate
如果不能关闭,windows下杀掉oracle进程,停掉oracle的服务
linux下:ps -ef|grep smon找到对应的pid
kill -9 <pid>
3,重新启动试试
startup
如果还是不行,查看报错原因,这里可能有很多,比如数据文件错误
4这里假如你的错误是数据文件引起
shutdown immediate
startup mount
recover datafile <datafile number>;
alter database open;
就可以了
务全都启动起来如果是Oracle10G,应该有4个服务
然后,运行cmdexe,如果Oracle就按照在本机,输入如下命令:sqlplus /nolog完成后会进入到SQL>的提示符
这时候如果win的Oracle服务启动起来了,则数据库正常情况下是mount并且是open的,要想使用startup mount命令,则需要先关闭Oracle数据库输入:
SQL>shutdown immediate;
就可以关闭数据库然后,就可以使用startup mount启动数据库到mount状态了
如果后面还要打开的话,输入
SQL>alter database open;
则会打开数据库
以上就是关于Oracle 归档目录满了怎么办全部的内容,包括:Oracle 归档目录满了怎么办、oracle数据库迁移redo log的方式有哪些、如何将Oracle数据库数据文件迁移到其它目录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)