经典的运维脚本三步曲

无论是应用运维,还是数据库运维,均可以分为“人肉”-“自动化”-“智能化”阶段,其中自动化阶段,主要是将一些人做的操作,尤其是一些重复性操作,封装为程序,一方面避免重复性操作,另一方面提高执行效率。自动化实现的过程中,经常使用的,可能就是shell脚本了,前段时间,从一个微信公众号,学习了赵班长写的一篇小文,循序渐进的方式,介绍了shell运维脚本的编写,小脚本有大智慧,几十行代码,夹杂着系统设计...
阅读(115) 评论(0)

ORA-28002的一个细节

有一个库,由于设置了PASSWORD_LIFE_TIME,且到期未重置密码,账户被锁了,手工解锁后,登录发现报错ORA-28002,明明解锁了,为何还会报错?ORA-28002是一个很简单的错误号,oerr ora 2800228002, 00000, "the password will expire within %s days"// *Cause:   The user's account ...
阅读(82) 评论(0)

truncate表,会将统计信息清除么?

看见微信群有位朋友问:truncate表,会将统计信息清除么?有些朋友回复,数据字典信息都没有了,统计信息就清除了,所以是没有统计信息的。做个实验,跟踪一下truncate,应该比较清楚。我做了10g的测试,发现那个表的last_analyzed还是有记录的。truncate完统计信息还是在的,跟你10g还是11g没有关系,关键在你之前有没有收集统计信息,你之前都没有收集统计信息,last ana...
阅读(92) 评论(0)

一个关于Definer和Invoker的权限问题

前两天有位朋友,微信公众号提了一个问题,原文描述如下,1. 我的需求是在tag库中执行一个处理,使得tag中所有用户seq的nextval与src库中一致。2. 我在tag库的user1中创建了一个存储过程,代码逻辑为通过dblink(指向src库的user1,user1有读取dba视图的权限)查询源库的dba_sequence与tag库的对比,找出两库间nextval相差1000以上的,并在ta...
阅读(120) 评论(0)

MySQL远程访问权限的设置

今儿有位同事提出,一套MySQL 5.6的环境,从数据库服务器本地登录,一切正常,可是若从远程服务器访问,就会报错,ERROR 1045 (28000): Access denied for user 'bisal'@'x.x.x.x' (using password: YES)我才开始接触MySQL,因此每一个错误场景,都是增长经验的机会,这种错误要么是密码错误,要么是未设置远程IP访问权限。我...
阅读(128) 评论(0)

一个触发器需求的案例

有一位兄弟,问了一问题,用触发器实现一个功能,如果插入的字段AGE为空,则将此字段AGE的值置为0。以下是一版实现,SQL> create table t (id number, age number);Table created.SQL> CREATE OR REPLACE TRIGGER TR1  AFTER INSERT ON T  FOR EACH ROW  WHEN (NEW.AGE='...
阅读(66) 评论(0)

上周上线碰见的ORA-00054错误回放

上周应用上线,有一个数据库脚本,包含改字段长度等操作,执行过程中,现象就是有些改字段成功了,有些执行出错,报了ORA-00054的错误。了解一下原理,就能对这个错误,有比较深入的理解了。首先,我们模拟下报错过程,创建测试表,session 1执行update语句,但不提交,session 2执行alter table变更name字段长度,此时立即报错ORA-00054,SQL> create ta...
阅读(91) 评论(0)

MySQL系统运行状态实时监控(python版本)

昨天的文章,用shell写了一个简单的MySQL系统运行状态实时监控的模版,《MySQL系统运行状态实时监控(shell版本)》,对于这种操作,任何语言都可以完成,今儿就用python写一下,写的不优雅的地方,请各位指正。首先,为了让python能连接MySQL数据库,需要一些第三方的库,由于我用的是python 2.3版本,因此可以使用mysqldb,(若是python 3.x,则可以使用PyM...
阅读(102) 评论(0)

MySQL系统运行状态实时监控(shell版本)

开始接触MySQL,还是和Oracle有些不一样的地方,需要逐步积累和学习,其中有一点不同,就是Oracle有一些数据字典,可以显示系统运行状态,但需要使用SQL来检索,另外AWR会有一些运行状态信息,相比之下,MySQL提供了一些指令,直接执行就可以显示,看起来要更方便一些。MySQL要显示系统运行状态,可以有两种方法。方法一:登陆数据库,执行命令show global status,如下所示,...
阅读(102) 评论(0)

MySQL 5.6搭建主从复制

使用MySQL 5.6,搭建主从复制。关于5.6的安装,可以参考《MySQL 5.6 rpm安装方法和碰见的问题》。主库创建slave用户,设置复制权限,mysql> create user 'slave'@'1.1.1.2' identified by 'root';Query OK, 0 rows affected (0.00 sec)mysql> grant replication slav...
阅读(162) 评论(0)

DML错误日志表

前天写了篇文章《表中已存重复数据的情况,如何增加唯一性约束?》,提到了存在唯一约束前提下,重复数据的问题。很感谢建荣兄,他给我补充了两点,1. 冲突数据也可以考虑通过errorlog的方式,可以很快定位。2. 对于含有null的复合索引,mysql和oracle的结果完全不同。对于第二点,前同事曌哥,碰巧也说到了,MySQL下和Oracle的些许不同,这块我需要验证下,才能体会得更清楚些。对于第一...
阅读(199) 评论(0)

表中已存重复数据的情况,如何增加唯一性约束?

这周某系统上线,有一个需求就是,为一张表修改唯一性约束,原因就是之前发现,由于唯一性约束设置不当,导致业务处理出现异常。举例来说,如下测试表,原先唯一性约束是a和b俩字段,但发现实际业务中,a和b的组合是可能重复的,加上c字段才会是唯一,SQL> create table test(                                                       2  ...
阅读(119) 评论(0)

MySQL 5.6 rpm安装方法和碰见的问题

前几天尝试装了MySQL 5.7,《MySQL的rpm和源码两种安装操作》,用了rpm和源码编译两种方法,由于项目需要,这次使用MySQL 5.6版本,rpm安装方法,记录了一些安装过程的问题。1. 卸载机器上自带的MySQL包检索已安装组件,rpm -qa | grep mysqlmysql-libs-5.1.61-4.el6.x86_64卸载已安装组件,使用--nodeps则强制忽略依赖,rp...
阅读(916) 评论(0)

新员工培训环境准备中,碰见的两个ORA-600错误

下周要为新员工介绍Oracle数据库,为了让课程更接地气,准备了虚拟机环境,用于实验和练习,在此过程中出现了两个ORA-600的错误,偶然中又有必然,记录于此。操作过程:1. 我在MAC上创建完成虚拟机环境,未关闭虚拟机操作系统。2. 用移动硬盘,拷贝了次环境。3. DELL笔记本中打开VMWare,引用移动硬盘中的环境。首先提示了这个选项,我选择的是“我已移动该虚拟机”,两者区别:“我已移动该虚...
阅读(456) 评论(0)

json格式值班表解析

这几天因为一些特殊原因,网站值班表不能用,一旦出现问题,找相应系统的值班人员,就比较困难了,但通过一些渠道,可以有一个文本文件,其中包含了这几天的值班信息,为了更明白的说明问题,我们假设有A系统和B系统,两个值班,其中A系统值班人员为,每人值一天,B系统值班人员为,每人值一天,json格式的文件,准确的说,应该是json数组,如下所示,{    "dlist": [        {       ...
阅读(248) 评论(0)
352条 共24页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1155229次
    • 积分:13833
    • 等级:
    • 排名:第1011名
    • 原创:323篇
    • 转载:7篇
    • 译文:22篇
    • 评论:100条
    文章分类
    最新评论