自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zhu_Julian's Notes (朱显杰的技术博客)

技术沉思录,性能优化,架构设计,DBA感想

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 [Oracle] 搞懂Oracle字符集

基本概念字符集(Character set):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。常见的字符集有ASCII,ZHS16GB231280,ZHS16GBK等。字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其它的一个集合(如电脑编码

2013-06-24 10:18:27 6657 3

原创 [Oracle] SQL*Loader 详细使用教程(1)- 总览

SQL*Loader原理SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高。其示意图如下:控制文件:用于控制数据导入的行为方式的文件(最重要的文件)。参数文件(可选)数据文件:放置源数据的平面文件错误文件:在数据加载时,把无法正确加载的数据放入错

2013-06-23 10:03:04 9417 3

原创 [Hadoop] 实际应用场景之 - 百度

百度在2008年就开始使用Hadoop作为其离线数据分析平台,从Hadoop v0.18/0.19开始,300台机器,2个集群,现在的规模为2W台节点以上,最大集群接近4,000节点,每日处理数据20PB+,每日作业数120,000+Hadoop在百度主要用于如下场景:日志的存储和统计;网页数据的分析和挖掘;商业分析,如用户的行为和广告关注度等;在线数据的反馈,及时得到

2013-06-22 18:59:07 5479 2

原创 [Hadoop] 实际应用场景之 - 阿里

Hadoop在淘宝和支付宝的应用从09年开始,用于对海量数据的离线处理,例如对日志的分析,也涉及内容部分,结构化数据等。使用Hadoop主要基于可扩展性的考虑,规模从当初的3-4百节点增长到今天单一集群3000节点以上,2-3个集群,支付宝的集群规模也达700台,使用Hbase,个人消费记录,key-value型。阿里对Hadoop的源码做了如下修改:改进Namenode单点问题

2013-06-22 17:16:02 6576 1

原创 [Oracle] 分析AWR报告的方法

AWR的数据主要有两部分组成:1)保存在内存中的系统负载和性能统计数据,主要通过v$视图查询 ;2)mmon进程定期以快照(snapshot)的方式将内存中的AWR数据保存到SYSAUX表空间中,主要通过DBA_*视图访问。1. AWR快照的生成默认情况下,每隔一小时自动产生一个快照,保存最近7天的信息,可以通过以下语句查询:SQL>select SNA

2013-06-17 07:17:56 8145

原创 [Oracle] 在没有备份的情况下undo损坏怎么办?

如果Oracle在运行中很不幸遇到undo损坏,当然最好的方法是完全恢复,不过如果没有备份,可以采用一种非常规的手段(利用Oracle的隐藏参数),如果此时undo包含未提交的事务,会造成一点点的数据丢失(一般都是可忍受的),如果没有未提交的事务,则不会有数据丢失。其主要步骤有:1. 修改undo表空间管理为手动;2. 设置隐藏参数(_offline_rollback_segmen

2013-06-16 22:07:18 4133

原创 [Oracle] 获取执行计划的几种方法

1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中。首先,在你要执行的SQL语句前加explain plan for,此时将生成的执行计划存储到计划表中,语句如下:explain plan for SQL语句然后,在计划表中查询刚刚生成的执行计划,语句如下:s

2013-06-14 20:41:28 4729

原创 [Oracle] RAC 之 - 负载均衡

负载均衡是指把负载平均分配到集群中的各个节点,从而提高整体性能。Oracle RAC提供两种方式实现负载均衡,第一种是纯技术手段,即在用户连接时,根据系统当前的负载情况决定由哪个节点处理用户请求;第二种是面向业务,人为的把应用切分成很多service,通过某个service过来的连接请求都由某个节点处理。下面来具体看看这两种手段:纯技术手段 (面向连接的负载均衡)1. 客户

2013-06-14 14:57:48 3724

原创 [Oracle] RAC 之 - HA

RAC的HA是它的一大卖点,Oracle也常那它来宣传,但实际上,RAC称不上真正的HA,因为它是share-disk的架构,只能做到实例级的HA。RAC实例级HA的技术基础是Failover,它是指集群中任何一个节点的故障都不会影响用户的正常使用,之前连接在故障节点上的用户会被自动转移到健康节点,这样的切换对用户来说是透明的。RAC的Failover可以细分为以下3种:1)Client-

2013-06-14 14:23:33 3550

原创 [Oracle] Data Guard 系列(3) - 日志应用

上一篇文章《Data Guard 之 Redo传输》,本文将介绍Redo应用。物理Standby和逻辑StandbyLog应用服务分为两种,一种是物理Standby的Redo应用,类似于介质恢复,它的优点是速度快,但10g情况下Standby必须处于mount状态,无法为Primary分担部分读负载(11g下物理Standby可以在open的情况下应用redo)。还有一种是

2013-06-14 08:27:30 4416

原创 [Oracle] Data Guard 系列(2) - 日志传输

Oracle Data Guard从宏观上来说,主要提供以下两个服务:1)日志传输:主库把生成的Redo日志传输至备库;2)日志应用:备库应用从主库传输过来的Redo日志。本文先介绍其中的日志传输服务,日志应用服务在下节《Data Guard 系列(3) - 日志应用》介绍。1. 日志传输方式有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程

2013-06-14 08:13:49 5922

原创 [Oracle] Data Guard 系列(6) - 角色转换

Data Guard主从库之间的角色切换分为以下两种:1)SwitchoverSwithchover通常都是人为的有计划的进行角色互换,比如升级等。它通常都是无损的,即不会有数据丢失。其执行主要分为两个阶段:Primary转为StandbyStandby(之一)转为Primary2)FailoverFailover是指由于Primary故障无法短时间恢复,Standby

2013-06-14 07:25:44 3410

原创 [Oracle] Data Guard 系列(4) - 在不停主库的情况下创建物理备库

实验环境Primary:主机: jabdw1241SID: O01DMS0DB_UNIQUE_NAME: O01DMS0Standby:主机: jabdw1242SID: O01DMS0DB_UNIQUE_NAME: O01DMS0DR1. Primary的配置和操作1) 确认primary处于归档模式PRIMARY>archive log list

2013-06-13 22:45:59 5291

原创 [Oracle] Data Guard 系列(1) - 三种保护模式

Data Guard提供如下三种数据保护模式:1)最高保护模式(Maximum Protection)这里的”最大保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和primary保持实时同步,但这样做的代价很大,即当一个事务提交时,不但要写到primary段的online redo log,还有写到至少一个standby的standby redo log。这样会有

2013-06-13 22:27:22 5067

原创 [MySQL] 索引与性能(1)- 索引类型

B+树是一种经典的数据结构,由平衡树和二叉查找树结合产生,它是为磁盘或其它直接存取辅助设备而设计的一种平衡查找树,在B+树中,所有的记录节点都是按键值大小顺序存放在同一层的叶节点中,叶节点间用指针相连,构成双向循环链表,非叶节点(根节点、枝节点)只存放键值,不存放实际数据。下面看一个2层B+树的例子:保持树平衡主要是为了提高查询性能,但为了维护树的平衡,成本也是巨大的,当有数据插入或删

2013-06-13 12:24:42 5232 5

原创 [Oracle] 探讨分区(3) - 分区与性能

在实际工作中,常听到初学者说:“大表分区肯定可以提高查询性能”。其实不然,在你完全不了解应用的情况下,盲目的建立分区不但不能够提高查询性能,还有可能导致查询性能下降。因此,在决定是否使用分区之前,必须了解当前的应用环境。大体上来说,数据库的应用分为两种:OLTP和OLAP。OLTP是指在线事务处理,比如淘宝的购物网站等;OLAP是指在线分析系统,如数据仓库、数据集市等。实际应用中,也有

2013-06-13 09:22:00 3171

原创 [MySQL] InnoDB行格式剖析

InnoDB和大多数行式数据库一样,记录以行的格式存储,它提供了两种格式:Compact和RedundantCompactCompact格式是在MySQL5.0时才被引入,它是新的行格式,其设计目标是高效存放数据,示意图如下:1)变长字段长度列表。按列的逆序放置,当列长度小于255字节,用1字节表示,若大于255字节,用2个字节表示,至多为2字节(这也很

2013-06-13 08:41:26 5427

原创 [MySQL] InnoDB逻辑存储结构

InnoDB存储引擎中的表非常像Oracle中的索引组织表,每张表必须得有主键,如果表在创建时没有显示定义主键,则根据以下原则自动创建主键:1)如果有非空的唯一索引,则该索引所在的列为主键;2)如果不符合上述条件,自动创建一个6个字节的指针为主键。InnoDB存储引擎的逻辑存储结构和Oracle几乎一样,从大到小分别为:表空间、段、区、页,它们的关系如下图所示:

2013-06-12 23:08:16 5962

原创 [MySQL] InnoDB表空间及日志文件

MySQL一个显著的特点是其可插拔的存储引擎,因此MySQL文件分为两种,一种是和MySQL数据库本身相关的文件,一种是和存储引擎相关的文件。本文主要介绍和InnoDB存储引擎相关的文件。表空间文件InnoDB在存储上也模仿了Oracle的设计,数据按表空间进行存储,但是和Oracle不一样的是,Oracle的表空间是个逻辑的概念,而InnoDB的表空间是个物理的概念。你可以通

2013-06-12 14:11:22 7753 6

原创 [MySQL] 日志文件概述

这里介绍的日志文件都是MySQL数据库本身的文件,和具体用什么存储引擎无关。错误日志MySQL的错误日志类似于Oracle的alert.log,默认情况下以.err结尾,DBA在遇到问题时,首先应该查询该日志获得错误信息。查询日志查询日志记录了所有的数据库请求,即时这些请求没有得到正确的执行。慢查询日志慢查询日志用于记录运行时间比较长的SQL语句,可

2013-06-12 11:54:50 3037

原创 [MySQL] InnoDB三大特性之 - 自适应哈希索引

哈希索引是一种非常快的等值查找方法(注意:必须是等值,哈希索引对非等值查找方法无能为力),它查找的时间复杂度为常量,InnoDB采用自适用哈希索引技术,它会实时监控表上索引的使用情况,如果认为建立哈希索引可以提高查询效率,则自动在内存中的“自适应哈希索引缓冲区”(详见《MySQL - 浅谈InnoDB体系架构》中内存构造)建立哈希索引。之所以该技术称为“自适应”是因为完全由InnoDB自己决定

2013-06-12 08:37:56 9276 2

原创 [MySQL] InnoDB三大特性之 - 两次写

今天我们来介绍InnoDB存储引擎的第二个特性 - 两次写(doublewrite),如果说插入缓冲是为了提高写性能的话,那么两次写是为了提高可靠性,牺牲了一点点写性能。部分写失效想象这么一个场景,当数据库正在从内存向磁盘写一个数据页时,数据库宕机,从而导致这个页只写了部分数据,这就是部分写失效,它会导致数据丢失。这时是无法通过重做日志恢复的,因为重做日志记录的是对页的物理修改,如

2013-06-12 08:16:17 9600 5

原创 [MySQL] InnoDB三大特性之 - 插入缓冲

InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲、两次写和自适应哈希,本篇文章先介绍第一个特性 - 插入缓冲(insert buffer)在上一篇《MySQL - 浅谈InnoDB存储引擎》中,我们可以看到在InnoDB的内存中有单独一块叫“插入缓冲”的区域,下面我们详细来介绍它。非聚集索引写性能问题为了阐述非聚集索引写性能问题,我们先来看一个例子:m

2013-06-11 22:22:26 10881 3

原创 [MySQL] 浅谈InnoDB存储引擎

InnoDB是事务安全的存储引擎,设计上借鉴了很多Oracle的架构思想,一般而言,在OLTP应用中,InnoDB应该作为核心应用表的首先存储引擎。InnoDB是由第三方的Innobase Oy公司开发,现已被Oracle收购,创始人是Heikki Tuuri,芬兰赫尔辛基人,和著名的Linux创始人Linus是校友。InnoDB体系架构上面是InnoDB的一个简图,简单来

2013-06-11 12:17:57 6414 1

原创 [MySQL] 主流存储引擎介绍

在上一篇关于《MySQL体系架构》的文章里提到MySQL最大的特色是其可插拔的插件式存储引擎,这篇文章将对比几个主流的存储引擎。这里要特别提一点,由于MySQL是开源的,所以如果你对某些存储引擎不满意,可以修改或写一个存储引擎,增加自己想要的特性,这也是MySQL作为开源数据库的优势之一。下表显示了各种存储引擎的特性:其中最常见的两种存储引擎是MyISAM和InnoDB刚接触M

2013-06-11 09:36:33 3350

原创 [MySQL] 概述

做DBA三年多,接触过很多主流数据库产品,但唯独没机会碰触MySQL,今天开始决定自学MySQL,给自己冲冲电,先从MySQL的体系架构开始学起。MySQL数据库的体系架构如下图所示:从上图中可以看出,MySQL主要分为以下几个组件:连接池组件管理服务和工具组件SQL接口组件分析器组件优化器组件缓冲组件插件式存储引擎物理文件有其它数据库基础的人可以马上发现,MySQ

2013-06-11 08:16:05 3610 4

转载 [IT名人堂] 冯大辉的这十五年:一个非典型程序员的回想和思考

他是互联网圈子知名的技术专家,现在活跃于微博专职吐槽,并且在微信上希望用小道消息拯救中国的互联网。他就是冯大辉(@Fenng),一个嬉笑怒骂、犀利、尖锐乃至幽默的男人,但是也许不会有多少人知道他的过往和心路历程:大学进门就读生物学专业,却半路出家钻研编程技术,并自学成才;最初进入阿里巴巴时,他经历了两个月的高强度工作差点以为自己会猝死;他对现在程序员的心态的

2013-06-11 07:41:07 1936

原创 [Oracle] 分析函数(3)- 函数分类

分析函数概述Oracle中的分析函数和聚合函数相似,但是对于每一组记录,无论多少行,聚合函数只返回一行值,而分析函数对其中每一行记录都返回值。这一组记录,称为分析函数的一个(WINDOW),窗口决定了要处理数据的范围,该范围在物理上可以由指定的行数来确定,或者在逻辑上由相对偏移量来确定。分析函数总是在除了ORDER BY之外的其他子句运算后才执行的,所以它不能出现在where、group by

2013-06-10 18:35:05 2436 6

原创 [Oracle] 数据库安全之 - 审计Audit

Oracle的审计是一个事后的工作,即数据库出现安全问题后,为了定位、发现问题的根源,可以通过审计追根溯源。Oracle审计主要包含以下3个部分:Trigger-based Auditing(触发器)Auditing the sys User-(SYS用户审计)Standard Auditing (标准审计)触发器审计下面是一个触发器审计的例子,一旦emp表的sal字段

2013-06-09 21:39:21 3785

原创 [Oracle] 数据库安全之 - Vault

Oracle用了整整一本书来阐述Valut,有兴趣的童鞋可以参考http://docs.oracle.com/cd/E11882_01/server.112/e23090/toc.htm,我个人觉得并不需要对它进行太深入的了解,只有知道有这么一回事就好了。从宏观方面看,Vault属于Oracle数据库安全领域中-访问控制的部分,可参考《[Oracle] 数据安全概述》和VPD,OLS不不一

2013-06-09 17:27:25 2311

原创 [Oracle] 数据库安全之 - Oracle标签安全(OLS)

在上一篇文章中讨论了如何利用VPD对Oracle表中的行进行访问控制(见《[Oracle] 数据库安全之 - 虚拟私有数据库 (VPD)》),下面介绍一种比VPD复杂一点的访问控制技术——OLS (Oracle Label Security)。启用OLS如果你的数据库版本是10g,则需要额外安装OLS组件,但如果是11g,只要启用OLS即可,因为11g里OLS是默认安装的,下面是11g下启

2013-06-09 15:36:57 4467 1

原创 [Oracle] 数据库安全之 - 虚拟私有数据库 (VPD)

Oracle的安全分为四大部分,分别是用户管理、访问控制、数据保护和监控,具体可参考《[Oracle] 数据库安全概述》http://blog.csdn.net/u010415792/article/details/9008089今天着重讲讲访问控制中一种常见的技术VPD,VPD的全称是Virtual Private Database 虚拟私有数据库,它在Oracle 8i时就出现了,是Ora

2013-06-09 08:45:28 4277 1

原创 [Hadoop] MapReduce架构设计

上一篇介绍了HDFS的架构设计(http://blog.csdn.net/u010415792/article/details/9055569),本篇是它的姊妹篇,介绍MapReduce的架构设计。和HDFS一样,MapReduce也是采用Master/Slave的架构,其架构图如下:它主要有以下4个部分组成:1)Client2)JobTrackerJobTra

2013-06-08 15:20:23 5340

原创 [Hadoop] HDFS架构设计

HDFS是一个具有高度容错性的分布式文件系统,适合部署在廉价的机器上,它具有以下几个特点:1)适合存储非常大的文件2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式3)适合部署在廉价的机器上但HDFS不适合以下场景(任何东西都要分两面看,只有适合自己业务的技术才是真正的好技术):1)不适合存储大量的小文件,因为受Namenode内存大小限制2)不适合实时数据读取

2013-06-08 14:24:51 4082 1

原创 [行业动态] 阿里入股新浪对蘑菇街、美丽说的冲击

前一阵子阿里入股新浪对蘑菇街、美丽说等这些导购网站来说是个沉重的打击。众所周知,淘宝的流量入口一直是个大问题,淘宝本身的SNS做的很差,而蘑菇街等这类导购网站可以为淘宝带来流量,蘑菇街可以从中提取佣金,这可以说是双赢的局面,因此当2011年蘑菇街正式上线之后,得到淘宝的大力扶持(据说当时蘑菇街的创始人和淘宝的主要负责人每周都要开会?)。但是,生意场上没有永远的朋友,只有永远的利益。随着蘑菇

2013-06-05 01:12:12 2595

原创 [Oracle] 数据库安全之 - 透明数据加密技术(TDE)

关于数据加密的原理,可以参考《[数据安全]谈谈密码学的数学原理》http://blog.csdn.net/u010415792/article/details/9007931。如何加密的技术都源自这里,在了解具体即时之前,一定要先了解公钥密钥的原理,知其然,也要知其所以然。Oracle TDE的全称是Transparent Data Encryption 透明数据加密,从10gr2开始

2013-06-04 21:25:25 3984

原创 [Oracle] 数据库安全概述

数据安全是个很广的话题,它包括网路安全、操作系统安全,应用层安全和数据库安全,Oracle的数据安全是指在数据库层面的安全,下图是Oracle安全产品的定革:下面是Oracle提供的安全方案:其中几个比较常用的技术如下:[Oracle] 数据库安全之 - 透明数据加密技术(TDE) [Oracle] 数据库安全之 - 虚拟私有数据库 (VPD)

2013-06-02 19:57:13 3510

转载 [数据安全]谈谈密码学的数学原理

发表者:Google(谷歌)研究员 吴军前一阵子看了电视剧《暗算》,蛮喜欢它的构思和里面的表演。其中有一个故事提到了密码学,故事本身不错,但是有点故弄玄虚。不过有一点是对的,就是当今的密码学是以数学为基础的。(没有看过暗算的读者可以看一下介绍,http://ent.sina.com.cn/v/2005-10-17/ba866985.shtml因为我们后面要多次提到这部电视剧。)

2013-06-02 19:27:32 4034

转载 [Python] Twiested - 基于事件驱动的网络编程

介绍 twisted 是python下一个事件驱动的网络引擎库, 支持很多种的协议.它包含了一个web服务, 多种IM客户端,服务端, 邮件服务协议. 由于规模庞大, twisted分成了几个sub-project. 一起或者分开发布.稳定性twisted并不是从0.1发展到8.1.0的. 是一下子跳到8的. 8.1.0是最新的stable的包.从successfu

2013-06-02 15:41:55 4050

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除