zoukankan      html  css  js  c++  java
  • oracle数据库归档日志及数据文件相关问题

    oracle数据的关于归档日志开启及管理的相关命令如下:

    一.打开oracle数据库归档日志,需要如下几步。

    1.进入dos窗口—>>> 菜单键+R,进入 运行 界面,输入cmd
    2.登录 sqlplus,—>> 方法: sqlplus/nolog,切忌:不要输入sqlplus/noarchivelog; 加上 分隔符 ;, 这样进入的sqlplus的命令参数帮助
    3.登入管理员—>> 方法: conn/as sysdba;
    4.开启归档日志
    4.1 shutdown immediate; –关闭数据库
    4.2 startup mount; – 打开数据库
    4.3 alter database archivelog;—开启归档日志
    4.4 alter database open;–开启数据库
    4.5 archive log list; – 查看归档日志是否开启
    开启状态:
    数据库日志模式 存档模式
    自动存档 启用
    存档终点 USE_DB_RECOVERY_FILE_DEST
    最早的联机日志序列 49
    下一个存档日志序列 51
    当前日志序列 51
     

    2.关闭归档日志

    在这里所有的操作要在数据库的那台机器上操作,用SYS用户进行登录,首先设置归档进程关闭。 
    alter system set log_archive_start=false scope=spfile; (9i,10g不用)
    然后关闭数据库 
    shutdown immediate 
    再后面把数据库启动到mount的模式 
    startup mount 
    关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ORA-38774错误。 ORA-38774: 无法禁用介质恢复 - 闪回数据库已启用

    alter database flashback off 
    接着把数据库改为非归档模式 
    alter database noarchivelog; 
    都修改好了以后,然后打开数据库 
    Alter database open; 
    察看一下归档日志的空间大小 
    select * from v$recovery_file_dest; 
    接着看一下log日志的状态 
    select * from v$log; 
    再看一下闪回日志使用状况 
    select * from v$flash_recovery_area_usage; 
    这些都没有问题以后,数据库问题就解决了。

    3.归档日志满了之后处理方式

    连接时提示:oracle 归档日志满 报错ORA-00257: archiver error. Connect internal only, until freed  基本上就是归档日志满了,需要清除

     也可以使用select * from  v$flash_recovery_area_usage 查看归档日志占用率。超过90%就要及时处理

    1.增加日志文件大小,方式使用管理员用户 执行  ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g; 根据时间硬盘空间设置大小。

    2.在Windows环境下使用RMAN命令删除Oracle过期归档日志的方法

    A.命令删除 在cmd下输入rman之后执行如下命令

    connect target sys/sys_passwd

    crosscheck backup; 

    delete obsolete; 

    delete expired backup; 

    crosscheck archivelog all; 

    delete expired archivelog all; 

    delete archivelog all; //删除所有归档日志

    delete noprompt  force archivelog until time 'sysdate -1';//強制刪除昨天以前的archivelog files

    B、批处理方式删除
    创建一个删除归档日志的脚本(delete_arch.txt):
    connect target bqss/bqss@orcl
    run{
    DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-10'; //删除10天前的归档日志,怕哪天DG有问题,有日志没有及时应用
    crosscheck archivelog all;
    delete expired archivelog all;
    }
    2、创建批处理任务(delete_archive.bat)
    rman cmdfile=c:delete_arch.txt
    3、创建一个windows任务定时调用批处理任务
    开始 => 所有程序 => 附件 => 系统工具 => 任务计划
    新建个任务计划了,然后根据要求配置下即可。
  • 相关阅读:
    二叉树线索化。。。
    如何通过指针访问虚函数表,并且调用里面的方法
    进程间通信IPC
    什么时候该用assert
    高并发服务端分布式系统设计概要(上)
    C语言读写文件
    Linux 与 BSD 有什么不同?
    extern "C" 使用
    C语言字符数组的定义与初始化
    Linux守护进程
  • 原文地址:https://www.cnblogs.com/xplangren/p/11550621.html
Copyright © 2011-2022 走看看