如何使用SQL查询ORACLE归档模式及归档日志的进程数?-问答-阿里云开发者社区-阿里云

开发者社区> 晓风瑟瑟> 正文

如何使用SQL查询ORACLE归档模式及归档日志的进程数?

2021-10-14 19:35:52 56 2

如何使用SQL查询ORACLE归档模式及归档日志的进程数?

取消 提交回答
全部回答(2)
  • 5abyqn7wigzqm
    2021-10-16 01:03:31

    简单点,直接出结果的SQL: 查看归档日志模式,是否处于归档模式,使用:select log_mode from v$database; 查询归档日志的进程数,使用:select * from v$archive_processes;

    0 0
  • XiaozhouTAT
    2021-10-15 23:05:31

    select * from v$recovery_file_dest

    SQL> select * from v$recovery_file_dest;

    NAME

    SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES


    /u03/fast_recovery_area 8589934592 6551817216

    SQL> select * from v$flash_recovery_area_usage;

    FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE


    NUMBER_OF_FILES

    CONTROL FILE 0 0 0

    REDO LOG 1.83 0 3

    ARCHIVED LOG 74.44 0 159 如果 ARCHIVED LOG 超过90% oracle随时有宕机的危险

    增大归档日志空间 SQL> alter system set db_recovery_file_dest_size=20G;

    System altered.

    删除归档日志

    1.看看现在用了多少归档日志了(按百分比): select * from v$flash_recovery_area_usage; 如果超过90%随时有宕机的危险 2.当删除归档文件后需要用RMAN工具释放归档所占用的空间,首先连接RMAN工具

    rman target sys/pass

    3.查查归档日志吧

    crosscheck archivelog all;

    4.觉着没用就干掉它吧,如果想保留今天的用下面那个语句

    delete expired archivelog all;(全部删除)

    delete archivelog until time 'sysdate - 1';(保留当天删除,删除之前所有)

    也可以:$ORACLE_BASE/flash_recovery_area/你的实例名/archivelog/这个路径下,找到归档日志文件,把没用的删了

    关闭归档

    1.,用SYS用户进行登录,首先设置归档进程关闭。

    alter system set log_archive_start = false scope = spfile;

    2.然后关闭数据库

    shutdown immediate;

    3.启动DB到mount模式

    startup mount;

    4.关闭闪回数据库模式,如果不关的话总报错ORA-38774

    alter database flashback off;

    5.接着将数据库改为非归档模式吧

    alter database noarchivelog;

    6.打开数据库

    alter database open;

    7.查看一下空间大小吧

    select * from v$recovery_file_dest;

    8.看一下日志状态

    select * from v$log;

    9.使用情况查看方法还是如出一辙

    select * from v$flash_recovery_area_usage;

    归档设置

    一 设置为归档方式

    1 sql> archive log list; #查看是不是归档方式 2 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档 sql> alter system set log_archive_dest=''location=/oracle/ora9/oradata/arch'' scope=spfile; #设置归档路径 sql> alter system set log_archive_dest_1=''location=/oracle/ora9/oradata/arch1'' scope=spfile; sql> alter system set log_archive_dest_2=''location=/oracle/ora9/oradata/arch2'' scope=spfile; #如果归档到两个位置,则可以通过上边方法实现 sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log'' #设置归档日记款式

    或者: 1.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH;

    2.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/DBA/FB' SCOPE=BOTH;

    3 sql> shutdown immediate; 4 sql> startup mount; #打开控制文件,不打开数据文件 5 sql> alter database archivelog; #将数据库切换为归档模式 6 sql> alter database open; #将数据文件打开 7 sql> archive log list; #查看此时是否处于归档模式 8 查询以确定数据库位于archivelog模式中且归档过程正在运行 sql> select log_mode from v$database; sql> select archiver from v$instance; 9 日志切换 sql> alter system switch logfile; 10 这次日志切换将归档写到两个目标地, 1,即第二步的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch1,要是要对目录确认

    在oracle情况中运行如下查询: sql> select name from v$archived_log; 而后在操作系统中确认查询所列出的文件 二 设置非归档方式 1 sql> archive log list; #查看是否是归档方式 2 sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档 3 sql> shutdown immediate; 4 sql> startup mount; #打开控制文件,不打开数据文件 5 sql> alter database noarchivelog; #将数据库切换为非归档模式 6 sql> alter database open; #将数据文件打开 7 sql> archive log list; #查看此时便处于非归档模式

    三 归档相关命令

    archive log stop; archive log start; archive log list;

    show parameters; show parameters log_archive_start; show parameters log_archive_max_process; #归档进程数 alter system set log_archive_max_process=5; #将归档进程数改为5 select * from v$bgprocess; #检察后台进程 ================= SQL> show parameter archive log; 显示所有的归档日志 SQL> show parameter recover; NAME TYPE VALUE


    db_recovery_file_dest string /u03/fast_recovery_area db_recovery_file_dest_size big integer 8G 归档日志大小 db_unrecoverable_scn_tracking boolean TRUE recovery_parallelism integer 0

    1 0
添加回答
相关问答

4

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 123757浏览量 回答数 4

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 973726浏览量 回答数 17

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157120浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333917浏览量 回答数 8

38

回答

[@饭娱咖啡][¥20]对于慢sql有没有什么比较实用的诊断和处理方法?

江小白太白 2018-10-30 18:47:38 141687浏览量 回答数 38

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 126798浏览量 回答数 2

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256905浏览量 回答数 38

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302636浏览量 回答数 249

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123230浏览量 回答数 97

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204027浏览量 回答数 2
+关注
1
文章
1508
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载