Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Oracle知识集锦:对Oracle数据库进行监控检查

Oracle知识集锦:对Oracle数据库进行监控检查

作者头像
星哥玩云
发布于 2022-08-16 05:57:27
发布于 2022-08-16 05:57:27
1.2K0
举报
文章被收录于专栏:开源部署开源部署

整理了一些Oracle基础知识,与大家分享。

1、如何对Oracle数据库进行监控检查

sqlplus '/as sysdba'

手动生成一个oracle数据库的快照

execute dbbms_workload_repository.create_snapshot();

执行自动工作负载库的sql脚本

@?/rdbms/admin/awrrpt.sql;      @表示在数据库中执行sql脚本,?指$ORACLE_HOME目录

接着输入想要分析的时间数字即可

默认导出的是html格式

生成自动诊断报告

sqlplus / as sysdba

@?/rdbms/admin/addmrpt.sql

然后输入相应的数字

2、Oracle完全之dbf文件出现问题, ORA-01219

alter database datafile '/data/app/oradata/ora237/users01.dbf' offline drop;

强制删除该故障文件

3、检查Oracle数据库和日常维护数据库

检查数据库日志

数据库最重要的日志为警告日志,alert_sid.log 一般位于$ORACLE_BASE/admin/ORACLE_SID/bdump 目录下

也可以在数据库中执行

show parameter background_dump_dest;

根据上面返回结果使用cat查看,重点关注ORA-或者Errors关键字

检查数据库的数据文件是否为自动扩展

select file_id,file_name,tablespace_name,autoextensible from dba_data_files;

4、Oracle之logminer日志分析

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

select sysdate from dual;

执行增删操作

alter system switch logfile;    切换当前的重做日志已以生成归档日志(相当于将之后的操作重新放到另一个日志中)

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';      修改格式方便查看

select sequence#,first_time from v$log_history order by first-time desc;

归档日志默认放在/u01/app/oracle/flash_recovery_area/ORCL/archivelog

查看分析日志

select t.FIRST_TIME,t.NAME from v$archived_log t order by t.FIRST_TIME desc;

使用logminer分析数据

conn /as sysdba

execute dbma_logmnr.add_logfile(logfilename=>'/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011-05_04/01_mf_1_12_6w0mmgmd_.arc',options=>dbms_logmnr.new);

启动logminer

execute dbms_logmnr.start_logmnr (options=>dbms_logmnr.dict_from_online_catalog);

把分析数据放入表中,并把表的权限授权给普通用户

create table logminer_20110504 tablespace BANK_TBS as select * from v$logmnr_contents;

grant select on logminer_20110504 to bankuser;

结束logminer分析

execute dbms_logmnr.end_logmnr;

查看分析日志结果

select t.timestamp,t.sql_redo,t.sql_undo from sys.logminer_20110504 t where t.seg_owner='BANKUSER' and t.sql_undo is not null;

5、Oracle审计的激活与取消

审计audit用户见识用户所执行的操作,并且oracle会将审计跟踪结果存放到os文件或数据库中

激活审计

conn /as sysdba

show parameter audit_sys_operations;      查看审计参数

alter system set audit_sys_operations=TRUE scope=spfile;  设置审计参数为true

alter system set audit_trail=db scope=spfile;     

startup force;  重启生效

show parameter audit_sys_operations;      查看审计参数

定义需要审计的表

execute dbms_fga.add_policy(object_schema=>'bankuser',object_name=>'emp',policy_name=>'chk_emp',statement_types=>'insert,update,delete');

给普通用户授权查看 审计表

grant select on dba_fga_audit_trail to bankuser;

执行增删操作,查看对表的审计

select t.timestamp,t.sql_text from sys.dba_fga_audit_trail t;

取消审计

execute dbms_fga.drop_policy(object_schema=>'bankuser',object_name=>'emp',policy_name=>'chk_emp');

6、把Oracle数据库恢复到某个时间点或者某个scn

alter session set nls_date_format='yyyymmdd hh24:mi:ss';

select sysdate from dual;

conn dbauser/123456;      随便一个用户,然后删除其中的一张表用来做测试

drop table test;

rman target/

startup mount;

restore database;      还原数据文件

sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';    因为在rman中执行,所以需要sql ‘’;

recover database until time '20110414 11:33:56';      恢复到这个时间的数据,执行之后需要重新生成重做日志文件

sql 'alter database open resetlogs';

scn是指系统改变号,oracle数据库使用它来记录数据库的过去时间内的状态和轨迹

conn /as sysdba

select dbms_flashback.get_system_chage_number from dual;

select to_char(scn_to_timestamp(963959),'YYYY-MM-DD HH24:MI:SS') from dual;      将scn转换为时间

select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where rownum<10;  根据用户删除数据时间找出相应的scn号

rman target/

startup mount;

restore database;    还原数据文件

recover database until scn 963915;

sql 'alter database open resetlogs';     重新生成重做日志文件

7、Oracle重做日志文件硬盘坏掉解决方法

rman target/

list backup;

list backup summary;

删除数据库数据文件夹下的log日志,例如/u01/app/oracle/oradata/ORCL下的所有后缀为log的文件

sqlplus / as sysdba

alter system switch logfile;    因为没有重做日志文件,会一直处于等待装填,如果需要切换日志,数据库将会报错

shutdown immediate;

startup          也会报错

recover database until cancel;      重新设置oracle数据库的重做日志文件(这种恢复属于不完全恢复数据库)

alter database open resetlogs;      重新生成重做文件

archive log list;            查看日志

8、Oracle使用flashback时,没有显示undosql

这是因为oracle11g没有开启这个功能

用管理员用户sys(也就是sysdba)执行以下语句即可

alter databases add supplemental log data;

如果我们想恢复某些数据,执行(查看误操作的sql语句,例如我们不小心删除了test表的某条数据,再从下面的结果中复制insert语句并执行即可)

select undo_sql from flashback_transaction_query where table_name='TEST';  #注意oracle中where后面的表名需为大写,否则会提示找不到表

显示在前面的结果为最新的操作

将scott用户的test表恢复到10分钟前的数据

flashback select * from scott.test to timestamp sysdate-10/1440;

不小心误删某个数据库表,使用flashback恢复

create table test(a int) tablespace USERS;      后面tablespace部分不能缺少,否则删除后无法进入回收站

drop table test;

flashback table test to before drop;          原数据库表里面的数据也恢复了

9、Oracle数据库经常提示27102 out of memory解决方法

网上有很多解决方案,但是我一个也看不懂,不知道写的什么鬼的东西,为什么一句话就能解决的事,非得长篇大论说原理是什么,看得一脸懵逼

我的解决方法入戏

vi /etc/sysctl.conf

修改kernel.shmall(共享内存总量)的值,该值原来为2097152,我把它给为4097152(暂时不知道应该改什么值,但是把这个值变大就对了,我就是随便吧第一位的2改为4,然后问题就自动解决)了,然后sqlplus / as sysdba

执行select status from v$instance;没有再提示out of memory错误,而是正常显示open

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle Recovery 02 - 常规恢复之不完全恢复
背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份。 实验环境:RHEL6.4 + Oracle 11.2.0.4 单实例.
Alfred Zhao
2019/05/24
1.2K0
分析Oracle数据库日志文件(1)
分析Oracle数据库日志文件(1) 一、如何分析即LogMiner解释 从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行, Oracle数据库的所有更改都记录在日志中,但是原始的日志信息我们根本无法看懂,而LogMiner就是让我们看懂日志信息的工具。从这一点上看,它和tkprof差不多,一个是用来分析日志信息,一个则是格式化跟踪文件。通过对日志的分析我们可以实现下面的目的: 1、查明数据库的逻辑更改; 2、侦察并更正用户的误操作; 3、执行事后审计;
阿新
2018/04/12
3.3K0
Oracle闪回原理-Logminer解读redo(r11笔记第17天)
说到闪回日志,我们都知道闪回日志中记录的都是逆操作,那么就有两个问题需要解释了。 闪回日志和回滚段保存的数据有什么差别? 如果做了truncate操作,闪回日志是怎么记录的,怎么能够通过闪回恢复数据。 第一个问题是一个同学问的,第二个问题是我偶然想起来的,当然这两个问题还是蛮有意思。我们的目标就是解释清楚下面的两个问题。 当然要深刻理解这个问题,一个重要的部分就是得先明白redo的基本情况。 借用大师Jonathan Lewis的话说,Oracle里面最重要的特性是在V6提出的改变向量,改变向量是
jeanron100
2018/03/21
1.2K0
Oracle闪回原理-Logminer解读redo(r11笔记第17天)
Oracle数据误操作全面恢复实战(r11笔记第78天)
对于DBA来说,面对误操作带来的数据恢复难度,其实很大。主要有以下几个方面: 误操作的影响范围极大,很可能不是删点,改点数据的操作,有时候可能是让人望而兴叹的truncate,drop操作。 数据恢复时需要确认数据损坏的时间点,依此来作为数据恢复的一个基准,该舍弃多少数据,该如何权衡,非常关键。 一旦信息提供错误,是否经得起反复折腾,我想这个对于绝大多数的数据恢复而言,基本都是一锤子买卖,能恢复已经不错了,还要反复恢复。但是一旦出现这种情况,可不能马上乱了阵脚。 灾备方案好不好,一试便知 自己也
jeanron100
2018/03/21
7890
Oracle数据误操作全面恢复实战(r11笔记第78天)
ORACLE备份恢复
备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。备份是一份数据副本
全栈程序员站长
2022/09/13
2.9K0
ORACLE备份恢复
【Oracle数据库】手滑删错数据,一步步教你如何挽救?
今天有客户联系说误更新数据表,导致数据错乱了,希望将这张表恢复到 一周前 的指定时间点。
Lucifer三思而后行
2021/12/30
8980
【Oracle数据库】手滑删错数据,一步步教你如何挽救?
​Oracle日志分析和工具介绍
随着数据库规模的增长和复杂性的增加,管理和维护Oracle数据库变得越来越具有挑战性。
炒香菇的书呆子
2023/11/25
1.2K0
如何使用StreamSets实现Oracle中变化数据实时写入Kudu
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了关于StreamSets的一些文章,参考《如何在CDH中安装和使用StreamSets》、《如何使用StreamSets从MySQL增量更新数据到Hive》、《如何使用StreamSets实现MySQL中变化数据实时写入K
Fayson
2018/07/12
5.2K0
【Oracle数据库】手滑删错数据,一步步教你如何挽救?
注意:为了模拟客户环境,假设无法通过UNDO快照找回,当前删除时间点为:<2021/06/17 18:10:00>。
Lucifer三思而后行
2021/08/17
4280
【Oracle数据库】手滑删错数据,一步步教你如何挽救?
【赵渝强老师】Oracle的闪回数据库
Oracle的闪回数据库(Flashback Database)类似于数据库的倒带按钮,可以在用户对数据库造成了逻辑数据损坏的情况下,将数据库恢复到正确的状态。下图说明了闪回数据库的过程。
赵渝强老师
2025/04/01
930
【赵渝强老师】Oracle的闪回数据库
闪回数据库与闪回删除
Flashback Database 功能非常类似与RMAN的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于Flashback log 日志,而且比RMAN更快速、高效。 因此Flashback Database 可以看作是不完全恢复的替代技术。 但它也有某些限制: 1. Flashback Database 不能解决Media Failure, 这种错误RMAN恢复仍是唯一选择 2. 如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore 出来, 然后利用Flashback Database 执行剩下的Flashback Datbase。 3. 如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。 4. 使用Flashback Database锁能恢复到的最早的SCN, 取决与Flashback Log中记录的最早SCN。
Yunjie Ge
2022/04/24
9360
闪回数据库与闪回删除
基于Oracle LogMiner的实时采集一、Logminer简介及使用
Oracle LogMiner 是 Oracle 公司从产品 8i 以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得 Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有对于数据库操作的 DML 和 DDL 语句。该工具特别适用于调试、审计或者回退某个特定的事务。LogMiner 分析工具实际上是由一组 PL/SQL 包和一些动态视图( Oracle8i 内置包的一部分)组成,它作为 Oracle 数据库的一部分来发布是 8i 产品提供的一个完全免费的工具。但该工具和其他 Oracle 内建工具相比使用起来显得有些复杂,主要原因是该工具没有提供任何的图形用户界面( GUI)。
@阿诚
2021/07/23
3.7K0
基于 Oracle LogMiner 的 CDC 日志解析
Oracle 的 Change Data Capture (CDC) 机制利用 LogMiner 解析重做日志获取数据变更。
Yunjie Ge
2025/04/27
2100
基于 Oracle LogMiner 的 CDC 日志解析
Oracle配置和使用闪回
环境:RHEL 6.4 + Oracle 11.2.0.4 目录: 一、闪回查询
Alfred Zhao
2019/05/24
8900
【DB笔试面试792】在Oracle中,ORA-01578和ORA-26040--NOLOGGING操作引起的坏块解决方案
【DB笔试面试792】在Oracle中,ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案.
AiDBA宝典
2020/05/07
1.1K0
LogMiner的使用
这里当前日志(current)是: thread 1 sequence 30 thread 2 sequence 25
Alfred Zhao
2019/05/24
7650
多种技术实现 Oracle 数据实时同步
在现代企业中,数据是至关重要的资产,确保数据在不同数据库间的实时同步变得尤为重要。Oracle数据库作为业界领先的数据库管理系统,提供了多种技术方案用于实现实时数据同步。本文将介绍几种常见的Oracle数据同步方案,包括使用GoldenGate、数据库触发器与自定义应用、第三方ETL工具以及LogMiner方式。
Yunjie Ge
2023/09/01
4K0
多种技术实现 Oracle 数据实时同步
初识FlinkX-Oracle Logminer模块
本文作者:杨槐(花名:渡劫)袋鼠云大数据开发工程师,负责FLinkx的开发与维护。
袋鼠云数栈
2021/05/14
1.2K0
初识FlinkX-Oracle Logminer模块
【DB笔试面试794】在Oracle中,LogMiner是什么?
在Oracle中,LogMiner是什么?其有哪些用途?请简述LogMiner的使用过程。
AiDBA宝典
2020/05/11
1K0
Log Miner 挖挖挖
Log Miner是Oracle自Oracle 8i以后推出的一个可以分析数据库redo log和archivelog内容的工具,可以通过日志分析所有对数据库的DDL和DML操作,也可以分析出操作的时间与操作时的SCN和进行操作的机器,对于DML操作还可以查询出还原操作的sql。
沃趣科技
2018/10/31
8230
Log Miner 挖挖挖
相关推荐
Oracle Recovery 02 - 常规恢复之不完全恢复
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档