MySQL备份恢复第二篇
MySQL中的数据恢复功能相比Oracle来说还是要单薄一些,而Oracle中的数据恢复相对来说自动化的程度要高一些。不过Mysql的二进制日志提供的信息很丰富,而日志信息在Oracle中式完全屏蔽的,对于数据的恢复可能MySQL也很灵活。我们来模拟一下通过完整备份+增量备份(binlog)的方式来恢复。首先我们来选择一个表new_test作为恢...
MySQL和Oracle对比之存储过程
昨天晚上帮一个朋友处理了一个关于存储过程的问题,他需要迁移一些Oracle中的存储过程到MySQL中来,但是改了一部分的程序,发现MySQL中没法编译了,报了很多的错误。这个问题也比较典型,自己就趁热打铁总结了一下。因为隐私的关系还有代码长度的关系,我就不罗列代码了。假设Oracle中的存储过程如下,我们需要改写为MyS...
DTCC2015归来随感
DTCC大会风风火火地开了三天,自己也跟上大学找教室一样,一会楼上一会楼下地赶场子去听。限于好多专场同时进行,自己只能从中选择几场来停,没法听到大多数的场次,有些遗憾啊。 这次大会汇集了各方高手,年长的,年轻的都齐坐一堂,在第一天的晚宴上谈笑风生,很是高兴,技术圈的事情就是这么简...
由sqlplus中的一个小细节所做的折腾
sqlplus是Oracle DBA每天都要用到烂的工具了。如果没有sqlplus还真不知道怎么和oracle对话了。转念一想,自己已经很久没使用过toad了。我们知道在sqlplus登录的时候我们可以定义一些通用的设置,在每次登录sqlplus的时候都可以生效。$ORACLE_HOME/sqlplus/admin/gloin.sql的内容是下面的形式,---- Copyright (c) 1988,...
Linux下配置MySQL主从复制
MySQL的主从复制是自己一直想学习的一个实战经历,因为Oracle中的主从复制也是需要不少的配置选项,相比来说感觉重量级一些(数据量也重量级).今天试了一下,在本地的一台Linux虚拟机上简单模拟了一把,发现还是蛮有趣的。因为也是外行,所以为了快速达到效果,自己看了一个很早的视频,结果实际操作的时候,有好几个配置参...
通过shell脚本来统计段大小
今天到公司之后,就收到客户的邮件,他们提供了一个列表,希望我们能够们配合提供一份比较详细的报告,得到某个表在生产环境中所占的空间大小,他们需要根据这些信息来分析一个需求做相应的处理,这个问题处理起来还是很容易的,感觉分分钟搞定,但是自己去查看的时候,发现还是要考虑一些细节,比如这个表如果是分区表,s...
通过shell脚本查看数据库表空间使用情况
对于数据库中表空间查看,想必大家都有很多的脚本已经在用了,自己也啰嗦一下,分享一个通过shell脚本查看表空间使用情况的例子。脚本如下:sqlplus -s $DB_CONN_STR@$SH_DB_SID <<EOFset echo off heading on underline on;column inst_num heading "Inst Num" new_value inst_num format 999...
通过shell脚本同时监控多个数据库负载
在平时的工作中,需要管理的数据库还是很多的,因为远程和权限的关系,访问不了一些图形工具,有时候做检查的时候感觉都是一个串行的过程,这样检查针对性就不够强了,比如我们不知道在检查的这个时间范围内,数据库的负载是在什么范围内,如果有些库的负载极高,就需要格外注意,进行更有针对性的分析和检查,要不假设有20...
一条简单的sql语句运行15天的原因分析
在测试环境中,可能一个测试库中会有几十上百套环境在运行,一般DBA不会去主动干涉测试环境中的一些使用细节,可能问题都是开发测试来反馈给DBA采取做一个被动的处理。今天也算主动了一把,在测试环境中发下了一个大案。首先通过ash查看了下正在运行的session情况,可以很明显看到有几条sql语句竟然已经执行了15天,没错不...
crontab导致的频繁发送邮件的问题
今天下午的时候客户发邮件反馈说,对于某个环境中的文件系统监控和表空间使用情况的邮件收到的比较频繁,感觉是1个小时发送一次,完全可以3个小时发送一次,接到这个问题后,最直接的联想就是使用crontab。结果登录到服务器端之后查看,得到的结果如下:> crontab -l# Minute Hour Month &nbs...
关于技术分享的一点感悟
想想自大学以来接触的开发语言也不少了,开始启蒙的pascal,到后面的c,c++,c#,java,jsp,一直到了后面的各种J2EE框架,在平时也学习了oracle,mysql,mongo,都是略知皮毛,听起来是很丰富的样子。但是实际看来让自己能够踏踏实实怕胸脯说熟练精通的几乎没有。现在Oracle算不上精通,但是还是比较熟悉了,自己在开始工作的时候...
浅谈事务(一)
关于事务,在Oracle中似乎是习以为常的,但是在学习MySQL的过程中,发现各种灵活的存储引擎,一个很大的焦点就是对于事务的支持,足以看出事务的实现还是有一定难度的,自己在学习数据库理论和Oracle的时候,对于事务的特性也都是一笔带过,ACID似乎就是书本中的概念和术语,感觉太偏向理论了,但是今天在学习看书中,也借...
关于MySQL学习大纲
前段时间很荣幸通过了YEP(Young Expert Program)的审核,成为了其中的一员,当时的一个福利就是赠送一张考试券(人民币价值在1000元左右),可以参加除了OCM考试之外的所有考试。这个条件确实很诱人,只要你有一定的积累再加上自信就可以,感兴趣可以试一试。可以参考下面的项目介绍http://www.oracle.com/technetwork/cn/...
深度解析dba_segments和sys.seg$中的细节差异(下)
继续昨天的内容 http://blog.itpub.net/23718752/viewspace-1624762/我们已经根据dba_segments和sys.seg$的不同发现最后的差距有2T左右,已经定位到了dba_segments的一些细节信息,可以发现其实还是一个层级的调用关系。我们把SYS_DBA_SEGS是一个处于中间层的角色,它的定义是3个union all,可以从定义中看到,差别...
深度解析dba_segments和sys.seg$中的细节差异(上)
今天在查看系统空间使用情况的时候,发现一个细节的问题,自己死磕了一把,还是发现了不少有价值的东西。事情的起因是我在使用脚本在某个环境中查看每个用户所占有的空间的时候,如果发现有些临时用户占用的空间过大,就需要协调开发去做一些清理,但是这次用户占用的空间表空间使用情况有很大的差异。查看用户占用空间的...
关于大数据和数据库的讨论
前几天上了水木社区,发现还是有大牛的,看了关于大数据和数据库的讨论,发现还是蛮有意思的,限于篇幅和版面,我做了部分的整理。先看看这位人士的分析,对于行业的现状还是很有了解,不是大学教授就是行业先锋。#####################################大数据是一种方案,而不是一种模型。方案有方案的压力, 只...
通过Oracle来辅助MySQL数据问题的恢复
今天琢磨一个问题,在平时的工作中如果碰到一些不规范的操作,drop,truncate,delete,恢复起来还是很困难的,drop操作在oracle中如果开启了recycle bin还是基本安全的,delete操作可以借助flashback delete操作,可能有些更细微的操作update,insert等等操作导致了问题,需要做数据修复的时候,这个时候可以使用flashback q...
MySQL OCP考试记
自从有幸参加了Oracle Young Expert项目之后,按照组织福利,送了一张券可以参加Oracle的任一考试(OCM考试除外),考试券价值在1000元人民币,还算是比较实惠的,最后选择了MySQL的考试想挑战一下,终于在今天侥幸通过后,可以稍作放松,准备好好复习整理一下,不能让考试认证成为paper认证。考完之后...
关于收缩数据文件的尝试
在数据库中对于数据文件都是提前规划,不够就加的情况,很少会留意到其实有些数据文件那么大,其实条件允许也是可以收缩收缩的。这种情况在本地测试环境中尤为突出,本来就用虚拟机跑个数据库,硬盘空间就够紧张,几十M几百M都是空间,都得“兆兆”计较。今天在做dataguard的练习的时候,发现主库中的数据文件有些大,差...
关于统计信息过期的性能落差
今天客户反馈某一个应用部署补丁的时候,执行了一个脚本一个多小时还没有执行完。语句是下面这样的形式。insert into em1_rater_00068_01 (select * from em1_rater_00050_01_backup a where a.record_id