• [技术干货] 【免费直播课】恩墨学院《从安装入手学习GaussDB T》技术分享 3月5日晚20:00开播,欢迎报名~
    直播时间:2020/3/5  20:00—21:00报名通道:《从安装入手学习GaussDB T》活动报名链接演讲嘉宾:姜殿斌 (恩墨学院产品总监)恩墨学院金牌讲师,20+年IT从业经验;Oracle OCP、OCM,MySQL OCP认证;精通RAC与DG+RAC高可用、灾备方案;存储、虚拟化、Oracle数据库方面达到架构师级别;对数据库学习有独到的方法,并成功运用在教学上。活动简介:本分享从GaussDB T的安装以及安装后的优化、卸载、手工建库、开发环境配置等方面,让大家能够自己动手搭建GaussDB的学习环境,在实践中来学习高斯数据库。另外,对数据库的体系结构做一个简单介绍以及安装中遇到的问题;并对数据库的备份、恢复和闪回进行讲解。最后就学习方法、学习心得进行分享。这是一个入门级培训讲座。分享大纲GaussDB简介和标准安装;安装进阶:手工建库、体系学习、安装后优化;数据库工具:GaussDB DS的安装、配置以及ZSQL的使用;GaussDB卸载、升级;安装遇到的问题;备份、恢复、闪回等;学习方法、学习心得的分享。适合人群零基础小白;有一定Oracle或者其他数据库使用经验的小伙伴;希望了解和进一步学习GaussDB T的同学。报名通道:《从安装入手学习GaussDB T》活动报名链接
  • [云享读书会] 读书笔记征集【云享读书会-数据仓库工具箱:维度建模权威指南】
    感谢关注华为云 · 云享读书会系列活动~本期活动已结束~查看本期读书会领读视频   请戳:云享读书会《数据仓库工具箱》查看本期读书笔记   请戳:读书笔记征集【云享读书会-数据仓库工具箱】获取近期读书会活动安排,请私信小助手咨询哈~开发者,你好哟~欢迎参加华为云 · 云享读书会系列活动!本期活动领读书籍为 - 数据仓库经典之作《数据仓库工具箱:维度建模权威指南》邀请华为数据仓库资深专家张剑博士现身领读!经过专家的视频领读,如果你有些数据仓库相关知识收获,欢迎在此帖留下你的读书笔记~01. 征集时间2019.12.19 - 2019.12.2902. 读书笔记要求1. 每篇读书笔记字数要求≥300字;2. 内容要求与每日领读视频、《数据仓库工具箱:维度建模权威指南》书籍或是华为云DWS/GaussDB产品优化意见相关;3. 内容原创不可抄袭;4. 本期活动增加最佳读书笔记评选环节,由领读专家评选一篇最佳读书笔记,奖励此篇笔记提交人;5. 回帖时请务必留下你的微信昵称和华为云账号。03. 注意事项1. 读书笔记提交后,小助手会在3个工作日内按续完成审核,并增加活动积分100分/篇;2. 本次活动通过提交读书笔记,可获得的积分上限为500分;3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:结业实践>读书笔记>自测题;5. 其他积分获取方式请查看活动社群公告;6. 其他未说明事项请参照 云享读书会《数据仓库工具箱》04. 关于云享读书会每期云享读书会活动,会选取一本技术相关的畅销书籍,由原作者/业内大咖提炼书籍精华,在读书会的专属微信社群中,每日输出精华知识的领读视频,帮助大家快速积累专业知识。活动期间会设置每日自测题、结业实践任务、提交读书笔记三种学习任务,并根据活动结束后的积分排行发放活动奖励。05. 活动奖励附录. 每日自测题答案Day1:数据仓库、商业智能及维度建模-自测题及答案1. DW/BI系统是哪一种系统?A.OLTP    B. OLAP 答案:B 2. 维度建模要满足的两个需求包括以下哪些选项?A. 以商业用户可理解的方式发布数据B. 模型应当满足第三范式C. 提供高效的查询性能D. 要满足星型模型的扩展性要求 答案:A, C 3.事实表中的行记录和度量事件的对应关系是?A. 1:1    B. 1:n  C. n:1  D.  n:m 答案:A 4.使用满足3NF为基础的EDW区来实现数据规范化,并且开放给前端用户直接访问的架构是哪一种?A. Kimball的DW/BI架构    B. Inmon的CIF架构  C. 独立数据集市架构  D.  混合辐射架构 答案: B 5.华为的DWS服务使用的是哪一种分布式架构数据库A. Shared-nothing    B. Shared-disk  C. Shared-everything 答案:A Day2:Kimball维度建模技术概述(上)-自测题及答案1. 维度设计包括哪几个步骤?业务过程选择    B. 粒度声明   C.确认维度   D. 确认事实 答案:A,B,C,D 2. 下面的选项中,哪些选项是基本的事实表A. 交易型事实表B. 聚集性事实表C. 累计快照事实表D. 周期快照事实表 答案:A,C,D 3.下面论述中,哪些选项是正确的A. 为了提高查询效率,扁平维度进行范式化形成雪花模型维度    B. 为了提高查询效率,雪花模型进行反范式化形成扁平维度C. 相对而言,雪花维度符合3NF标准,所以能够更好的保证数据一致性D. 相对而言,扁平维度更符合3NF标准,所以能够更好的保证数据一致性 答案:B,C 4. 退化维度是因为不符合3NF的标准,所以称为退化维度A.True    B. False 答案:B 5. 随着事件的不断发生,可能会对事件表中的数据进行update操作的表是哪些事实表A. 交易型事件表    B. 周期快照事件表  C.累计快照事件表  D. 联合事实表 答案:C Day3:Kimball维度建模技术概述(下)-自测题及答案1. Type2是通过哪种方式记录缓慢变化维的历史的?A.增加行    B. 增加列   C.直接覆盖   D. 增加mini维 答案:A 2. 在Type2中,历史拉链表中,表示已经失效的数据的判断方法有哪些?A.截止日期小于MAX_DATEB. 截止日期等于MAX_DATEC. 当前状态取值为CurrentD. 当前状态取值为Expired 答案:A,D 3.如果上一条历史记录的截止日期大于下一条历史记录(同主键的记录)的开始日期,这种错误情况是什么?A.断链    B. 倒链  C.交叉链 答案:C 4.同时使用增加行和增加列的方式来捕捉缓慢变化维的类型是哪一项A.Type4  B. Type5  C. Type6   D. Type7 答案:C 5. 蜈蚣事实表因为对维度表进行了很好的正则化处理,便于多层维度的快速展现,所以应当尽量采用A. True  B. False 答案:B  Day4:零售业务商用案例维度建模流程-自测题及答案1. 在声明粒度的时候,应当尽可能使用原子粒度的原因是A. 原子粒度提供强大的多维性    B. 能够让用户下钻到细节C. 数据量很大D. 让用户能够了解到细节数据,分析细节 答案:A,B,D 2. 对于具有多对一多层次的维度表来说,为了避免维度表里面大量数据冗余,建议使用3NF模型拆分成多个维度表A.True   B. False 答案:B 3. 数字值字段应当作为维度属性还是事实度量,以下说法正确的是A. 如果用于计算目的,应该作为事实表度量B. 如果用于计算目的,应该作为维度表属性C. 如果用于过滤或分组,应该作为事实表度量D. 如果用于过滤或分组,应该作为维度表属性 答案:A.D 4.维度设计的过程应该是从业务需求和现实数据两个方面一起综合考虑,在现实数据能支撑的基础上尽量满足业务需求A.True   B. False 答案:A 5.避免过渡规范化的要求是,尽量避免使用以下哪些类型的维度表和事实表?A. 雪花型    B. 支架型  C. 蜈蚣型  D.扁平型 答案:A.C  Day5:DWS维度建模实战-自测题及答案1. 数据量小或者更新频度很低的维度表适合使用哪种方式建表?A. hash分布表   B.复制表  C.行存表  D.列存表 答案:B 2. DWS的表有哪些分布方式?A. 按分布键的hash值分布B. 按分布键的列表值分布C. 按分布键的区间值分布D. 按分布键的数值分布 答案:A 3.列式存储相对于行存储的优势在于哪些方面?A.可以快速地响应条件查询    B.数据存储可以有更高的压缩比C.可以使用向量计算技术D.在SQL执行过程中,可以延迟物化 答案:B,C,D 4.DWS的表支持哪些分区方式 ?A.范围分区    B. Hash分区  C. 列表分区  D. 数值分区 答案:A 5. 使用分区表能对下面哪种场景带来收益?A.按照分布键查询     B. 按照分区字段等值查询  C. 按照分区字段进行数据删除  D. 按照分区字段进行指定范围查询 答案:B,C,D
  • [案例分享] 大连大学使用GaussDB100案例总结
    大连大学使用GaussDB100案例总结背景:      大连大学是隶属于中华人民共和国辽宁省教育厅的一所公立大学。其前身为大连工学院大连分院,1983年独立办学并更名为大连大学,现校址位于辽宁省大连市开发区。近几年,大连大学迅速发展,其计算机科学与技术领域1项国防科研成果参加国家“十二五”科技创新成就展,14项军民融合科技创新成果参加“辽宁省第一届军民融合成果展”,这标志着大连大学科技创新能力步入全国地方高校的前列。在成绩获得了充分肯定的同时,大连大学也认识到,学校在人才培养、科技创新与社会服务等方面的发展水平与区域经济社会发展的需求仍然有较大差距,一些发展瓶颈问题还有待破解,比如:学校现有师资队伍规模较小,专业技术高级岗位比例低,高水平领军人才不足。为了加强学科内涵建设,大力推动特色学科发展,大连大学希望根据中华人民共和国教育部‘合理提升学业挑战度、增加课程难度、拓展课程深度,切实提高课程教学质量’的文件精神,结合大连大学计算机科学与技术专业本学期的课程安排,校企结合,通过企业对教学课程赋能,引入智慧化金牌课程建设。 面临挑战:1、            基础设施:学校服务器数量有限,目前没有一套可供学生课上课下操作练习的线上环境。2、            教学方案:学校教育方案中只能教会学生基础知识,没有相应的教学方式让学生学以致用。3、            学生方面:学生水平参差不齐,如何设计课程难度使得不同层次的学生都能在课堂上收益并有所提高。华为高校内容组解决方案:华为高校内容组根据大连大学信息工程学院本学期的课程安排实际情况,决定对《数据库系统原理》这门课程进行企业级指导,并开展实训项目训练,对涉及到2个班级的55名同学进行为期4个月的教学指导。运用的数据库为华为GaussDB 100。1.    本着对教育认真负责的态度,我们组内运用了大量人力、物力和时间成功搭建了华为云的11个线上环境并且均部署了GaussDB100的数据库,为接下来的课程展开打好了基础。2.    本着以实训为目的,我们开发了名为‘托马斯商城’的一个购物系统的项目并在后台与GaussDB100数据库相连。针对老师和学生对于我们课程支持方面的诉求我们采取了多交流、多沟通的工作方式,通过一段时间的沟通交流基本掌握了学生现状和高校教学瓶颈,有针对性的编写实训课件,为课程的展开打好了基础。3.    在教学方式上,我们有多年的企业实际项目研发经验,这也正是目前学生最迫切的需求。我们还在组内进行了多次评审会议,讨论并制定了合理的教学课件,很好的规避了许多课上可能出现的问题和风险。在上课过程中运用了企业级的思维和方式,例如给学生批改作业我们采用了类似项目评审会的方式,让学生自主表达学习内容与学习心得,我们作为评审领导按照企业级的标准给予评价,让老师和同学耳目一新。既得到了老师的肯定,也深受同学们的喜爱;既增加了课堂活跃度,也让不同水平的同学都有了相应的提高,对于自己所学习的知识有了更高层次的认识,让学生在课堂上感受到所学的专业知识在企业中是如何运用的。正因如此,同学们更加明确了未来的发展方向。 (附)课程教学服务实施过程:项目亮点:1.    GaussDB 100        GaussDB 100是一款华为自研的企业级关系型数据库引擎,具有高性能、高可用、高扩展、易运维等优点,可稳定高效的运行在X86或ARM开放架构平台上。GaussDB 100支持SQL标准并提供对主流商业数据库的语法支持,应用可以快速研发或迁移。GaussDB100为关系型数据和结构化数据提供了更安全可靠的存储功能,金融、电信、云、行业数字化可以基于它构建和管理用于业务的高可用和高性能的数据应用程序。华为全自研企业级GaussDB 100数据库 2.    学生翻转课堂学生自主成立小组团队,将学习的决定权从教师转移给学生,学生自趋学习实践,通过课上老师的引导,以小组为单位运用讨论、学习、抢答、颁奖等方式来开展课堂,既给了学生更多的展示空间,也活跃了课堂气氛,使得所有学生都参与到课堂中来,大幅提高学生听课和学习质量。3.    专家TED式分享            通过邀请华为高校内容组的产品、技术、运维等多方面领域的专家,课上现场对学生所设计的数据库文档进行多角度分析指导,不仅体现了华为人对待工作认真严谨的态度,而且使得同学们也深感备受重视,更好的激发同学们的自主学习的兴趣。这种上课模式也深受老师的欢迎,是华为高校内容组在高校开展活动的一次宝贵的经验。客户价值本次针对大连大学《数据库系统原理》这门课程一共上了四节实践课,分别为两次基础知识课和两次项目实践课,有课件和学生打分表等输出物。同时得到了同学们的积极响应和支持,两个班55名同学(11个组)共有11篇设计文档的成果产出。让学生对华为云教育平台有了全新的体验,对国产优秀数据库GaussDB有了不一样的感受。通过这门课程校企合作的开展,将符合中华人民共和国教育部的全新的理念融入到教学当中去,在课堂、课后对学生进行全方位指导教学,我们提供的教学解决方案对数据库课程的进行了改进,在为企业培养创新型、复合型、应用型人才的道路上,迈进了扎实的一步。总结:本次在大连大学《数据库系统原理》课程,使用GaussDB的教学服务,整体老师非常满意并且以聘请我们授课专家为兼职教师和主动提供表扬信等方式表达对于我们的工作给予肯定。这次高校教学实施案例对于高校内容组也是一次课程实践上的挑战,我们在过程中积累了高校教学经验,丰富了知识阅历,使得我们对于教育行业的认识也愈发透彻,对未来内容组的业务再拓展打下了良好的基础。
  • [热门活动] 华为云云数据库GaussDB T于2019年12月31日00:00(北京时间)转商通知
    尊敬华为云客户:华为云计划于2019/12/31 00:00:00(北京时间)将云数据库 GaussDB T产品正式转商用。服务正式商用后,将于2019/12/31 00:00(北京时间)正式开始收费,计费模式为包周期和按需计费。华为云在此提醒您,如果您不再需要使用该服务,请及时删除资源,以免产生费用。更多关于GaussDB T的产品介绍,请您点击了解。如您有任何问题,可随时通过工单或者服务热线(4000-955-988或950808)与我们联系。感谢您对华为云的支持!
  • [问题求助] GaussDB 200 6.5.1单节点安装后,创建集群启动MPPDB服务失败
    GaussDB 200 6.5.1单节点安装后,创建集群启动MPPDB服务失败,希望有遇到此问题的大神帮助分析一下,谢谢![2019-09-02 05:02]Begin to export default keytab files.[2019-09-02 05:02]End to export default keytab files.[2019-09-02 05:02]Start service for Service[name: MPPDB, displayName: MPPDB, cluster: CVICSE].[2019-09-02 05:02]Start role for ROLE[name: MPPDBServer, serviceDisplayName: MPPDB, cluster: CVICSE].[2019-09-02 05:02]Start roleInstance for MPPDBServer#192.168.22.95@host0.[2019-09-02 05:02]RoleInstance prepare to start complete for MPPDBServer#192.168.22.95@host0.[2019-09-02 05:02]RoleInstance start failure [{ScriptExecutionResult=ScriptExecutionResult [exitCode=1, output=, errMsg=]}] for MPPDBServer#192.168.22.95@host0.[2019-09-02 05:02]Role start failure for Service[name: MPPDB, displayName: MPPDB, cluster: CVICSE].[2019-09-02 05:02]RESID_OM_STEPCOMMON_0006 failure, because Failed to start the entity.
  • [热门活动] GaussDB 100 存储过程综合练习(一)
                                                                                     存储过程综合练习练习一;输入部门名称,显示内部成员的工号,姓名、基本工资及总薪资。要求员工按照字母顺序依次显示。 建表语句;create table test_sections(SECTION_ID BINARY_INTEGER  primary key auto_increment , SECTION_NAME VARCHAR(20 BYTE), SECTION_EMPLOYEE BINARY_INTEGER) ;添加数据;insert into test_sections values(1,'开发部' ,0);   insert into test_sections values(2,'维护部' ,0);      insert into test_sections values(3,'运营部' ,0);部门表: ----------------------------------- -------- ------------------------------------SECTION_ID                          NOT NULL BINARY_INTEGERSECTION_NAME                                 VARCHAR(20 BYTE)SECTION_EMPLOYEE                             BINARY_INTEGER建表语句;create table test_employee(EMPLOYEE_ID BINARY_INTEGER primary key auto_increment ,SECTION_ID BINARY_INTEGER ,EMPLOYEE_NAME VARCHAR(20 BYTE) ,BASE_PAY BINARY_INTEGER ,EMPLOYEE_SALARY BINARY_INTEGER) ;添加数据;insert into test_employee values(1,1,'张三',4000,5000);   insert into test_employee values(2,2,'李四',3000,4100);   insert into test_employee values(3,3,'王五',3500,4000);   insert into test_employee values(4,1,'赵六',4020,5010)   insert into test_employee values(5,1,'张小三',3080,4400)   insert into test_employee values(6,1,'李小四',4000,5000)   insert into test_employee values(7,1,'王小五',4000,5000)   insert into test_employee values(8,1,'赵小六',4000,5000)   insert into test_employee values(9,1,'马七',4000,5000)   insert into test_employee values(10,2,'马小七',4000,5000)   insert into test_employee values(7,1,'wxw',4000,5000)员工信息表;----------------------------------- -------- ------------------------------------EMPLOYEE_ID                         NOT NULL BINARY_INTEGERSECTION_ID                                   BINARY_INTEGEREMPLOYEE_NAME                                VARCHAR(20 BYTE)BASE_PAY                                     BINARY_INTEGEREMPLOYEE_SALARY                              BINARY_INTEGER 更新部门人数;    update  test_sections  set  SECTION_EMPLOYEE=(select count(1) from test_employee where  test_sections.SECTION_ID=test_employee.SECTION_ID ) ; 创建存储过程; create or replace procedure test_select(name in varchar2 ) is  letter varchar2(5) :='a' ; -- 定义变量,用来存储首字母,从a开始,循环递增至z 。  type cur_type is ref cursor ; -- 声明游标类型。  result_set cur_type; --定义游标变量。  TYPE record_type is record(         emp_id test_employee.EMPLOYEE_ID%type,                              emp_name test_employee.EMPLOYEE_NAME%type,         sec_name test_sections.SECTION_NAME%type,         emp_bas test_employee.BASE_PAY%type ,         emp_sal test_employee.EMPLOYEE_SALARY%type );    --声明记录类型。  result_record  record_type;   --定义记录变量。  department_count int ;  --记录输入的部门是否存在。  is_have int  ;   --记录部门内是否有员工。  employee_num int ; --记录是否还有以某个字母开头的当前部门的员工。 begin  select count(*) into department_count from test_sections where SECTION_NAME like name;  if department_count<1 then            dbms_output.put_line('部门名称输入有误!');            return;        end if;  select t3.SECTION_EMPLOYEE into employee_num from test_sections t3 where t3.SECTION_NAME like name;  if employee_num=0  then            dbms_output.put_line('部门暂无员工!');            return;        end if;  loop   exit when letter='z' ;   letter:=chr(ascii(letter)+1);   open result_set for select t1.EMPLOYEE_ID,t1.EMPLOYEE_NAME,t2.SECTION_NAME,t1.BASE_PAY,t1.EMPLOYEE_SALARY                         from test_employee t1                      join test_sections t2  on t1.SECTION_ID=t2.SECTION_ID           where t2.SECTION_NAME=name and EMPLOYEE_NAME like  letter||'%' ;            select count(*) into is_have from test_employee where  EMPLOYEE_NAME like  letter||'%'  ;   if is_have>0 then    dbms_output.put_line('首字母'||letter||':');    dbms_output.put_line('员工编号  员工姓名  所在部门  基本工资  实发工资');   end if ;    loop    fetch result_set into result_record ;    exit when result_set%notfound;     dbms_output.put_line(  result_record.emp_id||'                            '||result_record.emp_name||'                  '||result_record.sec_name      ||'                    '||result_record.emp_bas||'                       '||result_record.emp_sal);   end loop;  end loop ;  dbms_output.put_line('打印完毕!');  exception  when no_data_found then   dbms_output.put_line('部门名称有误!');  when  others  then   dbms_output.put_line('程序异常!'); end ; / call test_select('开发部'); call test_select('支撑部');  各位看官,看都看完了,点个赞再走呗!     
  • [热门活动] GaussDB 100 分区表管理
    操作场景GaussDB 100分区表支持范围分区(Range Partition)、列表分区(List Partition)、哈希分区(Hash Partition)与间隔分区(INTERVAL Partition)。表分区功能可以改善数据库的查询性能,增强可用性,方便维护,以及均衡I/O等。相关概念GaussDB 100数据库支持的分区表为范围分区表、列表分区表、哈希分区表和间隔分区表。范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进行分区。间隔分区表:间隔分区表是一种特殊的范围分区表。对于普通的范围分区,用户预先创建了多少个分区,如果添加不在该分区的数据时,数据库会报错,这种情况下,用户可以手动添加分区,也可以使用间隔分区。比如用户会按照每天一个分区的方式使用range分区表,在业务部署时会创建一批分区(如3个月)以备后续使用,但是3个月后需要再次创建,不然后续的业务数据入库会报错。range分区的这种方式增加了维护成本,需要内核支持分区的自动创建功能。如果使用间隔分区,用户可以不必关心后续分区的创建,既减少分区的设计成本和维护成本。列表分区表:将庞大的表分割成小的、易于管理的小块。哈希分区表:在很多情况下,用户无法预测某个列上的数据变化范围,因而无法实现创建固定数量的范围分区或列表分区。在这种情况下,哈希分区提供了一种在指定数量的分区中均等地划分数据的方法,写入表中的数据均匀地分布在各个分区中,用户无法预测数据将被写入哪个分区中。例如,如果销售城市不是相对固定的,而是遍布全国各地,很难对表进行列表分区,此时可以对该表进行哈希分区。分区表和普通表相比具有以下优点:改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。均衡I/O:可以把不同的分区映射到不同的磁盘以平衡I/O,改善整个系统性能。操作步骤按照以下方式对范围分区表进行操作。删除已存在的重名表,以一个已存在的表“staffs_p”为例。DROP TABLE IF EXISTS staffs_p;创建分区表staffs_p。CREATE TABLE staffs_p(  staff_ID    NUMBER(6) not null,  FIRST_NAME     VARCHAR2(20),  LAST_NAME      VARCHAR2(25),  EMAIL          VARCHAR2(25),  PHONE_NUMBER   VARCHAR2(20),  HIRE_DATE      DATE,  employment_ID         VARCHAR2(10),  SALARY         NUMBER(8,2),  COMMISSION_PCT NUMBER(2,2),  MANAGER_ID     NUMBER(6),  section_ID  NUMBER(4))PARTITION BY RANGE (staff_ID)(  partition P_050_BEFORE values less than (50),  partition P_100 values less than (100) ,  partition P_150 values less than (150) ,  partition P_200 values less than (200));删除分区P_200_AFTER。ALTER TABLE staffs_p DROP PARTITION P_200_AFTER;增加分区P_250,范围为 200 <= P_250 <=250。ALTER TABLE staffs_p ADD PARTITION P_250 VALUES LESS THAN (250);查询分区P_150。SELECT * FROM staffs_p PARTITION (P_150);创建分区表索引创建分区表索引HR_staffS_p1_index1,不指定索引分区的名字。CREATE INDEX HR_staffS_p1_index1 ON staffs_p (staff_ID) LOCAL;创建分区表索引HR_staffS_p1_index2,并指定索引分区的名字。CREATE INDEX HR_staffS_p1_index2 ON staffs_p (section_ID) LOCAL(    PARTITION section_ID1_index,    PARTITION section_ID2_index TABLESPACE USERS,    PARTITION section_ID3_index TABLESPACE USERS,    PARTITION section_ID4_index,    PARTITION staff_ID5_index) TABLESPACE USERS;按照以下方式对哈希分区表进行操作。删除已存在的重名表,以一个已存在的表“staffs_p2017和staffs_p2018”为例。DROP TABLE IF EXISTS staffs_p2017; DROP TABLE IF EXISTS staffs_p2018;创建分区表创建指定分区个数,但不指定分区名的哈希分区表。CREATE TABLE staffs_p2018(  staff_ID    NUMBER(6) not null,  FIRST_NAME     VARCHAR2(20),  LAST_NAME      VARCHAR2(25),  EMAIL          VARCHAR2(25),  PHONE_NUMBER   VARCHAR2(20),  HIRE_DATE      DATE,  employment_ID         VARCHAR2(10),  SALARY         NUMBER(8,2),  COMMISSION_PCT NUMBER(2,2),  MANAGER_ID     NUMBER(6),  section_ID  NUMBER(4))PARTITION BY HASH (staff_ID) PARTITIONS 5 STORE IN(USERS,USERS);创建指定分区名,但不指定分区个数的哈希分区表。CREATE TABLE staffs_p2017(  staff_ID    NUMBER(6) not null,  FIRST_NAME     VARCHAR2(20),  LAST_NAME      VARCHAR2(25),  EMAIL          VARCHAR2(25),  PHONE_NUMBER   VARCHAR2(20),  HIRE_DATE      DATE,  employment_ID         VARCHAR2(10),  SALARY         NUMBER(8,2),  COMMISSION_PCT NUMBER(2,2),  MANAGER_ID     NUMBER(6),  section_ID  NUMBER(4))PARTITION BY HASH(staff_ID)(  PARTITION P_01 tablespace USERS,  PARTITION P_02 tablespace USERS,  PARTITION P_03 tablespace USERS,  PARTITION P_04 tablespace USERS,  PARTITION P_05 tablespace USERS);删除分区执行删除操作时,最后一个分区的数据添加到前边的某个分区里,然后将最后一个分区删掉。如果只剩下一个分区,删除时会报错。ALTER TABLE staffs_p2017 COALESCE PARTITION;ALTER TABLE staffs_p2018 COALESCE PARTITION;增加分区part_06。ALTER TABLE staffs_p2017 ADD PARTITION part_06;查询分区查询指定分区名的哈希分区表的分区。查询分区P_04。SELECT * FROM staffs_p2017 PARTITION(P_04);查询指定分区个数的哈希分区表的分区。--通过联合查询系统表SYS.SYS_TABLE_PARTS和SYS.SYS_TABLES查询出分区名。SELECT * FROM SYS.SYS_TABLE_PARTS WHERE TABLE# = (SELECT ID FROM SYS.SYS_TABLES WHERE NAME='STAFFS_P2018');USER#        TABLE#       PART#        NAME                                                             HIBOUNDLEN   HIBOUNDVAL                                                       SPACE#       ORG_SCN              ENTRY                INITRANS     PCTFREE      FLAGS        BHIBOUNDVAL                                                      ROWCNT       BLKCNT       EMPCNT       AVGRLN       SAMPLESIZE   ANALYZETIME ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ---------------------------------------------------------------- ------------ -------------------- -------------------- ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ------------ ------------ ------------ ------------ ---------------------- 2            71           10           SYS_P1023                                                        0                                                                             3            2189599603179522     4393751543808        2            8            0                                                                                                                                              2            71           20           SYS_P1024                                                        0                                                                             3            2189599603179523     4393751543808        2            8            0                                                                                                                                              2            71           30           SYS_P1025                                                        0                                                                             3            2189599603179524     4393751543808        2            8            0                                                                                                                                              2            71           40           SYS_P1026                                                        0                                                                             3            2189599603179525     4393751543808        2            8            0 4 rows fetched.--查询名为SYS_P1024的分区的数据。SELECT * FROM STAFFS_P2018 PARTITION(SYS_P1024);创建分区表索引创建分区表索引HR_staffS_p1_index_2017,不指定索引分区的名字。CREATE INDEX HR_staffS_p1_index_2017 ON staffs_p2017 (staff_ID) LOCAL;创建分区表索引HR_staffS_p1_index_2017_1,并指定索引分区的名字。CREATE INDEX HR_staffS_p1_index_2017_1 ON staffs_p2017 (employment_ID) LOCAL(    PARTITION employment_ID1_index,    PARTITION employment_ID2_index TABLESPACE USERS,    PARTITION employment_ID3_index TABLESPACE USERS,    PARTITION employment_ID4_index,    PARTITION employment_ID5_index) TABLESPACE USERS;按照以下方式对间隔分区表进行操作。删除已存在的重名表,以一个已存在的表“staffs_p2016”为例。DROP TABLE IF EXISTS staffs_p2016;创建分区表staffs_p2016。CREATE TABLE staffs_p2016(  staff_ID    NUMBER(6) not null,  FIRST_NAME     VARCHAR2(20),  LAST_NAME      VARCHAR2(25),  EMAIL          VARCHAR2(25),  PHONE_NUMBER   VARCHAR2(20),  HIRE_DATE      DATE,  employment_ID         VARCHAR2(10),  SALARY         NUMBER(8,2),  COMMISSION_PCT NUMBER(2,2),  MANAGER_ID     NUMBER(6),  section_ID  NUMBER(4))PARTITION BY RANGE (staff_ID)INTERVAL (2)(  partition P_50 values less than (50),  partition P_100 values less than (100),  partition P_150 values less than (150));删除分区--通过联合查询系统表SYS.SYS_TABLE_PARTS和SYS.SYS_TABLES查询出分区名。SELECT * FROM SYS.SYS_TABLE_PARTS WHERE TABLE# = (SELECT ID FROM SYS.SYS_TABLES WHERE NAME='STAFFS_P2016');USER#        TABLE#       PART#        NAME                                                             HIBOUNDLEN   HIBOUNDVAL                                                       SPACE#       ORG_SCN              ENTRY                INITRANS     PCTFREE      FLAGS        BHIBOUNDVAL                                                      ROWCNT       BLKCNT       EMPCNT       AVGRLN       SAMPLESIZE   ANALYZETIME ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ---------------------------------------------------------------- ------------ -------------------- -------------------- ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ------------ ------------ ------------ ------------ ---------------------- 2            70           10           P_50                                                             2            50                                                               3            47529132593153       4393751543808        2            8            0                                     2            70           20           P_100                                                            3            100                                                              3            47529132687361       4393751543808        2            8            0                                     2            70           30           P_150                                                            3            150                                                              3            47529132744705       4393751543808        2            8            0                                     3 rows fetched.--删除名为P_50的分区。ALTER TABLE staffs_p2016 DROP PARTITION P_50;增加分区间隔分区表会随着用户添加的数据动态扩展,无需手动增加。自动生成的分区名可以从SYS.SYS_TABLE_PARTS表查询出来。查询分区--通过联合查询系统表SYS.SYS_TABLE_PARTS和SYS.SYS_TABLES查询出分区名。SELECT * FROM SYS.SYS_TABLE_PARTS WHERE TABLE# = (SELECT ID FROM SYS.SYS_TABLES WHERE NAME='STAFFS_P2016');USER#        TABLE#       PART#        NAME                                                             HIBOUNDLEN   HIBOUNDVAL                                                       SPACE#       ORG_SCN              ENTRY                INITRANS     PCTFREE      FLAGS        BHIBOUNDVAL                                                      ROWCNT       BLKCNT       EMPCNT       AVGRLN       SAMPLESIZE   ANALYZETIME ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ---------------------------------------------------------------- ------------ -------------------- -------------------- ------------ ------------ ------------ ---------------------------------------------------------------- ------------ ------------ ------------ ------------ ------------ ---------------------- 0            242          20           P_100                                                            3            100                                                              0            6386343436210177     4393751543808        2            8            0                                           0            242          30           P_150                                                            3            150                                                              0            6386343436247041     4393751543808        2            8            0                                           2 rows fetched.--查询名为P_150的分区的数据。SELECT * FROM STAFFS_P2016 PARTITION(P_150);创建分区表索引创建分区表索引HR_staffS_p1_index_20162,并指定索引分区的名字。CREATE INDEX HR_staffS_p1_index_20162 ON staffs_p2016 (section_ID) LOCAL(    PARTITION section_ID2_index,    PARTITION section_ID3_index) TABLESPACE USERS;创建分区表索引HR_staffS_p1_index_2016,不指定索引分区的名字。CREATE INDEX HR_staffS_p1_index_2016 ON staffs_p2016 (staff_ID) LOCAL;按照以下方式对列表分区表进行操作。删除已存在的重名表,以一个已存在的表“education”为例。DROP TABLE IF EXISTS education;创建分区表education。CREATE TABLE education(staff_id INT NOT NULL, higest_degree CHAR(12), graduate_school VARCHAR(64), graduate_date DATETIME, education_note VARCHAR(70))PARTITION BY LIST(higest_degree)(PARTITION doctor VALUES ('doctor') TABLESPACE USERS,PARTITION master VALUES ('master') TABLESPACE USERS,PARTITION undergraduate VALUES ('undergraduate') TABLESPACE USERS);删除分区undergraduate。ALTER TABLE education DROP PARTITION undergraduate;增加分区postdoctor。ALTER TABLE education ADD PARTITION postdoctor VALUES('postdoctor');查询分区postdoctor。SELECT * FROM education PARTITION (postdoctor);创建分区表索引创建分区表索引idx_education1,不指定索引分区的名字。CREATE INDEX idx_education1 ON education(staff_id) LOCAL;创建分区表索引idx_education2,并指定索引分区的名字。CREATE INDEX idx_education2 ON education(higest_degree) LOCAL(    PARTITION higest_degree1_index,    PARTITION higest_degree4_index,    PARTITION higest_degree5_index) TABLESPACE USERS; 
  • [热门活动] GaussDB 100 数据库的使用——配置客户端接入认证
    配置客户端接入认证操作场景如果主机需要远程连接数据库,必须进行客户端接入认证。GaussDB 100支持用户通过配置用户白名单、IP白名单、IP黑名单的方式,有效管控远程连接。默认情况下系统只允许本地访问,即无法远程连接数据库。用户白名单:可通过添加zhba.conf有效条目,以限制指定用户只能从限定的IP访问数据库。IP白名单:配置TCP_INVITED_NODES参数,限制只能从指定IP访问数据库。IP黑名单:配置TCP_EXCLUDED_NODES参数,限制不能从指定IP访问数据库。其中IP黑名单的优先级最高,一个IP地址同时配置在用户白名单、IP白名单和IP黑名单中,那么用户无法通过该IP地址远程连接数据库。同时启用了用户白名单、IP白名单、IP黑名单时:用户白名单中的用户可以通过用户白名单中的IP地址和IP白名单中的IP地址远程连接数据库(同时该IP地址不在黑名单中)。如果客户端的IP地址在用户白名单zhba.conf或IP白名单中,且不在IP黑名单中,无论用户是否在用户白名单中,均可以校验成功,允许登录。远程访问接入策略请参见图1。图1 接入认证示意图说明: SYS在本地免密登录时,不受用户白名单、IP白名单、IP黑名单控制。SYS用户使用加密口令登录时,受IP黑名单控制。注意事项开启IP白名单检测功能前,要求至少配置了TCP_INVITED_NODES或TCP_EXCLUDED_NODES中的一种,否则将报如下错误:GS-00254 : For invited and excluded nodes is both empty, ip whitelist function can't be enabledSYS用户仅能在本地登录。前提条件在配置用户白名单和IP黑白名单前,请先检查是否已经配置了侦听IP(LSNR_ADDR)和侦听端口号(LSNR_PORT),否则黑白名单配置将不生效。方法如下。方法一:检查服务端是否设置了侦听IP和侦听端口号。SELECT NAME,VALUE FROM DV_PARAMETERS WHERE NAME = 'LSNR_ADDR';SELECT NAME,VALUE FROM DV_PARAMETERS WHERE NAME = 'LSNR_PORT'; 如果设置了,任务结束。如果没有设置,请使用如下方式设置服务端侦听IP和侦听端口号,利用数据库的浮动IP功能,立即生效。ALTER SYSTEM ADD LSNR_ADDR '192.168.1.1'; 方法二:检查服务端是否设置了侦听IP和侦听端口号。SELECT NAME,VALUE FROM DV_PARAMETERS WHERE NAME = 'LSNR_ADDR';SELECT NAME,VALUE FROM DV_PARAMETERS WHERE NAME = 'LSNR_PORT'; 如果设置了,任务结束。如果没有设置,请使用如下命令设置服务端侦听IP和侦听端口号,然后执行步骤2ALTER SYSTEM SET LSNR_ADDR='127.0.0.1,192.168.1.1'; ALTER SYSTEM SET LSNR_PORT = 1888;重启数据库使配置侦听IP和侦听端口号生效。cd ${GSDB_DATA}/binpython zctl.py -t stoppython zctl.py -t start 操作步骤-配置用户白名单假设服务器IP为192.168.1.1,侦听端口号为1888。使用安装GaussDB 100数据库的操作系统用户,登录GaussDB 100所在服务器。查询已配置的用户白名单。zsql gaussdba/xxx@127.0.0.1:1888SELECT * FROM SYS.DV_HBA;说明;xxx请替换为用户密码。 在zhba.conf文件中添加hba条目,格式为type、user、address。cd ${GSDB_DATA}/cfgvim zhba.confhost user 127.0.0.1,192.168.3.222,20AB::9217:acff:feab:fcd0/64说明:  192.168.3.222 表示一个IPV4主机。192.168.3.0/24 表示一个IPV4子网网段192.168.3.0所有IP。20AB::9217:acff:feab:fcd0 表示一个IPV6主机。20AB::9217:acff:feab:fcd0/64 表示前缀为64的IPV6网段。address列表声明允许连接的指定用户的IP地址范围,可以逗号分隔声明多个。各hba条目间无关联关系,声明顺序不影响功能。如果user中包含特殊字符(例如#、TAB键等特殊字符)需要写成“user”格式。例如:host "#abc" 127.0.0.1、host "abc" 127.0.0.1 表示将双引号中的字符串整体作为user。如果user是“*”或者* 表示所有用户。IP地址支持IPV4、IPV6地址、或指定子网掩码长度表示一个子网网段。如下均为合法格式:编辑zhba.conf文件时,空格不能使用Tab键输入,否则,在线加载用户白名单时会报错“GS-00220, hba line(20) format is not correct”。在线加载用户白名单。 使用zsql连接数据库。zsql gaussdba/xxx@127.0.0.1:1888说明;xxx请替换为用户密码。数据库实例运行时,通过下面的语句在线加载用户白名单,立即生效。ALTER SYSTEM RELOAD HBA CONFIG;通过查询视图DV_HBA确认用户白名单是否配置成功。SELECT * FROM SYS.DV_HBA;操作步骤-配置IP白名单和IP黑名单假设服务器IP为192.168.1.1,侦听端口号为1888。需配置的远程连接IP为192.168.2.*,需禁止接入的IP为192.168.10.*,192.168.2.225。使用安装GaussDB 100数据库的操作系统用户,登录GaussDB 100所在服务器。查询已配置的IP白名单和IP黑名单。zsql gaussdba/xxx@127.0.0.1:1888SELECT VALUE FROM DV_PARAMETERS WHERE NAME = 'TCP_INVITED_NODES';SELECT VALUE FROM DV_PARAMETERS WHERE NAME = 'TCP_EXCLUDED_NODES';说明;xxx请替换为用户密码。 在线配置IP白名单或IP黑名单。该配置立即生效,无需重启数据库。说明: 白名单设置子网字符串不能超过1024字节,如果超过会报错。 配置IP白名单。ALTER SYSTEM SET TCP_INVITED_NODES = '(127.0.0.1,192.168.1.1, 192.168.2.*)';配置IP黑名单。ALTER SYSTEM SET TCP_EXCLUDED_NODES = '(192.168.10.*, 192.168.2.225)';在线开启IP白名单检测功能。该配置立即生效,无需重启数据库。ALTER SYSTEM SET TCP_VALID_NODE_CHECKING = true;配置后可以执行如下命令检查:SELECT NAME, VALUE FROM DV_PARAMETERS WHERE NAME = 'TCP_VALID_NODE_CHECKING';NAME                                                             VALUE ---------------------------------------------------------------- -------------------- TCP_VALID_NODE_CHECKING                                          TRUE 
  • [分享交流] GaussDB100 物理备份
    物理备份前提条件数据库在ARCHIVELOG模式下运行,并将Redo日志存档至多个位置。通过系统视图V$DATABASE,可查看当前日志归档模式。修改日志归档模式,请参见设置Redo日志模式。维护控制文件(CONTROL_FILES)的多个并发备份。可以在创建数据库时指定控制文件的路径。如未指定,则Gauss100 OLTP将自动创建三个控制文件,并使用默认的文件名。定时备份物理数据文件(Data File),并将备份存储在安全介质上。备份操作只能在数据库主机上执行,且主机状态为OPEN。操作步骤以Gauss100 OLTP管理员用户身份,登录服务器。使用zsql连接Gauss100 OLTP数据库。zsql gaussdba/xxx@127.0.0.1:1888说明;xxx请替换为用户密码。 gaussdba为数据库管理员用户。127.0.0.1表示本地登录数据库,如果远程连接请输入数据库所在主机的IP。远程连接详情请参考《Gauss100 OLTP V300R001C00用户指南(单机)》的“连接数据库”章节。1888为端口号。执行备份命令。更多BACKUP命令信息,请参见《Gauss100 OLTP V300R001C00研发支持文档(单机)》 全量压缩备份BACKUP DATABASE FULL FORMAT '/home/gaussdba/data/backup_c_bak' AS COMPRESSED BACKUPSET;增量压缩备份BACKUP DATABASE INCREMENTAL LEVEL 1 FORMAT '/home/gaussdba/data/backup1_incr.bak' AS COMPRESSED BACKUPSET;压缩备份时指定压缩级别BACKUP DATABASE FULL FORMAT '/home/gaussdba/data/backup_compress_bak' AS COMPRESSED BACKUPSET LEVEL 3;差异增量备份:基于上一次Level 0或者Level 1备份之后进行的备份。累积增量备份:基于上一次level 0进行的备份。全量备份。BACKUP DATABASE FULL FORMAT '/home/gaussdba/data/backup01.bak';差异增量备份。BACKUP DATABASE INCREMENTAL LEVEL 0 FORMAT '/home/gaussdba/data/backup0_incr.bak';BACKUP DATABASE INCREMENTAL LEVEL 1 FORMAT '/home/gaussdba/data/backup1_incr.bak';累积增量备份。BACKUP DATABASE INCREMENTAL LEVEL 1 CUMULATIVE FORMAT '/home/gaussdba/data/backup1_incr_cum.bak';说明: “Level 0”为基准备份。第一次执行“Level 1”增量备份前必须执行“Level 0”备份。“Level 1”为基于上一次“Level 1”或者“Level 0”进行的备份。压缩备份。
  • [技术干货] GaussDB 100 事务
    事务COMMIT_MODE参数描述:COMMIT_MODE是一个高级参数,用于设置日志写入磁盘的方式,包括立即处理、批量处理两种。取值范围:IMMEDIATE:立即处理。对事务不进行缓存,接收到后立即写入磁盘。此方式可以减少事务的吞吐量。BATCH:先缓存,再批量处理。先缓存事务的redo到redo log中,达到一定量后再批量写入磁盘。默认值:IMMEDIATECOMMIT_WAIT_LOGGING参数描述:进行事务操作时,是否等待相关redo日志写入磁盘。取值范围:WAIT:待相关redo日志写入磁盘后,再进行事务操作。NOWAIT:无需等待相关redo日志写入磁盘,即可进行事务操作。默认值:WAITLOCK_WAIT_TIMEOUT参数描述:设置事务等待的阈值,等待时间超过该阈值则报错。取值范围:整数,[0,2^32-1],单位:毫秒。默认值: 0,表示无限等待。DB_ISOLEVEL参数描述:设置事务的隔离级别,保证不读脏数据。取值范围:RC:Read Committed,一个sql语句内读取到的数据,是同一个版本的快照数据。CC:Current Committed,一个sql语句内读取到的数据,每一行都是读取时刻的最新已提交数据,所有读取出来的数据不再是一个快照数据。默认值: RC_SERIALIZED_COMMIT参数描述:指定事务提交时,是否串行提交。取值范围:TRUE/FALSE。默认值: FALSETC_LEVEL参数描述:设置事务补偿级别,如果>0,在网络等故障时产生未决事务,在故障恢复后,可自动处理未决事务。取值范围:整数,[0,2^32-1]默认值: 0
  • [技术干货] GaussDB 100 DML语法一览表
    DML语法一览表DML(Data Manipulation Language数据操作语言),用于对数据库表中的数据进行操作。如:插|入、更新、删除。数据操作表1 数据操作功能相关SQL插|入数据INSERT删除数据DELETE修改数据UPDATE合并语句MERGE替换语句REPLACE其他表2 其他语句功能相关SQL查看执行计划EXPLAIN PLAN 
  • [技术干货] GaussDB 100 数据库物理备份
    BACKUP功能描述数据库物理备份。注意事项仅允许在各节点open模式下执行。需要在nomount状态下启动,手动切换到open模式再执行backup。--nomount启动后,使用SYS用户登录数据库。zsql / as SYSDBA;--切换到open模式,test是数据库名称。 ALTER DATABASE MOUNT; ALTER DATABASE test archivelog; ALTER DATABASE OPEN;语法格式BACKUP DATABASE { FULL | INCREMENTAL LEVEL level [CUMULATIVE]}                  { FORMAT 'dest_format' }                 [ AS [ZLIB | ZSTD | LZ4] COMPRESSED BACKUPSET [LEVEL compress_level]]                 [ TAG 'tag' ] [ PARALLELISM count ] [ SECTION THRESHOLD size ]                 [ EXCLUDE FOR TABLESPACE space_list]参数说明FULL全量备份。INCREMENTAL LEVEL level增量备份。level取值为0或1。level 0为基准增量,即为全量备份。 level 1为基于上一次的level 1或者level 0的增量备份。CUMULATIVE累积增量备份。FORMAT指定备份集路径。dest_format备份路径格式。'path'或者 'disk:path'或者'nbu:policy:path'。'path'与 'disk:path' 等价,表示备份目的地为磁盘,path为具体的路径。'nbu:policy:path',nbu表示备份到nbu, policy为nbu上对应的policy, path为具体的路径。path长度需小于255。AS [ZLIB | ZSTD | LZ4] COMPRESSED BACKUPSET备份集进行压缩。[ZLIB | ZSTD | LZ4]表示压缩算法,不指定默认为ZLIB。推荐使用ZSTD。ZLIB :ZLIB压缩率略低于ZSTD,高于LZ4,但是压缩速率远低于ZSTD。ZSTD:ZSTD压缩率高,压缩速率略低于LZ4。LZ4:LZ4压缩率低于ZSTD,压缩速率高。LEVEL compress_level压缩备份时,可设置压缩级别,级别越高,压缩率越高,速度越慢。compress_level 取值范围[1, 9]的整数,级别1速度最快,级别9压缩率最高;压缩备份不指定压缩级别时,将采用默认级别1进行压缩备份。tag备份集标签。长度小于30的字符串。PARALLELISM count当备份介质为磁盘时,可以开启多个并发线程进行备份,以提高备份速度。count的取值是[1, 8]范围内的整数。不指定并发数量时,将默认启动4个并发线程。SECTION THRESHOLD size并行备份时,可指定数据文件的切分阈值,合适的切分阈值可以有效提高并行备份效率。size的取值范围为[128M, 32T]。切分阈值太大,会造成并行效率下降,切分阈值太小,会产生太多的备份文件数量,因此不建议用户指定切分阈值。不指定时,数据库会自动计算最优的切分阈值。EXCLUDE FOR TABLESPACE space_list备份排除部分表空间。space_list为排除表空间名称列表,当排除的表空间有多个时,中间使用逗号分隔。示例全量备份到磁盘。BACKUP DATABASE FULL FORMAT '?/full0822.bak';增量备份到磁盘。--将LEVEL的值设为0,进行基准增量备份。 BACKUP DATABASE INCREMENTAL LEVEL 0 FORMAT '?/incr.bak' tag 'incr0822_bak';--基于上面的LEVEL 1备份进行增量备份。 BACKUP DATABASE INCREMENTAL LEVEL 1 FORMAT '?/incr0823.bak' tag 'incr0823_bak';累积增量备份--基于上一次的level 0备份进行增量备份 BACKUP DATABASE INCREMENTAL LEVEL 1 CUMULATIVE FORMAT '?/incr0824.bak' tag 'incr0824_bak';备份压缩--全量备份压缩 BACKUP DATABASE FULL FORMAT '?/full001.bak' tag 'full001_bak' as compressed backupset; --增量备份压缩 BACKUP DATABASE INCREMENTAL LEVEL 0 FORMAT '?/incr001.bak' tag 'incr001_bak' as compressed backupset; --全量备份zstd压缩 BACKUP DATABASE FULL FORMAT '?/fullzstd.bak' as zstd compressed backupset; --全量备份lz4压缩 BACKUP DATABASE FULL FORMAT '?/fulllz4.bak' as lz4 compressed backupset;并行备份--数据库自动计算切分阈值,并发数量为6 BACKUP DATABASE FULL FORMAT '?/full011.bak' tag 'full011_bak' PARALLELISM 6; --用户指定切分阈值为1G,并发数量为2 BACKUP DATABASE FULL FORMAT '?/full012.bak' tag 'full012_bak' PARALLELISM 2 SECTION THRESHOLD 1G;备份排除部分表空间--备份排除表空间spc1。 BACKUP DATABASE FORMAT '?/exclude_bak1' EXCLUDE FOR TABLESPACE spc1; --备份排除表空间spc1和spc2。 BACKUP DATABASE FORMAT '?/exclude_bak2' EXCLUDE FOR TABLESPACE spc1,spc2;
  • [技术干货] GaussDB 100 重建数据库
    BUILD DATABASE功能描述在高可用模式下,重建数据库。语法格式BUILD [CASCADED STANDBY | STANDBY] DATABASE        [COMPRESS [ ZLIB | ZSTD |LZ4 ] [ LEVEL n ] ]参数说明CASCADED STANDBY重建为一个级联备机数据库。STANDBY重建为一个备机数据库。COMPRESS [ ZLIB | ZSTD |LZ4 ]重建数据库时对主机数据库发送的日志和数据进行压缩。[ZLIB | ZSTD | LZ4]表示压缩算法,不指定默认为ZSTD。推荐使用ZSTD。ZLIB :ZLIB压缩率略低于ZSTD,高于LZ4,但是压缩速率远低于ZSTD。ZSTD:ZSTD压缩率高,压缩速率略低于LZ4。LZ4:LZ4压缩率低于ZSTD,压缩速率高。LEVEL n压缩级别n,压缩级别的范围是[1, 9]。若不指定压缩级别,则默认级别是1。说明: 若不指定参数CASCADED STANDBY和STANDBY,则备机数据库重建完成后本数据库的角色取决于对端数据库的角色。如果对端是主机,则重建数据库后本数据库角色是备机; 如果对端是备机,则重建数据库后本数据库角色是级联备机。示例用ZSTD压缩算法,压缩级别1进行build。build database compress zstd level 1; Succeed.
  • [热门活动] 华为云精编实战课程——7天玩转数据仓库课程进度回复帖
    (请严格按照回复示例进行回复,如回复格式不对,将不予奖励,谢谢)回复示例:华为云账户名:XXXX课程完成截图:(必须 包含课程名称、华为云账户名和完成进度条)请按照以上要求,在本课程下回帖。
  • [热门活动] GaussDB 100 中存储过程的基本语法总结
    存储过程1,定义;一组完成特定功能的sql语句的集合。2,创建存储过程  格式;CREATE [ OR REPLACE ] PROCEDURE [ IF NOT EXISTS ] [schema_name.]procedure_name(args_list)---------in、out、in out   { IS | AS }         [ param_list ]          --声明变量,可以有缺省值。                                            --普通变量、系统游标变量、普通游标变量、记录变量   BEGIN        statement;    --过程体(可以为基本语句、动态语句、控制语句、异常语句或其他语句。)                                    --   基本语句;1,赋值语句                                     --                          赋值语句;(1) := (2)case  when  条件1 then …… ,else …… end case;(3) 函数 如sum() 、upper等                                    --                     2,sql语句;支持7种                                    --                                insert ,delete,update ,select……into(后面卡伊跟参数列表或记录变量) 、merge、rollback、commit                                    --                      其他语句怎么办? --------通过execute immediate 下发                                    --   动态语句; execute immediate statemnet [into 变量名1 ] [using {in/out} 变量名2]                                     --   控制语句;控制语句逻辑,实现分支,循环,跳转等功能                                    --                              注意;如果语句块已形成死循环且无响应,可以在客户端新起连接,                                    --                               查询系统表DV_SESSIONS获取对应的session ID,然后使用“ALTER SYSTEM KILL session_id;”语句恢复。                                    --                   七中:GOTO、FOR循环、LOOP、WHILE循环、CASE WEHN、IF。                                    --                                           (1)goto语句;定义标签;<<标签名>>, 使用 goto 标签名                                    --                                           (2)FOR index_name IN [REVERSE] lower_bound..upper_bound                                    --                                                                               --                                           (3)loop                                    --                                                         exit when 条件1;                                    --                                                         continue when 条件2 ;                                    --                                                    end loop;                                    --   异常语句;系统预定义异常的处理、用户自定义异常的处理以及内部定义异常的处理。                                    --                   这三种异常处理均支持通过sqlcode和sqlerrm获取错误代码和错误消息。                                    --           格式;EXCEPTION                                     --                              { [ WHEN expr THEN sql ] [...]                                    --                                 [ WHEN OTHERS THEN sql1 ]                                    --                               }                                                        --                   系统预定义异常;如ZERO_DIVIDE、TOO_MANY_ROWS、VALUE_ERROR等。                                    --   其他语句;                                    --                   记录变量---%ROWTYPE ----支持继承以下变量的数据类型:表、游标变量。                                    --                   普通变量---%TYPE----支持继承以下变量的数据类型:列(格式为“表名.列名”)、记录变量、普通变量。   END;   /      说明;文中“--”为注解符号,在Gauss存储过程中,不能使用单行注释“//”   ‍                以上为本人对存储过程简单的理解与总结,获取更多详细资料请参照网址;http://platformdoc.huawei.com/hedex/hdx.do?lib=DeveSingle_V3R1C00SPC200BASIC&id=ZH-CN_TOPIC_0136909316&tocURL=resources/zh-cn_topic_0136909316.html&productId=1655&keyword=%2525u5b58%2525u50a8&keyword=%2525u8fc7%2525u7a0b              
总条数:2552 到第
上滑加载中