# 7天从零搞定GBase培训——数据库知识真的可以平移
7天从零搞定GBase培训——数据库知识真的可以平移背景接到一个任务给甲方做GBase数据库培训。要求覆盖GBase 8s事务型和GBase 8a分析型MPP两个产品。问题来了我从来没碰过GBase。官方给了一批产品文档和安装包但提供不了培训服务。总集委托我单位来培训。拿到材料的时候是周一培训排在下周一——7天时间。7天后的培训PPT后半部分的DBA管理SQL语句全是我自己写的。下面说说我是怎么在7天内速成GBase的。核心观点就一个懂了一个数据库知识可以平移。GBase是什么先交代背景。南大通用GBase是国内数据库厂商有两个主力产品产品定位对标场景GBase 8sOLTP事务型Oracle、MySQL、SQL Server业务系统、政务OAGBase 8a MPPOLAP分析型Greenplum、ClickHouse数据仓库、统计分析8s适合在线事务处理8a适合海量数据分析。很多政务项目里两个一起部署8s跑业务8a跑报表。我会什么在接这个任务之前我的数据库经验是Oracle为主MySQL为辅。Oracle用了十几年MySQL也折腾过不少。Oracle → MySQL → GBase 的知识迁移路径知识平移对照表一、安装部署所有数据库的安装流程都是一样的检查环境 → 创建用户 → 解压安装包 → 配置参数 → 初始化实例。操作OracleMySQLGBase 8sGBase 8a安装用户oraclemysqlgbasedbtgbase默认端口1521330690885258初始化实例dbca / CREATE DATABASEmysqld --initializeGBaseInit_gbasedbt.shgcinstall.py配置文件listener.ora / sqlnet.oramy.cnfonconfigdemo.options启动sqlplus / startupsystemctl start mysqldoninitgcluster_services all start停止sqlplus / shutdownsystemctl stop mysqldonmode -kgcluster_services all stop查看状态ps -ef | grep ora_systemctl status mysqldonstat -gcadmin你看概念完全一一对应。你只要记住GBase 8s的oninit相当于Oracle的startuponmode相当于shutdown其他的照猫画虎就行。二、客户端连接操作OracleMySQLGBase 8sGBase 8a命令行工具sqlplusmysqldbaccessgccli连接sqlplus user/passhost:portmysql -h host -u user -pdbaccess - -gccli -u root -p图形客户端GDS南大通用自带NavicatGDSGDSGBase自带的客户端工具叫GDSGBase Data Studio支持8s和8a两种连接。用法和Navicat、DBeaver差不多。三、库表操作DDL语句几乎一样。你只要会Oracle或MySQL的建库建表到了GBase直接上手-- 建库所有数据库都差不多-- Oracle: CREATE DATABASE test;-- MySQL: CREATE DATABASE test DEFAULT CHARSET utf8mb4;-- GBase 8s: CREATE DATABASE test IN datadbs1 WITH LOG;-- GBase 8a: CREATE DATABASE test;-- 建表完全一样CREATETABLEa1(idSERIAL,-- 相当于Oracle的SEQUENCEMySQL的AUTO_INCREMENTxmVARCHAR(50),-- 和Oracle/MySQL一样sfzhVARCHAR(20),-- 一样csrqDATE-- 一样);-- 改字段一样ALTERTABLEa1ADDCOLUMNxbVARCHAR(3);ALTERTABLEa1MODIFYCOLUMNxbVARCHAR(10);-- 8s只能改大ALTERTABLEa1DROPCOLUMNxb;-- 建索引一样CREATEINDEXidx_sfzhONa1(sfzh);DROPINDEXidx_sfzhONa1;-- 建视图一样CREATEVIEWv1ASSELECT*FROMa1;-- 建主键GBase 8s语法ALTERTABLEa1ADDCONSTRAINTPRIMARYKEY(sfzh)CONSTRAINTpk_a1_sfzh;唯一需要注意的是GBase 8s的SERIAL类型它类似Oracle的SEQUENCE但不完全一样。插入时不指定SERIAL字段会自动递增但可以手动指定值。指定值后下一个自动值会从你指定的值开始计算而不是跳过。四、权限管理权限体系的设计逻辑也完全一样用户→角色→权限库级→表级→字段级。操作OracleMySQLGBase 8sGBase 8a创建用户CREATE USERCREATE USERCREATE USER xx WITH PASSWORD ‘xx’CREATE USER xx IDENTIFIED BY ‘xx’修改密码ALTER USERALTER USERALTER USER xx MODIFY PASSWORD ‘xx’ALTER USER xx IDENTIFIED BY ‘xx’锁定用户LOCK ACCOUNTACCOUNT LOCKALTER USER xx ACCOUNT LOCKALTER USER xx ACCOUNT LOCK库级授权GRANT CONNECT/RESOURCEGRANT ALL ON db.*GRANT CONNECT/DBA/RESOURCE TO xx跟MySQL一样表级授权GRANT SELECT ON tab TO xxGRANT SELECT ON tab TO xx完全一样完全一样字段级授权GRANT SELECT(col) ON tab不支持GRANT SELECT(xm) ON a1 TO xx支持收回权限REVOKEREVOKE完全一样完全一样创建角色CREATE ROLECREATE ROLECREATE ROLE r1CREATE ROLE r1角色授权GRANT role TO userGRANT role TO user完全一样完全一样GBase 8s有个特殊的地方它支持操作系统用户映射通过代理用户surrogate user把OS用户和数据库内部用户关联起来。这个Oracle也有类似机制OS_AUTHENT_PREFIX但GBase 8s的配置方式不太一样需要配置/etc/gbasedbt/allowed.surrogates文件。五、备份恢复操作OracleMySQLGBase 8s全量备份RMAN / expdpmysqldump --single-transactionontape -s -L 0增量备份RMAN增量binlog / mysqldumpontape -s -L 1备份目录RMAN配置自定义目录TAPEDEV/LTAPEDEV配置逻辑导出expdpmysqldumpunload / onunload逻辑导入impdpmysql dump.sqlload / onloadGBase 8s的备份用ontape命令-L 0是全量-L 1是增量。备份前要配置TAPEDEV备份路径默认是/dev/null即不备份。# 查看当前备份配置onstat-c|grepTAPEDEV# 如果是/dev/null说明没配置备份# 配置备份路径onmode-wfTAPEDEV/backuponmode-wfLTAPEDEV/backup# 全量备份ontape-s-L0# 增量备份ontape-s-L1逻辑导出用unload类似MySQL的SELECT ... INTO OUTFILE-- unload导出相当于MySQL的INTO OUTFILEUNLOADTO/tmp/data.txtDELIMITER|SELECT*FROMa1;-- load导入LOADFROM/tmp/data.txtDELIMITER|INSERTINTOa1;注意unload默认字段分隔符是|如果数据里有换行符会自动在行尾加\表示续行。六、DBA运维命令GBase 8s的DBA命令以前缀on开头onstat、onmode、oninit、onspaces…和Oracle的v$视图、MySQL的SHOW命令一样都是日常运维的瑞士军刀。用途OracleMySQLGBase 8s查看实例状态SELECT status FROM v$instance;STATUS;onstat -查看当前模式SELECT * FROM v$database;–onstat -查看日志状态SELECT * FROM v$log;SHOW MASTER STATUS;onstat -l切换日志ALTER SYSTEM SWITCH LOGFILE;FLUSH LOGS;onmode -l查看空间使用SELECT * FROM dba_data_files;–onstat -d查看会话/线程SELECT * FROM v$session;SHOW PROCESSLIST;onstat -u查看系统概况–SHOW STATUS;onstat -p查看内存段––onstat -g seg查看共享内存––onstat -g shm查看归档状态–SHOW VARIABLES LIKE ‘log_archive%’;onstat -g arc强制检查点ALTER SYSTEM CHECKPOINT;–onmode -c杀会话ALTER SYSTEM KILL SESSION;KILL connection_id;onmode -z 12315添加CPU VP––onmode -p 5 cpu查看SQL会话SELECT * FROM v$sql;–onstat -g sqlGBase 8s的onstat相当于Oracle的v$视图AWR报告MySQL的SHOW STATUS一个命令系列搞定所有日常运维。七、表空间管理操作OracleGBase 8s创建表空间CREATE TABLESPACE tbs DATAFILE ‘/path/f1.dbf’ SIZE 100M;onspaces -c -d datadbs2 -p /path/f1 -o 0 -s 102400 -k 16k扩展表空间ALTER TABLESPACE tbs ADD DATAFILE ‘/path/f2.dbf’ SIZE 100M;onspaces -a datadbs2 -p /path/f2 -o 0 -s 102400自动扩展AUTOEXTEND ONexecute function task(“modify chunk extendable”, 7);设置扩展上限MAXSIZEexecute function task(‘modify chunk extend’, 7, 2000000);GBase 8s的表空间叫dbspace和Oracle的概念完全一样数据文件组成表空间表建在表空间上。操作方式不同Oracle用SQLGBase 8s用命令行但逻辑完全一样。我的7天速成策略说了这么多对照表讲讲我实际的7天是怎么安排的第1-2天跑通安装把GBase 8s和8a都装起来。安装过程中踩的坑主要是权限问题安装目录必须是root:root、不能777其他都按文档来。第3天整理官方PPT前半部分安装部署安装部署部分是官方给的按步骤截图命令整理。官方能提供文档但提供不了培训服务。第4-5天写PPT后半部分DBA管理这一部分是自己写的官方文档里没有。方法就是上面那个对照表把Oracle/MySQL的知识翻译成GBase的语法。每个命令都实际跑一遍确认能执行。第6天整理考试题和实操题把官方给的考试题过一遍确认答案正确。实操题补全SQL语句。第7天过一遍PPT模拟培训从头到尾讲一遍计时。关键认知数据库的核心概念是通的实例、数据库、表空间、用户、权限、备份、日志——不管哪个数据库这些概念都一样。变的只是命令语法和配置文件名。SQL标准是通用的DDL、DML、DCL的语法90%以上在所有关系数据库中都一样。差异主要在扩展功能比如序列、窗口函数、JSON支持。运维思路是通的启动/停止、状态检查、日志查看、空间管理、备份恢复——每个数据库都有自己的工具但排查问题的思路一样。不同数据库的差异主要在方言就像普通话和方言核心意思一样表达方式不同。GBase 8s的方言最接近Informix实际上GBase 8s就是基于Informix技术8a的方言接近MySQL。对初学者的建议如果你也要在短时间内接手一个新数据库我的建议是先搞清楚它对标谁——GBase 8s对标OracleInformix技术路线GBase 8a对标MySQL。知道对标关系学习就有参照物。从你已经会的东西出发——列一个对照表把新数据库的每个概念映射到你熟悉的数据库上。动手装一遍——文档看再多不如实际装一遍。安装过程中会逼你了解用户、目录、端口、配置这些基础知识。每个命令都跑一遍——不要光看文档。DBA命令一定要亲手执行看输出结果。重点看差异不是共性——共性你已经会了建库建表SQL都一样差异才是要学的GBase 8s的SERIAL、ontape备份、onstat命令等。后记培训当天甲方的人问了不少问题。有个问GBase和Oracle比哪个好我说不是谁好谁差的问题是替代的问题。80%的场景可以替代。“另一个问学GBase要多久”我说如果你会Oracle一周。这不是吹牛。数据库的世界一通百通。说到底非科班的人被逼成DBA不是什么稀奇事。你做政务信息化做久了甲方要什么你都得能顶——数据库、中间件、网络、安全、操作系统哪个你不是边干边学的资源就那么多不可能每个岗位都配专人。被逼出来的能力反而是最扎实的因为你是真的在生产环境里踩过的。我居然被逼成了DBA——这话不是抱怨是实话。感谢豆包、智谱、OpenCode在写作过程中的辅助。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2525034.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!