-
当用户在使用数据库过程中,如果白天执行一些耗时比较长的任务(例如:统计数据汇总之类或从其他数据库同步数据的任务),会对正常的业务有性能影响,所以用户经常选择在晚上执行,这增加了用户的工作量。因此数据库GaussDB提供定时任务的功能,可以由用户创建定时任务,当任务时间点到达后可以自动触发任务的执行,从而可以减少用户户运维的工作量。GaussDB提供定时任务的创建、任务到期自动执行、任务删除、修改任务属性(包括:任务id、任务的关闭开启、任务的触发时间、触发时间间隔、任务内容等)。定时任务管理步骤 1 创建测试表:postgres=# CREATE TABLE test(id int, time date);当结果显示为如下信息,则表示创建成功。CREATE TABLE步骤 2 创建自定义存储过程:postgres=# CREATE OR REPLACE PROCEDURE PRC_JOB_1() AS N_NUM integer :=1; BEGIN FOR I IN 1..1000 LOOP INSERT INTO test VALUES(I,SYSDATE); END LOOP; END; /当结果显示为如下信息,则表示创建成功。CREATE PROCEDURE步骤 3 创建任务:新创建的任务(未指定job_id)表示每隔1分钟执行一次存储过程PRC_JOB_1。postgres=# call dbe_task.submit('call public.prc_job_1(); ', sysdate, 'interval ''1 minute''', :a); job ----- 1 (1 row)指定job_id创建任务,其中job_id可用范围为1~32767。postgres=# call dbe_task.id_submit(2,'call public.prc_job_1(); ', sysdate, 'interval ''1 minute'''); isubmit --------- (1 row)步骤 4 通过视图查看当前用户已创建的任务信息。postgres=# select job,dbname,start_date,last_date,this_date,next_date,broken,status,interval,failures,what from my_jobs; job | dbname | start_date | last_date | this_date | next_date | broken | status | interval | failures | what -----+--------+---------------------+----------------------------+----------------------------+---------------------+--------+--------+---------------------+----------+--------------------------- 1 | postgres | 2017-07-18 11:38:03 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:54:03 | n | s | interval '1 minute' | 0 | call public.prc_job_1(); (1 row)步骤 5 停止任务。postgres=# call dbe_task.finish(1,true); broken -------- (1 row)步骤 6 启动任务。postgres=# call dbe_task.finish(1,false); broken -------- (1 row)步骤 7 修改任务属性:修改JOB的Next_date参数信息。--修改Job1的Next_date为1小时以后开始执行。postgres=# call dbe_task.next_time(1, sysdate+1.0/24); next_date ----------- (1 row)修改JOB的Interval参数信息。--修改Job1的Interval为每隔1小时执行一次。postgres=# call dbe_task.interval(1,'sysdate + 1.0/24'); interval ---------- (1 row)修改JOB的What参数信息。--修改Job1的What为执行SQL语句“insert into public.test values(333, sysdate+5);”。postgres=# call dbe_task.content(1,'insert into public.test values(333, sysdate+5);'); what ------ (1 row)同时修改JOB的Next_date、Interval、What等多个参数信息。postgres=# call dbe_task.update(1, 'call public.prc_job_1();', sysdate, 'interval ''1 minute'''); change -------- (1 row)步骤 8 删除JOB。postgres=# call dbe_task.cancel(1); remove -------- (1 row)
-
什么是视图当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。视图每次被引用的时候都会运行一次。构造测试数据步骤 1 执行如下语句,创建测试表。CREATE TABLE infotest ( id int, name varchar(30) , price float , PRIMARY KEY (id)) ;步骤 2 执行如下语句,在表中插入数据。insert into infotest values (1001,'牙刷',10.5),(1002,'毛巾',21.5),(1003,'茶几',999.9),(1004,'电视',3199),(1005,'冰箱',2999),(1006,'1 手机',1999),(1007,'2 手机',7699),(1008,'.3 手机',699.9),(1009,'T恤',21.5),(1010,'牛仔裤',99);创建视图执行如下语句创建新视图MyView,其中infotest为构造测试数据中创建的表。CREATE OR REPLACE VIEW MyView AS SELECT * FROM infotest WHERE price < 1000;CREATE VIEWCREATE VIEW中的OR REPLACE可有可无,当存在OR REPLACE时,表示若以前存在该视图就进行替换。关于CREATE VIEW的更多用法请参考创建视图。查询视图执行如下语句查询MyView视图。SELECT * FROM MyView; id | name | price ------+-----------+------- 1001 | 牙刷 | 10.5 1002 | 毛巾 | 21.5 1003 | 茶几 | 999.9 1008 | .3 手机 | 699.9 1009 | T恤 | 21.5 1010 | 牛仔裤 | 99 (6 rows)查看某视图的具体信息执行如下语句查询MyView视图的详细信息。\d+ MyView View "root.myview" Column | Type | Modifiers | Storage | Description --------+-----------------------+-----------+----------+------------- id | integer | | plain | name | character varying(30) | | extended | price | double precision | | plain | View definition: SELECT * FROM infotest WHERE infotest.price < 1000::double precision;更新数据步骤 1 执行如下语句更新数据。UPDATE infotest SET name = '手机' where id = 1008;步骤 2 更新数据后,通过视图查询更新后的信息。SELECT * FROM MyView; id | name | price ------+-----------+------- 1001 | 牙刷 | 10.5 1002 | 毛巾 | 21.5 1003 | 茶几 | 999.9 1009 | T恤 | 21.5 1010 | 牛仔裤 | 99 1008 | 手机 | 699.9 (6 rows) 更改视图名称步骤 1 执行如下语句将视图改名。ALTER VIEW MyView RENAME TO YourView;ALTER VIEW更多用法请参考更改视图。步骤 2 执行如下命令,查看改名效果。\d+ YourView View "root.yourview" Column | Type | Modifiers | Storage | Description--------+-----------------------+-----------+----------+------------- id | integer | | plain | name | character varying(30) | | extended | price | double precision | | plain |View definition: SELECT * FROM infotest WHERE infotest.price < 1000::double precision;删除视图执行如下命令删除MyView视图。drop view YourView;DROP VIEW
-
gsql是GaussDB提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。基本功能连接数据库:可以通过gsql远程连接数据库实例。如何使用gsql连接数据库请参考连接实例。执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。执行元命令:元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。使用指导步骤 1 使用gsql连接到GaussDB实例。gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。示例,使用jack用户连接到远程主机postgres数据库的8000端口。gsql -h 10.180.123.163 -d postgres -U jack -p 8000详细的gsql参数请参见命令参考。步骤 2 执行SQL语句。以创建数据库human_staff为例。CREATE DATABASE human_staff;CREATE DATABASE通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。步骤 3 执行gsql元命令。以列出GaussDB中所有的数据库和描述信息为例。postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------+----------+-----------+---------+-------+----------------------- human_resource | root | SQL_ASCII | C | C | postgres | root | SQL_ASCII | C | C | template0 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root template1 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root human_staff | root | SQL_ASCII | C | C | (5 rows)更多gsql元命令请参见元命令参考。示例以把一个查询分成多行输入为例。注意提示符的变化:postgres=# CREATE TABLE HR.areaS(postgres(# area_ID NUMBER,postgres(# area_NAME VARCHAR2(25)postgres-# )tablespace EXAMPLE;CREATE TABLE查看表的定义:postgres=# \d HR.areaS Table "hr.areas" Column | Type | Modifiers -----------+-----------------------+----------- area_id | numeric | not null area_name | character varying(25) |向HR.areaS表插入四行数据:postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa');INSERT 0 1切换提示符:postgres=# \set PROMPT1 '%n@%m %~%R%#'root@[local] postgres=#查看表:root@[local] postgres=#SELECT * FROM HR.areaS; area_id | area_name ---------+------------------------ 1 | Europe 4 | Middle East and Africa 2 | Americas 3 | Asia(4 rows)可以用\pset命令以不同的方法显示表:root@[local] postgres=#\pset border 2Border style is 2.root@[local] postgres=#SELECT * FROM HR.areaS;+---------+------------------------+| area_id | area_name |+---------+------------------------+| 1 | Europe || 2 | Americas || 3 | Asia || 4 | Middle East and Africa |+---------+------------------------+(4 rows)root@[local] postgres=#\pset border 0Border style is 0.root@[local] postgres=#SELECT * FROM HR.areaS;area_id area_name ------- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa(4 rows)使用元命令:root@[local] postgres=#\a \t \xOutput format is unaligned.Showing only tuples.Expanded display is on. root@[local] postgres=#SELECT * FROM HR.areaS;area_id|2area_name|Americas area_id|1area_name|Europe area_id|4area_name|Middle East and Africa area_id|3area_name|Asia
-
我是在本地的java项目中,连接云服务器中的openGauss中新建的数据库。通过新建的用户jack连接。这是我引用的依赖包。这是我的配置这是我云服务器上的数据库:本地测试连接:然后将本地项目打包报错,在项目中执行mvn clean ,再执行mvn package,然后报错。上图显示的jdbc:postgresql://123.60.....是我云服务器中的数据库地址没有参考文档,就是按照平时在本地打包的步骤。我已经在云服务器上安装了openGauss检查防火墙以及selinux
-
我们不断探索在指尖,在应用,在云上全面云化时代数据是企业数字化转型的基石数据的价值被深度挖掘华为云GaussDB为企业提供更安全、更稳定、更智能的云上数据库服务华为云数据库GaussDB品牌视频1000+稀缺研发专家800+核心科技专利2000+实践案例 开源开放包容产学研用一体化 华为云GaussDB企业核心数据上云的信赖之选全新品牌主张,持续实力超越长按识别二维码,可以观看华为云数据库GaussDB品牌视频哦!【原视频链接】https://www.huaweicloud.com/product/dbs.html
-
!!!重要提示:本帖是副帖,参与活动请前往主帖,在主帖进行回复,副帖回复不参与活动评奖。主帖入口请戳文末链接或二维码↓↓↓在国际局势动荡且数据量指数级暴增的今天,数据库作为IT行业最重要的基础软件,这颗被誉为软件行业的明珠更是愈发重要。本期实训营通过数据库及行业发展趋势、华为云数据库产品的介绍,让大家对数据库有个全局的认知,为国产数据库的崛起培养优秀的人才。HCSD实训营 第一期欢迎来到数据库的世界活动时间:2022/4/15-2022/5/15活动主题:HCSD实训营第一期——躬身入局,一览华为云数据库活动目的:了解华为云数据库,通过理论和实践相结合的方式,让0基础用户,实现技能提升。活动奖品:华为watchGT2e、筋膜枪、华为手环4、罗技键鼠套装、无线鼠标,和盲盒抽奖(U盘、文件收纳袋、笔记本套装、笔记本散热器、电风扇、数据线、冰箱贴等)参与入口:>>>>HCSD实训营 第一期 数据库【注意事项】1.获奖结果将在活动结束后7个工作日内进行公示,请报名和留言的伙伴关注社区内容,所有奖品将在活动结束后15个工作日内发放,有任何问题,请添加小助手微信18209232786。2.活动奖品颜色随机,且部分奖品数量有限发完将用等值奖品代替;另参与人数不能达到最低楼层,不开奖。3.活动参与需遵守《华为社区常规活动规则》;4.为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等**活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格。5.本次活动一个实名认证账号只能对应一个获奖人,如同一账号填写多个不同获奖人,不予发放奖励;6.本活动最终解释权归华为云所有。
-
DBeaver是一个通用的数据库客户端,可以通过配置不同驱动连接各种不同的数据库。 在华为云帮助中心获取到GaussDB对应的jdbc驱动包之后,只需要在DBeaver进行配置,即可访问数据库服务。连接数据库单击此处,下载DBeaver并安装。在华为云帮助中心获取jdbc驱动包,并解压。 解压后会获取到两个jar包,分别为gsjdbc400.jar和gsjdbc200.jar,将它们放在任意目录下。将jdbc驱动添加到DBeaver的驱动管理中。 打开DBeaver,单击“数据库”,单击“驱动管理器”,单击“新建”,如下界面。 需要将两个jar包都放入 驱动名称:可以命名为便于识别的名称,例如GaussDB Driver 驱动类:org.postgresql.Driver URL:jdbc:postgresql://{host}:{port}/[{database}]新建连接: 输入主机IP地址,端口,数据库,用户名和密码,即可完成连接。
-
【活动时间】2022/3/30—6/30【活动主题】数据库专场,“预见”华为伙伴暨开发者大会2022!【活动内容】话题互动+开发者故事征集+活动分享//*3个活动内容盖楼独立活动一:话题互动 —— 回帖盖楼话题方向话题内容 话题1:#华为伙伴暨开发者大会2022“预见”数据库#你参加过华为伙伴暨开发者大会(往年的HDC大会)线下活动吗?华为伙伴暨开发者大会2022数据库版块,你最关注/最想了解什么内容?华为伙伴暨开发者大会2022,数据库我想对你说?数据库行业百花齐放,GaussDB作为华为倾力打造的自研数据库,你看好它的发展吗?对于华为云GaussDB数据库有什么好的建议呢?话题2:#与GaussDB挑战赛的不解之缘#你参加过2019-2021历届的数据库挑战赛吗?数据库挑战赛给你留下最深的印象是什么?你的参赛经历/经验是否可以分享下?你希望数据库挑战赛的赛题方向是什么?参与方式:选择其中一个话题即可,进行回帖盖楼回复格式:华为云账号+话题X+具体内容(不少于30字)奖励规则:盖楼层数X中奖用户数奖品名称XX/10 1.公牛插座/三合一数据线/GaussDB字母笔/雨伞/定制水杯(随机发)X≥80X/10+1 2. 基于1奖品,随机赠送价值50元“64G U盘”一个X≥150X/10+1 3.基于2奖品,随机赠送价值99元“荣耀智能体脂称2”一个X≥230X/10+1 4. 基于3奖品,随机赠送价值129元“折叠烧水壶” 一个X≥300X/10+1 5. 基于4奖品,随机赠送价值199元“HUAWEI (灰色)背包” 一个活动二:开发者故事征集——说出你的故事参与前情:如果参加过华为伙伴暨开发者大会2022(往年HDC)数据库线下大会,请谈谈参会感受、对华为伙伴暨开发者大会的未来期望或者与相关的内容;如果参加过往届的华为云数据库挑战赛,可以谈谈参赛感受和经历,分享参赛过程中的故事。如果以上都未参加过,可以分享一下你与数据库的前世今生,比如参加过数据库往期的哪些线上/线下活动,参与活动的收获、成长或具体感受,可自行拓展。参与方式:请先添加华为云数据库小助手(18209232786),回复:“华为伙伴暨开发者大会预热——开发者故事征集”关键词即可(视频制作前,请先说明一下录制的内容,小助手可以帮忙把把关,避免跑题或者词不达意)录制要求:画质清晰,话题内容贴合要求,录制时组织好语言,视频时长3分钟左右;有拍摄经验者可拍摄出类似于Vlog形式的视频更加分哦!奖励规则: 奖励标准奖品名称数量视频内容最优质的前20名 华为背包(灰色)1 折叠烧水壶2 智能体脂称23 64GU盘+商务笔记本6 《华为数据之道》书籍/《数据库原理与应用》书籍8后20名 GaussDB字母笔不限 活动三:呼朋引伴来参与参与方式:Step1:分享活动海报,邀请好友参与活动Step2:好友完成“活动一 / 活动二”中任意一个任务,参与回帖即可回复格式:华为云账号+邀请者华为云账号+活动一/活动二内容打卡奖励规则:相互填写对方的华为云账户不算邀请哦!有效邀请人数N奖品N≥5笔夹/3D立体卡通书签/三合一数据线X≥10雨伞/手机支架X≥1564G U盘 + 定制水杯/GaussDB字母笔X≥20《华为数据之道》书籍/《数据库原理与应用》书籍,三选一X≥30荣耀智能体脂称2【注意事项】1.获奖结果将在活动结束后7个工作日内进行公示,请报名和留言的伙伴关注社区内容,所有奖品将在活动结束后15个工作日内发放。2.活动奖品颜色随机,且部分奖品数量有限发完将用等值奖品代替;3.为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等**活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格。4.本活动最终解释权归华为云所有。
-
政企数字化转型如火如荼,传统商业数据库改造呼声愈加强烈,如何为政企客户提供改造最优解,华为云数据库GaussDB从技术、人才、权威认可、实践、生态等五个方面提供一站式上云迁移解决方案与服务,快来看看华为云GaussDB奉上的“五心”诚意吧~ 活动链接:https://activity.huaweicloud.com/dbs_Promotion/index.html
-
近期,各地疫情又一次席卷而来,居家隔离成为常态。不过,外出的不便并没有阻挡莘莘学子求知的渴望,线上课堂成为了大多学生上课的主要形式。在北京邮电大学中,邓芳老师、卢向群老师、杜军平老师、肖晨老师等多名老师所带的计算机学院和国际学院班级中的200多名学生就这样在线开启了本学期数据库课程的学习。 《数据库系统原理》是计算机科学与技术学科知识体系中信息管理领域的核心课程,也是计算机相关专业的核心专业课程。通过此课程的学习,学生可以深入了解数据库系统的基础理论和基本方法、数据库管理系统的核心技术、数据库应用系统设计开发过程、数据库系统操作能力和应用系统设计开发能力,具有对数据库技术领域复杂工程问题采用科学有效的方法进行研究的能力。本学期的《数据库系统原理课程设计》是理论课的后续课程。对学生来说,这更像是一篇毕业论文,因为从确定方向、系统设计、编码、调试、编译、发布,再调试、再学习......每个环节要不断试错、完善,才能完成。这是一场新的探索之旅,将满腹所学皆应用于实践。 校企联合共促数据库产业人才培养所学皆所用,是学习的价值所在。为了让学生们真正将理论应用到实践中,北京邮电大学与华为展开了深入的合作。北京邮电大学是华为与教育部联合建设产学育人“智能基座”项目中的其中一所高校,本着校企联合、产学育人的目的,华为为学校提供教学课件、教学平台等教学资源,并将企业在行业实际应用方面的经验积累、打磨的产品提供给高校,通过双方合作,培养更适用于数据库行业的应用型人才。应北京邮电大学邓芳老师和卢向群老师的邀请,3月16日,华为云数据库技术专家窦德明与北京邮电大学的众多学生相约线上,进行了一次数据库行业知识和技术的分享与交流,目的是让高校的学生们在学习数据库理论的同时,有机会了解数据库行业发展的趋势、动态、新技术探索以及商业环境中的实际应用,为未来有志于从事数据库工作的学生开阔视野,提供实用性的参考和指引。GaussDB走进课堂之数据库行业洞察数据库是“根技术”,一直被誉为基础软件皇冠上的明珠。就像50年代核弹氢弹是高精尖,而在信息时代,信息产业的高精尖主要在基础软硬件的核心控制上,数据库就是其中最重要的软件。从上世纪60年代至今,经历了前关系型数据库、关系型数据库、后关系型数据库三个阶段。二十一世纪一零年代以来,随着互联网与云计算的发展,国产数据库进入快速发展时期,越来越多的厂商在数据库领域进行布局,随之而来的是,数据库相关的各类组织陆续成立,数据库人才培养体系、生态体系也在快速完善。(图片来源:中国信通院发布《数据库发展研究报告(2021年)》)(图片来源:中国信通院发布《数据库发展研究报告(2021年)》)根据中国信通院研究报告数据,2020年全球数据库市场规模为671亿美元,其中中国数据库市场规模为35亿美元(约合241亿元人民币),占全球5.2%。预计到2025年,全球数据库市场规模将达到798亿美元,而中国数据库市场总规模将达到688亿元,市场年复合增长率将达到(CAGR)为23.4%。在数据库发展如火如荼的时代下,上云已经成为数字化时代的一个新标志。从行业角度来说,云是数字化和新基建的关键要素。据预测,到2025年,85%的应用都将运行在云上。软件云化的趋势已经不可逆转,基于云的软件开发也将是未来软件开发的主要形态。云计算也将是各位学子未来的主要职业通道。和IDC或ECS自建数据库相比,使用云数据库可以节省大量的人力和成本,减少繁重和重复的运维工作,客户可以将主要精力聚焦在自己的核心业务上。基于对产业趋势的理解和华为在IT软硬件全栈的长期技术积累,华为云数据库从人才、软硬协同和生态三方面进行战略布局。华为在数据库领域持续研发投入已经有10多个年头,布局全球7大研究所,拥有1000+数据库专业人才;同时,华为积极拥抱开源,并将GaussDB单机主备的核心代码开源,托管到openGauss开源社区,真正做到架构开放、代码开放、技术开放和社区开放;另外,积极推进产、学、研、用相结合,大力投入高校合作,通过校企联合课程培养未来数据库产业人才,与学术界紧密合作,共同开展数据库前沿技术创新及难题公关。GaussDB走进课堂之前沿技术探索在介绍完数据库行业趋势后,窦德明向学生们介绍了华为云数据库——GaussDB的关键特性和核心技术。GaussDB是基于openGauss开源生态打造的企业级分布式数据库,服务于金融政企客户。邓芳老师上学期的数据库课程随堂实验就是基于GaussDB进行,让学生可以专注于学习、实践,学习和了解分布式数据库架构与创新,提前体验商业环境中的数据库形态。在本学期,学生将继续使用GaussDB来进行数据库课程的课程设计。作为新一代金融级分布式数据库,GaussDB是华为全自研产品,应用了多项黑科技核心技术,拥有高性能、高可用、高扩展、高安全、AI-Native自治等诸多核心能力。GaussDB当前已经在1500+金融政企客户规模商用,成功支撑银行核心业务完成系统分布式改造,助力华为消费者云实现智慧化业务运营......越来越多的金融政企客户选择华为云GaussDB作为数字化转型的坚实数据底座。.GaussDB课堂问答两个小时的时间,窦德明为北邮的学生们带来了一场有声有色的数据库知识分享,同时还与学生积极互动,就学生关注的话题做了详细解答,这里我们节选了部分问答:“假定有一个Redis数据库采用AOF作为持久化策略,设定每秒同步一次,如果在同步之前服务器突然宕机,那这一秒的数据改如何恢复呢?”“内存中的数据如果已经写入日志,但日志未写入磁盘的话是恢复不了的。任何数据库都有这个问题,即使跨区域容灾的灾备同步,也无法完全保证这种情况下的数据不丢失。”“对于一些很重要的服务,如何提高数据的可靠性呢?”“这个问题需要从架构上解决,有很多方案。一种是基于存储级的高可靠,在存储与存储之间进行数据备份;一种是数据库级的高可靠,比如华为云分布式数据库支持多副本机制,把数据打散做分片,存储在各个数据节点上,当A节点出现故障后B节点有分片数据,只要存在一个可用数据副本,数据库的状态就是正常的。”“云原生数据库、分布式数据库和大数据技术的区别与联系是什么?”“这是三个不同的维度。云原生数据库主要是和传统数据库进行区分的,传统数据库是客户自己买服务器,自己建机房,硬件资源和数据库只给自己用,就是我们通常所说的“私有云”,云原生数据库是生于云、长于云,从一开始就是基于云的架构体系而孵化出来的数据库,可以理解为面向公有云和混合云场景。分布式数据库是和原来的单机主备数据库进行区分的,比如Oracle、MySQL、DB2这些都是单机主备数据库,数据库实例到达一定数据规模时无法水平扩展,分布式数据库是运用一些新技术,如大集群通信、计算存储分离、数据重分布等实现计算节点、存储节点的弹性扩缩容,解决数据库的扩展性问题。大数据的概念比较泛,通常大家说的大数据是指Hadoop这套体系,比如Spark、Flink等,但远不止这些,数据库、数据仓库、数据湖都是大数据领域的一部分,大数据是相对于传统数据量比较小、数据还没有爆发性增长时而言的,大数据更聚焦于把数据汇集到一起,进行海量数据的分析与挖掘。”“什么叫CN互为主备?如何保证SQL请求只被单个CN节点获取呢?”“CN互为主备就是材料中写的Active-Active,可以理解为断连重连,比如CN 1出现故障, jdbc会自动路由连接CN 2,所有新的SQL请求会通过CN 2下发执行,已经由CN 1下发的SQL将失败回滚。虽然应用连接配置的可能是多个CN,但一条SQL只能通过一个CN下发,只有这个CN故障后,这条SQL重新请求才会走到另外一个CN,以此保证SQL请求只被单个CN获取。”“老师,能不能直接在裸机上开发数据库内核,绕过操作系统呢?”“单纯的数据库内核编译可以绕过操作系统,但调试、部署这些是绕不过的,因为数据库底下就是操作系统,必须跑在操作系统上,还要解决不同操作系统的兼容性问题,所以是没办法绕过去的。”从学生的互动中可以感受到,北京邮电大学数据库课程的学生,不仅仅限于对数据库课堂内容的学习,还对数据库的可靠性、架构以及未来可能的创新点有进一步研究和探索。数据库是讲究生态的产业,生态需要耐心持续的投入。一直以来,华为云GaussDB积极参与和推进产业生态,与高校、开发者、合作伙伴共建生态,并已与国内80+所院校建立起合作关系。未来,华为云GaussDB也将继续携手北京邮电大学以及更多高校,积极推进校企联合,为学生们输送更多行业前沿动态和技术探索,持续完善华为云GaussDB数据库的人才培养体系,保障数据库产业未来人才供给。华为云数据库团队2023届实习岗位已经开放,向想要步入数据库行业的人才张开了怀抱。如果你对数据库充满热爱和好奇,快来和我们一起探索代码奥秘吧!HR专员:zhaochao1@huawei.com
-
近日,华为云GaussDB重磅推出了《华为云数据库GaussDB》专刊。在这里,我们将为您剖析数据库最前沿技术及方向,解读GaussDB全套解决方案,跨越数字化实践应用鸿沟,为千行百业持续提供稳定高效智能的数据服务。五大板块,全方位为您提供更丰富的数据库内容:产业观点:洞悉数据库前沿发展趋势,掌握数据库最新方向解决方案:全套GaussDB数据库迁移解决方案,让客户安心、省心、放心客户实践:成功在1500+大型客户规模商用,助力千行百业数字化转型开放生态:产学研用,汇聚创新力量,助推数据库产业生态发展最新动态:新品上市、产业动态、行业资讯、开发者活动等重大内容抢先知我们相信,未来一定会有越来越多的企业基于云数据库来构建更稳定可靠的数据底座服务,企业数字化进程也会在云数据库的助力下变得更快、更稳。想了解更多《华为云数据库GaussDB》专刊内容,欢迎点击下方【附件】下载哦!
-
GaussDB性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。调优流程调优各阶段说明,如下表所示。阶段描述确定性能调优范围获取集群各节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。SQL调优指南审视业务所用SQL语句是否存在可优化空间,包括:通过ANALYZE语句生成表统计信息:ANALYZE语句可收集与数据库中表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。分析执行计划:EXPLAIN语句可显示SQL语句的执行计划,EXPLAIN PERFORMANCE语句可显示SQL语句中各算子的执行时间。查找问题根因并进行调优:通过分析执行计划,找到可能存在的原因,进行针对性的调优,通常为调整数据库级SQL调优参数。编写更优的SQL:介绍一些复杂查询中的中间临时数据缓存、结果集缓存、结果集合并等场景中的更优SQL语法。数据库性能调优通常发生在用户对业务的执行效率不满意,期望通过调优加快业务执行的情况下。正如“性能因素”小节所述,数据库性能受影响因素多,从而性能调优是一项复杂的工程,有些时候无法系统性地说明和解释,而是依赖于DBA的经验判断。尽管如此,此处还是期望能尽量系统性的对性能调优方法加以说明,方便应用开发人员和刚接触GaussDB的DBA参考。性能因素多个性能因素会影响数据库性能,了解这些因素可以帮助定位和分析性能问题。系统资源数据库性能在很大程度上依赖于磁盘的I/O和内存使用情况。为了准确设置性能指标,用户需要了解集群部署硬件的基本性能。CPU,硬盘,磁盘控制器,内存和网络接口等这些硬件性能将显著影响数据库的运行速度。负载负载等于数据库系统的需求总量,它会随着时间变化。总体负载包含用户查询,应用程序,并行作业,事务以及数据库随时传递的系统命令。比如:多用户在执行多个查询时会提高负载。负载会显著地影响数据库的性能。了解工作负载高峰期可以帮助用户更合理地利用系统资源,更有效地完成系统任务。吞吐量使用系统的吞吐量来定义处理数据的整体能力。数据库的吞吐量以每秒的查询次数、每秒的处理事务数量或平均响应时间来测量。数据库的处理能力与底层系统(磁盘I/O,CPU速度,存储器带宽等)有密切的关系,所以当设置数据库吞吐量目标时,需要提前了解硬件的性能。竞争竞争是指两组或多组负载组件尝试使用冲突的方式使用系统的情况。比如,多条查询视图同一时间更新相同的数据,或者多个大量的负载争夺系统资源。随着竞争的增加,吞吐量下降。优化数据库优化可以影响到整个系统的性能。在执行SQL制定、数据库配置参数、表设计、数据分布等操作时,启用数据库查询优化器打造最有效的执行计划。调优范围确定性能调优主要通过查看集群各节点的CPU、内存、I/O和网络这些硬件资源的使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点,然后针对性调优。如果某个资源已达瓶颈,则: 检查关键的操作系统参数和数据库参数是否合理设置。 通过查询最耗时的SQL语句、跑不出来的SQL语句,找出耗资源的SQL,进行SQL调优指南。如果所有资源均未达瓶颈,则表明性能仍有提升潜力。可以查询最耗时的SQL语句,或者跑不出来的SQL语句,进行针对性的SQL调优指南。
-
数据库使用过程中,SQL调优是提升数据库性能的重点。SQL调优的唯一目的是“资源利用最大化”,即CPU、内存、磁盘IO、网络IO四种资源利用最大化。所有调优手段都是围绕资源使用开展的。所谓资源利用最大化是指SQL语句尽量高效,节省资源开销,以最小的代价实现最大的效益。本章介绍典型的SQL调优的方法和案例。调优流程对慢SQL语句进行分析,通常包括以下步骤:1. 收集SQL中涉及到的所有表的统计信息。在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧往往会造成执行计划严重劣化,从而导致性能问题。从经验数据来看,10%左右性能问题是因为没有收集统计信息。具体请参见更新统计信息。通过查看执行计划来查找原因。如果SQL长时间运行未结束,通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出来,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及实际运行情况,以便更精准地定位问题原因。有关执行计划的详细介绍请参见SQL执行计划介绍。3. 审视和修改表定义。4. 针对EXPLAIN或EXPLAIN PERFORMANCE信息,定位SQL慢的具体原因以及改进措施,具体参见典型SQL调优点。5. 通常情况下,有些SQL语句可以通过查询重写转换成等价的,或特定场景下等价的语句。重写后的语句比原语句更简单,且可以简化某些执行步骤达到提升性能的目的。查询重写方法在各个数据库中基本是通用的。经验总结:SQL语句改写规则介绍了几种常用的通过改写SQL进行调优的方法。典型调优案例选择合适的分布列现象描述:表定义如下:CREATE TABLE t1 (a int, b int);CREATE TABLE t2 (a int, b int);执行如下查询:SELECT * FROM t1, t2 WHERE t1.a = t2.b;优化分析:如果将a作为t1和t2的分布列:CREATE TABLE t1 (a int, b int) DISTRIBUTE BY HASH (a);CREATE TABLE t2 (a int, b int) DISTRIBUTE BY HASH (a);则执行计划将存在“Streaming”,导致DN之间存在较大通信数据量。如果将a作为t1的分布列,将b作为t2的分布列:CREATE TABLE t1 (a int, b int) DISTRIBUTE BY HASH (a);CREATE TABLE t2 (a int, b int) DISTRIBUTE BY HASH (b);则执行计划将不包含“Streaming”,减少DN之间存在的通信数据量,从而提升查询性能。建立合适的索引。现象描述:查询与销售部所有员工的信息:SELECT staff_id,first_name,last_name,employment_id,state_name,city FROM staffs,sections,states,places WHERE sections.section_name='Sales' AND staffs.section_id = sections.section_id AND sections.place_id = places.place_id AND places.state_id = states.state_id ORDER BY staff_id;优化分析:建议在places.place_id和states.state_id列上建立2个索引。更多其他调优案例请参考调优案例。
-
本实践使用DRS的实时同步功能将本地Oracle数据库实时迁移至华为云GaussDB。通过全量+增量同步,实现源数据库Oracle和目标数据库GaussDB的数据长期同步。业务架构图操作流程创建GaussDB实例创建GaussDB实例,作为迁移任务目标库。具体请参考创建实例。迁移前构造数据迁移前需要在源库构造一些数据类型,供迁移完成后验证数据。具体请参考这里。创建迁移任务创建DRS实例,将本地Oracle上的test_info数据库迁移到GaussDB实例中test_database_info数据库中。1. 登录华为云控制台。2. 单击管理控制台左上角的图标,选择区域。选择目标实例所在的区域。3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4. 左侧导航栏选择“实时同步管理”,单击“创建迁移任务”。5. 配置同步实例信息。选择区域,项目,填写任务名称。配置迁移任务的类型,选择目标实例和子网。单击“下一步”。6. 配置源库及目标库信息。填写源库的IP、端口、用户、密码等信息。填写完成后,需要单击“测试连接”,测试连接信息是否正确。填写目标库的账户和密码。填写完成后,需要单击“测试连接”,测试连接信息是否正确。单击“下一步”,仔细阅读提示内容后,单击“同意,并继续”。7. 设置同步。在源库选择需要迁移的数据库和表。本次实践中选择“test_info”中的“DATATYPELIST”表。选择完成后,可以设置迁移后是否重新命名库名和表名。本次实践将表名重新命名为“DATATYPELIST_After”。注意重新命名时不要使用特殊符号,否则会导致迁移后执行SQL语句报错。确认重命名设置内容,单击“下一步”。8. 高级设置。本页面内容仅做确认,无法修改,确认完成后单击“下一步”。9. 数据加工。在该页面可以对迁移的表进行加工。包括选择迁移的列,重新命名迁移后的列名,本次实践将“COL_01_CHAR______E”重新命名为“new-line”。选择需要加工的表。 编辑“COL_01_CHAR______E”列。 将“COL_01_CHAR______E”重新命名为“new-line”,单击“确定”。 单击“下一步”。10. 预检查。所有配置完成后,进行预检查,确保迁移成功。对于未通过的项目,根据检查结果中的提示信息修复,修复完成后,单击“重新校验”,直到预检查通过率为100%。预检查全部通过后,单击“下一步”。11. 任务确定。检查所有配置项是否正确。单击“启动任务”,仔细阅读提示后,勾选“我已阅读启动前须知”。单击“启动任务”,完成任务创建。 12. 任务创建成功。任务创建成功后,返回任务列表查看创建的任务状态。
-
1月7日-9日,以“开源论道·数据驱动·共建数字化未来”为主题的第十一届PostgreSQL中国技术大会隆重举办。华为多位数据库专家出席并发表了重要演讲,分享了华为云数据库最新技术与实践,积极推动商业落地,使能企业智能升级。会上,华为云RDS for PostgreSQL荣获“数据库最具潜力产品奖”,华为流程IT DBA团队荣获“PostgreSQL中国最具价值团队奖”,华为数据库架构师陈华军和华为云数据库高级专家赵全明分别荣获“十周年卓越贡献特别奖”、“中国PostgreSQL最具价值专家MVP奖”。大会主会场,华为质量与流程IT数据库架构师陈华军分享了《华为集团IT PostgreSQL运用实践》主题演讲。他介绍到,流程IT作为服务华为公司19万员工的企业IT部门,支持华为公司全球业务、全球研发、全球协同,客户覆盖全球170多个国家、服务上亿消费者。为了应对日益增长的业务数据和海量并发问题,华为集团对交易库选择主要采用云数据库PostgreSQL去“O”,通过架构部署、参数调优、客户端配置、监控告警、性能诊断工具、闪回实现等能力,很好地解决了数据库兼容性、扩展性、数据一致性、性能等方面的问题。目前,华为集团IT去“O”和上云工作已完成一半。华为云数据库高级工程师刘志俊在分论坛分享了《Oracle迁移到PostgreSQL的挑战与突破》。他提到,近年来去“O”的呼声越来越大,大量的传统企业开始脱离“IOE”集中式架构,进行云端分布式改造。针对扩展性、技术不可控、高成本等去“O”难题,华为云GaussDB推出了数据库和应用迁移UGO+数据复制服务DRS专属组合解决方案,该方案从迁移评估、结构迁移、应用迁移、全量+增量数据迁移、数据一致性动态校验、流量回放等方面提供了一站式迁移上云方案,让客户上云更轻松、更高效。华为云数据库产品经理冯万里分享了《解锁华为云数据库PostgreSQL高速增长密码》。他表示,华为云数据库PostgreSQL连续3年保持5倍营收增长,持续为5000+客户创造了价值。取得这一重大成果的原因在于,华为云RDS for PostgreSQL具备卓越的高可靠、高安全、插件丰富、兼容开源、便捷上云、低成本等能力优势,并在国家地理信息服务平台天地图和中国一汽等企业中成功落地。华为云数据库高级工程师杨科伟在分论坛分享了《GaussDB(for Redis)的云原生存算分离架构实践》。他指出,存算分离的分布式架构是大势所趋,目前已经有越来越多企业选择将核心业务上云到该架构。华为云GaussDB(for Redis)基于该架构,完美避开了开源Redis的主从堆积、主从不一致、fork抖动、内存利用率只有50%等问题,构筑了强一致、高可用、冷热分离、弹性伸缩、高性能等极具竞争力的能力优势,极大促进了企业业务的发展。华为云数据库高级工程师党李飞分享了《华为云DDS数据库容灾关键技术》。他介绍到,华为云DDS是一款兼容MongoDB 3.4/4.0版本的文档数据库服务,目前支持分片集群、副本集和单节点三种部署架构。华为云DDS基于华为云数据复制服务DRS灾备技术,支持主备倒换,通过数据抓取和数据回放,保障数据一致性。通过优化原生Change Streams,华为云DDS支持更丰富的DDL语句,对于集合删除、数据库删除事件,日志拉取不中断,支撑近50000 ops,与社区版相比,性能得到大幅提升。技术不止步,服务更贴心,华为云数据库未来将会打造更优、更专业高效的数据库服务,赋能企业挖掘数据价值,推动业务革新,加速企业数字化转型。 错过直播不要怕,点击下面链接可直接回顾精彩:1月7日,华为数据库架构师陈华军演讲链接:https://live.csdn.net/room/postgresqlchina/1Ppndzfv?spm=1001.2014.3001.55011月8日,华为云数据库高级工程师刘志俊演讲链接:https://live.csdn.net/room/postgresqlchina/FS0reRwq?spm=1001.2014.3001.55011月9日,华为云数据库高级工程师杨科伟和党李飞、华为云数据库产品经理冯万里演讲链接:https://live.csdn.net/room/postgresqlchina/XB2Uc2AA?spm=1001.2014.3001.5501 【阅读原文】https://www.huaweicloud.com/product/dbs.html
上滑加载中
推荐直播
-
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步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签