openGauss数据库实战指南
更新日期:2024-07-11 00:59:58
书店:清华大学出版社
出版时间:2021-10
浏览量:1060
价格:0.0¥

书籍下载

内容介绍

产品特色

编辑推荐

华为公司官方出品!华为公司计算产品线总裁邓泰华、哈尔滨工业大学教授李建中作序

内容简介

本书结合openGauss数据库原理,讲述openGauss数据库实战相关内容,并设计多种实验帮助用户理解并使用openGauss数据库。本书首先介绍数据库的基本概念、安装部署、开发调试,并设计实验帮助用户熟悉这一系列操作。接着介绍数据库设计、查询优化、维护、数据库备份与恢复及导入与导出、存储引擎、事务控制和数据库安全等。本书理论与实践并重,读者通过阅读本书并进行实践,可以较好地掌握openGauss数据库。

本书面向的读者主要是高校学生及使用openGauss数据库的工程师。

本书封面贴有清华大学出版社防伪标签,无标签者不得销售。


作者简介

李国良 清华大学计算机系副主任、教授、博士生导师。在数据库顶级会议和期刊上发表论文150余篇,他引10000余次。先后主持国家杰出青年科学基金、优秀青年基金、“青年973”等多个项目。获得VLDB青年贡献奖,IEEE数据工程杰出新人奖,国家科学技术进步二等奖,VLDB、KDD、ICDE、CIKM最佳论文奖(提名奖)。担任SIGMOD 2021大会主席。

冯建华 清华大学计算机系教授,计算机科学与技术一线科研人员,曾获得CCF青年科学家奖。长期教授“数据库系统”课程,曾出版《数据库系统概论》教材。


目录

第1章初识openGauss00

1.1数据库基本概念00

1.1.1数据库的定义00

1.1.2数据库模式设计00

1.1.3数据库性能优化00

1.1.4数据库存储00

1.1.5数据库事务控制00

1.1.6数据库安全保证00

1.1.7数据库维护00

1.1.8数据库备份00

1.2openGauss简介00

1.2.1发展历史00

1.2.2架构概述00

1.2.3openGauss的优势00

1.3小结0

1.4习题0

第2章安装部署0

2.1获取安装包0

2.2配置安装环境0

2.2.1配置环境参数0

2.2.2使用yum安装系统依赖项0

2.2.3修改Python版本0

2.3安装openGauss数据库0

2.3.1创建XML配置文件0

2.3.2执行预安装脚本0

2.3.3执行安装0

2.3.4安装后生成的目录0

2.4数据库的使用0

2.5小结0

2.6习题0

第3章openGauss开发调试0

3.1gsql客户端连接0

3.1.1gsql本地连接0

3.1.2gsql远程连接0

3.1.3通过gsql客户端工具执行SQL语句0

3.2DBeaver客户端连接0

3.2.1DBeaver下载0

3.2.2DBeaver连接0

3.3openGauss数据库JDBC连接与开发0

3.3.1JDBC包、驱动类和环境类0

3.3.2JDBC连接openGauss的开发流程0

3.3.3JDBC连接openGauss执行SQL语句示例0

3.3.4JDBC连接openGauss结果集处理0

3.4openGauss数据库ODBC连接0

3.5小结0

3.6习题0

第4章数据库设计0

4.1概念结构设计0

4.1.1实体及实体间的联系0

4.1.2ER图基本概念0

4.1.3ER图结构设计0

4.2SQL基础实验0

4.2.1SQL简介0

4.2.2数据准备0

4.2.3数据定义0

4.2.4数据查询0

4.2.5数据更新0

4.3索引0

4.3.1创建索引0

4.3.2修改索引属性0

4.3.3删除索引0

4.3.4重建索引0

4.3.5索引操作相关示例0

4.4视图0

4.4.1创建视图0

4.4.2修改视图0

4.4.3删除视图0

4.4.4视图操作相关示例0

4.5openGauss函数0

4.5.1数字操作符及函数0

4.5.2字符串操作符和函数

4.5.3日期和时间函数

4.5.4条件判断函数

4.5.5系统信息函数

4.5.6加密、解密函数

4.5.7其他函数

4.6触发器

4.6.1创建触发器

4.6.2查看触发器

4.6.3触发器的使用

4.6.4删除和修改触发器

4.7存储过程

4.7.1创建存储过程

4.7.2调用存储过程

4.7.3查看存储过程

4.7.4删除存储过程

4.8小结

4.9习题

第5章openGauss查询优化

5.1查询优化

5.2查询解释命令

5.2.1功能描述

5.2.2语法格式

5.2.3参数说明

5.2.4示例

5.3查询分析命令

5.3.1功能描述

5.3.2语法格式

5.3.3示例

5.4优化提示命令

5.4.1功能描述

5.4.2连接顺序提示

5.4.3连接方式提示

5.4.4行数方式提示

5.4.5提示命令的错误、冲突及告警

5.5自动参数优化

5.5.1工作原理

5.5.2实验部署

5.6查询性能预测

5.6.1工作原理

5.6.2实验部署

5.7索引推荐

5.7.1单查询索引推荐

5.7.2虚拟索引

5.7.3负载级别索引推荐

5.8小结

5.9习题

第6章openGauss维护

6.1openGauss运行健康状态检查

6.1.1注意事项

6.1.2操作步骤

6.1.3常见错误与异常处理

6.1.4自定义检查内容

6.2openGauss性能检查

6.2.1检查方法

6.2.2异常处理

6.3日志检查和管理

6.3.1日志类型简介

6.3.2系统日志

6.3.3操作日志

6.3.4审计日志

6.3.5WAL日志

6.3.6性能日志

6.3.7日志检查和清理

6.4例行表、索引维护

6.4.1例行维护表

6.4.2例行重建索引

6.5小结

6.6习题

第7章数据库备份与恢复及导入与导出

7.1导入数据

7.1.1通过INSERT语句直接写入数据

7.1.2使用COPY FROM STDIN导入数据

7.1.3使用gsql元命令导入数据

7.2备份与恢复的类型及对比

7.3物理备份与恢复

7.3.1使用gs_basebackup备份数据

7.3.2PITR任意时间点恢复

7.4逻辑备份与恢复

7.4.1备份单个数据库

7.4.2备份所有数据库

7.4.3使用gs_restore命令恢复数据

7.5小结

7.6习题

第8章存储引擎

8.1行存表和列存表的差异及优缺点

8.2行存表

8.2.1创建行存表

8.2.2查看行存表属性

8.2.3向行存表中插入一条数据

8.2.4删除行存表

8.3列存表

8.3.1创建列存表

8.3.2查看列存表属性

8.3.3向列存表中插入一条数据

8.3.4删除列存表

8.3.5行存表、列存表的比较

8.4内存数据库

8.4.1MOT特性及价值

8.4.2MOT关键技术

8.4.3应用场景

8.4.4MOT使用概述

8.4.5MOT准备

8.4.6MOT部署

8.4.7MOT使用

8.4.8MOT监控

8.5小结

8.6习题

第9章事务控制

9.1openGauss中的事务控制

9.1.1示例一个银行数据库

9.1.2openGauss的4种事务控制指令

9.2事务的4种隔离级别

9.2.1读未提交隔离级别

9.2.2读已提交隔离级别

9.2.3可重复读隔离级别

9.2.4可串行化隔离级别

9.3自治事务

9.3.1用户自定义函数支持自治事务

9.3.2存储过程支持自治事务

9.3.3规格约束

9.4小结

9.5习题

第10章数据库安全

10.1用户

10.1.1管理员

10.1.2普通用户

10.2角色

10.3模式

10.4用户权限设置与回收

10.4.1将系统权限授予用户或者角色

10.4.2将数据库对象授予角色或用户

10.4.3将用户或者角色的权限授予其他用户或角色

10.4.4权限回收

10.5安全策略设置

10.5.1设置账户安全策略

10.5.2设置账号有效期

10.5.3设置密码安全策略

10.6审计

10.6.1审计开、关

10.6.2查看审计结果

10.6.3维护审计日志

10.7小结

10.8习题

附录ALinux操作系统相关命令


CONTENTS

目录

第1章初识openGauss00

1.1数据库基本概念00

1.1.1数据库的定义00

1.1.2数据库模式设计00

1.1.3数据库性能优化00

1.1.4数据库存储00

1.1.5数据库事务控制00

1.1.6数据库安全保证00

1.1.7数据库维护00

1.1.8数据库备份00

1.2openGauss简介00

1.2.1发展历史00

1.2.2架构概述00

1.2.3openGauss的优势00

1.3小结0

1.4习题0

第2章安装部署0

2.1获取安装包0

2.2配置安装环境0

2.2.1配置环境参数0

2.2.2使用yum安装系统依赖项0

2.2.3修改Python版本0

2.3安装openGauss数据库0

2.3.1创建XML配置文件0

2.3.2执行预安装脚本0

2.3.3执行安装0

2.3.4安装后生成的目录0

2.4数据库的使用0

2.5小结0

2.6习题0

第3章openGauss开发调试0

3.1gsql客户端连接0

3.1.1gsql本地连接0

3.1.2gsql远程连接0

3.1.3通过gsql客户端工具执行SQL语句0

3.2DBeaver客户端连接0

3.2.1DBeaver下载0

3.2.2DBeaver连接0

3.3openGauss数据库JDBC连接与开发0

3.3.1JDBC包、驱动类和环境类0

3.3.2JDBC连接openGauss的开发流程0

3.3.3JDBC连接openGauss执行SQL语句示例0

3.3.4JDBC连接openGauss结果集处理0

3.4openGauss数据库ODBC连接0

3.5小结0

3.6习题0


openGauss数据库实战指南

目录


第4章数据库设计0

4.1概念结构设计0

4.1.1实体及实体间的联系0

4.1.2ER图基本概念0

4.1.3ER图结构设计0

4.2SQL基础实验0

4.2.1SQL简介0

4.2.2数据准备0

4.2.3数据定义0

4.2.4数据查询0

4.2.5数据更新0

4.3索引0

4.3.1创建索引0

4.3.2修改索引属性0

4.3.3删除索引0

4.3.4重建索引0

4.3.5索引操作相关示例0

4.4视图0

4.4.1创建视图0

4.4.2修改视图0

4.4.3删除视图0

4.4.4视图操作相关示例0

4.5openGauss函数0

4.5.1数字操作符及函数0

4.5.2字符串操作符和函数

4.5.3日期和时间函数

4.5.4条件判断函数

4.5.5系统信息函数

4.5.6加密、解密函数

4.5.7其他函数

4.6触发器

4.6.1创建触发器

4.6.2查看触发器

4.6.3触发器的使用

4.6.4删除和修改触发器

4.7存储过程

4.7.1创建存储过程

4.7.2调用存储过程

4.7.3查看存储过程

4.7.4删除存储过程

4.8小结

4.9习题

第5章openGauss查询优化

5.1查询优化

5.2查询解释命令

5.2.1功能描述

5.2.2语法格式

5.2.3参数说明

5.2.4示例

5.3查询分析命令

5.3.1功能描述

5.3.2语法格式

5.3.3示例

5.4优化提示命令

5.4.1功能描述

5.4.2连接顺序提示

5.4.3连接方式提示

5.4.4行数方式提示

5.4.5提示命令的错误、冲突及告警

5.5自动参数优化

5.5.1工作原理

5.5.2实验部署

5.6查询性能预测

5.6.1工作原理

5.6.2实验部署

5.7索引推荐

5.7.1单查询索引推荐

5.7.2虚拟索引

5.7.3负载级别索引推荐

5.8小结

5.9习题

第6章openGauss维护

6.1openGauss运行健康状态检查

6.1.1注意事项

6.1.2操作步骤

6.1.3常见错误与异常处理

6.1.4自定义检查内容

6.2openGauss性能检查

6.2.1检查方法

6.2.2异常处理

6.3日志检查和管理

6.3.1日志类型简介

6.3.2系统日志

6.3.3操作日志

6.3.4审计日志

6.3.5WAL日志

6.3.6性能日志

6.3.7日志检查和清理

6.4例行表、索引维护

6.4.1例行维护表

6.4.2例行重建索引

6.5小结

6.6习题

第7章数据库备份与恢复及导入与导出

7.1导入数据

7.1.1通过INSERT语句直接写入数据

7.1.2使用COPY FROM STDIN导入数据

7.1.3使用gsql元命令导入数据

7.2备份与恢复的类型及对比

7.3物理备份与恢复

7.3.1使用gs_basebackup备份数据

7.3.2PITR任意时间点恢复

7.4逻辑备份与恢复

7.4.1备份单个数据库

7.4.2备份所有数据库

7.4.3使用gs_restore命令恢复数据

7.5小结

7.6习题

第8章存储引擎

8.1行存表和列存表的差异及优缺点

8.2行存表

8.2.1创建行存表

8.2.2查看行存表属性

8.2.3向行存表中插入一条数据

8.2.4删除行存表

8.3列存表

8.3.1创建列存表

8.3.2查看列存表属性

8.3.3向列存表中插入一条数据

8.3.4删除列存表

8.3.5行存表、列存表的比较

8.4内存数据库

8.4.1MOT特性及价值

8.4.2MOT关键技术

8.4.3应用场景

8.4.4MOT使用概述

8.4.5MOT准备

8.4.6MOT部署

8.4.7MOT使用

8.4.8MOT监控

8.5小结

8.6习题

第9章事务控制

9.1openGauss中的事务控制

9.1.1示例一个银行数据库

9.1.2openGauss的4种事务控制指令

9.2事务的4种隔离级别

9.2.1读未提交隔离级别

9.2.2读已提交隔离级别

9.2.3可重复读隔离级别

9.2.4可串行化隔离级别

9.3自治事务

9.3.1用户自定义函数支持自治事务

9.3.2存储过程支持自治事务

9.3.3规格约束

9.4小结

9.5习题

第10章数据库安全

10.1用户

10.1.1管理员

10.1.2普通用户

10.2角色

10.3模式

10.4用户权限设置与回收

10.4.1将系统权限授予用户或者角色

10.4.2将数据库对象授予角色或用户

10.4.3将用户或者角色的权限授予其他用户或角色

10.4.4权限回收

10.5安全策略设置

10.5.1设置账户安全策略

10.5.2设置账号有效期

10.5.3设置密码安全策略

10.6审计

10.6.1审计开、关

10.6.2查看审计结果

10.6.3维护审计日志

10.7小结

10.8习题

附录ALinux操作系统相关命令

前言/序言

序一

在数字经济时代,计算是数字经济的底座,数据是生产资料,算力是生产力。数据库系统作为存储和管理数据的软件,既是基础软件皇冠上的明珠,也是国内基础软件发展的最大挑战。从中国软件产业发展的角度看,应用软件发展优势明显,但数据库系统、操作系统等基础软件发展相对薄弱。根深才能叶茂,坚持基础软硬件创新,才能构建持续发展的基石,使上层应用生态百花齐放,推动数字经济高质量的发展。

华为公司于2020年6月30日正式开源openGauss以来,以社区为平台,持续进行数据库内核根技术创新,联合数据库产业链上下游伙伴,构建繁荣的数据库产业生态。华为公司面向企业核心应用场景,聚焦行业数字化转型,补齐基础软件短板,打造数据库根技术。openGauss提供高性能(目前在两路鲲鹏处理器下TPCC Benchmark性能超过150万tpmC)、高可用(提供多地多中心部署方式)、高安全(支持全密态计算,原生区块链防篡改等技术)、易运维(具有基于AI的智能参数调优和索引推荐等技术)的内核版本。华为公司和合作伙伴一起为完善企业级特性及南北向生态,在金融、制造等国计民生行业的核心系统中稳步推进openGauss数据库商用。

openGauss是数据库领域的创新平台。基于openGauss的开发实践,工程师在数据库顶级会议(SIGMOD、VLDB、ICDE)上发表多篇论文,推动数据库的创新和发展。基于openGauss平台,清华大学、北京航空航天大学、西北工业大学等高校的学者,已开展创新型基础研究,推动数据库技术的进步; 结合“智能基座”项目,清华大学、北京大学、复旦大学等50余所著名高校在原有数据库课程中融入openGauss相关内容,培养大量开发者,夯实“智能基座”人才基础。openGauss与教育界、学术界开展多方面合作,持续推动生态繁荣。

本书结合openGauss数据库原理,面向高校师生及数据库工程师,通过实验帮助用户理解并使用数据库。本书不仅介绍了openGauss数据库的安装部署、开发调试、设计调优、运维及数据备份导入等内容,而且介绍数据库使用过程中涉及的操作,以及数据库存储引擎、事务控制和角色管理、审计等安全策略。希望读者通过本书快速上手openGauss,同时触类旁通,进一步理解通用数据库的架构设计及调优、运维思路,并对OLTP数据库有更深的理解,理论结合实践,培养更好的实战能力,成为一名优秀的开发运维工程师。

华为技术有限公司副总裁、计算产品线总裁

2021年9月

序二

数据库系统是管理和查询不同类型数据的系统软件,在计算机硬件和应用之间起到了承上启下的重要作用,是IT行业不可或缺的基础软件。60年来,数据库系统已经被广泛应用于各行各业。

由于数据库设计复杂和开发周期长,商业数据库通常被国外公司所垄断,因此数据库系统也成了“卡脖子”的系统。近年来,为解决数据库系统“卡脖子”的问题,国产数据库系统应运而生。其中华为openGauss开源数据库系统是我国自研的代表性数据库系统。具有高性能、高可用、自治安全等特点。

对于广大数据库从业者、数据库系统开发设计人员、数据库领域的研究生和本科生来说,仅了解数据库的基本原理是不够的,还必须从工程实践的角度入手,从一个真实开源的数据库开始,把数据库理论与实践结合起来,才能真正掌握数据库的精髓,才能运用所学知识解决实际中遇到的问题,如性能调优、故障诊断与检测、容灾、升级、备份与恢复等问题。

本书以openGauss数据库为蓝本,原理与实践相结合,详细介绍了openGauss数据库的基本概念、安装部署、开发调试和运维,以及数据库设计与实现的细节。因此本书不仅适合高校的学生深入学习数据库的基础知识和实现细节,也适合数据库管理员仔细阅读,从而更加深入地了解数据库设计和实现的精髓。

本书作者是从事一线数据库研究与开发的知名学者,不仅非常熟悉数据库的原理,而且精通数据库的设计与实现。本书凝聚了作者的心血,是一本非常适合学习和了解数据库设计与实现以及数据库实战的参考书,期望本书能成为读者的良师益友。

李建中

哈尔滨工业大学

2021年9月