搜档网
当前位置:搜档网 › Oracle 数据库方案(RAC)

Oracle 数据库方案(RAC)

Oracle 数据库方案(RAC)
Oracle 数据库方案(RAC)

Oracle数据库设计方案

2013-8-15

目录

1 项目背景 (4)

2 数据库解决方案 (4)

2.1 Oracle Database EE 11g (4)

2.1.1 Oracle 11g DB Enterprise Edition 数据库核心概述 (4)

2.1.2 Oracle数据库管理软件功能 (5)

自动存储管理 (5)

更精简的初始化参数 (5)

超大数据库支持 (6)

ORACLE 跨平台的可传输表空间 (6)

自驱式数据库 (6)

ORACLE DATA PUMP 数据泵 (7)

分布式SQL、网关和分布式事务 (7)

自我管理的数据库 (8)

性能的故障诊断和排除 (8)

内存自动管理 (9)

2.2 Oracle 分区 (9)

2.2.1 Oracle分区概述 (9)

2.2.2 Oracle 分区优势 (9)

使用分区提高可管理性 (9)

使用分区提高性能 (10)

使用分区提高可用性 (11)

2.3 Oracle RAC数据库集群 (11)

2.3.1 Oracle RAC集群概述 (11)

2.3.2 Oracle RAC的优势 (12)

高可用性 (12)

可靠性 (12)

恢复能力 (12)

错误检测 (12)

持续运行 (13)

可伸缩性 (13)

1 项目背景

2 数据库解决方案

Oracle数据库无论从技术成熟度还是从市场占有率来看均具有无以伦比的优势,已成为广大用户的首选,不仅满足以上原则,而且:

Oracle Database 提供了全球首个专为企业网格计算提供动力的软件基础平台架构。Oracle Database 充分利用了硬件在网格计算上的革新,让用户可以在这些标准的硬件组件上非常轻松的安装和配置数据库。

Oracle Database 不但是网格资源、网格服务和网格存储的使用者,而且是企业数据提供者,在其中都充分利用了网格计算的三个特性。Oracle Database 把Oracle Database使用硬件组件-包括计算资源和存储资源-的方式虚拟化,对于在企业网格环境中的不同数据库自动提供集群存储和集群计算资源。作为一个企业数据供应者,Oracle Database 提供了相关的技术,通过这些技术可以让数据库管理员为网格用户和网格应用进行资源汇总、虚拟管理和数据的供应。

同时,在一个企业级的网格环境中,对于安全、高可用性、自我依赖性和可管理性都有很高的要求。Oracle Database 提供了很多卓越的优势来简化用户对企业级网格的管理和操作。

根据客户应用需求,推荐使用Oracle如下产品:

2.1 Oracle Database EE 11g

2.1.1 Oracle 11g DB Enterprise Edition 数据库核心概述

Oracle Database 11g是为企业级网格计算(管理企业信息最灵活和最经济、

最高效的方式)而设计的数据库具有无限可伸缩性与高可用性,并可在集群环境中运行商业软件的互联网数据库,具有400多个领先的数据库功能,在集群技术、高可用性、商业智能、安全性、系统管理等方面都实现了新的突破。

2.1.2 Oracle数据库管理软件功能

自动存储管理

自动存储管理 (ASM) 使存储虚拟化,并且提供了轻松的数据库存储供应。此外,您现在能够使用标准、低成本、模块化的组件来存储所有的 Oracle 数据。您可以使用单个 ASM 来为多个 Oracle 数据库管理存储。ASM 仅要求您管理少量的磁盘组,而不是管理许多数据库文件。一个磁盘组是一组磁盘设备的集合,ASM 将其作为单个逻辑单元来管理。您可以定义一个特别的磁盘组作为数据库的默认磁盘组,Oracle 自动为该数据库分配存储资源,以及创建或删除与该数据库相关的文件。

ASM 还提供了一些存储技术方面的优势—如镜像或逻辑卷管理器 (LVM)。类似于这些技术,ASM 使您能够从单独磁盘设备的集合中创建单一磁盘组。它可以跨磁盘组中的所有设备均衡到该磁盘组的 I/O。还执行条带划分和镜像存储来改善 I/O 性能和数据可靠性。无论何时当存储配置发生变化时,ASM 都将自动再均衡数据库的存储资源。

更精简的初始化参数

Oracle 数据库服务器提供了大量的初始化参数,以在不同环境中使其运行最优。在这些参数中,只有少数需要显式地设为系统默认值,因为其余的参数在绝大多数情况下已经足够。Oracle 数据库 11g 中这些初始化参数被分为基础和高级两大类。管理员可将日常的交互活动限定于 28 组基础参数来完成。高级参数被保留用于使专家型的系统管理员调整 Oracle 的数据库性能,以满足特殊环境下的一些特殊需求。因此,Oracle 数据库 11g 提供了一种集简单性和灵活性的最佳组合—其简单性指可以被作为嵌入式数据库使用;其灵活性指可以满足甚至最具挑战性的需求。

超大数据库支持

Oracle Database 11g 现在支持容纳 8 Exabytes(1EB=1024PB, 1PB=1024TB,)数据的单个数据库。这实际上消除了对合并数据库最大容量限制。还可以将数据存储在更大的文件中,从而减少大型数据库中的文件数。此外,BigfileTablespace 简化了大型数据库中数据文件的管理,使得与拥有大量数据文件相关的可伸缩性问题最小化,并且利用如自动存储管理和 Oracle Managed Files 之类的特性简化了存储管理。

ORACLE 跨平台的可传输表空间

Oracle Database 11g 现在支持异种可传输表空间。这个特性允许抽出表空间,用 RMAN 进行转换(如果需要),然后在不同平台间进行传输(如从 Solaris 或 HP/UX 到 Linux)。许多用户正使用这个特性来将他们的数据库移植到 Linux 上。作为可传输表空间使用的示例,如果观察典型企业中的财务应用程序,您会发现平常它的工作负载非常轻。每小时会有几次插入或者更新操作。但在季度末,它需要大量的资源来生成报表。您能做的是,在平常,在比较强大的资源上运行这个应用程序。在季度末,使用可传输表空间特性将数据转移到更强大的资源上,并在那里进行处理。

自驱式数据库

Oracle Database 11g 提供了一种新的自驱式数据库特性。这个特性利用了Oracle Transportable Tabelspace 和 Oracle Stream,为您提供了一种轻松的方法可以在分布式硬件资源之间共享处理。此外,它提供了一种有效的方法将您的应用程序移植到网格上。

利用单个命令,您可以从一个数据库中取出一系列的表空间,将表空间传输给另一个数据库,重新定义表空间格式(如果第二个数据库是在一个不同的 OS 上),然后将表空间插入到第二个数据库中。在此期间,第一个数据库可能会发生一些变化。Oracle Stream 将已开始捕获这些变化,然后将这些变化与第二个数据库同步。所有这些都利用单个命令来完成。如果第二个数据库在网格上,您

刚刚所做的就是通过单个命令将应用程序移植到网格中。通过简单地将连接串重新嵌入到第二个数据库中,可以在以后将所有运行在第一个数据库上的应用程序移植到第二个数据库中。

ORACLE DATA PUMP数据泵

为保证向 Oracle 数据库中高速加载以及从 Oracle 数据库中高速卸载数据和元数据,Oracle 数据库 11g 引入了一项新功能:数据泵。它可以自动管理和安排批量的、并行的加载和卸载,以实现最大吞吐量,大大地改善了数据输入和输出数据库时的性能。数据泵的基础架构可通过L/SQL 套件的DBMS_DATAPUMP 随时实现。这一技术是 Oracle 新的数据移动实用工具— Data Pump Export 和 Data Pump Import —的基础,与 Oracle 原来的 Export 和Import 相比,性能大大提高。因此,客户的数据转移应用程序就可通过使用数据泵来完成。Oracle 数据库 11g 通过下述四个方面来实现:新的命令行输入和输出客户端(expdp&impdp),这是一个基于 Web 的企业管理器导入/导出界面和客户界面,以及用于处理复杂数据挖掘模式的自定义数据移植界面。数据泵也是Oracle 服务器中其他几项主要功能的基础。包括基于流的复制、逻辑备用和可传输的表空间。

分布式SQL、网关和分布式事务

不是总有可能合并或者共享信息。数据中心的限制或者地理上分散的资源可能阻碍实现此要求。此外,还可能因为安全性问题。您可能不希望第二个数据库上的用户看到整个数据集。或者不能有效地移动数据—例如,您可能有一个一兆兆位的数据集,并且它很少被访问。Oracle Database 11g 提供了一种极其强大的联合技术来帮助您解决这些问题。利用这些技术,可以把数据留在原处,并按需要访问数据。

Oracle 分布式 SQL 允许网格用户有效地访问和集成存储在多个 Oracle 和非 Oracle 数据库中的数据。网关利用分布式 SQL 向网格用户提供透明的远程数据访问,从而依靠其它任何数据库运行它们的应用程序,且无需对应用程序作任何代码修改。在不同数据存储器之间进行集成数据和管理事务的同时,

Oracle 数据库智能地优化执行计划,从而以最有效的方式访问数据。Oracle XA 功能允许网格用户在多个资源之间(如原有的应用程序和第三方应用系统)协调分布式事务。

此外,Oracle Database 11g 还提供了外部表格和 Bfile 特性,它们让您在文件系统上保留数据,同时通过 Oracle 数据库 API 为网格用户提供访问。外部表格为您提供了到文件中结构化数据的 SQL 访问。Bfile 提供到文件中非结构化数据的只读访问。

自我管理的数据库

Oracle 数据库 11g 的自我管理基础架构包括四大组件:自动工作负载仓库、自动维护任务基础架构、服务器生成告警和顾问框架。

性能的故障诊断和排除

构建于 AWR 捕捉的数据之上,Oracle 数据库 11g 包括一项自动诊断功能,名为“自动数据库诊断监测”(ADDM)。ADDM 使 Oracle 数据库 11g 可以诊断自身的性能并确定对发现的问题如何进行解决。ADDM 在每一 AWR 数据捕捉后自动运行,并对该数据进行性能检测。

ADDM 检测到的一些常见故障如下:

●CPU 瓶颈

●不良的连接管理

●过多的句法分析

●锁争用

●IO 容量

●低于Oracle 内存结构的容量大小,如PGA、缓冲器缓存和记录缓冲器等。

●高负载的SQL 语句

●高PL/SQL 和Java 时间

●高检测点负载,如小规模的日志文件、过多的MTTR 设置

●RAC 的特定问题

内存自动管理

内存是一项宝贵的系统资源,管理员常常为如何更好地优化其使用而花费大量时间。Oracle 数据库 11g 中针对内存管理的一大主要自我管理功能即为:自动共享内存管理。该功能对Oracle 数据库中共享内存进行自动化管理,将管理员从人工配置共享内存组件的工作中解放出来。在 Oracle 数据库 11g 中,系统管理员只需使用一新的参数 MEMORY_TARGET,指定某一实例可用的内存数量。然后数据库服务器就可自动在不同组件中按要求分配内存。自动共享内存管理功能基于数据库内部的高级启发式技术,可以监测内存分配并根据工作负载需求进行变化。

2.2 Oracle 分区

2.2.1 Oracle分区概述

分区能够将表、索引或按索引组织的表进一步细分为小块。这些数据库对象的小块称为分区。每个分区都有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,分区后的对象具有多个小块,这些小块既可以集中管理,也可以单独管理。这就使管理员在管理分区后的对象时具有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与未分区的表完全相同;在使用SQL DML 命令访问分区后的表时,无需任何修改。

2.2.2 Oracle 分区优势

使用分区提高可管理性

通过 Oracle 分区,可将表和索引分成更多、更小的可管理单元,从而使数据库管理员能以“分而治之”的方式管理数据。使用分区,维护操作可集中在表的特定部分。例如,数据库管理员可以压缩表中包含(例如)2006 年数据的单个分区,而不是压缩整个表。对于整个数据库对象的维护操作,可以在每个分区的基础上进行,从而将维护工作分解成更容易管理的小块。

利用分区提高可管理性的一个典型用法是支持数据仓库中的“滚动视窗”加载进程。假设数据库管理员每周都要向表中加载新数据,则可以对该表进行范围分区,使每个分区包含一周的数据。这样,加载进程就只需添加新的分区。添加一个分区的操作比修改整个表的效率高很多,因为数据库管理员不需要修改任何其他分区。

使用分区的另一个优势是,在移除数据时可以删除整个分区,与单独删除每一行相比,这个操作非常高效、快速。

使用分区提高性能

通过限制要检查或要操作的数据量,分区提供了许多性能优势。这些特性包括:

分区修整:分区修整(又称为分区清除)是使用分区提高性能的最简单、最有价值的手段。分区修整通常能够将查询性能提高几个数量级。例如,假设某个应用程序包含一个存储订单历史记录的 ORDERS 表,并且该表已按周进行了分区。查询一周的订单只需访问 ORDERS 表的一个分区。如果该表包含两年的历史记录,则这个查询只需要访问一个分区而不是 104 个分区。仅仅由于分区修整的作用,该查询的执行速度有可能快100 倍。分区修整能与所有其他 Oracle 性能特性协作。Oracle 公司将把分区修整技术与索引技术、连结技术或并行访问方法结合使用。

分区智能联接:分区可以通过称为分区智能联接的技术提高多表联接的性能。如果两个表要联接在一起,并且至少有一个表要用联接键来分区,则可以使用分区智能联接。分区智能联接可将联接表的大型联接分解成“相同”数据集的较小联接。这里,“相同”的定义是在联接两端包含完全相同的分区键值集,从而确保只有这些“相同”数据集的联接才会产生结果,并且无需考虑其他数据集。Oracle 可以使用已经进行(物理)同类分区的表进行联接,或者在运行时透明地重新分配(相当于“重新分区”)一个表来创建与其他表的分区相匹配的分区类型相同的数据集,从而在较短的时间内完成整个联接。这就为串行和并行执行带来了显著的性能改善。

使用分区提高可用性

分区的数据库对象具有分区独立性。该分区独立性特点是高可用性策略的一个重要部分。例如,如果分区表的一个分区不可用,但该表的所有其他分区仍然保持联机并可用。那么,应用程序可以继续对该分区表执行查询和事务处理,只要不访问那个不可用的分区,这些数据库操作都能够成功运行。

数据库管理员可以指定各分区存放在不同的表空间里,从而允许管理员在每个单独分区上执行备份和恢复操作(独立于表的其他分区)。因此,在发生灾难的情况下,可以只为数据库恢复包含活动数据的分区,之后在方便的时间内再恢复其他分区中的非活动数据。这样,就减少了系统停机时间。

此外,分区还可以减少计划停机时间。由于分区改善了性能,这使数据库管理员能够在相对较小的批处理窗口中完成大型数据库对象的维护操作。

2.3 Oracle RAC数据库集群

2.3.1 Oracle RAC集群概述

Oracle Real Application Clusters (RAC) 允许 Oracle 数据库在一个服务器池中以不变的方式运行任何打包或自定义的应用程序。这提供了最高级别的可用性和最灵活的可伸缩性。

如果服务器池中的某台服务器发生故障,Oracle 数据库仍可在其余服务器上继续运行。如果您需要更多处理能力,只需再向池中添加一台服务器,而无需用户脱机。为了保持低成本,即使最高端的系统也可以使用标准的商用部件构建。

Oracle Real Application Clusters 为 Oracle 的私有云架构提供了基础。Oracle RAC 技术可为这一低成本硬件平台提供支持,使其能够提供优质的服务,并达到或超出昂贵的大型SMP 计算机所能提供的可用性和可伸缩性等级。通过显著降低管理成本和提供出色的管理灵活性,Oracle RAC 为私有云提供了强有力的支持。除此之外,Oracle RAC 11g 第 2 版还支持客户构建动态私有云基础架构。

2.3.2 Oracle RAC的优势

高可用性

Oracle Real Application Clusters 11g 为数据中心的高可用性奠定了基础。它也是 Oracle 最高可用性架构不可或缺的一部分,为实现数据中心的最高可用性提供了最佳实践。Oracle Real Application 还为高可用性数据管理提供了以下至关重要的关键特性:

可靠性

Oracle 数据库以其可靠性而著称。Oracle Real Application Clusters 消除了数据库服

务器单点故障问题,从而使可靠性更上一层楼。如果一个实例发生故障,服务器池中的其

余实例仍将保持运行状态。Oracle Clusterware 可监视所有 Oracle 进程,并能立即重启任何

生故障的组件。

恢复能力

Oracle 数据库包含的许多特性有助于数据库轻松地从各类故障中恢复。如果Oracle RAC 数据库中的一个实例出现故障,服务器池中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知 (FAN)、快速连接故障切换 (FCF) 和透明应用程序故障切换 (TAF) 这三个功能,应用程序可以轻松地掩藏组件故障,使用户无法察觉。

错误检测

Oracle Clusterware 可自动监视 Oracle RAC 数据库和其他 Oracle 进程(ASM、监听器等),并快速诊断环境中的问题。它还经常能在用户察觉之前自动完成故障恢复。利用快速应用程序通知 (FAN),应用程序即可在集群组件出现

故障时立即得到通知,以便在故障显现之前重新发布事务。

持续运行

Oracle Real Application Clusters 可在计划内和计划外停机期间提供持续的服务。如一台服务器(或一个实例)出现故障,数据库仍将保持运行状态,应用程序仍可访问数据。大多数数据库维护操作均可在不停机的情况下完成,并对用户保持透明。许多其他的维护任务都可以通过滚动方式完成,从而能最大限度地减少(甚至避免)应用程序停机。快速应用程序通知和快速连接故障切换可帮助应用程序满足对服务级别的要求。

可伸缩性

Oracle Real Application Clusters 提供了独一无二的应用程序伸缩技术。过去,当数据库服务器容量不足时,我们会使用容量更大的新服务器取而代之。随着服务器容量的增加,其成本也日益攀升。但 Oracle RAC 为数据库提供了增加容量的其他方法。原先运行于大型 SMP 服务器上的应用程序可迁移到小型服务器池中。或者,您也可以选择保留对现有硬件的投资,在服务器池中添加新的服务器(或创建一个服务器池)来增加容量。通过 OracleClusterware 和 Oracle RAC 向服务器池中添加服务器时并不需要停机,并且,一旦启用新的实例,应用程序就可立即享有新增的容量。服务器池中的所有服务器必须使用同一操作系统和相同版本的 Oralce 软件,但不必具备相同的容量。如今,根据自己的需要选择服务器池的客户通常会选用特性不同(略有差别)的服务器。

大型ORACLE数据库优化设计方案

大型ORACLE数据库优化设计方案 本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案。 对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级 包括硬件平台,第二级调整是ORACLE RDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。下面从九个不 同方面介绍ORACLE数据库优化设计方案。 一.数据库优化自由结构OFA(Optimal flexible Architecture) 数据库的逻辑配置对数据库性能有很大的影响,为此,ORACLE公司对表空间设计提出了一种优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开、一般数据和索引数据分开、低活动表和高活动表分开等等。数据库逻辑设计的结果应当符合下面的准则:(1)把以同样方式使用的段类型存储在一起; (2)按照标准使用来设计系统;(3)存在用于例外的分离区域;(4)最小化表空间冲突;(5)将数 据字典分离。 二、充分利用系统全局区域SGA(SYSTEM GLOBAL AREA) SGA是oracle数据库的心脏。用户的进程对这个内存区发送事务,并且以这里作为高速缓存读取命中的数据,以实现加速的目的。正确的SGA大小对数据库的性能至关重要。SGA 包括以下几个部分: 1、数据块缓冲区(data block buffer cache)是SGA中的一块高速缓存,占整个数据库大小 的1%-2%,用来存储从数据库重读取的数据块(表、索引、簇等),因此采用least recently used (LRU,最近最少使用)的方法进行空间管理。 2、字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表 说明和权限,它也采用LRU方式管理。 3、重做日志缓冲区。该缓冲区保存为数据库恢复过程中用于前滚操作。 4、SQL共享池。保存执行计划和运行数据库的SQL语句的语法分析树。也采用LRU算法 管理。如果设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。 另外,SGA还包括大池、JAVA池、多缓冲池。但是主要是由上面4种缓冲区构成。对这

生产数据库架构改造方案

生产数据库性能优化方案(初稿) 1.背景 生产数据库上线一段时间后由于数据量远大于预期,导致数据库性能低下而影响正常业务,故需要对数据库进行性能优化。 2.现状 当前数据库结构如下图所示: 图2-1 系统结构示意图 上游三个数据源通过DI工具以定时任务的方式将上游数据抽取到基础数据库中(红色部分),从基础库到下游目标库则是通过用户操作应用程序将基础数

据库中的数据调度到目标数据库中。根据目前对数据量的统计基础库约为400GB+的数据总量。 目前基础数据库的性能低下,主要表现于定时抽取任务执行时间过长,任务间的时间间隔变短;应用执行数据调度时间过长,导致应用长时间处于无响应状态。 3.分析 基础数据库获取上游数据时,数据传输量较大,数据库写操作频繁,操作系统层表现于数据文件所在磁盘写IO高,并持续时间长。 由于基础库放数据到下游数据库是人为操作,数据库读操作频繁,操作系统层表现于数据文件所在磁盘读IO高,且经常会与DI定时任务同时执行,通过系统监控发现磁盘出现大量IO等待状态。 图3-1 磁盘IO状态

图3-2 磁盘等待状态 由于基础库保存原始数据并不对数据进行处理,所以CPU消耗很低,从监控看CPU不视为性能瓶颈点。 图3-3 CPU使用率 从以上分析可以判断数据库操作性能低下主要在高磁盘IO时造成IO挣用较

大导致拖慢整体性能。故本次优化将重点放在解决磁盘IO挣用问题和提高磁盘IOPS上。 4.优化方案 本着应用层变动最小的原则,为解决基础库磁盘IO性能低下问题,我们将从三个方面着手进行,即:优化数据库物理架构、优化DI任务执行时间和优化数据库数据文件所在Path的磁盘VG结构。 4.1.优化数据库物理架构 根据基础库的业务特点,这里将对基础库的读写操作进行分离(即:读、写分离)。这样做的好处在于可以最大限度规避数据库读、写同时操作所带来的磁盘IO挣用问题。调整后的架构如下图: 数据库采用主/从模式,使用binlog复制方式实现数据同步。由于考虑到大数据量复制可能带来的同步延迟问题,实现时需要注意优化复制线程参数。4.2.优化DI任务执行时间 为了避免多任务同时写一个数据库产生磁盘写IO过高的问题,需要对每一

大数据库建设技术方案设计

农村集体建设用地使用权、宅基地使用权确权项 目数据库建设技术方案

一、地籍数据库建设 (一)、成果数据库建设的内容 农村地籍调查成果数据库建设是在农村集体建设用地和宅基地使用权地籍调查的基础上,按照相关数据库标准的要求,建立集空间信息和属性信息为一体的土地调查成果数据库。 农村集体建设用地和宅基地使用权数据库内容: 1、农村地籍数据库包括地籍区、地籍子区、土地权属、土地利用、基础地理等数据。 2、土地权属数据包括宗地的权属、位置、界址、面积等空间和属性信息; 3、土地利用数据包括行政区(含行政村)图斑的权属、地类、面积、界线等; 4、基础地理信息数据包括数学基础、境界、测量控制点、居民地、交通、水系、地理名称等。 (二)成果数据库建设要求 1、严格遵循数据库标准 农村集体建设用地和宅基地使用地籍调查数据库建设以《城镇地籍数据库标准》为基础,结合《宗地代码编制规则(试行)》等新的技术规范和要求,对相关要素属性结构表进行扩展,以满足农村地籍调查成果管理要求。 2、坐标系统

数据库建设采用的坐标系统为山西省全省及区域地籍测量控制及服务体系定制的独立坐标系统。 3、面积计算 农村集体建设用地和宅基地使用权宗地面积按高斯-克吕格投影面面积计算。 4、数据库逻辑结构 农村集体建设用地和宅基地使用权调查数据库由空间数据库和非空间数据库组成。空间数据由矢量数据和栅格数据组成,主要包括:基础地理数据、居民地数据、土地权属数据等。非空间数据由权属信息调查数据组成。农村集体建设用地和宅基地使用权调查数据库逻辑结构见图1。 空间数据库 农村集 体建设 用地和 宅基地 使用权 非空间数据库 扫描文件 调查表格 权属资料 其他数据 土地权属数据 居民地数据 基础地理数据 图1 农村集体建设用地和宅基地使用权调查数据库逻辑结构图

微服务系统和数据库设计方案

微服务系统和数据库设计方案 1.微服务本质 微服务架构从本质上说其实就是分布式架构,与其说是一种新架构,不如说是一种微服务架构风格。 简单来说,微服务架构风格是要开发一种由多个小服务组成的应用。每个服务运行于独立的进程,并且采用轻量级交互。多数情况下是一个HTTP的资源API。这些服务具备独立业务能力并可以通过自动化部署方式独立部署。这种风格使最小化集中管理,从而可以使用多种不同的编程语言和数据存储技术。 对于微服务架构系统,由于其服务粒度小,模块化清晰,因此首先要做的是对系统整体进行功能、服务规划,优先考虑如何在交付过程中,从工程实践出发,组织好代码结构、配置、测试、部署、运维、监控的整个过程,从而有效体现微服务的独立性与可部署性。 本文将从微服务系统的设计阶段、开发阶段、测试阶段、部署阶段进行综合阐述。 理解微服务架构和理念是核心。 2.系统环境

3.微服务架构的挑战 可靠性: 由于采用远程调用的方式,任何一个节点、网络出现问题,都将使得服务调用失败,随着微服务数量的增多,潜在故障点也将增多。 也就是没有充分的保障机制,则单点故障会大量增加。 运维要求高: 系统监控、高可用性、自动化技术 分布式复杂性: 网络延迟、系统容错、分布式事务 部署依赖性强: 服务依赖、多版本问题 性能(服务间通讯成本高): 无状态性、进程间调用、跨网络调用 数据一致性: 分布式事务管理需要跨越多个节点来保证数据的瞬时一致性,因此比起传统的单体架构的事务,成本要高得多。另外,在分布式系统中,通常会考虑通过数据的最终一致性来解决数据瞬时一致带来的系统不可用。 重复开发: 微服务理念崇尚每个微服务作为一个产品看待,有自己的团队开发,甚至可以有自己完全不同的技术、框架,那么与其他微服务团队的技术共享就产生了矛盾,重复开发的工作即产生了。 4.架构设计 4.1.思维设计 微服务架构设计的根本目的是实现价值交付,微服务架构只有遵循DevOps理念方可进行的更顺畅,思维方式的转变是最重要的。

高可用数据库架构设计完整版

高可用数据库架构设计标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

MySQL数据库高可用架构设计 目标: MySQL 数据库服务器不受单点宕机的影响,即时 A 服务器挂掉或者磁盘损坏物理故障导致数据库不可用也不会导致整个系统处于不可用状态,因为还有另外一台备用的数据库服务器可以提供服务。派宝箱采取方案双机主从热备 (Mater Slave 模式) 背景: 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。这样做的好处: 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。对于异地热备,尤其适合灾备。 原理: MySQL Replication双机热备 + 每天自动sqldump出物理文件备份 双机主从自动热备实现数据库服务的高可用加sqldump导出数据文件的方式备份。双重保险! 可能遇到的问题与挑战:

主从数据库数据一致性问题 宕机后主从切换的问题 1 复制概述 Mysql内建的复制功能(MySQL REPLICATION)是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。 mysql支持的复制类型: (1):基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。 一旦发现没法精确复制时,会自动选着基于行的复制。 (2):基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从开始支持(3):混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。 . 复制解决的问题

(完整版)数据架构规划

数据架构规划 一.当前架构 结合研发二部数据量最大的校讯通产品来描述,其他的产品在性能上出现瓶颈,可以向校讯通靠拢。 数据库整体架构:目前校讯通产品根据用户量的多少以及数据库服务资源的繁忙程度,横向采用了历史库+当前库的分库架构或者单一的当前库架构,其中历史库只作为web平台读数据库,纵向结合了applications的 memcache+Sybase ASE12.5传统永久磁盘化数据库架构。 数据模型架构:原则上采用了一事一地的数据模型(3NF范式),为了性能考虑,一些大数据量表适当的引用了数据冗余,根据业务再结合采用了当前表+历史表的数据模型。 以下就用图表来进行当前数据架构的说明: 横向分库数据库架构图:

纵向app layer+memcache layler+disk db layer图:

其中web层指的是客户端浏览器层,逻辑上:app层指的是应用服务层,mc 层指的是memcache的客户端层,ms层指的是memcache的服务层,db层指的是目前永久磁盘化的数据库层,当然在物理机器上可能app层跟mc层,ms层是重叠的部署在相同服务器上。 数据模型架构图:

其中以上数据模型中除了少数几张表外其他的都有历史表存在,当然有很多表是没在这个模型图中的,这部分是核心数据模型。这部分模型对象中也包括了一些冗余性的设计,比如用户中有真实姓名,特别是不在这个模型内,由模型核心表产生的一些统计报表,为了查询的性能冗余了合理一些学校名称,地区名称等方面的设计。 二.劣势现象 1.流水表性能瓶颈

当前架构的性能瓶颈集中在流水表的访问上,最大流水表的记录量达到了超5亿级别,这是由于目前外网在用的sybase数据库系统版本,没有采取很好的关于分区的技术。曾经有过把流水表进行物理水平分割,把不同月份的数据分割放在不同的物理表上的模型改造设想,碍于产生的应用程序修改工作量大,老旧数据迁移的麻烦,再加上进行了从单库架构改造到分库架构后,数据库性能瓶颈就不是特别突出。所以模型改造这部分工作没展开。 无论是单库或是分库的模式,出现平台访问数据库的性能瓶颈依然集中在大流水表上,在访问高峰高并发量情况下,短信的流水表进程堵塞,数据库服务 I/O ,CPU的资源耗费达到顶点,在服务器硬件环境不是特别理想情况下,出现了一定概率造成用户访问缓慢甚至觉得页面无法响应现象,造成了用户体念不良影响。 2. 运营维护难点 1)历史数据清理运维工作 为了存储充分利用,为了性能的提升,需要定期进行不再使用的历史数据清理, 由于清理的数据量庞大,传统的数据清理方法根本不可能保证一个晚上有效清理完毕,确保平台第二天正常的运行。虽然目前已经实行了比较高效且可行的数据清理方法,但是每次实行都需要晚上到通宵进行处理,使得数据清理的运维

数据库架构规划方案

数据库架构规划方案

架构的演变 架构演变一定是根据当时要求的场景、压力下性能的需要、安全性、连续性的要求、技术的发展..... 我把架构的发展分为大概4个阶段: 1.单机模式 IT建设初期,高速建设阶段,大家要做的只有一件事,我需要什么构建什么,我需要ERP我买软件,需要HIS买HIS,这个时期按需构建大量的系统基本在这个时期产生,当然那个时候也没什么高可用的要求。 2.双机热备和镜像 基本是20年前的技术了,在高速构建后,一堆的系统运行中,用户发现我们的核心业务如果坏掉业务受影响,停机几个小时做恢复这是无法接受的,那么双机热备或镜像,Active-Standby的模式出现,这样一台机器工作,一台备用坏了在短时间可以接管业务,造成的损失会低很多!

那么问题也很明显,备机资源浪费,依赖存储,数据还是单点,成本较高。产品也很多:RoseHA/RoseMirrorHA、NEC ExpressCluster、微软MSCS、Symantec VCS、Legato、RHCS 太多太多了。 随后为了解决数据单点的问题有出现了存储的主备,存储的双活这厂商也太多了,这里就不介绍了 基本上传统企业依然停留在第一和第二阶段,也就是要么单机,要么双机热备 3.节点多活

随着业务量越来越大,数据量不断飚升,系统高效性的矛盾显现出来,系统卡慢、报表、接口业务无法分离OLAP OLTP业务混合导致系统锁情况严重,资源消耗极其庞大,光靠升级硬件已经无法满足要求,横向扩展已经成为大势所趋。 同时切换时间、备机无法启动的问题也困扰着用户。 那么节点多活,多台机器同时对外提供访问的技术登上舞台,代表的ORACLE RAC、微软ALWAYSON 、MOEBIUS集群 多活的两种模式也是从第二带架构的演变 oracle rac 把双机热备的辅助节点变的可以访问,关键点数据在多节点内存中的调配 Microsoft awo、Moebius 则是把镜像的辅助节点变的可以访问,关键点数据多节点同步 这样横向扩展来分担压力,并且可以在业务上进行分离。 4.分布式架构 分布式架构真的不知道从何说起,概念太大,每个人理解的都不一样,只能意会不能言传: 比如说一份数据分开存成多份

高可用数据库架构设计

MySQL数据库高可用架构设计 目标: MySQL 数据库服务器不受单点宕机的影响,即时A 服务器挂掉或者磁盘损坏物理故障导致数据库不可用也不会导致整个系统处于不可用状态,因为还有另外一台备用的数据库服务器可以提供服务。派宝箱采取方案双机主从热备(Mater Slave 模式) 背景: 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。这样做的好处: 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。对于异地热备,尤其适合灾备。 原理: MySQL Replication双机热备+ 每天自动sqldump出物理文件备份 双机主从自动热备实现数据库服务的高可用加sqldump导出数据文件的方式备份。双重保险!

可能遇到的问题与挑战: 主从数据库数据一致性问题 宕机后主从切换的问题 1 复制概述 Mysql内建的复制功能(MySQL REPLICATION)是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。 1.1 mysql支持的复制类型:

分布式数据库设计方案

1.大型分布式数据库解决方案 企业数据库的数据量很大时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响最终用户的体验;当数据量很大的时候,对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响数据库的可用性和易管理性。 分区表技术 让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理能力,达到优化查询性能的目的。但是分区表只能把数据分散到同一机器的不同磁盘中,也就是还是依赖于一个机器的硬件资源,不能从根本上解决问题。 分布式分区视图 分布式分区视图允许用户将大型表中的数据分散到不同机器的数据库上,用户不需要知道直接访问哪个基础表而是通过视图访问数据,在开发上有一定的透明性。但是并没有简化分区数据集的管理、设计。用户使用分区视图时,必须单独创建、管理每个基础表(在其中定义视图的表),而且必须单独为每个表管理数据完整性约束,管理工作变得非常复杂。而且还有一些限制,比如不能使用自增列,不能有大数据对象。对于全局查询并不是并行计算,有时还不如不分区的响应快。

库表散列 在开发基于库表散列的数据库架构,经过数次数据库升级,最终采用按照用户进行的库表散列,但是这些都是基于自己业务逻辑进行的,没有一个通用的实现。客户在实际应用中要投入很大的研发成本,面临很大的风险。 面对海量数据库在高并发的应用环境下,仅仅靠提升服务器的硬件配置是不能从根本上解决问题的,分布式网格集群通过数据分区把数据拆分成更小的部分,分配到不同的服务器中。查询可以由多个服务器上的CPU、I/O来共同负载,通过各节点并行处理数据来提高性能;写入时,可以在多个分区数据库中并行写入,显著提升数据库的写入速度。

数据库常用架构方案

数据库常用架构方案

一、数据库架构原则 (3) 二、常见的架构方案 (3) 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 (3) 方案二:双主架构,两个主库同时提供服务,负载均衡 (4) 方案三:主从架构,一主多从,读写分离 (5) 方案四:双主+主从架构,看似完美的方案 (6) 三、一致性解决方案 (7) 第一类:主库和从库一致性解决方案: (7) 第二类:DB和缓存一致性解决方案 (9) 四、总结 (11) 1、架构演变 (11) 2、个人见解 (11)

?高可用 ?高性能 ?一致性 ?扩展性 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 jdbc:mysql://vip:3306/xxdb 1、高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。 这个过程对业务层是透明的,无需修改代码或配置。 2、高性能分析:读写都操作主库,很容易产生瓶颈。大部分互联网应用读多写少,读 会先成为瓶颈,进而影响写性能。另外,备库只是单纯的备份,资源利用率50%,这点方案二可解决。 3、一致性分析:读写都操作主库,不存在数据一致性问题。

4、扩展性分析:无法通过加从库来扩展读性能,进而提高整体性能。 **5、可落地分析:**两点影响落地使用。第一,性能一般,这点可以通过建立高效的索引和引入缓存来增加读性能,进而提高性能。这也是通用的方案。第二,扩展性差,这点可以通过分库分表来扩展。 方案二:双主架构,两个主库同时提供服务,负载均衡 jdbc:mysql://vip:3306/xxdb 1、高可用分析:高可用,一个主库挂了,不影响另一台主库提供服务。这个过程对业务层是透明的,无需修改代码或配置。 2、高性能分析:读写性能相比于方案一都得到提升,提升一倍。 3、一致性分析:存在数据一致性问题。请看下面的一致性解决方案。 4、扩展性分析:当然可以扩展成三主循环,但笔者不建议(会多一层数据同步,这样同步的时间会更长)。如果非得在数据库架构层面扩展的话,扩展为方案四。 5、可落地分析:两点影响落地使用。第一,数据一致性问题,一致性解决方案可解决问题。第二,主键冲突问题,ID统一地由分布式ID生成服务来生成可解决问题。

互联网数据库架构设计

互联网数据库架构设计

一、58同城数据库架构设计思路 (1)可用性设计 解决思路:复制+冗余 副作用:复制+冗余一定会引发一致性问题 保证“读”高可用的方法:复制从库,冗余数据,如下图 带来的问题:主从不一致 解决方案:见下文 保证“写”高可用的一般方法:双主模式,即复制主库(很多公司用单master,此时无法保证写的可用性),冗余数据,如下图

带来的问题:双主同步key冲突,引不一致 解决方案: a)方案一:由数据库或者业务层保证key在两个主上不冲突 b)方案二:见下文 58同城保证“写”高可用的方法:“双主”当“主从”用,不做读写分离,在“主”挂掉的情况下,“从”(其实是另外一个主),顶上,如下图 优点:读写都到主,解决了一致性问题;“双主”当“主从”用,解决了可用性问题 带来的问题:读性能如何扩充?解决方案见下文

(2)读性能设计:如何扩展读性能 最常用的方法是,建立索引 建立非常多的索引,副作用是: a)降低了写性能 b)索引占内存多了,放在内存中的数据就少了,数据命中率就低了,IO次数就多了但是否想到,不同的库可以建立不同的索引呢?如下图 TIPS:不同的库可以建立不同索引 主库只提供写,不建立索引 online从库只提供online读,建立online读索引 offline从库只提供offline读,建立offline读索引 提高读性能常见方案二,增加从库

上文已经提到,这种方法会引发主从不一致问题,从库越多,主从时延越长,不一致问题越严重 这种方案很常见,但58没有采用 提高读性能方案三,增加缓存 传统缓存的用法是: a)发生写请求时,先淘汰缓存,再写数据库 b)发生读请求时,先读缓存,hit则返回,miss则读数据库并将数据入缓存(此时可能旧数据入缓存),如下图

高可用数据库架构设计

高可用数据库架构设计 Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT

MySQL数据库高可用架构设计 目标: MySQL 数据库服务器不受单点宕机的影响,即时 A 服务器挂掉或者磁盘损坏物理故障导致数据库不可用也不会导致整个系统处于不可用状态,因为还有另外一台备用的数据库服务器可以提供服务。派宝箱采取方案双机主从热备 (Mater Slave 模式) 背景: 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。这样做的好处: 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。对于异地热备,尤其适合灾备。 原理: MySQL Replication双机热备 + 每天自动sqldump出物理文件备份 双机主从自动热备实现数据库服务的高可用加sqldump导出数据文件的方式备份。双重保险! 可能遇到的问题与挑战: 主从数据库数据一致性问题 宕机后主从切换的问题 1 复制概述 Mysql内建的复制功能(MySQL REPLICATION)是构建大型,高性能应用程序的基础。将Mysql 的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服

务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。 mysql支持的复制类型: (1):基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。 一旦发现没法精确复制时,会自动选着基于行的复制。 (2):基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从开始支持(3):混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。 . 复制解决的问题 MySQL复制技术有以下一些特点: (1) 数据分布 (Data distribution )(2) 负载平衡(load balancing) (3) 备份(Backups) (4) 高可用性和容错行 High availability and failover 复制如何工作? 整体上来说,复制有3个步骤: (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); (2) slave将master的binary log events拷贝到它的中继日志(relay log); (3) slave重做中继日志中的事件,将改变反映它自己的数据。 下图描述了复制的过程: 该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。下一步就是slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。此外,在master中也有一个工作线程:和其它MySQL的连接一样,slave在master中打开一个连接也会使得master开始一个线程。复制过程有一个很重要的限制——复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。 2 .复制配置

研发团队的总体架构设计方案

研发团队的总体架构设计方案 写在前面 企业总体架构是什么,有什么用,具体怎么做呢?以我曾任职的公司为案例,一起来探讨这个问题。这家公司当时有 200 位研发人员和 200 多台服务器,我刚进这家公司时,他们的系统就已经玩不下去了,总是出现各种问题,例如日常发布系统时或访问量稍微过大时,系统就会出现很多故障,而且找不到故障发生的根本原因。

我进这家公司后的主要任务就是对这个系统进行升级改造,花了一个半月的时间写了那份企业总体架构文档,文档共有 124 页,直接指导了之后的技术改造,下图是那份文档的目录。 一、企业商务模型 企业商务模型的内容主要包括主营业务、商务模式、商务主体、竞品分析、组织架构、商务运作模型和业务流程等。 主营业务即公司做什么业务,商业模式即公司怎么赚钱,商务主体即哪几个人在一起做这门生意,竞品分析即了解竞争对手的情况,组织架构即公司部门是怎么划分的。组织架构图中标出人数,根据系统与业务之间对应关系,可以了解系统中哪些模块使用频率高,以及业务与其对应模块的复杂度。商务运作模型即公司是如何运作的,售前做计划,找供应商把东西买进来后,经过服务和结算,再卖给我们的经销商和采购商,使我们获得利润,售后进行大数据分析最后又指导着我们的售前,整个过程形成良性循环。可以把一家公司想象成一台机器,输进去的是钱,转一转后,又能够生出更多的钱出来。

最后是业务流程和更多业务资料下载,业务流程包括预订流程、订单处理流程、产品供应流程、财务结算流程、账户管理流程。企业商务模型的建立,指导着整个应用系统模型的建立,毕竟系统是为业务服务的。 二、架构现状 架构现状的内容主要包括:功能架构、应用架构、数据设计和物理架构。 功能架构 功能架构主要包括功能、角色和权限三部分。功能是企业服务,用户使用的每一个功能,就是企业的每一个服务。角色是用户操作的归类,功能与角色的对应关系即权限。了解系统架构的现状,从功能架构开始。

企业数据库架构建设规划方案

企业数据库架构建设规划方案

目录 一、架构的演变 (3) 二、单机模式 (3) 三、双机热备和镜像 (3) 四、节点多活 (5) 五、分布式架构 (6) 六、其他技术漫谈 (8) 七、如何选架构 (9) 八、总结 (12)

一、架构的演变 架构演变一定是根据当时要求的场景、压力下性能的需要、安全性、连续性的要求、技术的发展..... 我把架构的发展分为大概4个阶段: 二、单机模式 IT建设初期,高速建设阶段,大家要做的只有一件事,我需要什么构建什么,我需要ERP我买软件,需要HIS买HIS,这个时期按需构建大量的系统基本在这个时期产生,当然那个时候也没什么高可用的要求。 三、双机热备和镜像

基本是20年前的技术了,在高速构建后,一堆的系统运行中,用户发现我们的核心业务如果坏掉业务受影响,停机几个小时做恢复这是无法接受的,那么双机热备或镜像,Active-Standby的模式出现,这样一台机器工作,一台备用坏了在短时间可以接管业务,造成的损失会低很多! 那么问题也很明显,备机资源浪费,依赖存储,数据还是单点,成本较高。产品也很多:RoseHA/RoseMirrorHA、NEC ExpressCluster、微软MSCS、Symantec VCS、Legato、RHCS 太多太多了。 随后为了解决数据单点的问题有出现了存储的主备,存储的双活这厂商也太多了,这里就不介绍了。

基本上传统企业依然停留在第一和第二阶段,也就是要么单机,要么双机热备 四、节点多活 随着业务量越来越大,数据量不断飚升,系统高效性的矛盾显现出来,系统卡慢、报表、接口业务无法分离OLAP OLTP业务混合导致系统锁情况严重,资源消耗极其庞大,光靠升级硬件已经无法满足要求,横向扩展已经成为大势所趋。

数据库系统建设方案设计

校园一卡通项目数据库安全系统 建设方案书

一、系统现状概述 校园一卡通在学校也称为校园卡系统,是数字校园的有机组成部分,校园一卡通工程是数字校园的标志性工程和前导性工程。校园卡是将广大师生员工与数字校园有机连接在一起的最有效的媒介,实现了“一卡在手,走遍校园”,校园卡是校园数字化的重要形象和重要标志之一。 校园一卡通系统是架构在校园网上,以感应式射频IC卡为媒介,综合提供身份识别与电子支付服务功能的系统平台,以及其架构在此平台上的各种信息化应用系统。 核心系统都运行在Oracle数据库之上,为整个系统提供稳定性基础。Oracle数据库系统是一个较为复杂的数据库,作为校园一卡通的基础数据存储和运行平台,存储着核心数据资料和基本业务逻辑,其稳定性与否直接关系着校园一卡通的对外服务能力。 以下通过介绍数据各种主流数据保护和恢复的技术,根据业务系统的用户规模大小和用户的数据库维护能力以及项目投入成本,提出我们的建议解决方案。 1.1双机热备系统特点与优势 双机热备包括广义与狭义两种。 从广义上讲,就是服务器高可用应用的另一种说法,英译为:high available,而我们通常所说的热备是根据意译而来,同属于高可用畴,而双机热备只限定了高可用中的两台服务器。热备软件是用来解决一种不可避免的计划和非计划系统宕机问题的软件解决方案,当然也有硬件的。是构筑高可有集群系统的基础软件,对于任何导致系统宕机或服务中断的故障,都会触发软件流程来进行错误判定、故障隔离、以及通地联机恢复来继续执行被中断的服务。在这个过程中,用户只需要经受一定程度可接受的时延,而能够在最短的时间恢复服务。 从狭义上讲,双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式

数据中心建设项目数据库设计开发方案及实施方案

数据中心建设项目数据库设计开发方案及实施方案 本项目中,数据库设计与建设包括用于数据中心进行数据存储、交换、应用的数据中心数据库,和用于数据统计、分析、挖掘的数据仓库的设计与建设。 本数据中心数据库的建设要满足金信工程的相关设计要求,满足上级工商、质监、知识产权等市场监管部门的工作要求。 数据中心顾名思义,是专注于数据处理和服务的中心,旨在建立数据采集、更新、管理、使用机制,加快系统内部信息交流与反馈,为公众服务和相关政府部门数据交换建立基础,为工商、质监、知识产权部门各级管理人员提供决策支持服务。 数据中心应用功能与业务处理功能的不同之处在于数据中心是以数据为管理对象,而业务应用系统以业务为管理对象。数据中心将从业务应用系统采集到的数据进行清洗和统一存放,根据不同的需求进行加工,生成不同的数据产品供各系统使用。数据中心独立于应用系统之外,又与应用系统有密切的联系。 数据中心是存储市场监督管理局经过筛选、去重、整理后的核心业务、人员数据等信息,整合了全市各类主体信息

资源和市场主体、人员相关的信息资源,并进行统一管理和维护;数据中心通过深入挖掘数据价值,开发实现灵活、高效的数据查询、业务报表、数据共享和数据交换等功能,为政务公开、业务协同、绩效考核、决策支持、公共服务等提供数据保障。 1.1.数据中心建设原则 金信工程数据中心建设遵循如下原则: 1、总体规划,建立科学、完整的信息资源管理体系 整体规划,将以往分散的数据资源进行整合,建立科学、完整的信息资源体系结构,确保业务人员、技术开发人员等使用和维护信息资源的用户从整体上把握数据资源的情况,方便、准确的利用信息资源和有效的维护、管理信息资源。 科学、完整的信息资源管控体系不但包括信息资源自身的完整性,科学性,也应包括信息采集、管理、共享、利用方式的规划,以及数据模型、数据指标等规范化、标准化的考虑。 2、统一规划、集中管理各类信息资源 统一规划数据资源,不只是要对各类信息资源进行物理集中存储管理,还要在对业务数据分析的基础上,一体化规划并设计系统数据模型,统一制定业务数据指标体系,以管

数据库架构设计规范V1.0

内蒙古银行信贷管理系统数据库设计规范 内蒙古银行信贷管理系统项目组 2012-05

目录 1.概述 (5) 系统技术框架 ..................................................................................... 错误!未定义书签。 概述 ................................................................................................. 错误!未定义书签。 图例 ................................................................................................. 错误!未定义书签。 平台与业务组件接口设计 ............................................................. 错误!未定义书签。 2.代码开发规范 ................................................................................. 错误!未定义书签。 2.1.命名规范 (5) 2.1.1.应用目录结构规范 .......................................................... 错误!未定义书签。 2.1.2.包结构与命名 .................................................................. 错误!未定义书签。 2.1. 3.类/接口命名..................................................................... 错误!未定义书签。 2.1.4.成员变量及方法命名 ...................................................... 错误!未定义书签。 2.1.5.局部变量命名(及声明) .............................................. 错误!未定义书签。 2.2.代码书写规范 (8) 2.2.1.总体原则 .......................................................................... 错误!未定义书签。 2.2.2.类/接口定义..................................................................... 错误!未定义书签。 2.2. 3.文本格式 .......................................................................... 错误!未定义书签。 2.3.注释规范 (8) 2.3.1.程序注释 .......................................................................... 错误!未定义书签。 2.3.2.文档注释(JavaDoc) ..................................................... 错误!未定义书签。 2.4.内容规范.................................................................................. 错误!未定义书签。 2.4.1.toString ............................................................................. 错误!未定义书签。 2.4.2.Log .................................................................................... 错误!未定义书签。 2.4. 3.文件编码 .......................................................................... 错误!未定义书签。 2.5.JSP页面编码............................................................................ 错误!未定义书签。 2.6.包结构定义.............................................................................. 错误!未定义书签。 2.7.业务实体类(DOMAIN)编码 ............................................... 错误!未定义书签。 2.8.操作类(Operation)编码 ..................................................... 错误!未定义书签。

数据库之互联网常用架构方案一览

数据库之互联网常用架构方案一览 1. 数据库架构原则 1. 高可用 2. 高性能 3. 一致性 4. 扩展性 2. 常见的架构方案 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 jdbc:mysql://vip:3306/xxdb 1、高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。这个过程对业务层是透明的,无需修改代码或配置。 2、高性能分析:读写都操作主库,很容易产生瓶颈。大部分互

联网应用读多写少,读会先成为瓶颈,进而影响写性能。另外,备库只是单纯的备份,资源利用率50%,这点方案二可解决。3、一致性分析:读写都操作主库,不存在数据一致性问题。4、扩展性分析:无法通过加从库来扩展读性能,进而提高整体性能。5、可落地分析:两点影响落地使用。第一,性能一般,这点可以通过建立高效的索引和引入缓存来增加读性能,进而提高性能。这也是通用的方案。第二,扩展性差,这点可以通过分库分表来扩展。 方案二:双主架构,两个主库同时提供服务,负载均衡 jdbc:mysql://vip:3306/xxdb 1、高可用分析:高可用,一个主库挂了,不影响另一台主库提供服务。这个过程对业务层是透明的,无需修改代码或配置。 2、高性能分析:读写性能相比于方案一都得到提升,提升一倍。 3、一致性分析:存在数据一致性问题。一致性解决方案。 4、扩展性分析:当然可以扩展成三主循环,但笔者不建议(会多一层数据同步,这样同步

的时间会更长)。如果非得在数据库架构层面扩展的话,扩展为方案四。5、可落地分析:两点影响落地使用。第一,数据一致性问题,一致性解决方案可解决问题。第二,主键冲突问题,ID统一地由分布式ID生成服务来生成可解决问题。 方案三:主从架构,一主多从,读写分离 jdbc:mysql://master-ip:3306/xxdb jdbc:mysql://slave1-ip:3306/xxdb jdbc:mysql://slave2-ip:3306/xxdb 1、高可用分析:主库单点,从库高可用。一旦主库挂了,写服务也就无法提供。 2、高性能分析:大部分互联网应用读多写少,读会先成为瓶颈,进而影响整体性能。读的性能提高了,整体性能也提高了。另外,主库可以不用索引,线上从库和线下从库也可以建立不同的索引(线上从库如果有多个还是要建立相同的索引,不然得不偿失;线

相关主题