innobackupex介绍与使用
innobackupex封装了xtrabackup和tar4ibd,其中tar4ibd提供一个接口去备份服务器上的全部数据1 全备1.1 backup 简单例子:$ innobackupex --user=root --password=oracle /home/mysql/backup/base/全备时有2个比较有意思的参数--no-timestamp:自定义备份的名字--defaults-file:读取想要的my.cnf1.2 prepare备份后的数据直接拿去恢复是件高风险的事,因为这里面可能会有未提交的事务待回滚以及已提交的事务待重演
Nginx初探之安装
本文介绍的环境是RHEL-5.7因为很多预先编译好的安装包都比较陈旧,多数情况下推荐直接从源码编译安装编译Nginx要求如下:① GCC编译器以及相关工具:yum -y install gcc gcc-c++ autoconf automake②模块依赖性:Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库:yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel注释:1)pcre(pe
xtrabackup 增量备份和部分备份
㈠ 增量备份原理:① 首先进行0级备份,记录此时LSN② 当进行1级备份时,比较表空间中每个页的LSN是否大于0级备份的LSN,如果是,则备份该页,并记录当前的LSN0级备份完,xtrabackup会在备份保存点下的xtrabackup_checkpoints文件里记录一个to_lsn值,该值是备份结束后全库的LSN下面是0级备份的一个简单例子:$ xtrabackup --backup --target-dir=/home/mysql/backup到/home/mysql/backup目录下查看xtrabacku
MySQL SQL Tuning:Profile定位单条QUERY性能瓶颈
当生了病的query来就诊时,如果身为医生的我们"胡庸医乱用虎狼药"不仅于事无补,还浪费了大量的人力和时间成本,甚至会拖垮服务器所以,我们在接受优化一条SQL,第一件事情便是要明白query病在哪里?是IO?是CPU?只有明白瓶颈在哪里,方可对症下药,也才能药到病除而MySQL QUERY Profiler是一个使用非常方便的QUERY诊断工具,5.0引入。5.1GA版嵌入这个工具详细呈现了SQL
MySQL SQL Tuning:深入理解Order By
在MySQL中ORDER BY按先后顺序有2种实现方式,先走索引无排序,如果不行,则用FILESORT走索引无排序需要满足2个条件:①排序字段和执行计划中所利用INDEX的索引键(或前面几个索引键)完全一致②表访问方式为index、ref或range [注释:explain输出中的Type可看出]最快的排序就是不去排序,这也证明,索引的另一个非常重要的优势:索引能够降低排序成本,而排序涉及到的资源有CPU和内
Python sh库学习 上篇
官方文档有句话"allows you to call any program",并且:helps you write shell scripts in Python by giving you the good features of Bash第一句话助你在Python中轻松调用自己的程序,第二句则给你机会和Shell这种土豪交朋友㈠ 调用系统的程序>>> import sh >>> print(sh.ls(\'/home/mysql\')) cdio_bak.sql mysql-5.5.16.tar.gz mm percona-xtrabackup-2.1.4-656-Linux-i686.tar.gz mysql percona-xtrabackup-2.1.4-Linux-i686 mysq
Linux OOM-killer
前天线上出了个502错误,经排查是某开发人员写了条性感的程序吃掉了大部分内存,触发OOM-killer杀死Nginx查看日志/var/log/messages发现类似"Out of Memory: Kill process..."错误以前不了解OOM-killer{out of memory killer },今天碰巧放假一天,借此学习下,涨涨姿势!OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味在kernel 2.6,内存不足将唤醒oom
浅析MySQL 表锁
因为MySQL独树一帜的存储引擎架构,导致MySQL可在2个地方实现锁机制:Server层和存储引擎层存储引擎层可通过接受Server层传递来的锁类型而自行决定该如何给数据上锁表锁是在Server层实现的锁定机制,MyISAM并没有自己实现,则是完全使用Server层传递来的表锁表锁优点是附加成本低,缺点是可支持的并发度非常之小现阶段MySQL公认的2个经典版本是5.1和5.5,然而5.5引入元数据锁,
用SHELL与列表处理了件尴尬事
与列表语法command-1 && command-2 && command-3 && command-4 && ...command-n每个命令都返回真,将依次执行下去,当某个命令返回假,则命令链就会断掉最后一个为假,将会是最后一条被执行的命令今天因为这个事知识盲点,发生了件丢人的事情公司测试机在机房机架上,我远程ssh 上去,修改了网络配置为静态获取然后打算重启eth0 让其生效:ifdown eth0,结果挂住了
Linux ulimit和动态修改MySQL最大线程数限制
ulimit是限制进程对资源的使用,根据摩尔定律,高配的硬件现下也差不多白菜价但软件资源限制变化不大,特别是process/file,分别对应nproc和nofilenproc可用 ulimit -u 查询;nofile可用 ulimit -n 查询 这里提一点,自内核2.6.32之后,引入/etc/security/limits.d/90-nproc.conf这就意味/etc/security/limits.d/里面的文件的配置会覆盖/etc/security/limits.conf的配置大都数软硬限制的配置文件都位于:/etc/securi
介绍几篇很有意思的计算机科普文章
这些文章都来自网络,本人有幸拜读,独乐乐不如众乐乐如果您也有收藏计算机的科普性\'趣文\',欢迎跟帖,收录、共享!进程与线程的一个简单解释点击悦读怎样用三句话向一个 8 岁小孩解释什么是数据库点击悦读趣文:计算机网络基本概念趣解点击悦读
安装MySQLdb-python时无法找到-lprobes_mysql处理一则
安装MySQLdb时,我已经做好了如下两点:1)配置好mysql_config 有两种方式可以做: ① 做个软连接,把mysql_config链接到/usr/local/bin下 ② 修改site.cfg配置,把里面的mysql_config指向$MYSQL_HOME/bin/mysql_config 2)配置动态链接库:把$MYSQL_HOME/mysql/lib写到/etc/ld.so.conf里面,然后ldconfig生成cache以为只欠东风的时候还是阴沟里翻了,执行:python setup.py install
cx_Oracle模块学习之绑定变量
有些时候我们需要和程序交互,此时需要绑定量下面两个例子简介在SELECT 和 DML 里面绑定变量的用法SELECT 里面的绑定变量[root@Ora10G py]# cat SelectBinding.py #!/bin/env python #coding=utf-8 #filename:execise binding in select #Author:DBA_WaterBin import cx_Oracle conn=cx_Oracle.connect(\'hr/hr@orcl\') cur=conn.cursor() dept_id=raw_input(\'\n please input department ID you want to search:\') dept_name=raw_input(\' please input department name you want to s
外键和锁
使用外键是需要付出代价的,也就是,即时检查,逐行进行,当然Oracle有个延时检查要求每次修改时都要对另外一张表多一次select操作,使用select lock in share mode方式意味着需要额外的锁,来确保该记录不会在事务未完成前被删除这将导致更多的锁等待,甚至是死锁,因为关联到其他表,死锁很难被爬出小测试Session_A: mysql> begin; Query OK, 0 rows affected (0.00 sec) **加了X锁 mysql>
cx_Oracle.DatabaseError: ORA-12170: TNS:Connect timeout occurred错误处理一则
今早想学习cx_Oracle模块,结果错误不期而遇>>> DBstr=\'hr/hr@orcl\' >>> conn=cx_Oracle.connect(DBstr) Traceback (most recent call last): File "<stdin>", line 1, in <module> cx_Oracle.DatabaseError: ORA-12170: TNS:Connect timeout occurredsqlnet.log报错如下:Fatal NI connect error 12170. VERSION INFORMATION: TNS for Linux: Version 10.2.0.1.0 - Production TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Produc
Oracle expdp 过滤和并行
写在前面的话:我们知道调用数据泵的方式可以有3种,在这里我绝对不会使用命令行而是首推脚本方式放弃命令行的理由大概有这些:① 操作系统对CLI字符数的限制② 令人痛恨的转义符③ 无法跨平台重用④ 官方文档到处鼓吹用脚本方式㈠ 过滤对象/数据篇 ⑴ 过滤对象 INCLUDE EXCLUDE和INCLUDE用法相同,这里就谈INCLUDE 语法 &nbs
MySQL Replication 常用SQL、应用、文件、流程、模式
无聊时写的,算给自己科普吧,毕竟内置的Replication是MySQL的骄傲㈠ SQL语句篇 管理主库部分 show master logs 列出主库二进制日志 show master status 列出当前主库二进制日志状态 show slave hosts 列出连接到主库的备库信息 show binlog events in \'log_name\' 列出二进
大文件跨网传输技巧
运维DBA跨网传输大文件就如同上茅厕下厨房一般无二 好的方法并非显而易见,且方法的优劣差异可能非常显著 常言道:蔬菜最后一公里价格翻一翻,即便不听常言 我们用迅雷下载常常驻足在99.9%,亦可窥见文件校验的昂贵 整个传输需要综合考量的因素颇多,这里我仅拿是否压缩来写
谈谈我对认证培训的观点:书评<RHCSA/RHCE Red Hat Linux认证学习指南(第六版)>
这话题比较大、暂时无法谈培训机构;培训讲师;培训课程;培训时间;培训效益....就拿培训的方向来聊两句吧、新约有句话:那在黑暗中行走的,不知往何处去培训的教材和培训书籍是走培训的人不怕迷失方向的保证、只要朝着这个方向努力学、一切都会变得得心应手不过令人可惜的是这些教材和书籍都被默默搁置不理、培训生都乐意誓死效忠培训讲师并且乐此不疲这被大
MySQL 优化Limit分页
很多时候、我们需要选择出从指定位置开始的指定行数、此时、limit笑了 对于limit的定义是: limit x,y 表示从第x行开始选择y条记录 在业务需要分页操作的时候、我们通常采用limit+order by这对洗剪吹组合、高端洋气上档次 然而、当翻到非常靠后的页面时、MySQL需要花费大量的时