当前位置: 首页 > article >正文

一.Oracle每日运维操作

目录

一.Oreace每日运维操作

1.1、确认所有的INSTANCE状态正常

1.2、检查文件系统的使用(剩余空间)

1.3 lwh暗码,,、检查日志文件和trace文件记录

1.4 lwh、检查数据库当日备份的有效性。

1.5、检查数据文件的状态

1.6、检查表空间的使用情况

1.7、检查剩余表空间

1.8、监控数据库性能(重点)

1.9、检查数据库系统性能(重点)

1.10、日常出现问题的处理。

1.11 检查数据库连接池状态

   解释 

   操作步骤 

1.12 监控数据库锁

   解释 

   操作步骤   

1.14 更新统计信息

   解释 

   操作步骤 


1.1、确认所有的INSTANCE状态正常

登陆到所有数据库或例程,检测ORACLE后台进程:

$ps –ef|grep ora

1.2、检查文件系统的使用(剩余空间)

如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。

#df –k

1.3 lwh暗码,,、检查日志文件和trace文件记录

检查相关的日志文件和trace文件中是否存在错误。

A、连接到每个需管理的系统

使用’telnet’命令

B、对每个数据库,进入到数据库的bdump目录,unix系统中BDUMP目录通常是$ORACLE_BASE/<SID>/bdump

#$ORACLE_BASE/<SID>/bdump

C、使用 Unix ‘tail’命令来查看alert_<SID>.log文件

#tail $ORACLE_BASE/<SID>/bdump/alert_<SID>.log

D、如果发现任何新的ORA- 错误,记录并解决

1.4 lwh、检查数据库当日备份的有效性。

对RMAN备份方式:

1.5、检查数据文件的状态

检查所有数据文件并记录状态不是“online”的数据文件,并做恢复。

Sqlplus> Select file_name from dba_data_files where status=’OFFLINE’

1.6、检查表空间的使用情况

SELECT tablespace_name, max_m, count_blocks free_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free  FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name), ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name

1.7、检查剩余表空间

SELECT tablespace_name, sum ( blocks ) as free_blk ,

trunc ( sum ( bytes ) /(1024*1024) ) as free_m,

max ( bytes ) / (1024) as big_chunk_k,

count (*) as num_chunks FROM dba_free_space GROUP BY tablespace_name;

1.8、监控数据库性能(重点)

运行bstat/estat生成系统报告或者使用statspack收集统计数据

1.9、检查数据库系统性能(重点)

主要检查并记录数据库系统的cpu使用率、pagespaces、IO、buffer命中率等等,可以使用topas、vmstat、iostat、glance、top等命令

1.10、日常出现问题的处理。

1.11 检查数据库连接池状态

   解释 

数据库连接池用于管理数据库连接的复用和管理。确保连接池的使用情况正常非常重要,因为连接泄漏或连接耗尽会导致应用程序性能下降或崩溃。

   操作步骤 

1.    监控连接池的使用情况 

    检查当前连接数、活动连接数、空闲连接数等。

    使用连接池管理工具或数据库监控工具进行监控。

2.    配置警报 

    设置阈值,当连接数达到一定数量时触发警报。

   示例   (以 HikariCP 连接池为例):

 HikariDataSource dataSource = new HikariDataSource();

dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");

dataSource.setUsername("user");

dataSource.setPassword("password");

dataSource.setMaximumPoolSize(10);

// 监控连接池状态

System.out.println("Total connections: " + dataSource.getHikariPoolMXBean().getTotalConnections());

System.out.println("Active connections: " + dataSource.getHikariPoolMXBean().getActiveConnections());

System.out.println("Idle connections: " + dataSource.getHikariPoolMXBean().getIdleConnections());

1.12 监控数据库锁

   解释 

长时间未释放的锁会导致数据库其他事务被阻塞,影响系统性能和稳定性。定期检查数据库锁的状态,确保没有死锁或长时间未释放的锁。

   操作步骤   

1.    查询当前锁状态 

    使用数据库管理工具或 SQL 查询查看当前锁状态。

2.    配置警报 

    当检测到长时间未释放的锁时,触发警报或自动处理。

   示例   (以 MySQL 为例):

查看当前锁信息

SHOW ENGINE INNODB STATUS;

查询正在等待的锁

SELECT * FROM information_schema.innodb_lock_waits;

查询持有锁的事务

SELECT * FROM information_schema.innodb_locks;

   1.13 检查数据一致性

   解释 

数据一致性检查用于确保数据库中的数据没有出现不一致或损坏的情况。这通常包括检查主键、外键约束、一致性校验等。

   操作步骤 

1.    执行一致性校验脚本 

    编写脚本或使用工具进行数据一致性检查。

2.    定期检查 

    设置定期任务,定期执行数据一致性检查。

   示例   (以 PostgreSQL 为例):

检查表中的主键是否唯一

SELECT id, COUNT(*)

FROM my_table

GROUP BY id

HAVING COUNT(*) > 1;

检查外键约束

SELECT *

FROM my_table t1

LEFT JOIN foreign_table t2 ON t1.foreign_key = t2.id

WHERE t2.id IS NULL;

1.14 更新统计信息

   解释 

数据库优化器依赖统计信息来生成高效的查询计划。定期更新统计信息可以确保优化器有最新的数据分布信息,从而提升查询性能。

   操作步骤 

1.    手动更新统计信息 

    使用数据库提供的命令手动更新统计信息。

2.    配置自动更新 

    配置数据库自动更新统计信息的策略。

   示例   (以 Oracle 为例):

手动更新统计信息

EXEC DBMS_STATS.GATHER_TABLE_STATS('SCHEMA_NAME', 'TABLE_NAME');

更新整个模式的统计信息

EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SCHEMA_NAME');


http://www.kler.cn/news/310095.html

相关文章:

  • bug | pycharm社区版无sciview解决办法
  • JVM 调优篇7 调优案例1-堆空间的优化解决
  • Holynix: v1
  • 基于SSM的在线家用电器销售系统
  • 【ARM】Trustzone和安全架构
  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi导致系统crash问题分析及解决方案
  • (娱乐)魔改浏览器-任务栏图标右上角加提示徽章
  • 线性链条件随机场(Linear Chain Conditional Random Field)-有监督学习方法、概率模型、生成模型、对数线性模型、参数化模型
  • 力扣(LeetCode)每日一题 1184. 公交站间的距离
  • 前后端分离Vue美容店会员信息管理系统o7grs
  • Java-使用反射来处理对象,并构建新的JSON数据结构
  • 换个手机IP地址是不是不一样?
  • spring boot admin集成,springboot2.x集成监控
  • .net core8 使用JWT鉴权(附当前源码)
  • Python 之数据库操作(Python Database Operations)
  • Linux(ubuntu)(c语言程序)
  • C++(C++的文件I/O)
  • nanoGPT用红楼梦数据从头训练babyGPT-12.32M实现任意问答
  • Redis 5.0.4 安装教程
  • NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万
  • PDF转图片的思路思考
  • Leetcode—环形链表||
  • 脚本基本规则
  • C++:日期类的实现
  • java 递归读取前10个匹配的文件所在的全路径
  • 松散绑定是什么?
  • 切换淘宝最新镜像源:优化NPM包管理的极致体验
  • windows C++ 并行编程-异步消息块(一)
  • 【系统架构设计师-2016年真题】案例分析-答案及详解
  • Java从入门到精通学习框架(三)