开发这群小可爱!我TM****************
我心里不知道是第几次在心里骂出这句话了,看着数据泵的导入日志 ORA-00959: tablespace '表空间名' does not exist,赶紧先在服务器干掉了导入的数据泵进程
ps -ef | grep ora_dm
kill -9 数字
然后又删除了导入的这个用户
drop user 用户名 cascade;
接着去源库调查这个用户的对象究竟都在哪些表空间里
首先检查这个用户的表空间和默认表空间
select username,account_status,default_tablespace,temporary_tablespace from dba_users where username='用户名';
用户名 表空间A 临时表空间
接着观察这个用户的对象都放在哪些表空间里了
select distinct tablespace_name from dba_segments where owner = '用户名';
表空间A
表空间B
表空间C
表空间D
真是牛逼吼!一个用户用四个表空间,我再看看各个表空间都放的是什么。
select distinct tablespace_name,segment_type from dba_segments where owner = '用户名';
表空间B INDEX
表空间B TABLE
表空间A INDEX
表空间A LOBINDEX
表空间A LOBSEGMENT
表空间A TABLE
表空间C TABLE
表空间D INDEX
表空间D TABLE
可以的,有放表的,有放表和索引的,都用着
为什么这帮开发就不能把数据库对象放到它的默认表空间呢?非得到处放?就不能规矩点,给你们提供了方便之门,提供了最大权限,是让你们干这个的?
这个时候就需要扪心自问了
那你为什么提供最大权限?——因为他们老是形容不好自己的需求,一个个梳理太费时间
那为什么不整理一个他们需要权限的大概,然后统一赋予? —— 麻烦,还不如直接给Dba权限
那你给他们普及过数据库的这些事情吗?—— 普及过,说过几次,但是老是有人犯这个错误
有惩罚措施吗?—— 没人,我最多是给领导报告,没有权力去做惩罚的能力
那作为一个Dba,有什么办法能够解决这些问题 —— 导入前检查数据库用户的对象究竟是否存放多个表空间
有没有遇到过更严重的问题 —— 有,当时释放(删除)某个用户和它对应的表空间时,有业务反应他的应用没法使用了,发现是另一个用户的对象没有放到他的默认表空间,而是放到了这个删除的表空间里,导致了严重的事故。
这个时候你有两个方法从根源解决这些问题
1、从各个方面宣传(群里艾特、私下聊、发邮件等方式)去表示这个数据库乱放的这种形象会有很严重的后果,希望他们能提高自觉性。不要给你添乱。
2、从各个开发人员了解使用权限的情况,进行梳理,写成一个文档记录所有的赋权语句,包括监控用到的视图、开发用到的权限(索引、视图、存储工程等)、涉及到使用其他用户数据库对象、用户用到其他表空间的限制,并根据各个项目组来进行分配和优化,而不是单独的赋予Dba权限。
方法 | 区别 | 区别 | 区别 |
宣传后果 | 轻松(口述即可) | 自觉(个人素质) | 渐进(谁犯说谁) |
控制权限 | 麻烦(整理回收) | 控制(强制管理) | 根治(谁说吊谁) |
很显然,从麻烦程度、工作内容、得罪情况来说,我个人非常非常非常想选第一项。谁愿意给自己找活啊,活干多了,领导还不一定念我的好呢,就让这帮开发靠自觉去吧,我解决问题还能推到他们头上,还显得我有水平。
但是这个时候要是换个地位、换个工作、换个思路呢?
领导:为什么大家都不关注报警的邮件?没有及时处理
领导:为什么大家都不主动关注群里的问题?没有及时处理
领导:为什么大家都不主动推进问题的解决?没有及时处理
大家一定要提高自己的积极性啊!不要什么事情都要我催着!
这个时候血压是不是就升起来了?所以一下子就回到了我这个题干,打工人的工作究竟是靠技术督促还是靠积极性完成?
这个时候我个人觉得,你要是继续提积极性是不是就有点烦人了?平常工作都干不完,我还去主动解决其他的问题?
忙起来谁能注意邮件?
忙起来谁能注意那么多群里没有艾特我的问题?
问题卡死了自有别人着急,反正我都说过了,对不?
这个时候我们运维和开发有了共同的敌人——领导,有了共同的话题——工作,有了同样的心情——愤怒。
所以我要说,靠言语激发积极性是最低效率的手段也是最懒惰的办法。
这个时候我要说,从运维人的角度,我们要去主动控制开发的权限、我们要让邮件以更显眼的方式来提醒我们、群里的同事要知道运维组各个人的负责内容,问题推进要通过邮件的方式沟通
工作 | 权限 | 报警 | 群里提问 | 问题推进 |
| 办法 | 以最小化的方式控制角色和权限 | 打工人的互相提醒(数据库报警-服务器报警-应用报警) 抓取邮件内容推送到微信群(Python或者go语言) | 获得群管理,发布进群通知 做个推广PPT(这两个好像都不是技术手段) | 邮件沟通 禁止私聊 |
以上是我比较想当然的想法,但是还是那句话,比纯粹靠积极性这种想法还是好太多了。我们需要的是行之有效的技术手段,而不是假大空的思想境界。
在文章的最后,想问问墨友们,以上的四种情况,大家有没有遇到过?有没有更好的办法帮助我这个打工人?




