- 第一章:YashanDB基础介绍
- 国产化数据库的发展及未来
- 崖山数据库系统:YashanDB是【深圳计算科学研究院】完全自主研发设计的新型数据库系统,经过工信部下述机构权威检测,内核代码自主率100%。
- YashanDB = 核心交易型数据库 + 企业级数仓 + 湖仓一体。
核心交易:手机下单、转账,特点是短小快,量大。
企业级数仓:数据量特别大,并且还有复杂的一些分析在里面。
湖仓一体:有多种不同类型的数据,结构化数据和非结构化数据等等。
- 六大特性
- Oracle四层生态全面兼容。
Oracle,目前最好的数据库。
- 卓越性能,极致性价比。
- 共享集群,高端金融及高可用。
- 源头创新,混合负载/实时数仓。
- 应用平滑迁移。
- 自主创新,全面兼容国产生态。
- Oracle四层生态全面兼容。
- YashanDB背景
- YashanDB发展历程
2022年是第一个商业化元年,实现了多个行业的应用,并且取得了数字中国“十大硬核科技”奖项。
- 产品形态
- 部署方式:单机部署、集群部署、分布式部署。
- 主要特性
- 有界计算(YashanDB的原创理论):数据量增大的情况下,数据库的查询性能不会降低。
- 主备模式:最多1主32备。
- AWR报告:Automatic Workload Repositor,AWR报告通过对比两个时间点的数据,分析出数据库当前的工作状态,包括问题和瓶颈,极大方便了数据库异常的事后分析。基于AWR可以开展一系列数据库运维自动化的动作。用于诊断数据库性能。
- 运维监控管理平台:YCM,Yashan Cloud Manager。实现海量数据的数据库的管理。千万套数据库管理。
- 数据库备份恢复:全量备份,增量备份,基于时间点的恢复(PITR)。
- 数据库闪回:flashback,误删、业务仅需个别数据恢复。可以快速查询指定时间点的历史数据;可以将数据闪回到历史时间点。
- 第二章:YashanDB企业版安装部署
- yasdb open,nomount ,mount可以启动YashanDB
- 第三章:YashanDB SQL语言(基础篇)
- YashanDB SQL分类
- DML语句介绍及操作:数据操纵语言。select,insert,update,delete。
- DDL语句介绍及操作:数据定义语言。alter(操作数据库中的对象和对象属性),create(创建数据库中对象和对象属性),drop(删除数据库中的对象和对象属性,index、sequence、table、tablespace、trigger、user),truncate table(删除表全部数据)。
- DCL语句介绍及操作:数据控制语言。commit(提交一个事务),rollback(回滚一个事务),grant(对某一用户或角色授予权限),revoke(对某一用户或角色收回授予的权限)
- 第四章:YashanDB体系结构
- 基础概念
- 内存管理:共享内存区域和私有内存区域。
- 线程管理:工作线程和后台线程。工作线程是指每个客户端连接到数据库实例所创建的线程;后台线程是数据库实例为实现各项工作机制和保护数据一致性所衍生的一系列线程。
- 物理存储:包括控制文件(ctr1),redo日志文件(redo1),数据文件(users)和归档文件(arch_0_10.ARC)等文件。
- 共享内存区域
- 基础概念
- 第五章:YashanDB实例管理
- 概述-实例和数据库的关系
- 数据库启动时,实例会加载、打开数据库,并提供数据服务。一个实例最多加载一个数据库。
距离:实例相当于运行中的WPS,数据库相当于一个个的静止的文件。
- 数据库启动时,实例会加载、打开数据库,并提供数据服务。一个实例最多加载一个数据库。
- 启动和关闭YashanDB
- 启动YashanDB
- NOMOUNT:读取参数文件,但是不加载数据库;
启动到NOMOUNT状态:yashandb nomount &;
查看数据库状态:select status frome V$INSTANCE;
备注:状态是started。
- MOUNT:加载数据库,但是数据库处于关闭状态;
启动到MOUNT状态:yashandb mount &; 或者:alter database mount;
查看数据库状态:select status frome V$INSTANCE;
备注:状态是mounted。
- OPEN:加载并打开数据库。
启动到MOUNT状态:yashandb open &; 或者:alter database open;
查看数据库状态:select status frome V$INSTANCE;
备注:状态是open。
- NOMOUNT:读取参数文件,但是不加载数据库;
- 关闭YashanDB
- shutdown normal:等待所有事务正常结束后关闭,生产环境一般不推荐这种方式关闭。默认采用这种方式。
- 【推荐】shutdown immediate:立即终端当前用户的连接,同时强行终止用户的当前执行中的事务,讲未完成的事务回退,并关闭数据库。推荐使用这种方式关闭数据库。
shutdown immediate;
- shutdown abort:强制中断所有数据库操作并关闭数据库,不会等待事务回滚完成,在启动数据库时需要进行实例恢复。生产环境不推荐。
- 启动YashanDB
- 管理数据库实例
- 数据库打开模式
在MOUNT状态下,准备OPEN打开时,可以配置打开模式。
OPEN状态,不能切换。
可以通过ALTER DATABASE命令配置数据库打开模式:alter database open [readwrite|resetlogs|readonly]。
查看打开模式:select database_name,open_mode frome V$DATABASE;- readwrite:默认模式,推荐使用。
- resetlogs:需要重新设置日志号。
- readonly:只读。
- 参数配置
默认值一般基于在个人PC也能运行的最小配置给出,可能不适用于生产环境,建议在安装时进行参数的初始化配置工作。- 方式1:修改参数文件${YASDB_DATA}config/yasdb.ini文件
备注:通过这种方式修改的,需要重启数据库生效。
- 方式2:使用SQL命令修改参数
命令:alter system|session set parameter parameter_name = parameter_value [SCOPE = spfile | memory | both ];
alter system:系统级别;
alter session:会话级别,默认只写到内存,仅对当前会话生效。
- 方式1:修改参数文件${YASDB_DATA}config/yasdb.ini文件
- 运行日志文件
- 作用:记录了数据库各服务运行产生的轨迹信息、调试信息、状态变迁、未产生影响的潜在问题和直接的错误信息。
- 运行日志配置参数:RUN_LOG_LEVEL
- 运行日志文件位置:$YASDB_DATA/log/run/run.log
- 告警日志文件
- 作用:数据库发生死锁,表空间满,网络断联。
- 位置:$YASDB_DATA/log/alert/alert.log
- 常见管理数据库实例系统视图
- V$DATABASE:这个视图包含了数据库相关信息,如数据库名、创建时间、数据库打开模式、归档模式等;
命令;select database_name,log_mode,open_mode from V$DATABASE;
- V$INSTANCE:这个视图包含了实例相关信息,实例状态、启动时间等。
- V$DATABASE:这个视图包含了数据库相关信息,如数据库名、创建时间、数据库打开模式、归档模式等;
- 数据库打开模式
- 概述-实例和数据库的关系
- 第六章:YashanDB存储管理
- 数据库存储概述:物理存储结构和逻辑存储结构。
- 物理存储结构:物理存储结构是指数据库在物理上的构成,由参数文件、控制文件、数据文件、Redo日志文件、归档文件、密码文件等构成。
- 逻辑存储结构:通过划分逻辑存储结构,可以方便物理存储的管理,包括表空间、数据段、数据区、数据块等逻辑存储概念。
- 数据库存储管理
- YashanDB内置了如下表空间,属性可以默认或者在创建时设定。
- 多个表空间的优点
- 创建表空间:CREATE TABLESPACE用于在数据库中创建一个表空间。
- 删除表空间:DROP TABLESPACE。
- 维护表空间:ALTER TABLESPACE。包含了【增加数据文件】和【空闲空间回收】。
- 第七章:YashanDB文件管理
- 文件类型介绍:
- 密码文件:以加密的方式存放着系统用户的密码(比如sys用户)。【不可直接进行编辑】,需要yaspwd命令修改
密码文件名:yasdb.pwd。【不可直接进行编辑】,需要yaspwd命令修改。
- 参数文件:记录数据库的配置信息。实例在启动阶段读取参数文件,并根据参数文件中的参数设置来配置数据库。
参数文件名:yasdb.ini,可直接编辑,存放在$YASDB_DATA/config路径下。
- 控制文件:一旦损坏,数据库就会宕机。默认会创建3份冗余控制文件,提高安全性。包含了有关打开数据库所需的数据文件、在线重做日志文件等信息。MOUNT数据库时,数据库会打开控制文件并读取里面的内容。是二进制文件,不能编辑。
- Redo日志文件:Redo日志记录的是数据库的所有历史变更。
- 查看Redo日志:select * from V$LOGFILE;
- 添加Redo日志:ALTER DATABASE ADD LOGFILE('redo6' SIZE 200M, 'redo7' SIZE 200M);
- 切换Redo日志:当前面的一个Redo日志需要删除等维护操作(但是状态不是可复用的),就可以使用切换日志组的命令。
命令:ALTER SYSTEM SWITCH LOGFILE;
- 删除Redo日志:只有状态为INFCTIVE与NEW的Redo日志才可以进行删除。
命令:ALTER DATABASE DROP LOGFILE '/home/yashan/yashandb/yasdb_data/dbfiles/redo6/’;
- 归档文件:Redo日志的备份,记录的信息和Redo是一模一样的。用于数据恢复,或者在主备库中的备库上应用,还原主库上的数据。
查看归档模式:SELECT database_name,log_mode,open_mode FROM V$DATABASE;
- 数据文件:系统数据文件、UNDO数据文件、TEMP数据文件、用户数据文件。
- 查看数据文件相关信息
命令:SELECT name,bytes,status,auto_extend FROM V$DATAFILE;
- 查看数据文件相关信息
- 第八章:YashanDB对象管理(基础)
- 什么是数据库对象:数据库里面用来存储和指向数据的各种概念和结构的总称。
- 管理对象
- 表:一个表描述了一个实体,表定义为列的集合。与电子表格相似,数据在表中是按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如字符串或数字)。
- 索引:用来快速访问数据的一种数据结构。根据业务合理(不是越多越好 )的创建索引可以提高查询的效率。
- 创建索引
CREATE INDEX [user_name.] index_name ON table_name(column_name);
user_name:用户名;
index_name:索引名;
table_name:表名;
column_name:列名。
- 管理索引:invisible用于设置对优化器是否可见;unusable用于设置索引为不可用(需要重建生效)
- 创建索引
- 视图:基于一个查询建立视图,此后查询此视图即可,简化了一些复杂查询。视图本质上就是一条select语句,所以当访问视图时,只能访问到所对应的select语句中涉及到的列,对表中的其他列起到安全和保密的作用,可以限制数据访问。
- 管理视图
- 数据库对象相关视图:DBA_OBJECTS,DBA_TABLES,DBA_INDEXES,DBA_VIEWS。
- 第九章:YashanDB数据字典和动态性能视图
- 概念:提供了一系列视图,向用户展现数据库的各项静态数据,及运行过程中的各项实时动态数据,具体包括动态视图和静态视图。
- 数据字典(静态视图):包括DBA视图,ALL视图和USER视图。
- DBA_VIEWS:OPEN阶段可以通过查看DBA_VIEWS视图来查询存在的静态视图名称。
命令:SELECT VIEW_NAME FROME DBA_VIEWS;
- DBA_TABLES:本视图显示所有的表,包括系统表的信息。
命令:SELECT TABLE_NAME,OWNER FROM DBA_TABLES WHERE OWNER='SALES';
说明:查看SALES用户属主的表。
- DBA_INDEXES:显示所有的索引信息。
命令:SELECT INDEX_NAME,OWNER FROM DBA_INDEXEX WHERE OWNER='SALES';
说明:查看SALES用户属主的索引。
- DBA_VIEWS:OPEN阶段可以通过查看DBA_VIEWS视图来查询存在的静态视图名称。
- 动态性能视图:为系统提供的V$视图,用于实时展现正处于数据库运行中的各项书,尤其与性能相关的数据,用户通过查询这些视图,对系统进行管理和优化。
- V$DYNAMIC_VIEWS:OPEN阶段,通过它来查询存在的动态视图名称。
命令:SELECT VIEW_NAME FROME V$DYNAMIC_VIEWS;
- V$SESSION:显示当前连接到数据库所有会话信息。
命令:SELECT SID,SERIAL#,USERNAME FROM V$SESSION WHERE USERNMAE IS NOT UNLL;
说明:查询当前连接数据库中费控用户的会话信息。
- V$PROCESS:显示系统中所有线程信息。
命令:SELECT NAME,THREAD_ID,STATUS FROM V$PROCESS WHERE NAME='WORKER';
说明:查看当前数据库全部的工作线程。
- V$DYNAMIC_VIEWS:OPEN阶段,通过它来查询存在的动态视图名称。
- 第十章:YashanDB应用开发
- YashanDb支持的驱动
- 什么是数据库驱动
- JDBC:Java连接数据库技术统称。
- Python驱动:yaspy,可以连接数据库。
- 案例:通过JDBC访问YashanDB
- 核心类和接口
- YashanDb支持的驱动
#yashandb#YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情