开源数据库Sharding技术[2]

开源数据库Sharding技术[2],第1张

Sharding 策略

数据 Sharding 的策略与分区表的方式有很多类似的地方 有基于表 ID 范围 数据产生的时间或是SOA理念下的基于服务等众多方式 可选择 而与传统的表分区方式不同的是 Sharding 策略和业务结合的更为紧密 成功的 Sharding 必须对自己的业务足够熟悉 进行众多可行性分析的基础上进行 业务逻辑驱动

Sharding 实现案例分析 Digg 网站

作为风头正劲的 Web 网站之一的 Digg 虽然用户群庞大 但网站数据库数据并非海量 去年同期主数据大约只有 GB 的样子 现在应该更大一些 但应该不会出现数量级上增长 数据库软件采用 MySQL x Digg 的 IO 压力非常大 而且是读集中的应用( %的 IO 是读请求) 因为提供的是新闻类服务 这类数据有其自身特点 最近时间段的数据往往是读压力最大的部分

根据业务特点 Digg 根据时间范围对主要的业务数据做 Sharding 把不到 % 的 热 数据有效隔离开来 同时对这部分数据用以更好的硬件 提供更好的用户体验 而另外 % 的数据因用户很少访问 所以尽管访问速度稍慢一点 对用户来说 影响也很小 通过 Sharding Digg 达到了预期效果

现有的Sharding 软件简介

现在 Sharding 相关的软件实现其实不少 基于数据库层 DAO 层 不同语言下也都不乏案例 限于篇幅 作一下简要的介绍

MySQL Proxy + HSCALE

一套比较有潜力的方案 其中 MySQL Proxy (//fe mysql /wiki/MySQL_Proxy) 是用 Lua 脚本实现的 介于客户端与服务器端之间 扮演 Proxy 的角色 提供查询分析 失败接管 查询过滤 调整等功能 目前的 版本还做不到读 写分离 HSCALE 则是针对 MySQL Proxy 插件 也是用 Lua 实现的 对 Sharding 过程简化了许多 需要指出的是 MySQL Proxy 与 HSCALE 各自会带来一定的开销 但这个开销与集中式数据处理方式单条查询的开销还是要小的

Hibernate Shards

这是 Google 技术团队贡献的项目(// hibernate / ) 该项目是在对 Google 财务系统数据 Sharding 过程中诞生的 因为是在框架层实现的 所以有其独特的特性 标准的 Hibernate 编程模型 会用 Hibernate 就能搞定 技术成本较低 相对d性的 Sharding 策略以及支持虚拟 Shard 等

Spock Proxy

这也是在实际需求中产生的一个开源项目 Spock(// spock /)是一个人员查找的 Web 网站 通过对自己的单一 DB 进行有效 Sharding化 而产生了Spock Proxy(//spockproxy sourcefe net/ ) 项目 Spock Proxy 算得上 MySQL Proxy 的一个分支 提供基于范围的 Sharding 机制 Spock 是基于 Rails 的 所以Spock Proxy 也是基于 Rails 构建 关注 RoR 的朋友不应错过这个项目

HiveDB

上面介绍了 RoR 的实现 HiveDB (// hivedb /)则是基于Java 的实现 另外 稍有不同的是 这个项目背后有商业公司支持

PL/Proxy

前面几个都是针对 MySQL 的 Sharding 方案 PL/Proxy 则是针对 PostgreSQL 的 设计思想类似 Teradata 的 Hash 机制 数据存储对客户端是透明的 客户请求发送到 PL/Proxy 后 由这里分布式存储过程调用 统一分发 PL/Proxy 的设计初衷就是在这一层充当 数据总线 的职责 所以 当数据吞吐量支撑不住的时候 只需要增加更多的 PL/Proxy 服务器即可 大名鼎鼎的 Skype 用的就是 PL/Proxy 的解决方案

lishixinzhi/Article/program/SQL/201311/16327

单单是数据库可靠性远不足以满足你的业务需求,最好要能访问源代码而且产品是免费的。现在你开始评估未来的增长和项目业务需求,犹豫是否需要将数据迁移到更可靠的商业软件系统上去,例如SQL Server或Oracle。然而,商品软件产品不是免费的,除非你使用Express免费版本,现在许多软件厂商都能提供这种免费版本。例如,你可以下载SQL Server Express , Oracle Database XE 或 DB2 Express-C,这些软件可以免费使用。他们并不开源,但你不用付费。商业产品的免费版本不如付费版本那么健壮,也没有那么多的功能,但是他们却有开源软件所没有的功能。同时,免费的商业产品在某些方面不能与他们的开源软件的相应产品竞争。在考虑转换之前,这里有几个重要的问题要考虑 。有许多这样的因素需要考虑。免费的商业软件产品在内存、数据库大小和能使用的CPU等方面有限制。例如,Oracle Database XE和SQL Server Express都有4G数据库大小的限制。也有其他因素的限制,如是否支持某种应用程序接口,可扩展性需求或可用性需求。你的RDBMS应该具有什么功能当决定是否放弃从开源RDBMS转向商业软件时,首先需要熟悉不同数据库系统的功能。大多数RDBMS的内核都很相似,无论是开源产品还是免费的商业软件版本。它们都遵循美国国家标准协会ANSI的SQL标准,支持ACID事务(原子性,一致性,独立性和持久性),提供安全性,包括存储过程和触发器,支持复制和分区,提供索引以及许多其他功能。其实并非所有的产品都是一样的。例如SQL Server Express有很多功能都是MySQL所不具备的,SQL Server有 Management Studio、配置管理器、报表服务器、在线备份和自动调优等功能。而MySQL支持不同的存储引擎,提供分区选项,更容易安装。选择MySQL,看重的是它能运行在任何 *** 作系统上,是开源的,而且数据库的大小只受主机 *** 作系统文件大小的限制。弄清楚哪种产品支持哪种功能,并决定这些功能中哪些是你必须要的,这才是关键。实施需要做什么这可能是在决定是否迁移到商业软件的决策中最重要的问题。免费的商业产品提供了开源软件所没有的功能,这是迁移到更健壮商业软件版本比较平滑的迁移路径。例如,你的组织可能想在明年开始实施扩展的商务智能分析。为此,你想要有一个系统,这个系统能处理必要的数据抽取、转换和加载(ETL) *** 作,支持日益增长的数据仓库,提供在线分析处理并提供扩展的报表分析功能。无疑你能用不同的开源软件产品将许多这些功能集成起来。ETL产品如Pentaho Data Integration和Talend Open Studio都是强大的开源工具,可以用来迁移数据。然而,像SQL Server这样的产品,不仅包括数据库引擎,也有它自己的分析服务、报表服务和集成服务,提供可伸缩的解决方案,能做长期计划和后续实施无缝的过程。所以SQL Server Express可能是不错的选择。从哪儿开始开源RDBMS的迁移没有一个简单的答案。每个系统都有它自己的优缺点,免费的商业软件并不一定就便宜。你必须要考虑到计划和实施不同组件所需要的时间,了解并发现对这些组件的支持,集成不同的战略和系统。在某些情况下,解决方案可能是清晰的。如果你买了Microsoft的产品,正在使用Microsoft的工具,运行net应用 ,SQL Server可能就是最好的解决方案。但是,如果你运行的是Linux服务器,支持的是PHP应用,你可能发现开源软件如PostgreSQL更能满足你目前的需求。然而,即使是这种情况,也不那么容易。你必须要考虑产品的限制和功能,同时还要考虑未来的需求。只有这样你才能做出正确的决策。

问题一:内存数据库主流的有哪些,并给出各自特点! 这里介绍一些大型的市场占有率比较高的内存数据库,也是业界响当当的―SAP HANA、Oracle Exalytics、Orale TimesTen、IBM SolidDB,可以说他们之间没有说是哪个最好,主要还是看使用的场景和具体的需求,各自特点如下:

SAP HANA(High-Performance Analytic Appliance)是 SAP 公司于 2011 年推出的基于 内存计算技术,面向企业分析性应用的产品。左图 的系统架构示意图中可以看出, HANA 产品主要包括内存计算引擎和 HANA 建模工具两部分。它支持从 SAP 商务套件中 同步更新业务数据,或者从 SAP BW(SAP 商务智能产品)和其他第三方数据源中批量导 入数据,在 HANA 中进行运算后,提供给 SAP BI 客户端或者其他第三方展现工具进行分 析和展现。

Oracle Exalytics 内存分析一体机是面向分析的集成设计系统,可以无限制提供最佳可 视化分析和更智能的分析应用程序。 如图 所示, Oracle Exalytics 内存分析一体机的产品架构包括 3 个部分: 内容分析 硬件、内存分析软件和经过优化的 Oracle 商务智能基础套件(Oracle BI Foundation)。内存分析硬件部分是一台为基于内存计算的商务智能而特别优化的服务器,具有提供 强劲计算能力的 40 核中央处理器,高达 1TB 的内存以及快速的网络 内存分析软件部分的核心是 Oracle TimesTen 内存数据库。它是为 Exalytics 平台而特 别优化的内存分析数据库,包括了很多 Oracle Exalytics 平台特有的功能。Oracle 商务智能基础套件部分受益于 Oracle Exalytics 内存分析一体机的大容量内存、 处理器、并发处理能力、存储、网络、 *** 作系统、内核和系统配置等,可以提供明显优于传统软件的查询响应性、用户可用性和 TCO。

Oracle 内存数据库TimesTen 是一个基于内存计算的关系数据库, 提供了响应时间极 短且吞吐量极高的应用程序,可满足各行业应用程序的需求。 TimesTen 是一个可嵌入到应用程序中的数据库, 通过消除进程间通信和网络 开销,进一步提高数据库 *** 作的性能。Oracle 内 存 数 据 库 TimesTen 使 用 行 级 锁 定 和 提 交 后 读 取 (mitted-read) 隔离,通过事务日志记录与数据库检查点相结合实现了基于磁盘的持久 性和可恢复性。TimesTen 通常与多用户和多线程应用程序一起部署,应用程序直接通过 JDBC、 ODBC、 Oracle 调用接口、 ProC/C++ 和Oracle PL/SQL 编程接口, 使用标准SQL 访问TimesTen 数据库。若运行在不同服务器上的多个应用程序共享一个数据库时,则使 用常规的客户端/服务器访问方式。

IBM solidDB 是一个内存数据库,专为获取极高的速度和可用性而进行优化。如图 所示,IBM solidDB 既可以单独部署作为独立的数据库支持应用程序,也可 以部署为其他关系型数据库的加速缓存以提高应用程序性能。solidDB Universal Cache 功能将这些数据库中存储的性能关键型数据 缓存到solidDB Universal Cache 中,加快领先关系数据库的速度。solidDB Universal Cache 功能使用检查点和事务日志将数据持久保存在 磁盘上>>

问题二:开源的内存数据库都有哪些 1最简单的方法:

public static String reverse1(String str)

{

return new StringBuffer(str)reverse()toString();

}

2最常用的方法:

public static String reverse3(String s)

{

char[] array = stoCharArray();

String reverse = ; 注意这是空串,不是null

for (int i = arraylength - 1; i >= 0; i--)

reverse += array[i];

return reverse;

}

问题三:开源内存数据库有几种啊? 常见的有FastDB、SQLite、Berkeley DB、GigaBASE,H2等

问题四:几种常用的开源内存数据库性能比较 本人理解:orcal速度快但是维护不方便吗,费钱。mysql速度可以,维护方便,交orcal来说易上手。db2:大

问题五:开源的内存数据库有哪些支持SQL基准 选择数据库实例―右键属性―选择内存选择页―修改内存―确定

问题六:C/C++开发的开源的分布式内存数据库有哪些 1最简单的方法:

public static String reverse1(String str)

{

return new StringBuffer(str)reverse()toString();

}

2最常用的方法:

public static String reverse3(String s)

{

char[] array = stoCharArray();

String reverse = ; 注意这是空串,不是null

for (int i = arraylength - 1; i >= 0; i--)

reverse += array[i];

return reverse;

}

问题七:哪位达人用过关系型的内存数据库而且是开源的 关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。表与表之间的数据记录有关系。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件: 客户端应用程序(Client) 数据库服务器(Server) Structured Query Language(SQL)Client端和Server端的桥梁,Client用SQL来向Server端发送请求,Server返回Client端要求的结果。现在流行的大型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix、access、foxpro等。

问题八:C/C++开发的开源的分布式内存数据库有哪些 1最简单的方法:public static String reverse1(String str){ return new StringBuffer(str)reverse()toString();}2最常用的方法:public static String reverse3(String s) { char[] array = stoCharArray(); String reverse = ; 注意这是空串,不是null for (int i = arraylength - 1; i >= 0; i--) reverse += array[i]; return reverse; } 3常用方法的变形: public static String reverse2(String s){ int length = slength(); String reverse = ; 注意这是空串,不是null for (int i = 0; i 问题九:要求实时数据需要存储到内存库 有开源内存数据库吗 朋友您好,很高兴为您解答问题

请把问题补充完整

大家才能给你提供完善的建议

相信您在知道这个平台

一定会有满意的收获

真诚希望能够帮助您,如果,祝您好运常伴。

问题十:什么情况下用内存数据库 相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘 问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行 *** 作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其主拷贝或工作版本 常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并非任何时刻整个数据库都存放在内存,即内存数据库系统还是要处理I/O。

内存数据库是以牺牲内存资源为代价换取数据处理实时性的,内存数据库和磁盘数据库都是当今信息社会里每个企业所必须的关系型数据库产品,磁盘数据库解决的是大容量存储和数据分析问题,而内存数据库解决的是实时处理和高并发问题。两者的存在是相辅相成的,内存数据库的事务实时处理性能要远强于磁盘数据库。但是相对的,他的数据安全方面还没有达到磁盘数据库比肩的地步。

内存数据库将物理内存作为数据的第一存储介质,而将磁盘作为备份。随着电信业务的发展,系统对实时性的要求和对业务灵活修改的要求非常高,在此种情况下对于内存数据库的需求也越来越高。磁盘数据库的做法是将数据存入内存中进行处理,这种方式的可管理性及数据安全可靠性都没有保障。而内存数据库正是针对这一弱点进行了改进。

实际上,内存数据库并不是一项时髦技术,其出现于上世纪60年代末,但由于市场的需求原因在90年代后期才开始发展。作为新一代数据库,Altibase产品已经走向混合型数据库,其版本Altibase 40已经有一套自带的磁盘数据库,用户一旦购买了Altibase的内存数据库,就无须再购买磁盘数据库。它把热数据(经常被使用的、访问比较高的、经常要运算的数据)放在内存数据库里,而把历史性数据放在磁盘数据库里,可为用户进一步减少投资。

对于内存数据库而言,可以将同样数据库的部分内容存放于磁盘上,而另一部分存放于内存中。用户可以选择将数据存储在内存表中以提供即时的数据访问。若访问时间不紧急或数据存于内存中所占空间过大时,用户可将这些数据存入磁盘表中。

比如,在手机用户开始拔打电话时,如果应用基于内存数据库技术的混合数据管理引擎,就通过内存表检索其服务选项并立即验证用户身份,而将通话清单和计费清单归档到磁盘表中。从而,达到了速度与资源使用的平衡。

内存数据库的技术,一个很重要的特点,是可以对内存中的数据实现全事务处理,这是仅仅把数据以数组等形式放在内存中完全不同的。并且,内存数据库是与应用无关的,显然这种体系结构具有其合理性。内存引擎可以实现查询与存档功能使用的是完全相同的数据库,同时内存表与磁盘表也使用的是完全相同的存取方法。存储的选择,对于应用开发者而言是完全透明的。

对于内存数据库而言,实现了数据在内存中的管理,而不仅仅是作为数据库的缓存。不像其它将磁盘数据块缓存到主存中的数据库,内存数据库的内存引擎使用了为随机访问内存而特别设计的数据结构和算法,这种设计使其避免了因使用排序命令而经常破坏缓存数据库性能的问题。通过内存数据库,减少了磁盘I/O,能够达到了以磁盘I/O 为主的传统数据库无法与其相比拟的处理速度。

因此,内存数据库技术的应用,可以大大提高数据库的速度,这对于需要高速反应的数据库应用,如电信、金融等提供了有力支撑。

由于把大多数数据都放在内存中进行 *** 作,使得内存数据库有着比磁盘数据库高得多的性能表现,这一>>

随着互联网的不断发展,有时候企业需要使用不同的开源数据库来搭建自己的在线平台。下面我们就一起来了解一下,在选择数据库的时候我们都有哪些方法可以使用。

有一个明确的目标

这一点看似简单,但在和很多人聊过MySQL、MongoDB、PostgreSQL之后,我觉得这一点才是重要的。面对繁杂的开源数据库,更需要明确自己的目标。无论这个数据库是作为开发用的标准化数据库后端,抑或是用于替换遗留代码中的原有数据库,这都是一个明确的目标。目标一旦确定,就可以集中精力与开源软件的提供方商讨更多细节了。

了解你的工作负载

尽管开源数据库技术的功能越来越丰富,但这些新加入的功能都不太具有普适性。譬如MongoDB新增了事务的支持、MySQL新增了JSON存储的功能等等。目前开源数据库的普遍趋势是不断加入新的功能,但很多人的误区却在于没有选择适合的工具来完成自己的工作——这样的人或许是一个自大的开发者,又或许是一个视野狭窄的主管——终导致公司业务上的损失。致命的是,在业务初期,使用了不适合的工具往往也可以顺利地完成任务,但随着业务的增长,很快就会到达瓶颈,尽管这个时候还可以替换更合适的工具,但成本就比较高了。例如,如果你需要的是数据分析仓库,关系数据库可能不是一个适合的选择;如果你处理事务的应用要求严格的数据完整性和一致性,就不要考虑NoSQL了。

不要重新发明轮子

在过去的数十年,开源数据库技术迅速发展壮大。开源数据库从新生,到受到质疑,再到受到认可,现在已经成为很多企业生产环境的数据库。企业不再需要担心选择开源数据库技术会产生风险,因为开源数据库通常都有活跃的社区,可以为越来越多的初创公司、中型企业甚至500强公司提供开源数据库领域的支持和三方工具。

先从简单开始

你的数据库实际上需要达到多少个9的可用性对许多公司来说,“实现高可用性”仅仅只是一个模糊的目标。当然,常见的答案都会是“它是关键应用,我们无论多短的停机时间都是无法忍受的”。沙河IT培训发现数据库环境越复杂,管理的难度就越大,成本也会越高。理论上你总可以将数据库的可用性提得更高,但代价将会是大大增加的管理难度和性能下降。所以,先从简单开始,直到有需要时再逐步扩展。

典型的总有刁民想害朕的心态[灵光一闪]

的确是这样。国内银行和金融公司已经在做替换成国产数据库的工作了。但是还要花一些时间。

顺带说明一下,oracle数据库美国本土的安全水位是非常高的。只是美国出口限制,导致出口到中国的只是低安全级别的版本。中国国产数据库在军工航天电力水利早已应用,都达到了顶级安全标准。

我是金融行业的码农,也算是有一定的发言权吧。

在数据库方面,金融领域用到的有Oracle和SQLServer等商业软件,也有Mysql、Redis等开源软件。这些软件有个令人沮丧的共同点, 很少有国产自主研发数据库

随着互联网的飞速发展,信息化浪潮席卷各个行业。效率的大幅提升,彻底颠覆了既有的工作模式。率先拥抱变革的企业收获了巨大收益,让后来者羡慕嫉妒恨。

信息技术不管发展如何,都绕不开数据存储,数据存储以关系型数据库最符合人的思维方式。关系型数据库中的翘楚无疑是Oracle数据库。

再回到题主的泄密问题,即Oracle数据库安全么?我的答案是 即安全又不安全 。之所以安全因为它是最好关系型数据库,常见的指标如易用性、稳定性、可用性、可恢复性都有完整的解决方案。之所以不安全是因为它是国外的闭源软件,是否有安全隐患,国人不得而知。

技术上不可控,我们怎么才能避免呢?答案是从管理上从严控制。

首先,在IT世界,有一个叫做物理隔离,国内银行的机房网络架构采用的是比较传统的内网+DMZ的形式,在两者之间采用专业的防火墙进行连接并安全隔离。DMZ到外网也有一道防火墙。所有的数据存储和加工必须在内网。

再加上内网登陆各种限制,跳板机,访问权限,动态密钥。

想发个版本都累死,还想把数据弄出来,不太可能。

至于这几年去IOE,最后也就去了IBM的大机,Oracle数据库照样大规模使用,EMC的存储就更不用说了。

总之一句话,安全使用美国佬技术!累死金融IT民工!

泄密到不存在,一般国内银行用Oracle的同时都会购买Oracle的维护服务,除非甲骨文不想做中国的生意了。当然因为中美关系的问题,一些行已经开始从周边系统逐渐开始改造使用国产数据库,比如华为的高斯200,同时国内的国有软件企业也在部署研发国产的数据库,公司名就不说了,反正确实有这个安排。

真的是个好问题,国家核心系统从什么开始决心抛弃windows。银行系统数据太过庞大复杂,上了贼船,下船太难太难了。

首先需要明白,银行的风控部门是银行体系内具有极度话语权的部门,也是最核心的部门之一。资产是否实现保值增值,以及银行资产的安全性,也是风控部门重点工作之一。

所以,你能想到的这个问题,银行的相关部门早就已经想到了,而且肯定做了不少的分析工作。

从网络上来说,银行的核心主机系统,包括数据库,都是在银行内网运行的,并不会直接接入互联网,这个一般的银行设备,比如ATM等自助终端都是如此,所以安全性肯定是银行最关注的焦点。

从安全性来说,银行的IT部门会对所有出入网络的数据进行分析。就连一个最基本的新开一个网络IP或者端口,都要经过层层的审批和把关,不是随随便便就给开通的。我曾经在某个银行短期出差,当时两台设备只给了一个IP和端口,我们找银行客户申请多开通一个,到我把工作做完,大概一个星期多一点的时间,这个居然都没审批完成。

另外,如上所说的银行对流经网络的所有数据都会进行严格的监控。比如我们之前有一台设备在银行网络内运行,一般情况下都会把不必要的组件或程序全部删除。但那台机器由于设置原因,在更新程序时默认对外连接了微软的服务器,很快就被监控出来,银行IT部门还要求我们给出详细报告,就是所谓的RCA,Root cause analysis,也就是根源分析。

说了这么多,应该明白银行为什么总Oracle不怕数据泄密了吧。当然,早期的时候也没有其他数据库可以选择,基本上就是Oracle, Sybase,DB2,以及微软的SQLServer。但是银行的数据库要求存储容量大,存储速度快,且可靠性要求极高,不能出现宕机这样的情况,这对银行业务来说是非常致命的。

但随着我国 科技 的发展,最近Oracle的日子不好过了,去年已经关闭了中国研发中心,几百名工程师被遣散,随着我国去IOE的浪潮,越来越多的银行开始考虑国产国产数据库和开源数据库,以前ORACLE独霸天下的日子已经不存在了。

不怕。

物理上是对外隔离的, 架构上也有大量技术手段确保数据的安全。

但是自主可控的趋势不可阻挡。

内网,物理隔离。外网用啥都没用,想搞你不过是时间问题。

国内银行系统用的数据库很多, 核心系统一般都用老牌的商业数据库DB2、Oracle 。其他系统也有用Mysql、MongoDB等其他数据库。至于数据泄露吗?银行当然也怕。但是,就综合考虑来看,目前Oracle等商业数据库依然是最佳选择,将来可能会一步一步提高安全等级。

1、稳定是首要选项

我们都知道,银行是金融系统的重要机构。它们的系统不能够随便出问题,一出问题影响整个 社会 。所以, 对银行来说,稳定是摆在首要位置的 。任何创新都必须以此为前提。而DB2、Oracle这些商业数据库软件,首先能够满足银行的稳定性要求。

而在中国,银行是比较早有信息化的单位。但刚开始,没有任何经验的时候,只能是跟欧美国家学习模仿。外企银行基本都是采用oracle、DB2来做核心系统。中国自然是采用国外相同的方案。大部分银行也就采用了当时比较流行的一整套IBM大型机、小型机硬件,配套DB2、Oracle数据库来做。

2、安全实现手段

①、厂家信誉

一直用DB2、Oracle作为核心数据库。对银行来说,已经是最佳选择。因为,在过去,国产根本就没有什么拿得出手的数据库可以使用。银行自然也只能用业界最好的数据库,而且Oracle、DB2这类大品牌的数据库,在全球范围应用都很广。厂家自然也要注意保障安全,否则出了问题,全世界都受影响。

②、技术控制

除了厂家的信誉保障外,银行在技术上做了很多安全措施。首先, 内外网是物理隔离的 。这样,实时连接数据库的攻击是很难实现的了。其次,在防止数据泄露这一块,银行当然也是有很多的技术手段控制的。至少,外网需要的数据是从内网的网闸摆渡过去的。能摆渡什么数据出去,也是银行严格控制的。最后, 数据库里的敏感数据,也是加密存储的 。同时,网络上还 部署了一系列网络安全设备来 保障系统的安全。

3、银行安全需升级

银行现在虽然有很多的技术手段来保障信息安全,但是,DB2、Oracle始终是国外闭源商业数据库软件。如果软件存在漏洞或者后门,对银行来说也是一个大风险。加上国际形势风云变化,所以,银行也还是会有担心泄密问题,这就意味着银行的安全体系还需要升级。

那该如何升级安全呢?除了系统过等级保护外,也一直在倡导用安全可靠的软件。这就意味着需要逐步从Oracle、DB2等商业软件走向开源、或者国产等数据库软件。不过,银行的稳定性还是不能忽略的,所以, 银行也就只能逐步 探索 ,逐步提升安全。同时,国产数据库发展也还有很长一段路要走 。

总结

总之,早些年银行从稳定和安全出发,Oracle、DB2等商业数据库是最佳选择。这些年,随着国际形势的变化和技术的发展,银行也在逐步提升安全等级。将来也会逐步替换Oracle、DB2等商业数据库软件。

如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢?

在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始就选择正确。两个流行的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品。对这两个开源数据库的高层次概览将会有助于你选择最适合自己需要的。

MySQL

MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括Linux、Apache及Perl/PHP/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如WordPress、Drupal、Zend及phpBB等。

一开始,MySQL的设计目标是成为一个快速的Web服务器后端,使用快速的索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的核心存储引擎与第三方引擎。

MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。

MySQL近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。

现在,基于最初的MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一Michael "Monty" Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。

PostgreSQL

PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。

PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和良好的工程化而闻名,支持高事务、任务关键型应用。PostgreSQL的文档非常精良,提供了大量免费的在线手册,还针对旧版本提供了归档的参考手册。PostgreSQL的社区支持是非常棒的,还有来自于独立厂商的商业支持。

数据一致性与完整性也是PostgreSQL的高优先级特性。PostgreSQL是完全支持ACID特性的,它对于数据库访问提供了强大的安全性保证,充分利用了企业安全工具,如Kerberos与OpenSSL等。你可以定义自己的检查,根据自己的业务规则确保数据质量。在众多的管理特性中,point-in-time recovery(PITR)是非常棒的特性,这是个灵活的高可用特性,提供了诸如针对失败恢复创建热备份以及快照与恢复的能力。但这并不是PostgreSQL的全部,项目还提供了几个方法来管理PostgreSQL以实现高可用、负载均衡与复制等,这样你就可以使用适合自己特定需求的功能了。

以上就是关于开源数据库Sharding技术[2]全部的内容,包括:开源数据库Sharding技术[2]、开源数据库迁移之前需要做哪些功课、开源内存数据库有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9466013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存