前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库日常运维中的几个操作建议(r9笔记第33天)

数据库日常运维中的几个操作建议(r9笔记第33天)

作者头像
jeanron100
发布2018-03-19 16:48:45
6370
发布2018-03-19 16:48:45
举报
文章被收录于专栏:杨建荣的学习笔记

如果你去看其他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; 所以不要忽视这些看起来很简单的操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档