Maclean’s Oracle Database Tech Blog Archives
-
Oracle 甲骨文 马克赫德的雄心:到2025年,我们(和另一家公司)将拥有所有的云产业
企业长期走势 甲骨文公司联合CEO马克·赫德曾预言,到2025年,有两家公司将拥有服务性软件80%的市场,其中一个将会是Oracle甲骨文。 在旧金山Oracle OOW全球大会的第二天,赫德在他的演讲中表示,甲骨文已经在近五年以构想的云结构重写其代码库。这对于面临收入危机的软件企业来说至关重要,它们在过去五年中收入增长不到百分之一。 “IT费用基本持平,在2015年下降了5%左右,”赫德说。 “CEO们正考虑短期内的盈利,实际上费用下降而导致收入上升。同时,SaaS公司预计未来收入会增长约15%。” 赫德公布了对2025年云市场的五个预测。其中一些是很有可能发生,不过这些都是展示甲骨文的产品组合的一部分。 “这不是人造云,”他在其后对的话新闻发布会上说。 “这是对Fusion中间件的改写,现在我们已有98%的软件基于云而重写。” 他的第一个预测是, 到2025年,80%的“生产”应用程序将会基于云计算。他说道,虽然目前约为25%,但云应用的低成本和可扩展性将确保它们在十年内成为最受瞩目的应用。
-
Oracle 12c 即将认证Windows 10 操作系统平台
http://www.theregister.co.uk/2015/08/17/oracle_to_certify_its_database_v12c_for_windows_10/ Oracle 12c 即将认证Windows 10 操作系统平台 开发者可以在win10上正常运行Oracle 12c 2015年8月17日06:02时,Simon Sharwood 甲骨文决定让数据库软件支持Windows 10。 在“决定声明”(PDF)文件中,有一段大红字体显示,“计划在2015年10月,认证在Windows 10上的Oracle数据库12c(12.1.0.2)”。 32位Oracle数据库客户端能运行在Windows 10的32位和64位版本,64位Oracle数据库服务器和客户端将能运行在Windows 10的64位版本上。 Oracle 甲骨文“……还计划认证下一个在Windows 10上的主要Oracle数据库12c的版本,该版本支持Windows操作系统。” 但是请注意Oracle 12c将不会有Win 10的32位版本。 只有Windows 10 Pro和企业版获得认证。 需要注意的是 “由于的Windows 10不是服务器版操作系统,一些Oracle企业级服务器的功能是不支持的,如真正应用集群RAC 。” 很公平的一点是:为了确保开发人员可以在许多场景使用其数据库,Oracle几乎肯定这么做,这是很合理的。
-
Hadoop 高级MapReduce开发
本文固定链接:https://www.askmac.cn/archives/advanced-mapreduce-development.html 高级MapReduce开发 第五章从我们熟悉的SQL概念的角度讨论了MapReduce的基础知识。学习了如何用MapReduce来解决一些常见的问题。还学习了数据是如何从输入文件中读取,然后在MAP中处理,使用Partitioner传送至Reducers,最后由Reducers处理,并写入HDFS输出文件中去的。 本章探讨SQL的排序和连接特性,这需要引入MapReduce程序更为复杂的概念。我们学习了多个输出文件是如何从单一的MapReduce程序被写入的。最后,我们了解了计数器,它可以用来收集MapReduce程序的统计数据(www.askmac.cn)。 MapReduce编程模式 本章介绍了在SQL功能背景下,MapReduce设计模式: 排序:当需要输出必须按照一定的标准进行排序时 连接:以各表的相似列值为基础,将各个不同的表组合起来 在看这些案例之前,我们先来简单探讨一下Hadoop框架基本的I / O类。搞清楚这一点,你就能真正了解Hadoop在幕后是如何工作的。 Hadoop I / O介绍 本章介绍了两种常见的基于关系数据库的案例:排序和连接。但首先,你需要了解Hadoop的I / O系统。第5章讨论了以下类: Text IntWritable 这些由Hadoop框架提供的类,有非常具体的实现方案,使其能够作为Mappers 和Reducers的键和值被使用。我们首先讨论提供此功能的这些类的特点。在这一过程中,也应该学会如何在Hadoop框架内开发可作为键和值类型使用的自定义类。 用于Mappers 和Reducers中键和值的所有类,都应该能够被序列化为一个原始字节流,以及反序列化回类实例。当被读入Mapper 后,这些类实例被反序列化,然后再序列化到一个字节流,并通过网络发送给Reducer 使用。在Reducer 节点内,这些原始字节被反序列化回Reducer 端的键/值类实例中。该记录由Reducer 端输入键排序(正如第5章中所讨论的,此进程一部分在Mapper 上进行,最终在Reducer上完成),然后提交给Reducer的reduce方法。最后,Reducer输出需要数据,序列化成原始字节,并写入到磁盘(www.askmac.cn)。 键和值类的主要特征如下: 用作键和值的类应该能够被序列化和反序列化 用作Reducer端键的类应该能够支持用户自定义排序
-
Oracle 12cR2 Oracle Core Database, 核心数据库版本,Native Install for Core Database
oracle将针对Linux提出一个新的安装版本 Oracle Core Datbase ,该Core Database将使用Linux上的原生安装方式 例如rpm或其他package,这意味着你安装Oracle Core Database只需要一条命令 yum install oracle-core-database。这与之前Oracle发布过的Oracle Express版本 Oracle XE 看起来有些相似,但是和Oracle XE的有巨大的差别,因为Oracle XE是一个阉割的不能再阉割的一个版本,而Oracle Core Database不是,Oracle Core Database在Oracle数据库的基本功能上完全没有限制,仅仅限制了部分企业版的option。这意味着Oracle将其核心功能精简到一个Core Database中,并在Linux上以 rpm或其他package形式快速发布。”Oracle Core Database 12gR1 will be packaged as an RPM. RPM is considered the standard way to deploy packages on most Linux systems. Also, RPM was originally known as ‘Redhat Package Manager’ which…
-
Mongodb 为复制集新增节点
概览 本文描述了如何为已有的 replica set 新增节点。有关复制集部署的模式的信息,参见复制集部署架构文档。 最多可参与投票的节点数 一个复制集最多可以拥有7个 参与投票的节点 。如果要为已经拥有7个参与投票节点的复制集新增节点,我们需要将新增的节点设置为 不参与投票的节点 或者将 已有的投票节点 的票数清除。 初始化脚本 在生产环节中,我们可以修改 init script 来管理节点。 已有节点 我们可以使用这些命令来为现有复制集新增节点。我们还可以使用命令 “re-add” 来添加一个已经被移除了的节点。如果这个被移除的节点中的数据较新,它能很快恢复并赶上主节点的数据。 数据文件 如果我们有已有节点的备份或者快照,我们可以可以将数据文件( dbPath 文件夹中) 复制到新的机器并使用它们快速的建立一个新的节点。这些数据文件必须是: 同个复制集中可用节点的数据备份。参见 用文件系统快照备份并恢复 以获得更多信息。 重要 推荐使用文件快照的方式而不是来 mongodump 和 mongorestore 来为复制集新成员做数据备份。 比在主节点oplog最旧的操作更近。新成员必须能通过从主节点的oplog应用操作获取当前数据。 需求 一个可用的复制集。 一个拥有数据集的MongoDB节点,且可以与现有复制集通讯。 否则,请参考 安装教程 和 部署复制集 。
-
Oracle 11g OCM考试考点分析 grid control 架构
本文永久链接地址: https://www.askmac.cn/archives/oracle-11g-ocm-grid-control-architecture.html 7.grid control 架构 7.1 目标 在完成这个课程后,你应该可以做: 描述grid control中不同的组件 解释grid control构架 列出被grid control管理的目标类型 在一个grid control 环境中讨论最大可用性架构 7.2 grid control 架构 grid control主要是由3部分组成: oracle 管理资料库 一个或者多个oracle管理服务器 一个或多个oracle管理代理 你可以安装grid control 在一个单独的服务器,或者在多个服务器,根据业务需要和管理的企业规模。 grid control 控制台是一个WEB接口,可以让你在数据中心管理和监控目标。 oracle 管理代理(简称为代理),用来监控目标的健康。为了健康目标,你需要在那些运行目标的主机上安装代理。不管运行多少目标,你只需要在每一个主机上安装一个代理–例如,在一个主机上要监控oracle数据库和oracle weblogic服务器,你只需要一个代理。代理收集有关目标可用性、配置和性能的信息,然后通过oracle 管理服务(OMS)发送到oracle管理资料库。每个管理代理在任何时候,只于一个资料对话。 OMS是一个JEE Web应用程序使用 Grid control 控制台。它接收来自一个或多个代理的信息,并将它保存到oracle 管理资料库。OMS处理每个目标的监控和作业信息。同时OMS从管理资料库中检索数据,将其转换为HTML为游览器所显示。 oracle管理资料库包含了一系列grid control 方案对象。它由例如:数据库jobs,包,存储过程,视图和2个数据库表空间来容纳所有关于管理员,目标,和被管理的应用的所有可用信息。
-
Hadoop Architecture 架构
本文固定链接:https://www.askmac.cn/archives/hadoop-architecture.html 本文是官方文档的翻译:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html 1介绍 HDFS 是一个分布式的文件系统,被设计运行在商业硬件上。它和现有的分布式文件系统有很多相似之处。但是,也于其他的分布式文件系统有显著的差异。HDFS是高度容错的,并且被设计来部署到底成本的硬件上。HDFS提供高吞吐量访问应用程序数据,并适用于那些有很大数据集的应用程序。HDFS放松一些POSIX请求使得流媒体访问文件系统数据。HDFS最初的基础设施构建是为了Apache Nutch搜索引擎项目。HDFS是Apache Hadoop核心的项目部分。该项目的URL是http://hadoop.apache.org/ 2 假设和目标 2.1 硬件故障 硬件故障是标准的而不是例外。一个HDFS实例可能包括数百或数千个服务器,每一个存储文件系统的部分数据。事实上,这里有大量的组件,每个组件都有一个不一样的失效概率,意味着HDFS的一些组件总是不能提供功能。因此,故障的快速检测,自动的恢复是HDFS的一个核心构架目标(www.askmac.cn)。 2.2 流数据访问 运行在HDFS中的应用程序需要流媒体来访问他们的数据集。它们不是一般运行于通用文件系统的通用应用程序。HDFS被设计为批处理,而不是由用户交互使用。重点是高吞吐量的数据访问,而不是低延迟的数据访问。POSIX强加的一些需求并不是HDFS的应用程序所需要的。POSIX在一些关键领域中的词义已经被交换,来增加数据吞吐速率。 2.3 大数据集 那些在HDFS上运行的应用程序由大量的数据集。HDFS中一个典型的文件在10亿字节到百万兆字节大小。因此,HDFS被调整支持大文件。它应该提供高聚集数据带宽,并且在一个集群中有数百个节点的规模。它应该支持在一个单一的实例有数以百万计的文件。
-
【MySQL学生手册】协同(Advisory)锁
本文地址:https://www.askmac.cn/archives/mysql-advisory-lock.html 7.3 协同(Advisory)锁 协同锁没有能力避免来自其它客户端的数据访问,但它们基于一种概念,即所有客户端会使用一个约定的规则来协同使用一种资源。这种约定的规则可以是一个锁名,即一个简单的字符串。当这个名字被锁住,此协同锁认为被获取。那么了解到此锁状态的其它的客户端就会抑制并避免其进行和持有锁的用户具有冲突的操作。 协同锁使用了一套功能函数实现。为了获取锁,使用GET_LOCK()功能: 第一个参数使用一个字符串定义了被锁的名字,第二个参数是一个以秒为单位的时间值,定义了如果锁无法立刻被获取的情况下,最多等待多长时间。GET_LOCK()但执行成功则返回1,不过如果时间过后,锁还是未能获取,则返回0,执行中异常报错则返回空值。 获取到协同锁的客户端可以调用RELEASE_LOCK()功能来释放锁: 如果锁被成功释放,则RELEASE_LOCK()返回1,如果需要释放的锁是别的客户端锁,则返回0,返回NULL则说明当前名字没有锁。 我们还可以再次通过调用GET_LOCK()来释放之前的锁,或者直接关闭其和服务端之间的连接也可以达到释放锁的目的。
-
Oracle 11g OCM考试考点分析 SPM SQL执行计划管理
本文固定链接:https://www.askmac.cn/archives/oracle-11g-ocm-spm.html 6 SQL执行计划管理 6.1目标 在完成这一课后,你应该能够做下列事情: 设置SQL计划管理 设置各种各样的SQL计划管理场景 迁移存储大纲到SQL计划基线 6.2 SQL 执行计划管理:概述 SQL 执行计划管理是由自动控制SQL计划发展而来 优化器自动的管理SQL计划基线 –只有知道和验证过的计划被使用 计划变更被自动验证 –只用比较过或者更好的计划在之后使用。 可以从SQL性能分析中的STS中表示重要的SQL 最主要的收益是通过避免执行计划的回退来保证系统性能的稳定。 当一个SQL语句的执行计划变更时有潜在的性能风险。一个SQL计划的变更可以是由多种原因引起,例如优化器版本,优化器统计信息,优化器参数,方案定义,系统配置,和SQL 概要文件的创建。 各种计划控制技术(例如存储大纲和SQL概要文件)已经在过去的oracle数据库版本中介绍过,来解决由于计划的变化带来的性能下降问题。但是,这些技术都非活动进程,需要人工来干预。 SQL计划管理是oracle11g中介绍的一个新特性,可以让系统自动的控制SQL计划,从管理 SQL 计划基线演化而来。当这个特性被开启,一个新生产的SQL 计划,如果被证明这样做不会导致性能回退,那么可以整合为一个SQL 计划基线。在执行一个SQL语句期间,只有对应为SQL计划基线的一部分的计划能被使用。和在这课之后描述的那样,SQL 计划基线可以自动的加载或可以被作为SQL 优化集的种子。在这个课程的后面将覆盖多个场景。 SQL 计划管理特性主要的好处是通过避免计划回退来保证系统性能的稳定性。除此之外,其节省了DBA的时间,通常是用来识别和分析SQL性能的下降和寻找可行的解决方案。
-
【MySQL学生手册】显式(Explicit)表锁
本文地址:https://www.askmac.cn/archives/mysql-explicit-lock.html 7.2 显式(Explicit)表锁 客户端可以使用两个语句来管理显式表锁。LOCK TABLES命令会获取表锁,而UNLOCK TABLES命令则会释放锁。对于显式锁的获取,我们可以具体在某些场景中使用: 一个隐式锁仅在对于(非事务引擎下的)单个查询执行时间内起到作用。但是对于希望运行多语句跟新且同时不被其它客户端干扰的情况,则不适用。而在执行由事务引擎支持的事务时,锁可以在整个事务时间范围起作用,为了达到这样的目的,你可以获取一个显式锁来维持其效果直到你释放它,这样其它客户端就不能修改你锁住的那些表了。 使用显式锁,可以在将多个语句作为一组进行执行时发挥作用,从而提高效率。首先,服务端减少了获取和释放锁的工作,因为其不必未每个语句都进行其锁的操作。它仅是在操作的最开始时候获取所有所需的锁,并在事务最后释放它们即可。其二,对于那些修改数据的语句,索引刷新操作次数降低了。例如,如果你执行多个INSERT语句,且都使用隐式锁,那么索引的刷新操作将在每个语句之后进行。如果你对表使用了显式锁,那么索引的刷新仅会在所有插入操作完成并释放锁后进行,这样所产生的磁盘活动就更少了。 LOCK TABLES语句可以对指定的表进行锁定,并制定索要获取的锁的类型。如,以下语句会在Country表上要求获取读锁,并对City表要求获取写锁: mysql> LOCK TABLES Country READ, City WRITE; 为了能成功执行lock tables命令,你必须要有lock tables权限,且需要每个被锁表的select权限。 如果所要锁定的表正在被使用,那么执行lock tables会陷入等待,在获取到所需的锁之前它都不会返回。