数据库日常运维中的几个操作建议

简介:     如果你去看其他DBA的操作的时候,如果要判断他们水平的高低,我想就是通过一些操作的差别来看了,而水平高低就体现于此。细节决定成败,越是看起来简单的操作越是要严谨,一丝不苟。
    如果你去看其他DBA的操作的时候,如果要判断他们水平的高低,我想就是通过一些操作的差别来看了,而水平高低就体现于此。细节决定成败,越是看起来简单的操作越是要严谨,一丝不苟。
我们来简单举几个例子,可以作为参考。有更多的见解欢迎大家提出来,我们来集思广益,把大家认为需要的,重要的操作都整理成可行的,实用的。
1.停止数据库
shutdown immediate应该是停止数据库的首先方案,而如果你选择shutdown abort的方式,先去面壁。
在删除数据库之前,你需要考虑哪些方面呢。
    首先你需要判断这是一个主库还是备库,
select database_role from v$database;
如果显示为Primary,那就一定要小心了。你是否确实要停这个库
    然后查看数据库的状态
select open_mode from v$database;
有RAED ONLY,READ WRITE,MOUNTED几种状态
    然后查看会话的使用情况
select username,count(*)from v$session group by username;
这个步骤是停止数据库必看,如果已经有会话一定要确认是否需要停止应用端,是否连接了正确的数据库。
明确了以上的基本条件,确认没有相关的会话,那就可以shutdown immediate了。

2.启动数据库
数据库启动中的问题较多,我只是简单给出几个概要步骤,如果你启动数据库是直接一条命令startup,也需要面壁
启动最起码是从nomount,mount,open这几个阶段一步一步来。尤其是哪些异常宕机的数据库,你的有些不经意的操作就会使得恢复从可能变为不可能。在此主要说计划内的数据库重启。
首先是startup nomount这个阶段启动之后,还是需要查看是否启用spfile,使用show parameter spfile来看,然后查看数据库日志,启动的过程中是否有一些异常,大页是否开启,是否有NUMA的报警,是否有memlock的报警。
alter database mount,数据库启动到这个阶段本身不难,但是这个阶段是一个分水岭,数据库还原恢复相关的操作都需要在这个阶段完成
所以我们需要查看v$recover_file是否数据文件状态都正常.
如果需要更多的恢复,这个阶段就要把握好了。
最后是alter database open阶段,数据库是否可用就在这个阶段了。可用使用select open_mode,database_role from v$database来查看.
计划外的场景要复杂的多,就不再赘述了。

3.杀掉会话
杀掉会话,整个世界就清净了。但是kill session这种操作还是有些建议。
首先我们得到的是一个基本的信息,session的sid,serial#信息,我们在kill  之前还是需要做一些简单的准备工作。
select paddr,username,osuser,machine from v$session where sid=xxx and serial#='xxxx';
得到了会话的基本信息之后,我们在数据库中关联进程得到系统的进程pid,主要适应输出的paddr字段。
然后关联v$process来得到对应的进程号。
select spid from v$process where addr='xxxxx'
如果确认需要kill  session,则有很大的余地,如果清理数据库层面的会话有一些较大的延迟,我们可以直接清理系统级进程,否则这个过程就会麻烦很多。

4.创建用户
如果有一天,接到了一个需求是创建一个用户,需要有查询表test_tab的权限即可。对于这个需求我们还是需要考虑很多的方面。
--查询表属主
select SYNONYM_NAME, TABLE_OWNER, TABLE_NAME from dba_synonyms where SYNONYM_NAME=upper(‘test_tab’);
--创建profile,限制访问的会话数
create profile app_smartpt_db_profile limit SESSIONS_PER_USER 5;  
--创建用户
create user app_smartpt_db identified by xxx;
alter user app_smartpt_db profile app_smartpt_db_profile;
--或
--create user app_smartpt_db identified by asdfwegweger profile app_smartpt_db_profile;

--授权,注意此处,多一点权限都不多给
grant create session to app_smartpt_db;
grant select on ACCSTAT.security_phone_apply to app_smartpt_db;

--创建同义词
create synonym app_smartpt_db.test_tab for ACCSTAT.test_tab;

所以不要忽视这些看起来很简单的操作。
目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
RDS MySQL 数据库运维简述
从运维的视角,汇总云数据库RDS MySQL使用的避坑指南。文章初版,维护更新,欢迎指点。
848 3
|
1月前
|
SQL 运维 监控
如何做数据库自动化运维
【5月更文挑战第5天】IT运维中的DBA面临诸多挑战,包括库表设计规范落地困难、SQL审核繁琐、数据提取需求频繁、资源管理和监控复杂。为解决这些问题,引入数据库自动化运维平台至关重要。该平台实现SQL审核自动化,确保语句规范和安全,支持数据提取的自助服务,强化元数据管理,提供一键资源部署,并进行全面的数据库监控。这样,DBA的角色转变为平台管理者,提高效率,规范化流程,减轻工作负担。
|
1月前
|
运维 Prometheus 监控
矢量数据库系统监控与运维:确保稳定运行的关键要素
【4月更文挑战第30天】本文探讨了确保矢量数据库系统稳定运行的监控与运维关键要素。监控方面,关注响应时间、吞吐量、资源利用率和错误率等指标,使用Prometheus等工具实时收集分析,并有效管理日志。运维上,强调备份恢复、性能调优、安全管理和自动化运维。关键成功因素包括建立全面监控体系、科学的运维策略、提升运维人员技能和团队协作。通过这些措施,可保障矢量数据库系统的稳定运行,支持业务发展。
|
1月前
|
缓存 运维 关系型数据库
运维角度浅谈MySQL数据库优化
运维角度浅谈MySQL数据库优化
|
9月前
|
SQL 关系型数据库 MySQL
开源数据库Mysql_DBA运维实战 (DCL/日志)
开源数据库Mysql_DBA运维实战 (DCL/日志)
|
9月前
|
运维 关系型数据库 MySQL
开源数据库Mysql_DBA运维实战 (修改root密码)
开源数据库Mysql_DBA运维实战 (修改root密码)
|
6月前
|
运维 关系型数据库 MySQL
阿里大牛的595页MySQL笔记,透彻即系数据库、架构与运维
数据库运维的变革,经历从手工造到脚本化、系统化、平台化、智能化的转变,逐步实现DBA对数据库的规范化、自动化、自助化、可视化、智能化、服务化管理,从而保障数据库的安全、稳定、高效运行。
|
6月前
|
SQL 运维 安全
让数据库运维审计安全无死角
是谁修改了我的数据,动了我那些数据? 什么时候操作的?都有那些资产被修改了? 登录和修改得到批准了吗?如何获取到这个权限账号的?
58 0
|
9月前
|
关系型数据库 MySQL Shell
数据库备份和Shell基础测试及AWK(运维)
数据库备份和Shell基础测试及AWK(运维)
|
9月前
|
SQL 缓存 关系型数据库
开源数据库Mysql_DBA运维实战 (总结)
开源数据库Mysql_DBA运维实战 (总结)