YashanDB安装前准备
本章节将介绍个人版单机形态YashanDB服务端安装部署所需的前期准备,安装前请根据本文所述内容进行相关配置。演示环境如下:操作系统CPU内存CentOS Linuxx86_6432G#服务器准备下表为个人开发环境最小配置,请根据如下配置自行调整软硬件配置。项目描述操作系统CentOS 7.6,kylin V10CPUX86_64,ARM642C内存4G硬盘50G文件系统ext4或xfs网络千兆以
YashanDB文件系统
崖山文件系统YFS是YashanDB的专用并行文件系统,提供存储设备管理、存储高可用、文件系统接口等功能。共享集群中每一个服务器上运行的一组YFS相关线程称为一个YFS实例,YFS实例与YCS实例运行在同一进程(YCS进程)中。生产环境下,通常每台服务器只会运行一个YFS实例。数据库服务端核心进程YASDB是YFS实例的客户端(Client),只与同服务器的YFS实例通信。YASDB进程通过Uni
YashanDB集群服务
崖山集群服务YCS采用客户端服务端架构,整体架构如下,客户端命令行工具可执行配置、查询等命令,相关命令发送到服务端处理后返回结果给客户端。#YCS实例YCS实例采用单进程、多线程的服务架构(进程名为yascs),包括负责监听、心跳、监控以及服务客户端的代理线程。在YCS进程中会以内嵌方式运行YFS实例,后者同样也包括一系列线程,详情请查阅崖山文件系统。#YCS配置在共享集群运行前,需要先完成集群服
YashanDB反入侵
在数据库层建立防火墙主要用于检测和防御外部入侵风险,可以采用如下机制:建立IP黑/白名单,白名单里的IP上所发起的登录请求才允许连接,黑名单里的IP上所发起的登录请求不允许连接。启用连接监听后,所有对YashanDB的连接信息都将被记录,便于及时发现异常连接并采取相应措施。#IP黑白名单YashanDB提供IP访问控制功能,根据配置允许/拒绝对应IP发起的远程连接请求(使用UDS本地连接的请求不受
YashanDB审计
数据库审计是一种监控和记录数据库活动的过程,通过数据库审计,可以追踪和记录对数据库的访问、修改和操作行为,以便进行追踪溯源、故障排除和合规性检查。#审计管理员审计管理员(AUDIT_ADMIN角色)可以创建和管理审计策略,可以查看审计日志。为了职责分立,增设了AUDIT_VIEWER角色可以查看审计日志。审计记录保存在物理表中,拥有AUDIT_ADMIN或AUDIT_VIEWER角色权限的用户可以
YashanDB加密方法
存储加密YashanDB支持表空间级和列级的数据透明加密(TDE,Transparent Data Encryption)。#表空间透明加密表空间透明加密在数据库写入表空间存储介质时自动加密,从存储读取至数据库buffer内时解密,加解密过程对应用程序透明,数据库层的访问控制、SQL查询等都不会受任何影响。支持采用ASE128或SM4加密算法进行表空间数据加密。在创建表空间时需确定该表空间是否启用
YashanDB访问控制
基于角色YashanDB采用基于角色的访问控制(RBAC),限制授权用户对系统的访问。角色包含权限集,通过角色能有效权限管理,管理员对用户只需关注其角色,对角色只需关注其权限集。三权分立数据库在运行过程中需要持续的运维和管理,理论上使用sys用户可以执行所有的管理操作,但会产生非常大的安全风险:sys为YashanDB的超级管理员账号,拥有完全的权限,可以执行对数据库执行所有的操作,可能存在因误操
YashanDB身份认证
数据库身份认证(Authentication)是确认一个用户(主体)所声称身份的过程,又称“认证”、“鉴权”。YashanDB对认证的技术实现包括数据库认证和操作系统认证。#数据库认证/密码(口令)认证YashanDB将接收到的用户输入的凭证与服务端存储的用户凭证进行对比,完全一致的密码才能通过认证。为了支持数据库启动不同的阶段的用户密码验证,根据密码的存储位置可分为:密码文件:存储在数据库服务器
YashanDB用户管理
用户用户,即登录数据库的账号,是能对数据库进行访问的一个逻辑的对象。YashanDB中的用户分为:系统用户系统用户是预置在YashanDB中的用户,超级管理员,负责数据库系统的管理,拥有全部的权限。账号名称为sys,密码必须通过yaspwd工具生成和维护。普通用户使用SQL语句创建的用户为普通用户,可通过对普通用户进行授权明确其对应的身份,例如DBA、安全管理员、审计管理员等。#特权YashanD
YashanDB自动选主
主备自动选主在分布式集群节点组和单机一主多备(大于一个备库)部署形态下,可以开启主备自动选主功能来实现主库选举以及故障自动切换。主备自动选主采用Raft算法,并支持设置Quorum。#心跳Raft使用心跳机制来检测数据库状态。领导者角色的数据库会周期性地向所有跟随者发送心跳以维持地位,跟随者只要接收到领导者或候选者的有效心跳或投票消息就会持续保持其跟随者状态。如果一个跟随者在一段时间内没有接收到任
YashanDB主备复制及切换
主备复制主备复制是指通过将主库上的数据实时复制到备库实现高可用,是数据库最主要的高可用措施。主库(primary database)是指执行业务的数据库实例,备库(standby database)是指复制主库数据的数据库实例。当主库发生故障时,业务可以转移到备库上继续执行,降低故障对业务的影响,提高数据库的可用性。主备复制分物理复制和逻辑复制,物理复制将主库的物理存储内容复制到备库,逻辑复制基于
YashanDB备份恢复
备份恢复是数据库损坏后常用的恢复手段。定期对数据库进行备份,当数据库遇到故障导致数据损坏时,可以使用合适的备份集恢复数据库,减少损失。数据库备份分为物理备份和逻辑备份,物理备份(本文所提及的备份均为物理备份)直接将数据库物理文件拷贝为副本,逻辑备份将数据库对象按逻辑格式(例如SQL)导出到文件。#备份集备份集是指对数据库执行备份操作后生成的若干文件集合。当备份介质为磁盘时,以文件夹的形式存在,用户
YashanDB PL语言
PL简介PL语言是一种高度可编程的语言,提供了多种数据类型(SQL能力范畴内各种标准的数据类型、用户可自定义数据类型)、变量声明、变量赋值、多种类型表达式、控制语句、循环语句、跳转语句、静态SQL、动态SQL、异常处理等提供灵活多变的编程元素。同时,PL在数据库内核中存在多种形态的对象,包括存储过程、自定义函数、外置自定义函数、触发器等,每种对象的编译、执行原理相似,但生命周期和触发运行的原理并不
YashanDB SQL语言
SQL简介结构化查询语言(SQL,Structured Query Language)是一种关系型数据库的操作语言,用于数据存取、数据查询、数据处理和关系型数据库系统管理。SQL提供一个操作关系型数据库的接口,且内置了安全访问机制检查。所有应用都可以使用SQL语句访问YashanDB数据库中的数据。SQL语言一种非过程化的声明性语言,只需描述语句的目的(做什么样的数据操作),无需提供实现的过程。因
YashanDB事务管理
事务结构YashanDB事务由一条或多条SQL语句(DML或DDL)以及一条特殊的SET TRANSACTION语句组成。事务可以分为如下两类:一条或多条DML语句的组合,一起构成对数据库的原子修改一条DDL语句以从账户A给账户B转账100元的操作为例,该操作包含以下步骤:减少A账户的余额增加B账户的余额在事务日志中记录转账操作正常情况下,这3个步骤都正常完成,事务提交,全部修改生效。若操作过程中
YashanDB并发控制和一致性
为了充分利用系统资源(内存、CPU、网络等),YashanDB允许多个会话并行访问、修改数据库内容,如果对并发操作没有加以控制,就会破坏数据库的完整性和一致性。YashanDB通过多版本并发控制、事务隔离级别以及锁来维护数据库的一致性:多版本并发控制:主要处理读写之间的并发。事务隔离级别:控制多个事务之间的并发,并发事务在不同的隔离级别下只能访问对应可见版本的数据。锁机制:主要处理写写之间的并发,
YashanDB事务机制
事务是包含一个或一组SQL语句的工作单元,将数据修改应用至数据库后,这些SQL语句全部被提交则数据修改生效,或全部被回滚则数据修改被撤销。YashanDB为每个事务分配全局唯一的事务ID作为标识,所有YashanDB事务都满足数据库事务的基本属性,即符合ACID属性。关于ACID的描述如下:Atomicity原子性:一个事务中所有的修改要么全部生效,要么全部不生效,不允许部分生效。Consiste
YashanDB逻辑存储结构
YashanDB通过提供逻辑存储结构,使数据库存储空间管理更加灵活快捷。与物理存储结构不同,逻辑存储结构对操作系统是透明的,所有的访问都需要通过数据库提供的接口。#段页式存储结构YashanDB段页式存储主要包括:块(Block):数据存储的最小逻辑单元,例如数据块、索引块、undo块等。区(Extent):由一组物理上连续的数据块组成,可以提高空间管理的效率。段(Segment):每个数据库对象
YashanDB数据字典
数据字典类型数据字典指YashanDB用于管理和显示数据库元数据信息的一组系统表、系统视图和动态视图。数据字典中存储了数据库中各级对象的元数据,在数据库运行的各个场景均可能被使用。例如,YashanDB客户端工具或用户程序通过YashanDB驱动程序连接数据库时,数据库会从用户相关的数据字典中查找尝试登录的用户的身份信息(用户名、密码、角色等),从权限相关数据字典中查看该用户是否具备创建会话的权限
YashanDB物理存储结构
物理存储结构用于承载YashanDB在存储介质上持久化数据(包括用户数据以及数据库元数据),用户可以直接在操作系统层面查看物理储存结构相关的文件。YashanDB物理存储结构主要包括以下文件:数据存储文件:用于存储数据的物理文件,YashanDB支持段页式和分片式两种不同组织格式的数据文件。临时文件:用于临时数据(临时表空间的数据)的存储或中间计算结果的换出(交换表空间的数据)。redo重做日志文