1、HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Security Level:ONIP SOABean DDS开发维护指南开发维护指南HUAWEI Telco-SOA PDU第1页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 2目录DDS部署及使用51产品集成的困境与挑战DDS特性介绍3DDS开发指南4DDS产品定位2第2页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 产品集成的困境和挑战产品集成的困境和挑战Pag
2、e 3IT系统集中化建设例如:联通CRM&Billing集中化海量用户互联网应用例如:移动的各类基地企业服务集成,ICT融合越来越深入,数据需要集中建设集中服务异构数据库,使得数据复杂性的不断增加客户不想直面众多的、异构的数据CRMASPISP/ICPORTAL第3页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 4目录DDS部署及使用52DDS产品定位DDS特性介绍3DDS开发指南4产品集成的困境与挑战1第4页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential DDS
3、产品定位产品定位Page 51、提供透明的数据访问接口2、支持水平/垂直分库,支持海量数据储存和高并发数据访问3、提供多种数据分库策略,满足不同业务的分库要求4、支持读写分离和读负载均衡策略5、提供多数据源数据映射模型,支持异构数据源DDS集群ApplicationDDS1JDBCApplicationApplicationDDS2DDS3RDBMSRDBMSRDBMS第5页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential DDS几个重要概念几个重要概念数据源(数据源(DataSource):即数据库的来源,对应Oracle的一个Use
4、r,或者MySQL的一个DataBase。数据节点(数据节点(DataNode):一组具有相同数据副本的数据源的分组,在DDS中通过它来提供数据读写分离能力。数据表分区(数据表分区(Table Partition):将逻辑数据表的记录按照一种规则分成多个分区,每个分区分别存放到一个数据节点上。分区规则(分区规则(Sharding Rule):用于对数据表记录进行分区的规则。DDS支持的分区规则包含Range/Hash两种。分区键(分区键(Sharding Key):参与数据表记录进行分区计算的字段集合Schema:DDS中提供给客户进行资源(例如数据表,Sequence等)管理的一个逻辑对象,
5、客户可创建多个Schema管理不同业务中的表或其它资源。路由(路由(Route):根据分区键值将SQL操作分发到对应的数据节点去执行。Page 6Read-dbRead-dbWrite-dbRead-dbRead-dbWrite-db数据源数据节点T_CUSTOMER(userid,username,)Userid=1000000分区规则分区键SQL路由第6页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 7目录DDS部署及使用53DDS特性介绍产品集成的困境与挑战1DDS开发指南4DDS产品定位2第7页,共48页。HUAW
6、EI TECHNOLOGIES CO.,LTD.Huawei Confidential DDS功能视图功能视图Page 8DDS ServerSession ManagementLoad BalanceCursorAgent TaskListenerDDS ClientCLIDDS ToolsHeart beatSessionMonitorInfrastructureOMLog ServerLDBCConn PoolJDBCODBCConsole ToolGUI ToolCommunicationNodeManagementMPR(Multi-Platform Runtime)Global A
7、rea/PGATable DictionaryTMPolicy ManagementSharding PolicyRead Write PolicyRouting PolicyWindows WrapperSUSE WrapperAIX WrapperOracle DriverDB2 DriverMySQL DriverGaussDB DriverConfigSpinlockUpgrading PolicyAdapting PolicyDistributed SQL EngineSQL ParserDistributed SQL ExecutorDML ParserDDL ParserDCL
8、ParserParser CacheDistributed SQL PlannerDistributed SQL OptimizerOptimizer Pattern RepositoryGroup-by PlacementSub-query UnnestView MergePredict PushData Sharding OptimizerData AmountOptimizerNetwork Times OptimizerDML ExecutorDDL ExecutorDCL ExecutorDistributed Transaction ManagementEvent TriggerN
9、ode AgentSecurity Policy第8页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 基本工作流程基本工作流程Page 9SQL解析解析将SQL文本解析为一颗语法树SQL优化优化基于语句本身,对SQL语法树进行等价优化变换SQL变形变形基于数据分布,数据源类型,进行SQL变形,最大程度利用物理数据能力创建执行计划创建执行计划基于规则或代价最小原则,创建执行计划执行计划并发执行执行计划并发执行传入参数,多分区并发处理执行计划,汇聚处理结果,响应客户12345【举例】Select t1.f1,t2.f2,SUM(t1.f3
10、)From t1,t2Where t1.f1=t2.f1 and t1.f1=:1 and t2.f2 :2Group by t1.f1,t2.f2第9页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential DDS 重要特性重要特性提供透明数据访问支持,支持多种数据库提供透明数据访问支持,支持多种数据库支持数据垂直划分和水平划分支持数据垂直划分和水平划分支持分布式主键支持分布式主键支持数据多级路由支持数据多级路由支持读写分离支持读写分离提供集群负载均衡提供集群负载均衡支持分布式支持分布式XA事务事务支持弹性伸缩支持弹性伸缩支持数据扩容支持数
11、据扩容Page 10第10页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 提供数据透明访问提供数据透明访问,支持多种数据库支持多种数据库Page 111、向客户呈现一个集中式虚拟数据库,屏蔽了底层各种数据源的差异、特质和实现,以及位置2、向客户提供统一的DDS SQL语言,屏蔽各种数据源SQL语言的差异3、提供统一的错误代码4、严格遵循关系数据库ACID原则5、支持异构数据库,分阶段支持ORACLE,MySQL、PostgreSQL等等数据库Application(C+)BODAFApplication(Java)BODAFAppl
12、ication(Java)JDBCApplication(C+)ODBCCloud Data ServerCloud Data ServerOracleDB2MySQLFastoreTeastore元数据管理虚拟点虚拟节点管理中心DDS Instance Active BufferData Sharding PolicyDistributed SQL EngineUpgrading PolicyMeta dataRedo filesParameterData FileData Read-Write PolicyData Routing PolicySecurity PolicyDataSour
13、ce AdaptingDistributed Transaction ManagementServer ClusterData Backup&RecoveryData Online Move ToolsData ReshardingData LoadData MonitorData Query StandBy Buffer第11页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持数据垂直划分和水平划分支持数据垂直划分和水平划分Page 121、支持按业务管理数据表和其它资源,不同业务使用不同schema进行垂直划分管理。2、支持按指
14、定字段和算法将数据表记录进行分区存放,实现数据水平划分。3、支持Range、Hash两种分区算法。其中Range支持Number、String、Date三种类型。4、支持不分区系统表、参数表在多个分区保存一个副本(复制表复制表),提升多表操作处理效率。(订购域)分区1(订购域)分区2(订购域)分区(账单域)分区1(账单域)分区2(账单域)分区DDSnDDS1Schema-OrderSchema-Billing第12页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持分布式主键支持分布式主键Page 13DDSDN1DN2DNmApp
15、licationSeq1:Start with Increment by n mSequenceSequence可以创建在一个或多个数据源上:可以创建在一个或多个数据源上:CREATE SEQUENCE schema_name.seq_nameSTART WITH start_val INCREMENT BY stepMINVALUE min_val MAXVALUE max_valON dn_name ,dn_name,.n;使用使用SequenceSequence:SELECT seq1.currval from dualSELECT seq1.nextval from dual;SELE
16、CT seq1.nextval FROM dual CONNECT BY level=分布分布SequenceSequence特点特点1 1、若、若SequenceSequence创建在一个数据节点上创建在一个数据节点上可保证主键值唯一且连续,但可靠性低2 2、若、若SequenceSequence创建在多个数据源上创建在多个数据源上可保证主键值唯一,但不保证连续,可靠性高Seq1:Start with Increment by n+1 mSeq1:Start with Increment by n+m m第13页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei
17、 Confidential 支持多级数据路由支持多级数据路由Page 14DDSDN11DN12ApplicationDN13DN21DN22DN330214-1)P1-1P2:1000000120000000214215-1)P1-2215216-1)P1-3SELECT*FROM USERWHERE userid=?P1:1100000000214-1)P2-1214215-1)P2-2215216-1)P2-3分区表创建分区表创建CREATE TABLE dds.user(int userid,)PARTITION BY(NumRange(userid)(PARTITION P1 VAL
18、UES INTERVAL(0,1000000)PARTITION BY(RangeHash(userid)(PARTITION P1-1 VALUES INTERVAL(0,214)ON dn11,PARTITION P1-2 VALUES INTERVAL(214,215)ON dn12 PARTITION P1-2 VALUES INTERVAL(215,216)ON dn13 )PARTITION P2 VALUES INTERVAL(1000000,2000000)PARTITION BY(RangeHash(userid)(PARTITION P2-1 VALUES INTERVAL
19、(0,214)ON dn21,PARTITION P2-2 VALUES INTERVAL(214,215)ON dn22 PARTITION P2-2 VALUES INTERVAL(215,216)ON dn23 );找到schema找到table找到二级分区找到一级分区找到数据节点找到数据源一级分区二级分区路由处理路由处理第14页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持读写分离支持读写分离Page 151、写操作时,只写“写库”。2、后台通过数据同步工具将“写库”数据同步到读库。3、读操作只从“读库”读取,也可以通过
20、设置,“写库”也参与读处理。4、因为数据同步需要时间,若要实时读取刚刚更新的数据,可以通过Hint指定从“写库”读取。5、数据同步使用数据同步工具。DDS1DDS2DDS3ApplicationApplicationApplication数据同步数据同步数据同步WriteReadReadWriteReadReadWriteReadRead数据节点“写”数据源“读”数据源第15页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持集群负载均衡支持集群负载均衡Page 16ApplicationZookeeperZookeeperZook
21、eeperJDBCDDS2注册状态和允许的最大连接数获取DDS状态及允许的最大连接数依据负载均衡建立连接因为每个App与DDS集群负载均衡,因此整个App与DDS也是负载均衡DDS3DDS1第16页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持分布式支持分布式XA事务事务Page 171、普通数据库事务2、多数据库XA事务RDBMSRDBMSDDS1ApplicationRDBMSRDBMSDDS1Application如果只涉及一个数据源,则使用普通数据库事务提交如果涉及多个数据源,则使用XA数据库事务提交RDBMSXA事务普
22、通数据库事务第17页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential DDS集群支持弹性伸缩支持弹性伸缩Page 18DDSDDSZookeeperZookeeperZookeeperZookeeper集群实施步骤:1、增加DDS节点2、DDS向Zookeeper进行状态注册。3、Zookeeper通知订阅者JDBC(位于APP中)4、App建立连接时将新增DDS参与负载均衡DDS应用背景:DDS性能不能满足App需要APPJDBCAPPJDBCAPPJDBCDDS第18页,共48页。HUAWEI TECHNOLOGIES CO.,LT
23、D.Huawei Confidential 无搬迁无搬迁Range分区扩容分区扩容Page 19Range1R1,R2)Range2R2,R3)Range3R3,R4)应用需要增加值域应用需要增加值域R4,R5)增加一个数据节点,规划存放值域增加一个数据节点,规划存放值域R4,R5)数据数据在在DDS集群中增加数据节点信息集群中增加数据节点信息DDS集群创建新分区集群创建新分区Range4新分区新分区Range4参与参与DDS路由处理路由处理说明:扩容无需搬迁数据,无需停机处理。说明:扩容无需搬迁数据,无需停机处理。Node1Node2Node3ApplicationApplicationAp
24、plicationRange4R4,R5)应用背景:扩大数据的值域范围,使用新的Range分区存放新增值域数据第19页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 支持多级分区无搬迁扩容支持多级分区无搬迁扩容Page 20Node1Node2Node3ApplicationApplicationApplication应用背景:按时间、按区域、按范围进行一级分区扩展。10000001200000001100000002000000130000000一级路由Range(UserID)二级路由Hash(UserID)0214)214215
25、)215216)0214)214215)215216)0214)214215)215216)实施步骤实施步骤增加一组新的数据节点,用于存放扩展二级分区数据在DDS集群中增加数据节点信息DDS集群创建新的二级分区新二级分区参与DDS路由处理说明:使用二级分区扩容无需搬迁数据,无需停机处理。第20页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 在数据库节点数不太多的场景(=16节点),可以采取共享磁阵方案,水平扩展时无需复制数据,只需重新挂载。此方案的优点是简单易实施,水平扩展效率高,缺点是磁阵吞吐能力限制了最大节点数。DDS以Inst
26、ance颗粒来迁移数据:123456Node 1Node 2123456Node 1Node 2Node 3不搬迁数据共享磁阵扩容不搬迁数据共享磁阵扩容应用背景:数据库处理能力不足Step 1:在Node 1上关闭instance 3,Node2上关闭instance 6,冻结DDS对这两个实例的访问Step 2:将Instance 3和Instance 6的数据VG去激活,并在新增的Node 3上激活Step 3:在Node 3上启动Instance 3和Instance 6,取消DDS上的冻结第21页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Conf
27、idential 当节点数大于16时,需要采用本方案。以Partition为数据迁移的最小单位,并依赖数据库本身的物理复制技术提升迁移效率。在Oracle数据库中,DDS的一个Partition对应到数据库中一个Schema,每个schema拥有自己独立的表空间,复制一个schema需要对其所有表空间进行物理复制。Oracle(迁出库)Schema 1Schema 2Schema 3Oracle(临时库)Schema 3Step 1:从迁出库找最近的全备份构造辅助库,并应用归档日志到某个最近时间点T1(只涉及迁移的schema3)Oracle(临时库)Schema 3Oracle(迁入库)Sc
28、hema 3Step 2:从辅助库把schema3的数据文件拷贝到迁入库,并使用数据泵工具把元数据导入迁入目的库Oracle(迁出库)Schema 1Schema 2Schema 3Oracle(迁入库)Schema 3Step 3:使用GoldenGate工具,将迁出库T1时间点之后新产生的数据从迁出库复制到迁入库Oracle(迁出库)Schema 1Schema 2Oracle(迁入库)Schema 3Step 4:DDS切换到新数据源(短暂冻结访问),并从原迁出库删除schema3相关数据Schema整体搬迁扩容整体搬迁扩容应用背景:数据库处理能力不足第22页,共48页。HUAWEI T
29、ECHNOLOGIES CO.,LTD.Huawei Confidential Page 23目录DDS部署及使用54DDS开发指南DDS特性介绍3产品集成的困境与挑战1DDS产品定位2第23页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 24联通测试逻辑组网图MySQL ORACLEDCS集群负载均衡SLBWeb ServerUEEUEEeBus1eBus.、分布式异步通信总线DSF跨域分布式服务调用客户域客户查询服务 客户资料更新服务 DDS Client其它服务订单域订单服务 DCS Client缓存加速ORACLE
30、DDS Client订单数据增删改查批量数据同步用户域用户服务ORACLEjetMQMQ Client事务一致性DDS Client公共域 公共服务oracleDDS Client订阅发布第24页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 25开户流程图(部分)第25页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 26DDS使用流程第26页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Pa
31、ge 27DDS常用接口(JDBC)创建DDS连接 Connection DriverManager:getConnection(url,username,password)参数说明:url为接入DDS的连接信息,有两种格式:当DDS为集群时,应用从Zookeeper接入,url格式为 jdbc:soa:dds:zk:ip:port/root-path/instance ZooKeeper支持集群部署,多组IP和端口号通过逗号隔开。url示例如下:jdbc:soa:dds:zk:10.137.166.133:1281,10.137.166.134:1281/soa_dds/cluster1/i
32、nstance 其中“root-path”需要与配置文件dds.env.local.xml中配置项“cluster-manager”的“root-path”相一致。当DDS为非集群时,应用直接与DDS Server建立连接,url格式为:DDS url:jdbc:soa:dds:ip:port password为非加密密码为非加密密码第27页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 28DDS常用接口(JDBC)创建PrepareStatement对象PreparedStatement Connection:prepa
33、reStatement(String sql)绑定参数(可选)void PrepareStatement:setType(int index,Type value)参数说明:该语法支持参数绑定。可以在SQL字符串中设置参数,任意值类型的参数都可以使用“?”表示,之后再对参数进行绑定。绑定参数的说明请参见后续说明。具体示例如下:String sql=SELECT id,data FROM Images WHERE id、=、!=等运算符可以有效地使用分区特性,提高SQL性能,而LIKE条件不能。减少使用子查询。子查询会降低SQL性能。尽可能完善查询条件,即WHERE条件。WHERE条件中,少使用
34、OR,多使用AND。分区字段选择选择的分区字段和分区算法能够将表数据在均匀分布到各个分区。该分区字段在执行SQL时经常被用于作为连接字段。进行数据访问时最大限度地减少跨库数据访问。尽量选择整型字段做为分区字段。第31页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 32目录产品集成的困境与挑战15DDS部署及使用DDS特性介绍3DDS开发指南4DDS产品定位2第32页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 33目录结构DDS目录结构:第33页,共4
35、8页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 34重要配置dds.server.xml:user-nameddssql工具连接DDS Server时的用户名。只有此处配置的用户名才能通过DDS Server的鉴权验证,建议使用三个以上字符作为用户名。passwordddssql工具连接DDS Server时的用户密码。只有此处配置的用户密码才能通过DDS Server的鉴权验证。用户密码需配置为经过AES128加密算法加密后的密码,需使用“ddspe”工具加密。IP鉴权白名单,该名单中的IP地址所在的服务器允许与本机通讯。“va
36、lid-ip value”对应一个合法的IP地址,多个IP地址需分别填写,3个IP地址示例如下:第34页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 35重要配置dds.server.xml:self:根据dds内部配置文件dds.datasource.xml和dds.*.sharding.xml导入DDL,建立相关分区规则。none:启动时手工导入DDL语法文件,默认值。embedded:根据业务插件导入DDL语法,建立相关分区规则。根据ds-loader所配内容在ds-loaders配置项中找到对应插件。调试日志开关,
37、修改后需重启DDS Server进程才能生效。开启该开关后,30分钟内可在“$DDS_HOME/log/debug/ddsserver_*.dlog”文件中查询debug日志信息。超过30分钟后,该开关失效,停止打印debug日志信息。取值如下:0:关闭调试日志开关,默认值。1:打开调试日志开关。注意调测日志的开关打开后会影响系统的性能,减缓业务的运行速度,占用磁盘空间,所以系统商用后一般不允许打开。如果定位问题需要,在得到维护主管同意以后才可以打开调测日志的开关进行问题定位,完毕后立即关闭调测日志的开关。商用环境不建议打开这个配置项,可以使用logadm动态打开/关闭日志。第35页,共48页
38、。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 36重要配置dds.env.local.xml:DDS Server提供的服务端口,修改后需重启DDS Server进程才能生效。取值范围:102465535。共享内存信息,修改后需重启monitor、nodeagent以及logserver进程才能生效。“base-key”:共享内存基址,monitor、nmgr以及logserver等模块都会使用共享内存,这些共享内存都从base-key偏移获取。默认值:0 x22。说明安装DDS Server前需确保该基址未被其他进程使用,否则会造
39、成启动失败。第36页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 37重要配置dds.datasource.xml:ora119 wwei E52D6DA4D79A2132D4D4116513EDB6EF 数据源的url,用于获取和特定数据库的连接。取值由dbType的取值决定。不同类型的数据库配置格式不同。dbType取值Oracle时,配置tns名或者”IP:Port/SID”。若配置为”IP/SID”,表示默认端口为1521。dbType取值mysql时,配置“databasenameip:port”,其中datab
40、asename是数据库名,ip与port为mysql所在的IP与提供的服务端口。ora119 DDS的statement池缓存PDB端的statement个数。PDB端的每个statement对应一个数据库游标(cursor)。在Oracle端查看v$open_cursor得到的cursor,包括DDS端打开的cursor数(最大个数为dds.datasource.xml文件配置的statement number)和session_cached_cursors 之和。其中,session_cached_cursors可以通过命令show parameter session_cached_cur
41、sors进行查看。SQL show parameter session_cached_cursors;在MySQL端通过查看参数可得到max_prepared_stmt_count。可参考命令show variables进行查询。mysql show global variables like%stmt%;如果需修改statement最大值,可参考如下命令。mysql set global max_prepared_stmt_count=124000;节点为一组具有相同数据副本的数据源的分组,数据源名称为前面datasources中定义的数据源,读写模式有三种:rw、r、w。第37页,共48页
42、。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 38重要配置dds.datasource.xml:user-name为dds登录用户,schema-name为该用户下定义的某个schema名字,该名字来源于dds.*.sharding.xml分区算法支持以下几种:Hash:选择该算法后“range-area”参数无需配置,“virtual-partition”参数范围为0-65534。NumRange:针对int类型分区字段,“range-area”参数填写分区范围,范围是int类型数值的取值范围;“virtual-partition
43、”参数无需配置。StringRange:针对string类型分区字段,“range-area”参数填写分区范围,“virtual-partition”参数无需配置。DateRange:针对data类型分区字段,“range-area”参数填写分区范围,“virtual-partition”参数无需配置。Sharing:不分区,每个节点保有全量数据,此时“range-area”和“virtual-partition”参数无需配置。分区算法详细信息。range-area待分区字段取值范围。virtual-partitionhash算法的分区范围。data-node数据节点名称。说明分区的区间遵循左
44、闭右开原则,例如配置为“0-1001”,表示0,1001),值从0取到1000。两级路由 第38页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 39重要配置dds.*.sharding.xml:配置某个表使用的分区规则,sharding-rule必须为dds.datasource.xml中已定义的规则。sharding-column填写name对应的表中,用于分区的字段名称,例如:表A使用id字段作为分区字段,则填写id。sharding-field填写“dds_datasource.xml”文件中定义的“sharding
45、-field”。不分区表,配置规则名称即可.node name节点名称,当建在多个节点上时,保证唯一性,不保证连续性。说明(统一安装的环境无需执行以下操作)使用sequence前需在对应数据源上创建内置表和存储过程,脚本需存放在目录:$HOME/ONIP_DDS/server/db。包括createTable.sql:建表脚本p_DDS_generate_seq.sql:存储过程脚本使用方法:oracle上导入命令参考:sqlplus SID username/password xxx.sqlmysql上导入命令参考:mysql-u username-p password-D dbname x
46、xx.sql第39页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 40分区说明通过DDS访问的表都要配置一下分区规则,DDS中的表分为两类:分区表和复制表。所谓分区表,就是对表进行水平划分,将一张表的数据按照一定的规则划分到多个数据节点上的多张表中,以减轻单个数据节点的压力。对于业务层来说,只需要定制分区规则即可,路由由DDS负责实现,对业务透明。一般数据量很大,访问量也很大的表,建议分区。1)选择分区层级。目前支持一级分区和两级分区。一般数据量确定不会增长到系统规划容量以外的表,使用一级分区即可。如果数据量随系统运行持续
47、增长,可能会超过规划,为便于后续扩容,建议选用两级分区(参考P20扩容图理解)。2)选择分区键。要选取分区表中的某个字段作为分区键。两级分区的情况需要两个分区键值,可以相同也可以不同。分区键应尽可能多的出现在DML的过滤条件中;分区键应能够让表的数据比较均匀的分摊到各个数据节点。3)选择分区算法。当前支持两种:Range和Hash。Range里面又包括:NumRange、DateRange、StringRange。每种分区的区间配置都为左闭右开,Hash范围为0-65535)。第40页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential P
48、age 41分区说明所谓复制表,是指该表可以存在于一个或多个数据节点中,但是每个节点存储的都是全量数据的表。DDS会随机选择一个数据节点来处理对这类表的请求。选择存多份在一定条件下可以加快多表关联的处理效率。一般表数据量不是很大,建议配成复制表。如:系统表、参数表等。读多写少的表或写也比较多,但是不关注写的性能的表,可以考虑配成多节点存储。注意:注意:系统开始运行后,不允许随便修改分区规则,除非本次修改的规则不涉及已存在的数据,或数据迁移。第41页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 42进程启停(单机)启动DDS
49、服务start_dds.sh停止DDS服务 stop_dds.sh基本验证 ddssql usernameip:port Please enter password:*Successfully CONNECT to DDSServer.SQLselect*from systables;第42页,共48页。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 43常用工具客户端工具ddssql加密工具ddspe日志开关工具logadm监控工具monitor错误码查看工具ddserr故障搜集脚本dds_gatherinfo.sh第43页,共48页
50、。HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential Page 44查看DDS系统信息DDS系统表序号名称用途1DUAL与其他数据库的dual表作用一致。2SYSCOLUMNS记录系统中每个表的列信息3SYSTABLES记录系统中所有表信息4SYS_DATANODE记录系统中datanode的配置信息5SYS_TAB_NODE记录用户表与datanode的关系6SYS_PARTITION_RANGE记录用户分区表ID的分区边界ID的关系7SYS_PARTITION_BORDER记录边界ID的定义8SYS_DATASOURCE记录系统中的数据源信息9S