-
GaussDB(DWS)用户密码如何设置永久有效,需要执行的具体代码是什么?谢谢!!!
-
GaussDB(dws)数据库中有多个用户,现在需要使用A用户来调用B用户的存储过程任务。B用户的存储过程创建时会默认赋EXECUTE权限给A用户。但A用户执行B用户下的存储过程时,其中分区处理的部分会报错:删除分区会报错:must be owner of relation B用户。truncate分区数据时会报错:permission denied for relation B用户。请问:1、使用A用户来调用B用户的存储过程时,存储过程中的代码执行用户不应该是B用户么?2、通过A用户来调用B用户的存储过程来对表分区进行操作时,都需要满足哪些权限?谢谢!!!B用户的存储过程中有分区处理的逻辑如下:
-
打开Data Studio就显示这个官方的手册也没有答案:求大佬解答
-
加入沃土云创高校计划后,如何申请开课?1、请登录华为云账号,下载附件中的开课申请表和课程大纲模板(开课申请表有样例,可参考)2、并参考附件指导书中第五大点,在线提交开课计划(开课申请表需请二级学院盖章)3、预计3个工作日进行课程审核关于开课有任何问题可联系张女士13753491670(微信同号)
-
戳链接了解认证详情:cid:link_0videovideovideovideovideovideo
-
前言 本文将测试利用chameleon工具从MySQL迁移数据到OpenGauss3.1.0。环境环境信息MYSQLOpenGauss版本5.7.363.1.0系统版本docker 19.03.15CentOS Linux release 7.9.2009 (Core)IP192.168.10.5192.168.10.3工具安装1、下载chameleon工具======》我只找到了源码安装包,没找到wheel的版本2、解压/安装依赖包解压:[root@opengauss01 /]# unzip openGauss-tools-chameleon-master.zip 创建python虚拟环境并激活 安装 (venv) [root@opengauss01 openGauss-tools-chameleon-master]# python3 setup.py install 如果缺包就挨个安装下: (venv) [root@opengauss01 openGauss-tools-chameleon-master]# pip3 install geomet argparse daemonize mysql-replication py-opengauss PyYAML rollbar tabulate 注意需要安装: (venv) [root@opengauss01 openGauss-tools-chameleon-master]# pip3 install PyMySQL==0.10.03、创建迁移配置文件(venv) [root@opengauss01 openGauss-tools-chameleon-master]# su - omm 上一次登录:二 11月 8 22:39:38 CST 2022pts/0 上 [omm@opengauss01 ~]$ cd /openGauss-tools-chameleon-master/ [omm@opengauss01 openGauss-tools-chameleon-master]$ source venv/bin/activate (venv) [omm@opengauss01 openGauss-tools-chameleon-master]$ (venv) [omm@opengauss01 openGauss-tools-chameleon-master]$ (venv) [omm@opengauss01 openGauss-tools-chameleon-master]$ (venv) [omm@opengauss01 openGauss-tools-chameleon-master]$ (venv) [omm@opengauss01 openGauss-tools-chameleon-master]$ chameleon set_configuration_files creating directory /home/omm/.pg_chameleon creating directory /home/omm/.pg_chameleon/configuration/ creating directory /home/omm/.pg_chameleon/logs/ creating directory /home/omm/.pg_chameleon/pid/ copying configuration example in /home/omm/.pg_chameleon/configuration//config-example.yml3、修改配置文件(venv) [omm@opengauss01 configuration]$ cp config-example.yml default.yml vim default.ymlpg_conn: host: "localhost" ===========》opengauss的ip port: "15400" ===========》opengauss的端口 user: "opengauss" ========== 》open gauss的用户 password: "openGauss01" ===========》opengauss的密码 database: "mysql_test" ===========》opengauss的目标数据库 charset: "utf8" sources: mysql: readers: 4 writers: 4 db_conn: host: "192.168.10.5" ============》mysql的ip port: "33650" ===========》mysql的端口 user: "root" ============》mysql的用户 password: "root" ============》mysql的密码 charset: 'utf8' connect_timeout: 10 schema_mappings: test: sch_mysql_database ================》test是mysql中的库,sch_mysql_database====》是opengauss中的库4、初始化迁移(venv) [omm@opengauss01 configuration]$ chameleon create_replica_schema --config default (venv) [omm@opengauss01 configuration]$ chameleon add_source --config default --source mysql 5、复制存量数据(venv) [omm@opengauss01 configuration]$ chameleon init_replica --config default --source mysql Init replica process for source mysql started.=======》MySQL数据库test中的表:mysql> use test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | big_table | | checksums | | hahaha | | test | | test1 | | test2 | +----------------+ 6 rows in set (0.00 sec)======》复制启动后,test库中的表都复制到sch_mysql_database下了。 Name | Owner --------------------+----------- blockchain | omm cstore | omm db4ai | omm dbe_perf | omm dbe_pldebugger | omm dbe_pldeveloper | omm dbe_sql_util | omm loxodonta_africana | opengauss pkg_service | omm public | omm sch_chameleon | opengauss sch_mysql_database | opengauss snapshot | omm sqladvisor | omm (14 rows) mysql_test=# set current_schema to sch_mysql_database mysql_test-# ; SET mysql_test=# \d List of relations Schema | Name | Type | Owner | Storage --------------------+------------------+----------+-----------+---------------------------------- sch_mysql_database | big_table | table | opengauss | {orientation=row,compression=no} sch_mysql_database | big_table_id_seq | sequence | opengauss | sch_mysql_database | checksums | table | opengauss | {orientation=row,compression=no} sch_mysql_database | test | table | opengauss | {orientation=row,compression=no} sch_mysql_database | test1 | table | opengauss | {orientation=row,compression=no} sch_mysql_database | test1_id_seq | sequence | opengauss | sch_mysql_database | test2 | table | opengauss | {orientation=row,compression=no} sch_mysql_database | test2_id_seq | sequence | opengauss |6、开启实时复制(venv) [omm@opengauss01 configuration]$ chameleon start_replica --config default --source mysql Starting the replica process for source mysql7、在mysql中插入数据Mysql中的数据 mysql> select * from test; +----+--------+ | id | name | +----+--------+ | 2 | bbbb | | 5 | cccc | | 4 | dddd | | 3 | eeee | | 1 | hehehe | +----+--------+ 5 rows in set (0.00 sec) Opengauss中的数据 mysql_test=# select * from test; id | name ----+-------- 2 | bbbb 5 | cccc 4 | dddd 3 | eeee 1 | hehehe (5 rows)Mysql中插入一条数据: mysql> insert into test values(6,'fffff'); Query OK, 1 row affected (0.01 sec) mysql> select * from test; +----+--------+ | id | name | +----+--------+ | 2 | bbbb | | 5 | cccc | | 4 | dddd | | 3 | eeee | | 6 | fffff | | 1 | hehehe | +----+--------+ 6 rows in set (0.00 sec) Opengauss中查看数据,可以看到新插入的(6,'fffff')已经同步到了openGauss中。 mysql_test=# select * from test; id | name ----+-------- 2 | bbbb 5 | cccc 4 | dddd 3 | eeee 1 | hehehe 6 | fffff (6 rows)
-
GaussDB(DWS)通信建连失败报错: ERROR: pooler: failed to create 1 connections, Error Message: remote node dn_6045_6046, detail: wait 10.16.36.158:25334:dn_6045_6046 recv timeout expired, errno: Resource temporarily unavailable问题现象业务运行报错如下,导致业务终止,多数情况下重试业务即可成功。可能原因该报错是cn与对端建连的时候报超时,导致连接失败导致的。出现该问题的可能原因如下:1. cn与dn建连的时候要持pg_class的一级锁,如果建连时对端有在进行类似vacumm full等操作持pg_class锁,可能会导致建连失败。2. CN日志中有此类语法报错ERROR: function getdate() does not exist at character 8,这种报错太多了,会销毁CN与DN连接池中取出来的连接,导致后续CN与DN新建连接。增大建联报错的风险,可以和业务侧沟通消除此类报错。对端有pm线程压力大告警如:thread usage rate more than 80%;DN有作业残留沾满资源导致连接不上。3. 排查索引后置问题,索引后置会导致pg_internal.init文件重新生成,文件生成阶段会阻塞建连。排查过程以及解决方案步骤1. 检查报错时间是否有vacuum full操作。检查日志中报错时间段是否有vacuum full pg_class,持有八级锁超时。因为vacuum full pg_class持有8级锁,cn和dn之间新建连接的时候需要持有pg_class的一级锁,导致锁冲突超时,获取连接超时失败这种只在新建连接的时候有问题,复用老的连接没有问题步骤2. 检查是否有烂SQL 占资源,报错DN上是否有作业残留。top 查看下cpu排队是否很高。1. SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity where state != 'idle' ORDER BY 1 desc; 查看执行时间长的SQL,排查是否为烂SQL,kill掉作业2. 查看DN是否有作业残留占资源 ;DN上执行select * from pgxc_stat_activity;找是否有执行很长时间的作业;找到可疑的作业后通过查询到的query_id去CN上执行 select * from pg_pooler_status where remote_pid=$query_id; ($query_id 为第一步查出来的DN上的query_id),如果没有结果,则表示CN找不到这个query_id的连接,作业在DN上残留了。DN上执行 select pg_terminate_backend(pid); 杀掉残留作业,释放资源。解决方案: select pg_terminate_backend(pid); 杀掉残留作业,释放资源。步骤3. 检查是否有索引后置报错时间,去报错对端DN日志查看是否有以下标志,block后面数字很大的就是有问题索引后置会导致pg_internal.init文件重新生成,文件生成阶段会阻塞建连。解决方案:系统表做vacuum full解决上述为目前现网遇到的该报错已知场景,后续有新场景会继续补充。。。
-
首先确认是否是虚拟机、网络故障虚拟机故障导致ETCD服务异常告警问题现象管控面上报etcd服务异常告警,虚拟机发生重启,热迁移、冷迁移,HA等动作。问题分析及界定在告警信息中找到实例ID、节点ID、虚拟机ID,在管控面查看虚拟机状态是否正常,能否正常登录,如果虚拟机异常无法登录,联系IaaS技术支持修复虚拟机。检查虚拟机是否发生过重启,热迁移、冷迁移、HA等动作,例如内存、网卡等问题引起热迁移。处理步骤联系IaaS技术支持修复虚拟机,确认虚拟机故障原因,例如内存、网卡等问题引起热迁移。网络故障导致ETCD服务异常告警问题现象管控面上报etcd服务异常告警,虚拟机无法登录或ping通其他节点IP, 或者监控显示网络有异常。问题分析及界定在该节点上ping其他节点IP,测试是否ping通。如果ping不通,执行步骤(1)(2),检查该节点网络、IP配置、防火墙配置等。如果ping通,执行步骤(3)确认告警时间点网络是否断开。(1)检查IP是否正常:ifconfig查看etcd使用的IP是否存在,如果不存在,排查IP配置丢失原因,常见原因是虚拟机重启后IP没有重新配置,导致丢失。(2)检查防火墙是否正常在Ruby用户下查看etcd的IP和端口: ps ux | grep etcd在root用户下iptables -L命令检查防火墙是否限制了IP和端口,如果有限制,去掉防火墙限制。(3) 查看etcd日志进入Ruby用户cd $GAUSSLOG/cm/etcd查看对应时间点的etcd_xxx.log日志,如果有如下日志,可能是etcd节点间网络断开, 或者对端的etcd进程down,导致本端etcd连接断开。排查网络原因或对端的etcd进程是否重启,网络原因可能是网络断开,网卡故障,也有可能是虚拟机故障。grpc: Server.processUnaryRPC failed to write status: connection error: desc = "transport is closing"rafthttp: lost the TCP streaming connection with peer c797ab3a61e2ea55 (stream MsgApp v2 reader)etcdserver: failed to reach the peerURL(https:// X.X.X.X:X) of member c797ab3a61e2ea55 (Get "https://X.X.X.X:X/version": dial tcp X.X.X.X:X: i/o timeout)rafthttp: health check for peer c797ab3a61e2ea55 could not connect: dial tcp X.X.X.X:X: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")处理步骤处理步骤同上,已说明。负载过重导致ETCD服务异常警告问题现象管控面上报etcd服务异常告警, 磁盘IO/CPU/内存 很高.问题分析及界定进入Ruby用户cd $GAUSSLOG/cm/etcd查看对应时间点的etcd_xxx.log日志,告警时间点有如下日志,说明etcd节点负载过重, 磁盘IO、CPU等压力大。2021-04-09 10:57:40.112936 W | wal: sync duration of 2.00201804s, expected less than 1s ===通常这个表示磁盘IO压力大。2021-04-09 10:57:40.112993 W | etcdserver: failed to send out heartbeat on time (exceeded the 1s timeout for 2.124414ms, to c8eccd97bed22939)2021-04-09 10:57:40.112999 W | etcdserver: server is likely overloaded2021-04-09 10:57:43.126444 W | etcdserver: read-only range request "key:\"/Ruby/ignoreNodeNumKey\" " with result "error:context canceled" took too long (1.999877971s) to executecd $GAUSSLOG/cm/cm_agent搜索对应时间点的cm_agent-xxx.log, 如果有如下日志,表示当时磁盘io比较高, io util 100 表示磁盘io 达到100%2021-04-09 11:06:24.047 tid=15822 LOG: device vdb1, tot_ticks 889640579, cputime 1798651342, io util 100处理步骤1、在管控面查看该节点当时磁盘IO、CPU、内存监控指标是否很高,示例1:数据盘写延时在16:00左右升高,影响etcd状态。示例2: etcd故障时刻,cpu、内存、磁盘写延时都有增长,尤其是磁盘写延时很明显,需要分析磁盘写延时升高的原因。2、如果故障现场还在: iostat -mx 1 查看磁盘IO状态,top和free命令查看cpu、内存使用情况, 分析磁盘IO高、CPU高,内存高的原因。3、root用户查看该节点的系统日志, cd /var/log, 查看该时间点message日志是否有异常记录。例如:节点内存耗尽了,分析占用内存的原因,是否内存泄漏等。如果仍无法确认原因,联系华为工程师。etcd进程故障导致ETCD服务异常告警问题现象etcd进程down、重启,管控面上报etcd服务异常告警问题分析及界定登陆故障etcd节点, 进入Ruby用户,执行命令ps ux | grep etcd, 查看etcd进程是否在运行。如果进程在,查看etcd进程启动时间,告警时是否重启过,联系华为工程师确认重启原因。如果进程不在,查看etcd无法启动原因:(1)cd $GAUSSLOG/bin, 查看目录下是否有cluster_manual_start 和 etcd_manual_start 两个文件,如果有表示集群被停止,确认停止集群的原因,之后启动集群,定位结束。(2)cd $GAUSSHOME/bin 查看目录下是否存在etcd这个文件,文件权限是否正确,确认文件不存在或权限不正确的原因。(3)检查etcd的数据目录所在磁盘是否满了或者故障,etcd目录如下:cm_ctl query -Cvipd查看检查etcd的数据目录所在磁盘是否满了或者目录权限不正确(正确是700)或者故障,如果磁盘满,检查占用磁盘的文件并清除或者转存到其他盘,如果是etcd本身的文件占满,联系华为工程师分析原因。如果目录权限不正确,修改为正确的目录权限。如果是磁盘故障,联系IaaS技术支持分析定位。处理步骤参照上述处理,如果不是以上原因,请联系华为工程师OM接口无法正确返回结果导致ETCD服务异常告警问题现象管控面上报etcd服务异常告警, 管控无法获取集群状态问题分析及界定查看管控面是否获取集群状态成功,是否获取空消息,联系华为工程师分析定位。cd $GAUSSLOG/om/查看gs_om-xxx.log,是否有如下异常日志例如: The status file does not exist. Path: /usr/local/temp/local_status_1611355718.58.dat.处理步骤参照上面描述步骤。
-
只读原因当CN和DN的磁盘使用率达到阈值时,集群管理就会自动将相应的CN或DN分片设为只读(业务只能读不能写),执行cm_ctl query -Cv命令查询集群状态如下: 设置为只读后禁止业务继续写入,避免磁盘被撑爆,同时也避免后续无法扩容(扩容需要磁盘有一定的剩余空间)。只读guc参数datastorage_threshold_value_check磁盘使用率阈值,超过该阈值,就会被设置为只读,默认85%enable_transaction_read_only 检测磁盘只读的开关,如果关闭,不再检测磁盘,即使磁盘使用率超过阈值也不会设置只读,磁盘清空后也不会消除只读,默认值为on。datastorage_threshold_check_interval 检测磁盘使用率的时间间隔,多久检测一次磁盘使用率,默认为10秒。3个参数都在CMserver数据目录下的cm_server.conf配置文件中。处理措施当CN或DN被设置为只读时,根据上图中查到的CN或DN目录,检查所在磁盘使用率是否超过阈值。1、检查对应磁盘被什么文件占用,确认文件用途,是否可以清理或转移到其他磁盘。2、可以调高磁盘使用率阈值。可以通过如下命令修改CMserver的guc参数,支持reload修改参数,无需重启CMserver进程。确认集群是否有扩容计划,若有后续扩容计划,datastorage_threshold_value_check值建议不要超过50,扩容要求,数据磁盘使用率不超过50%。gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check = 85"gs_guc reload -Z cmserver -N all -I all -c "enable_transaction_read_only = on"当磁盘使用率超阈值时,集群管理会自动把CN、DN设置为只读,对应的guc参数default_transaction_read_only被设置为on。当磁盘使用率降到阈值以下或者调高阈值后,集群管理会自动把CN、DN解除只读,对应的guc参数default_transaction_read_only被设置为off。由于集群管理默认检测磁盘的周期是10s秒,所以磁盘超阈值或者降到阈值以下,或者通过gs_guc调整阈值,CN、DN的只读状态可能最长会延迟600秒才变化,请耐心等待。如果想马上去掉只读限制,除了清理磁盘或调整阈值外,手动设置对应的CN、DN的guc参数。DN、CN设置只读和取消只读参数:gs_guc reload -Z datanode -N nodename -D dataPath -c 'default_transaction_read_only = on' 设置DN只读gs_guc reload -Z datanode -N nodename -D dataPath -c 'default_transaction_read_only = off' 取消DN只读gs_guc reload -Z coordinator -N nodename -D dataPath -c 'default_transaction_read_only = on' 设置CN只读gs_guc reload -Z coordinator -N nodename -D dataPath -c 'default_transaction_read_only = off' 取消CN只读
-
failed to parsing xml.Error:syntax error:line 1,column 0.
-
近日,在华为全球培训中心(杭州),华为联合高校教育专家,组成评审专家小组,对已通过初审的“2022年教育部产学合作协同育人项目华为第二批项目”进行立项评审。评审会采用现场+远程方式,经过一天严格评审,华为云GaussDB项目最终共有11项立项通过。最终立项结果,以教育部产学合作协同育人项目平台网站公布为准。点击了解更多
-
通过 PG_TABLESPACE_SIZE 查询表空间的当前使用情况,得到的是表空间在所有DN上占用空间的总和么?那每个DN上的占用情况要怎么获取?谢谢!!!
-
8月18日,华为云TechWave云原生数据库峰会在深圳举办。华为云与中国信通院云计算与大数据研究所共同发布了业界首个《云原生数据库白皮书》,梳理云原生数据库全流程概念及方法。华为云还与沃趣科技、明源云发布基于华为云云原生数据库GaussDB的联合解决方案,助力客户激活数据价值。会上,华为云CTO张宇昕表示:“数据库经历了线下部署和云化部署阶段,进入到云原生时代,云原生数据库已成为云上数据库使用的标准范式。华为云GaussDB践行云原生思维,将围绕Serverless、Regionless、Modeless三大方向构建核心能力,实现极致弹性、全域可用和极简体验,以满足企业上云和智能升级对时效性、可用性、混合负载等方面的诉求,打造企业核心业务云化的智能数据基座。1、云原生数据库持续演进 支撑客户随时、随地、随心使用如今,企业数字化已经进入深水区,业务数据总量呈现爆发式增长,新业务、新场景对数据库的时效性、可用性、混合负载以及性价比等提出了新的挑战。中国信通院云计算与大数据研究所副所长魏凯表示:“为应对上述挑战,数据库技术正朝着降低成本提升易用性、保障数据安全可信、提升功能增强性能、满足新兴业务需求四大目标演进,云原生数据库则是数据库技术发展的主要方向之一。”云原生数据库是为云架构而设计和构建的数据库,具备更高的扩展性,支持多租户、分布式部署等能力。张宇昕指出:“云原生数据库Serverless的特性增强了弹性、降低了成本,Regionless特性提高了可用性和扩展性,而Modeless特性提升了易用性和效率,在新场景和新应用中能够支撑企业业务的高效运转。Serverless让资源极致弹性传统的烟囱式建设模式会导致响应慢、资源利用率低、系统能力缺乏弹性等问题,难以应对业务突发情况及满足业务快速上线需求。华为云云原生数据库GaussDB具备存算分离、资源池化能力,能够提供多维度的弹性服务,将资源弹性速度从分钟级缩短至秒级,随时响应业务需求。Regionless让数据库全域可用随着出海趋势的到来,中国企业正蓄势跳跃到一个全新发展阶段,跨区域访问和7*24小时线上化成常态。在该背景下,客户存在时延高、体验差、投入成本大等问题,且数据安全与业务连续性面临挑战。华为云云原生数据库GaussDB支持跨AZ、跨Region的全球部署,业务可以在任意地方进行接入和访问,同时带来跨地域的高可用。Modeless带来数据库极简体验传统的数据库只能支持单一负载(TP 或者AP)或者单一模式(KV、文档、时序、宽表等),难以做到一体化的数据处理分析,在线化、实时化地发挥数据价值。华为云云原生数据库GaussDB分别采用HTAP和多模数据库技术,一个入口处理多样负载、一个入口处理多种数据类型,实现一站式处理,业务接入效率可从数月缩短至数天。华为云数据库服务产品部总经理苏光牛表示:“云原生数据库能够让客户更高效地使用数据库,从而构建起敏捷智能的企业数字化业务。特别是进入云原生2.0时代,新应用、新场景驱动数据库实现三大转变,即从以资源为中心到以应用为中心、从以地域为中心到以流量为中心、从以负载为中心到以数据为中心。云原生数据库与生俱来的优势与特征,促使越来越多的用户更加坚定地选择云原生数据库。”为加速企业拥抱云原生数据库,华为云与中国信通院云计算与大数据研究所联合撰写《云原生数据库白皮书》,系统阐述了云原生数据库的发展趋势与现状,从云原生数据库应用场景、技术架构、关键技术以及不同场景下的生产实践,详细介绍了云原生数据库的技术模式,并结合当前应用现状及问题,指明未来云原生数据库的技术方向,力求梳理云原生数据库全流程概念及方法。2、联合生态伙伴发布创新解决方案 让云原生数据库走进千行百业目前华为云已与80多家数据库领域的ISV建立合作关系。华为云与沃趣科技联合打造的QFusion平台在能源、机场等多个行业为客户创造价值。华为云与明源云联合打造的行业ERP解决方案,以数据库为抓手,盘活数据资产,让数据成为血液流动,加速不动产工程数字化。在落地实践中,华为云云原生数据库GaussDB已在2500多家客户规模商用,覆盖金融、政企、游戏、互联网、制造、电商等行业。在游戏行业,华为云为迷你创想成本降低60%,数据库承载量提升3倍,轻松应对1亿多月活;在音视频行业,华为云凭借超高性能和极致弹性能力,提升了多多视频用户的观看体验,为2.6亿用户打开新视界;在互联网行业中,华为云高效支撑华为终端7.3亿月活用户的日常使用,万亿级数据记录,百万级QPS,数据库资源与运维成本整体下降30%。数字化转型是一项复杂的长期工程,不仅需要多方技术力量的配合,更需要大胆创新。华为云践行“一切皆服务”的理念,持续深耕数据库技术和解决方案创新,推动更多企业安心上云、轻松用云,为企业数字化转型提供无限可能。
-
过去五十年里,数据库产品形态经历漫长的变迁与更迭。从大型机集成、封闭的数据库服务,到小型机时代经典的IOE数据库架构,再到互联网带来的MySQL开源数据库浪潮,直至云计算兴起开启了云数据库的时代。究其原因,数据库的发展始终与用户需求变迁紧密相关。如今,云原生数据库又脱颖而出,不仅成为AWS、华为云等一众厂商们力推的数据库发展方向,更有望书写数据库市场的新格局。从云数据库到云原生数据库,其中产生了哪些关键变化?为何数据库厂商们纷纷瞄准云原生数据库?云原生数据库会是用户们的真命天子么?面对种种疑问,华为云数据库服务产品CTO庄乾锋直言:“从用户商业应用需求的变化角度看,云原生数据库会成为用户必然的选择。”01云原生数据库为何备受关注要了解云原生数据库为何备受关注,首先需要知道云原生近年来巨大的影响力。云原生,被认为是以容器、微服务和DevOps等技术为基础而建立的一套云技术产品体系,可以充分发挥云计算弹性、分布式等优势,实现快速部署、按需伸缩和灵活交付。可以说,云原生被认为是云计算最重要的发展方向,也是企业数字化转型和上云的必经之路。如今,云原生技术已从单一容器技术发展到庞大的全栈化云原生技术体系。以CNCF社区(云原生计算基金会)为例,经过六年发展,其已经囊括了数据库、中间件等20多类的技术群。那么,从云数据库到云原生数据库,数据库到底有哪些不同?对此,庄乾锋表示道,“云原生数据库不再是简单的资源供给,而是在架构和技术上能感知应用特征。云原生数据库的一切设计围绕用户应用需求出发,目标是让应用能更智能、更高效地使用数据库。”事实上,云数据库更像是传统数据库按照云模式来提供的数据库服务,存在诸如存储空间浪费、系统性能有限、业务应用受限等缺点,并且这些缺点往往会在当前新的业务场景中得到放大。以保险行业为例,随着互联网保险的兴起,保险公司的业务迅速从线下转向线上,业务场景走向规模化、碎片化和实时化,保险公司业务随时需要经受考验,“水滴筹的一个热点事件,可能就会瞬间给保险公司巨大的业务量。因此,从商业上考虑,用户也在逼着自己走向云原生数据库。”随着企业上云成为大势所趋,各大云服务商们最早意识到云原生数据库的重要性,并且近年来纷纷推出相应的云原生数据库服务。其中,中国各大云服务商在市场中颇为抢眼,其中华为云又尤为表现突出。早在2019年,华为云就推出了云原生数据库GaussDB for MySQL,并且进行多项技术变革,使之成为市场的优秀代表。从2020年开始,华为云结合自身的经验总结与行业实践,又提出了云原生2.0理念,从理念层面、技术层面来推动包括云原生数据库在内的云原生服务在传统行业落地。据悉,针对用户在电商秒杀大促、爆款游戏、政务核心业务、实时供应链扥新业务场景带来的各种诉求,华为云云原生数据库GaussDB再次进行架构升级,以满足各行各业数字化转型的新需求。02架构升级带来什么如今,业务应用的变化一日千里。以大促为例,几年前还是互联网巨头的专属,如今则成为零售、垂直媒体、银行等客户的核心业务,这些业务不可预测性强、极端流量峰值高,相比于互联网巨头丰富的资源与人才配置,很多传统企业并无太多经验,面对时效性、可用性、混合负载、成本等一系列新挑战而“捉襟见肘”。在庄乾锋看来,很多新的业务跟大促类似,真正从需求的角度推动数据库的转变,具体而言就是以资源为中心到应用为中心、从地域为中心到流量为中心,以及从负载为中心到数据为中心,“云原生数据库一能够带来极致弹性,让用户按需使用,二则安全可靠和易可扩展,保障业务规模化的安全运行;三则是降低企业门槛,应用在架构设计、业务处理与切换等方面透明,满足企业多元化需求。”不仅如此,华为云GaussDB在几大关键技术进行了迭代升级,包括NDPQ、ALT、HTAP和多模架构等在业界中具备核心竞争力的技术,全面满足用户各种应用场景的需求。首先是NDPQ(Near-Data Parallel Query)近数据并行查询。云原生数据库的存算分离架构随着业务规模的提升,计算与存储节点通过网络通信,往往会存在网络带宽和延迟的制约。为此,华为云GaussDB NDPQ采用近数据计算下推的设计,避免在分布式系统中移动数据和大量网络流量的产生,并让数据处理在其所存储的地方进行,极大节约了网络带宽资源。“目前NDPQ是华为云数据库所独有的特性,通过近数据计算下推+并行查询,不仅可以将数据查询性能发挥到极致,更可以极大提升数据库的资源利用率。”庄乾锋补充道。其次是ALT(应用无损透明倒换)。在数据库日常进行的主备倒换、小版本升级和规格变更时,可能会造成实际业务中用户会话中断,对于业务连续性造成一定的影响,而ALT则以用户连接为颗粒度,当用户进行主备切换、小版本升级或者规格变更时,系统可以打包用户的会话上下文状态,在达到安全的事务边界后,确保会话上下文状态被完整重放至目标节点并与原会话一一关联保证业务持续性,不受各种操作的影响。第三则是HTAP。众所周知,随着数据驱动型场景的井喷,数据产生方式、规模、速度与过去大不同,数据消费的人群、规模和场景丰富场景迅速增加,数据库OLTP场景和OLAP场景开始加速融合,也推动了数据库HTAP架构的崛起。与SAP HANA这种混合负载的内存数据库不同,新一代的HTAP架构数据库具备显著的特点就是分布式+云原生。以华为云GaussDB的HTAP架构为例,将OLAP和OLTP能力深度融合、统一入口和自动分流,达到数据准实时一致,支持各种混合负载的应用场景。庄乾锋表示:“当前HTAP存在着各种技术路线,华为云则根据当前用户实际需求,打造了HTAP架构,实现统一入口和应用透明,架构在业界云厂商中具有领先性。”最后则是多模态。当前在很多业务场景中,用户除了使用关系型数据库能力之外,还会用到诸如图数据库、时序数据库等能力,如果数据需要转换、导出,不仅容易产生安全问题,多套数据库的维护和开发还将提升成本。因此,多模数据库架构统一数据访问和维护接口,可以大幅简化运维和开发人员的工作,还能确保安全性。以华为云云原生数据库GaussDB的多模架构为例,用户既可以使用MySQL、PostgreSQL等SQL接口访问数据库,还可以使用Redis、MongoDB等NoSQL接口访问,支持KV模型、时序模型和文档存储模型等,用户可以自由地在不同的云数据库之间迁移,满足业务的多样性需求和数据的自由流动。“华为云希望通过GaussDB架构的升级,第一、Serverless化,真正让用户实现以应用为中心,按需使用,TCO更低;第二、Regionless化,通过Global Database、全域分层式索引、全域一致性集群等技术,帮助数据自动流动,满足用户因为业务地域性发展的需求,业务流量在哪里,GaussDB就能部署在哪里,迅速响应客户的业务需求;第三、Modeless化,简化业务的复杂度,通过一个入口,实现应用的透明,以及数据自由流动。”庄乾锋总结道。03全栈技术创新华为云数据库后劲十足放眼全球,在开源和云的驱动下,云原生数据库正在迅速颠覆传统的数据库市场。在中国市场,数据库云化的趋势正在加速。IDC最新数据显示,2021全年中国关系型数据库市场规模达到27.7亿美元,同比增长36%;其中,公有云关系型数据库规模达15.4亿美元,同比增长49%,公有云模式占比提升至55.6%。面向未来,云原生数据库将成为市场竞争的持续焦点。Gartner 预测,到2025 年,基于云原生平台的数字化业务比例将达到95%,将带来云原生数据库市场的快速增长。面对潜力如此巨大的市场,除了华为云等云服务商之外,亦有传统老牌数据库巨头、各种初创数据库公司加入竞争之中。那么,华为云如何看待未来的市场机会,自身的竞争优势在哪里?对此,庄乾锋认为,云原生数据库将成为云上数据库使用的标准模式,华为云在从用户需求、全栈技术创新和开放生态三个角度发力,持续构筑自身的核心竞争力,引领云原生数据库市场的发展。华为云首先会持续聚焦数据库的主流生态,以用户业务需求为导向进行产品/服务的创新。“无论环境或者业务如何发展,全球用户一定会走向云原生的时代。华为云核心思路就是打造符合市场发展规律和需求的具有竞争力的云原生数据库。”另外,华为云会聚焦数据库全栈技术的创新。事实上,数据库作为三大根技术之一,与其他技术紧密联系。比如ARM服务器的兴起、处理器走向多核化、SCM新介质的兴起、AI技术的融入等,进一步要求厂商能够具备全栈技术的创新能力,打造出更加优秀的云原生数据库产品。不同于其他厂商,华为云正是业界少有的具备全栈技术能力的厂商。例如,基于内存池的HTAP是一个重要的创新方向,它需要将内存池技术和HTAP进行结合,充分发挥软硬件协同的能力,彻底解决内存池化的各种数据挑战,而华为云云原生数据库GaussDB已经在该领域走在业界的前列;又如,利用AI技术来实现数据库的自动驾驶也是业界重要的方向,华为云GaussDB融入AI技术,数据库管理智能高效,具备自动检测、自诊断、自调优和自运维等功能。第三则是开源开放,华为云携手合作伙伴实现共赢。华为云将GaussDB单机主备核心能力开源,打造openGauss开放生态,积极同时对主流开源数据库提供广泛的支持,与合作伙伴一起为客户提供创新数据库解决方案,满足用户不同场景的数据库应用需求。信通院调研数据显示,80%以上的企业认为云原生数据库是未来的发展方向。可以说,云原生数据库已经成为燎原之势,受到多个行业用户的关注和使用。面向未来,随着各行各业用户数字化转型的深入,新场景、新应用所迸发出来的新需求,将会推动云原生数据库市场持续壮大,也会驱动云原生数据库成为数据库市场的创新高地,而像华为云这种具备全栈创新能力、聚焦主流生态和用户需求导向的厂商,有望迎来更大的舞台。
-
是否是因为gsjbcd4.jar中的 org.postgresql.ds.common.BaseDataSource getUrl为private 导致与springboot2.6.3中org.springframework.boot.jdbc.DataSourceBuilderPostgresDataSourceProperties BaseDataSource::getUrl 报错
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签