首页 > 其他分享 >超简单:必须要掌握的运维小妙招

超简单:必须要掌握的运维小妙招

时间:2024-04-11 23:22:05浏览次数:13  
标签:set name 掌握 0.0 MySQL alert 运维小妙 简单 Oracle

常言道:生产运维无小事!尤其针对黑屏操作,相信不少客户都有自己的血泪史。
比如操作系统rm命令误删掉了关键系统数据...
比如执行关库操作后才发现连错了数据库...

除了对生产要有敬畏之心,做关键操作之前反复多确认,多人复核,其实还可以借助一些小妙招来减少紧张和焦虑情绪。
我们给客户做hands-on实验演示时,也可以通过这些小妙招来加快演示速度,同时能让观众更清楚Demo环境。

  • Oracle的小妙招
  • MySQL的小妙招

Oracle的小妙招

sqlplus界面优化

默认情况下,sqlplus连接到数据库,并不会清楚显示必要信息,只有默认的SQL>
有经验的运维人员做关键操作时,比如关闭数据库,会习惯性的确认当前连接的数据库是否正确。
同时,建议设置glogin.sql文件,示例如下:

cd $ORACLE_HOME/sqlplus/admin/
vi glogin.sql

添加新内容如下:

define gname=idle
column global_name new_value gname
set heading off
set termout off
col global_name noprint
select upper (sys_context ('userenv', 'DATABASE_ROLE') || ' @' || sys_context('userenv', 'db_unique_name') || ' -> ' ||user||' @'|| sys_context ('userenv', 'con_name')) global_name from dual;
set sqlprompt '&gname> '
set heading on
set termout on
set lines 180 pages 100

关于连接信息的核心就是配置这一段,可根据你的需求做微调:

select upper (sys_context ('userenv', 'DATABASE_ROLE') || ' @' || sys_context('userenv', 'db_unique_name') || ' -> ' ||user||' @'|| sys_context ('userenv', 'con_name')) global_name from dual;

我这里就是想显示数据库角色(主/备)、数据库db_unique_name、当前连接用户和连接容器库名。

连接上就可以清楚的看到这些信息,效果如下:

[oracle@demo ~]$ p

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 11 07:55:08 2024
Version 19.21.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.21.0.0.0

PRIMARY @DB0913_9DF_IAD -> SYS @CDB$ROOT> 

[oracle@demo ~]$ s

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 11 07:55:17 2024
Version 19.21.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.21.0.0.0

PHYSICAL STANDBY @DB0913_DG -> SYS @CDB$ROOT> 

上面的p和s是简化后的别名,同时需要注意的是,glogin.sql其实也有一定的局限性,比如已经连接到会话之后,针对这个会话本身的操作,比如alter session set container这样的命令,就无法捕捉到容器的变化,因为glogin.sql只有在你发起新的连接才能触发,不过瑕不掩瑜,执行这样的操作之后如果想看到变化,就手工调用下glogin.sql就OK。

另外,我最后面特意写了一行set lines 180 pages 100,是想提醒如果大家的日常操作相对固定,可以把最常用的格式设置都放在这里,而不用平常不管查什么都大量去set和col了,真的一点儿都不酷。

别再狂找alert日志了

经常遇到现场的小伙伴在遇到问题时慌慌张张,一顿操作猛如虎,仔细一看就是在各种cd还没找到最关键的alert日志在哪里。而adrci工具也不是所有人都知道,况且有时候也会出现问题不可用。
最简单的技巧,就是设置个别名,日常把数据库的alert日志查清楚,写好别名,比如下面示例,针对主库和备库的alert都设置了别名:

[oracle@demo ~]$ which alert
alias alert='tail -200f /u01/app/oracle/diag/rdbms/db0913_9df_iad/DB0913/trace/alert_DB0913.log'
	/usr/bin/tail
[oracle@demo ~]$ which alertdg
alias alertdg='tail -200f /u01/app/oracle/diag/rdbms/db0913_dg/DB0913_DG/trace/alert_DB0913_DG.log'
	/usr/bin/tail

这样遇到问题就直接看最近错误,最近错误显示不到,也可以快速vi这个全路径做精细查找分析,非常方便。

MySQL的小妙招

类似的,MySQL也一样,如何优化mysql界面?
有没有类似Oracle的glogin.sql配置文件,不用那么麻烦,MySQL的设置更加简单,直接在你MySQL的my.cnf配置文件中的[mysql]下,添加这么一行:

prompt=\u@\h [\d] >

这样就可以看到关键的用户和所连接的数据库,效果如下:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2556678
Server version: 5.7.29-log Source distribution

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

alfred@localhost [demodb] >

此外,针对MySQL的错误日志和慢查询日志,也是可以做类似别名设置提示效率的。

Tips: 这些小妙招其实并没啥统一规范,有规划也是企业内部自己制定的规划,所以就当抛砖引玉吧,期望能给经常动手实践的同学带来些许帮助。

标签:set,name,掌握,0.0,MySQL,alert,运维小妙,简单,Oracle
From: https://www.cnblogs.com/jyzhao/p/18130241/chao-jian-dan-bi-xu-yao-zhang-wo-de-yun-wei-xiao

相关文章

  • 小学生简单四则运算
    小学生简单四则运算1.开发工具:WebStorm2.技术栈:vue3elementplusvitenpm3.实现功能:随机生成题目答案验证快捷键操作4.展示演示地址:https://easy-math-jc.vercel.app(需要魔法,没有国内域名)5.合作伙伴2252531......
  • 使用 EasyX 开发简单游戏
    飞机大战开发Contents游戏的框架流程如何实现复用和扩展游戏使用数据结构存储对象(工具)使用CMake快速编译多文件程序一些Tips游戏的框架流程游戏不同于一般的程序,用户输入资料,程序给出相应。我们玩的游戏大部分都具有如下两个特性:实时性游戏一般具有动......
  • 限制异步HTTP请求并发:简单、有效的20个并发下载控制策略
     概述:通过使用`SemaphoreSlim`,可以简单而有效地限制异步HTTP请求的并发量,确保在任何给定时间内不超过20个网页同时下载。`ParallelOptions`不适用于异步操作,但可考虑使用`Parallel.ForEach`,尽管在异步场景中谨慎使用。对于并发异步I/O操作的数量限制,可以使用SemaphoreSlim,......
  • sql注入漏洞简单讲解与实战
    SQL注入(SQLInjection)是一种常见的网络安全漏洞,攻击者利用该漏洞向应用程序的数据库发送恶意的SQL查询,从而绕过身份验证、获取敏感数据或者对数据库进行修改。SQL注入通常发生在与数据库交互的Web应用程序中,尤其是那些直接将用户输入拼接到SQL查询语句中的应用程序。攻击者利......
  • 腾讯云服务器月租费用查询及2024年优惠购买入口全掌握
    在探索云服务市场时,许多用户都对腾讯云服务器的价格颇为关注。那么,腾讯云服务器一个月究竟需要多少钱呢?其实,这取决于您选择的服务器配置和购买方案。在腾讯云【爆品专区】,有多种服务器配置可选,价格亲民。例如,腾讯云轻量2核2G3M服务器,一年仅需61元,折合一个月仅5.08元。如果您需......
  • C语言简单的数据结构:单链表的有关算法题(1)
    算法题重点在于思路,代码其实并不难,这里的每一题都提供多种思路,大家可以动手写一下,并找到更好的解题方法这里先介绍前三道题目:1.单链表相关经典算法OJ题1:移除链表元素2.单链表相关经典算法OJ题2:反转链表3.单链表相关经典算法OJ题4:链表的中间结点1.单链表相关经典算......
  • C语言简单的数据结构:单链表
    目录:1.单链表的概念及结构2.单链表的实现2.1单链表的定义、创建和打印2.11单链表的定义2.12单链表的创建2.13单链表的打印2.2单链表的头插和尾插2.21尾插2.22头插2.3单链表的头删和尾删2.31尾删2.31头删2.4单链表的查找2.5单链表指定位置的插入和删除2.51指定位置前......
  • 实况窗助力美团打造鸿蒙原生外卖新体验,用户可实时掌握外卖进展
    自2023年华为宣布全新HarmonyOSNEXT蓄势待发,鸿蒙原生应用全面启动以来,已有金融、旅行、社交等多个领域的企业和开发者陆续宣布加入鸿蒙生态。其中,美团作为国内头部的科技零售企业,是首批加入鸿蒙生态的伙伴,其下的美团外卖App基于HarmonyOSSDK高效展开了鸿蒙原生应用的开发,仅用6周......
  • 简单聊聊,聚合支付+分账系统体系的运用
    聚合支付分账体系的意义在哪里呢?前端可使用聚合支付通道来进行收款,后端为了资金的快速有效的分配,那么分账系统是比较好的选择,今天我们来着重讲讲分账系统。分账账户体系-自动分账,减少人工支出,降低二清风险!!!在数字化浪潮下第三方支付价值凸显,大大提升资金流与信息流流转效率,成......
  • 简单的网页登录页面
    实景图 代码1<!DOCTYPEhtml>2<html>3<head>4<metacharset="UTF-8">5<metacontent="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"name="viewport">......