数据库技术基础实践 10_第1页
数据库技术基础实践 10_第2页
数据库技术基础实践 10_第3页
数据库技术基础实践 10_第4页
数据库技术基础实践 10_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章openGauss数据库9.1认识openGauss数据库9.2openGauss基本配置9.3安装openGauss数据库9.4openGauss数据库基本操作9.5openGauss与其他工具9.6案例分析与实践9.7未来发展趋势本章内容学习目标了解openGauss的发展历史、核心特性及应用场景。理解openGauss的逻辑架构、内存结构及后台进程功能。掌握Linux环境下的依赖配置、安装部署全流程。运用

gsql客户端连接数据库,执行用户管理与SQL操作。9.1认识openGauss数据库9.1.1openGauss概述一款由多个合作伙伴共同开发的企业级开源关系数据库。目标:成为全球领先的数据库解决方案完全开放,采用木兰宽松许可证v2发行企业级开源数据库,适用于:金融分析、电子商务、大数据分析、云计算服务9.1.2openGauss起源和发展内部自用孵化阶段(2001—2010年)背景:由华为公司开发,最初作为企业级内部数据库工作重点:集中在内部基础建设和日常使用,进行基本的数据库管理系统开发和内部优化9.1.2openGauss起源和发展联创产品化阶段(2011—2018年)里程碑:成功支撑国家开发银行核心数据仓库华为云DWS开始商用在中国银行核心业务系统中使用技术突破:产品能力达到PB级数据处理(千万亿字节规模)9.1.2openGauss起源和发展生态构建阶段(2019-2020年)2020年6月30日正式开源,进入开源社区

生态落地阶段(2021年至今)推动开源生态落地,加强企业与开发者合作实现数据库技术的革新和服务升级9.1.3openGauss特点和优势高性能使用先进的数据存储技术和索引机制有效的数据缓存策略和智能查询优化器可扩展性支持无缝的水平扩展和垂直扩展通过添加节点分散负载,增加存储和计算能力安全性与完整性支持数据加密、访问控制、SQL注入防护、审计日志保障ACID(原子性、一致性、隔离性、持久性)9.1.3openGauss特点和优势实时数据处理实时接收和处理数据,提供快速的分析和决策支持适用于金融监控、在线零售等用户友好的管理界面直观易用,配置简单,用户无须深入了解复杂的命令行操作多样的支持与集成兼容多种编程语言和开发框架广泛的API支持、丰富的库函数9.1.4openGauss体系结构模块化的系统架构:核心由数据存储引擎、查询处理器和事务处理器组成三大组件功能:数据存储引擎:支持结构化、半结构化及非结构化数据查询处理器:自动选择最优查询路径,支持复杂SQL事务处理器:支持多级事务隔离,管理并发访问9.1.4openGauss体系结构GaussMaster

线程实例(Instance)结构的主控线程职责:负责处理和协调数据库内部的各种操作,如连接管理、事务处理等9.1.4openGauss体系结构实例结构的内存缓冲区(Buffers)Sharebuffer:缓存从磁盘读取的数据块,供多进程共享,减少I/Ocstorebuffer:专门用于列式存储的缓冲区,优化列式查询性能walbuffer:存储预写式日志(WAL),确保事务持久性tempbuffer:用于排序或哈希表等操作的临时数据存储9.1.4openGauss体系结构维护工作内存(MaintainWorkMem)执行数据库查询和其他数据库操作时所需的工作内存后台写入进程bgwriter:定期将缓存中的脏页写回磁盘pagewriter:辅助bgwriter,专注写回特定数据库脏页walwriter:将WAL缓冲区记录定期写入磁盘checkpointer:在检查点将所有脏页写回,帮助系统恢复一致性9.1.4openGauss体系结构数据库文件配置文件postgresql.conf:主配置文件,含运行参数pg_hba.conf:客户端认证配置pg_ident.conf:用户映射文件日志和WAL文件base,global:存储实际数据。pg_xlog:存储WAL日志,用于数据恢复ArchivedWAL:已归档的WAL文件,用于灾难恢复9.1.4openGauss体系结构后台辅助进程(BackgroundProcess)监控与日志Stat_collector:收集数据库统计信息sysLogger:处理和转存系统日志Auditor:审计日志记录,监控数据访问9.1.4openGauss体系结构后台辅助进程(BackgroundProcess)任务管理AutoVacLauncher:触发自动清理,防止数据膨胀Jobworker、percentworker:执行定期任务,如数据库维护、统计信息更新snapshotworker:创建和管理快照点,用于查询一致性视图复制和数据传输WalSender、WalReceiver:处理数据的异地复制,保证数据的高可用性和灾难恢复。9.1.5openGauss逻辑模块9.1.5openGauss逻辑模块管理模块OM(OperationManager):运维管理模块,提供日常运维接口。CM(ClusterManager):集群管理模块,监控各功能单元和物理资源,确保系统稳定9.1.5openGauss逻辑模块数据节点与驱动客户端驱动:负责接收应用请求,与openGauss实例通信。数据节点(Datanode):负责存储业务数据,执行查询。包含主、备两种类型,支持一主多备。Storage:服务器本地存储资源,持久化数据9.2openGauss基本配置9.2.1下载openGauss安装包版本选择:推荐6.0.0LTS(长期支持版本)。下载路径:openGauss开源社区。下载命令示例:mkdir-p/opt/software/openGausscd/opt/software/openGauss/wget[下载链接,从openGauss社区获取]9.2.2硬件环境要求内存:调试建议32GB+;性能测试/商业部署建议128GB+CPU:调试:最小1x8核个人开发者:最低2核4GB,推荐4核8GB硬盘:至少1GB用于安装应用程序9.2.2软件环境与依赖操作系统:CentOS7.6(推荐)Python:支持Python3.6及以上依赖软件:libaio-devel(建议0.3.109-13)readline-devel9.2.3虚拟机安装CentOS使用VirtualBox或VMware创建虚拟机配置参数:名称:openGauss内存:2GB(实验环境)处理器:4核硬盘:20GB9.2.3网络检查登录系统后,进入终端模式查看IP:使用ifconfig命令测试连通性:使用ping确认能否上网9.2.4操作系统预配置修改OS版本目的:若非CentOS7.6,可能导致安装脚本检查失败。操作:修改/etc/redhat-release文件。内容: CentOSLinuxrelease7.6.2003(Core)9.2.4操作系统预配置关闭防火墙必要性:目前仅支持在防火墙关闭状态下进行安装。命令:验证状态:执行systemctlstatusfirewalld若显示inactive(dead)表示已关闭systemctlstopfirewalld.servicesystemctldisablefirewalld.service9.2.4操作系统预配置字符集与变量配置文件:/etc/profile添加内容:生效配置:退出编辑状态(Esc键),退出vim

(:wq)执行

source/etc/profile使配置立即生效exportLANG=en_US.UTF-8exportpackagePath=/opt/software/openGaussexportLD_LIBRARY_PATH=$packagePath/script/gspylib/clib:$LD_LIBRARY_PATH9.2.4操作系统预配置关闭SWAP原因:频繁的内存与磁盘交换会显著降低数据库性能步骤1:编辑/etc/fstab操作:注释掉swap分区相关的行步骤2:执行命令swapoff-a

结果:确保数据库始终运行在物理内存中9.2.4操作系统预配置准备yum源和依赖包目的:用统一包管理器自动拉取依赖库,避免版本不一致备份原源:下载新源:使用curl下载华为云或阿里云的repo文件安装依赖包:yuminstall-ylibaio-develflexbisonncurses-develglibc-develpatchlsb_releasewgetpython3mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bakcurl-o/etc/yum.repos.d/CentOS-Base.repo-https://mirrors./repository/conf/Centos-7-anon.repo9.2.4操作系统预配置设置Python版本openGauss安装脚本通常需要Python3.x。建立软链接:修复Yum:修改Python指向后,Yum可能会报错。解决:修改/usr/bin/yum文件头,将#!/usr/bin/python改为#!/usr/bin/python2.7验证:执行yum--help确认恢复正常。cd/usr/binmvpythonpython.bakln-spython3/usr/bin/pythonpython-V9.3安装openGauss数据库9.3.1安装方式对比服务器安装:直接在物理机/VM运行,利用全部资源,适合企业生产环境。容器安装:Docker环境,轻量级,启动快,适合开发测试和微服务。本课程采用单机版服务器安装方式演示9.3.2安装步骤步骤1-创建目录cd/rootmkdir-p/opt/software/openGausschmod755-R/opt/software/openGauss步骤2-下载安装包gethttps://opengauss,/2.0.0/x86/openGauss-2.0.0-CentoS-64bit-all.tar.gz9.3.2安装步骤步骤3-创建XML配置文件文件名为:clusterconfig.xml

Viclusterconfig.xml编辑并保存配置文件关键参数:oclusterName:集群名称onodeNames:主机名backIp1:后端IP(如31)ogaussdbAppPath:应用路径/opt/gaussdb/appogaussdbLogPath:日志路径dataNode1:数据目录9.3.2安装步骤步骤4–解压安装包解压命令:

tar-zxvfopenGauss-2.0.0-CentOS-64bit-all.tar.gztar-zxvfopenGauss-2.0.0-CentOS-64bit-om.tar.gz解压结果:生成script子目录及安装脚本9.3.2安装步骤步骤5–初始化脚本功能:自动创建系统用户,配置目录权限和环境变量执行命令cd/opt/software/openGauss/scriptpythongs_preinstall-Uomm-Gdbgrp-X/opt/software/openGauss/clusterconfig.xml成功标志:终端返回Preinstallationsucceeded注意事项:若不执行此脚本,后续安装会因权限或用户缺失而失败9.3.2安装步骤步骤6–初始化数据库用init6重启虚拟机,释放内存资源cd/opt/software/openGauss/scriptchmod755-R/opt/software切换用户:必须使用omm用户执行安装安装命令:gs_install-X/opt/software/openGauss/clusterconfig.xml--gsinit-parameter="--encoding=UTF8"--dn-guc="max_process_memory=2GB"--dn-guc="sharedbuffers=128MB"--dn-guc="bulk_write_ring_size=128MB"--dn-guc="cstore_buffers=16MB"9.3.2安装步骤步骤6–初始化数据库关键安装参数:--encoding=UTF8:设置字符集max_process_memory:节点可用最大物理内存(如2GB)shared_buffers:共享内存大小(如128MB)提示:若虚拟机内存小,必须显式设置这些参数,否则启动报错9.4openGauss数据库基本操作9.4.1启动数据库服务切换用户:suomm启动命令 gs_om-tstart成功输出:Successfullystarted9.4.1启动数据库服务检查服务状态 gs_om-tstatus正常状态:cluster_state:Normal9.4.2连接数据库工具:gsql(命令行接口)连接命令:

gsql-dpostgres-p26000-r参数说明:-dpostgres:默认数据库-p26000:默认端口号9.4.3创建数据库用户默认用户:安装时创建的omm创建新用户SQL: postgres=#CREATEUSERangelaWITHPASSWORD"Angela@123"; CREATEROLE postgres=#结果:显示CREATEROLE表示成功9.4.4创建、查看、删除数据库创建数据库 CREATEDATABASEdb_tpcc_1;结果:显示CREATEROLE表示成功查看数据库列表

_1若要使用数据库,使用\cdb_tpcc_1进入db_tpcc_1数据库9.4.4创建、查看、删除数据库切换数据库为postgres数据库 \cpostgres修改数据库名称

ALTERDATABASEdb_tpcc_1RENAMETOtpcc;前置条件:需先切换到其他数据库成功提示:ALTERDATABASE删除数据库 DROPDATABASEtpcc;成功提示:DROPDATABASE9.5openGauss与其它工具9.5.1openGauss与编程语言Java接口:JDBC(JavaDatabaseConnectivity,Java数据库互连)代码示例:Connectionconn=DriverManager.getConnection("jdbc:openGauss://host:port/database","username","password");Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery("SELECT*FROMusers");while(rs.next()){System.out.println(rs.getString("username"));}9.5.1openGauss与编程语言Python接口:遵循PythonDB-API规范(如psycopg2)代码示例:importpsycopg2conn=psycopg2.connect("dbname=testuser=postgres")cur=conn.cursor()cur.execute("SELECT*FROMusers")rows=cur.fetchall()forrowinrows:print(row)9.5.1openGauss与编程语言PHP接口:PDO扩展(PHPDataObjects)代码示例:$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);foreach($dbh->query('SELECT*fromusers')asSrow){ print_r($row);}9.5.2openGauss与开发框架Spring集成方式:通过IOC(控制反转)

和DI(依赖注入)容器管理连接优势:JdbcTemplate和TransactionManagement简化底层操作Hibernate集成方式:ORM(对象关系映射)框架,将Java对象映射到表优势:避免直接编写SQL,面向对象操作数据库9.5.3数据迁移策略迁移准备:数据评估、制定计划(时间表、风险应对)工具与技术使用MySQL的mysqldump或Oracle的DataPump导出使用openGauss专用工具进行转换和导入9.5.3数据迁移策略迁移过程管理测试迁移:验证数据完整性和应用兼容性数据同步:确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论