大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle 11g OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看 YashanDB YCA 认证学习笔记,欢迎点击最上方蓝字“JiekeXu DBA之路”关注我的微信公众号,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!
前 言
本文为几个月之前学习 YashanDB YCA 认证的学习笔记,比较简单精炼,适合初学者以及需要考 YCA 认证的朋友。
崖山认证体系:
崖山认证工程师(YCA,全称YashanDB Certified Associate)
崖山认证专家( YCP ,全称YashanDB Certified Professional)
崖山认证大师( YCE,全称YashanDB Certified Expert)
官方文档链接:https://doc.yashandb.com/yashandb/23.1/zh/%E4%BA%A7%E5%93%81%E6%8F%8F%E8%BF%B0/%E4%BA%A7%E5%93%81%E7%AE%80%E4%BB%8B.html
其他知识点:
产品形态:独立软件,私有/混合云,一体机,专业服务
OLTP/HTAP/OLAP
集中式(主备、多活集群)
分布式(MPP 存算分离)
崖山数据库系统部署方式:
集中式主备部署:
数据同步方式:复制
部署模式:1主+n备,最多32备;支持备机可读,RTO <= 30S,RPO = 0;支持两地三中心架构
分布式部署:
数据同步方式:复制
架构:MPP分布式;CN(接入层),DN(数据层),MN(管理层)多活CN
多活集群(RAC)部署:
数据同步方式:同享Disk
架构:上层多活访问,底层共享磁阵,同时满足性能、可用性提升
内核简化架构:
多源接入:
多种语言客户端可接入,包括JDBC、ODBC、Go、Python、C#等
高性能/高平稳的内存和线程管理:
多个内存池:共享内存、私有内存;多层存储/寻址,有效管理内存
高并发模型:多线程模式,充分利用多核能力实现高并发;异步/向量计算
先进计算模型:CBO+RBO,计算进一步提速
资源平稳管理:长稳压力下,CPU/内存/IO波动低于1.4%
高可靠/多模态存储管理:
多模态:行存+列存
运行可靠性:存储预分配Runtime 0
增长;多层存储机制
故障可靠:日志文件、控制文件;
7*24大压力测试,百万次断电/硬件故障测试
物理存储:
表空间:数据库划分的逻辑单元,包含若干数据库对象,例如表、索引、视图等。
数据段:每个数据库对象至少包含一个数据段。空间上由若干数据区组成。包含表段、
索引段、 回滚段等不同类型的段。
数据区:由一组物理上连续的数据块组成,可以提高空间管理的效率。
数据块:数据存储的最小逻辑单元,默认的大小8K。包含表、索引、UNDO等不同类型的块。
崖山驱动及工具:基础工具&驱动 迁移工具:Yashan Data Sync 运维工具:Yashan Cloud Manager
崖山数据库系统选件:YashanDB集中式事务型、YashanDB集中式事务型集群版、YashanDB分布式分析型容量型/节点型
崖山数据库系统工具及驱动:基础工具&驱动、迁移工具Yashan Data Sync、运维工具Yashan Cloud Manager
SQL执行:连接层:-->缓存、解析器-->优化器-->执行引擎-->存储引擎-->物理文件
崖山数据库系统亮点特性:TPC-C性能、TPC-H性能、HTAP性能、有界计算、高可用、高可靠、易用性
TPC-C简介
TPC-C是TPC组织定义的面向在线事务处理(OLTP)的测试基准,通过流量指标(tpmC)来衡量,其值越高说明系统的联机事务处理能力越强。
硬件配置:2288服务器(104核,376G内存,2T nvme SSD)
软件版本:OS(CentOS 7),DB(YashanDB 22.2、Oracle 19C Inmemory、MySQL 8.0)
测试模型:TPC-C 1000仓,256并发,运行1小时
测试结果性能对比
YashanDB tpmC性能是Oracle的1.2倍,是MySQL的2.5倍
TPC-H简介
TPC-H是TPC组织定义的面向数据库决策支持能力(OLAP)的测试基准,通过模拟数据库中与业务相关的复杂查询考察数据库的综合处理能力,获取数据库操作的响应时间。TPC-H定义了22条复杂查询语句,查询语句在数据库中的响应时间越短说明系统的决策支持能力越强。
硬件配置:2288虚拟机(16核,160G内存,3.4T SSD)
软件版本:OS(CentOS 7),DB(YashanDB 22.2、Oracle 19C Inmemory 、Greenplum 6.17.1)
测试模型:TPC-H 100G数据
测试结果性能对比
YashanDB总耗时60s,Oracle总耗时112s,Greenplum总耗时883s ,YashanDB TPC-H性能是Oracle的1.86倍,是Greenplum的14.72倍。
HTAP性能测试简介
HTAP(Hybrid transaction /analytical processing)是指事务、分析业务都有的混合负载场景。一般使用SSB ( Star Schema Benchmark)测试模型,运行SSB查询语句,查询语句在数据库中的响应时间越短说明HTAP能力越强。
硬件配置:2288虚拟机(32核,80G内存,600G SSD)
软件版本:OS(CentOS 7),DB(YashanDB 22.2、MySQL 8.0)
测试模型:SSB 事实表1.2亿条记录
测试结果性能对比
在更新负载相当时,YashanDB分析查询性能是MySQL的80~100倍
有界计算简介
有界计算(BQP, Bounded Query Processing)是基于深圳计算科学研究院原创理论的大数据查询分析方法,实现与数据规模无关的查询响应能力,真正做到大数据变小。选用基于AIRCA(美国航空运输局)从1996年至今数据集的分析查询语句来做验证。
硬件配置:2288虚拟机(24核,88G内存,2T HDD)
软件版本:OS(CentOS 7),DB(YashanDB 22.2、MySQL 5.7)
测试模型:AIRCA(美国航空运输局)数据模型
测试结果性能对比
YashanDB基于有界计算引擎,数据量从10G增长到1T,有界查询响应时间增长不超过50%;分析查询性能是MySQL的百倍至万倍,数据量越大优势越明显。
高可用-主备模式
一主多备高可用
技术原理:高可用支持最高性能、最大可用、最大保护三种数据保护模式。
关键技术点:物理日志并行回放、基于Raft的自动切换、读写分离
部署:提供一主多备、级联备部署方式。同时可以配合集群方式进行部署。
数据高可靠:通过多份副本,同时可以提高数据高可靠。
高可靠-数据库备份
备份场景:整库级别归档
支持全量备份和增量备份,提供多种算法的压缩和加密能力,主机和备机都可执行备份
多线程备份恢复,最大化发挥磁盘IO性能
支持基于时间点的恢复(PITR),可以通过备份集将数据库恢复到任意时间点
支持远程备份和恢复,备份集可异地存放,可靠性更高。
高可靠-数据库闪回(Flashback)
闪回
场景:误删、业务仅需个别数据恢复
支持数据的闪回查询:可以快速查询指定时间点的历史数据。在紧急情况下利用闪回查询的数据,可以快速进行历史数据的分析或恢复。
支持闪回数据:可以将当前数据闪回至历史时间点。当用户错误的修改了数据之后,可以通过闪回数据能力恢复历史数据并持久化,并且可以来回穿梭至各个时间点,具体很高的灵活度。
支持回收站闪回:当用户drop/truncate表之后,会自动移动至回收站。在清理回收站之前,该表的数据快照都会保存至回收站,若用户需要恢复这次删表操作,即可从回收站还原该表。
高可靠-故障诊断与修复
故障诊断
故障发现:当存储数据由于硬件故障等原因发生错误时,数据库会及时上报并且触发健康检查机制,扫描出所有损坏数据。
健康检查:除响应式触发健康检查外,还提供手动执行健康检查的能力,DBA可以定期监控数据库健康状态,及时发现并上报检测到的故障。
自动修复
故障处理-修复:在主备部署模式下,损坏的数据页面可以从备机拿取正确的页面进行替换修复,故障对用户透明,不会导致业务中断。
易用性-AWR报告
场景:需要对数据库工作状态进行分析,包括问题和瓶颈点
AWR(Automatic Workload Repository), AWR报告通过比对两个时间点的历史数据,分析出数据库当前的工作状态,包括问题和瓶颈,极大方便了数据库异常的事后分析。基于AWR可以开展一系列数据库运维自动化的动作。
AWR报告中利用到的数据包括:等待事件、指标数据、空间使用统计、SQL状态信等,存储在SYSAUX表空间。崖山数据库系统同时提供机制,管理快照数据的生成、清理、配置。
易用性-数据库审计
场景:需要对数据库的访问进行记录,以追踪问题,从而提高数据库安全性
原理:统一审计主要利用策略和条件在数据库内部有选择地执行有效的审计,策略包括基于语句类型的审计和基于数据库对象动作的审计。审计记录支持记日志和记表两种形式。为提高数据库性能,审计记录缺省为异步写入。同时支持同步写入模式。
易用性-PL/SQL调试器
PL/SQL调试器
PL/SQL语言调试器是一个提升用户使用PL/SQL语言体验的利器。目前有支持存储过程的主流数据库,都具备调试器能力。调试器从组件上可以分为界面(与工具配合)、协议、Client端和Server端进行配合完成的一个特性,使用数据库的人员是可以
直接感知的。从功能特性上可以启停Debugger、断点、单步、变量查看、堆栈信息查看等能力。
Yashan亮点:数据库闪回 故障自动切换 有界计算
崖山选型维度
可控性 100%自研,全部技术可控。无外资,核心团队稳定,管理可控
高性能 在常规交易模型,复杂SQL处理上,性能超过Oracle,比其他数据库高一个档次。
安全性 保密性,完整性,完全满足等保等各类行业监管要求
可靠性 极高的稳定性,容错性,多活,自动故障恢复能力保证系统的可靠性
易用性 丰富的运维视图保证可检测性,一站式管理平台减低管理难度,Oracle兼容降低学习成本
功能性 Oracle兼容性,满足从Oracle平滑迁移。高级功能:存储过程,自定义类型,函数,高级包
综合评 估性能高,安全,稳定,可靠,可控,成本低,YashanDB拥有较高的性价比。
数据库该如何选型?从信创要求、使用成本、迁移改造、性能以及服务能力几个维度评估,YashanDB拥有较高性价比
崖山数据库兼容能力如何?Oracle兼容:全方位兼容
崖山数据库如何解决迁移问题?一站式迁移工具(YDS):一键实现数据库迁移,帮助实现同步的全生命周期管理。
崖山数据库常用的运维管理如何开展?
智能化运维(YCM):具备一站式服务体系,丰富能力生态、数据库性能监控、多主机日志聚合能力、容器化管理插件功能。
崖山数据库系统解决方案
技术方案-信创去O
技术方案-云上数据底座
行业方案-政务数字化
行业方案-办公OA
行业方案-智慧能源
行业方案-智能制造
行业方案-智能营销
YashanDB的分布式是Shared Nothing的MPP架构,一个分布式SQL的执行,会分解为多个阶段(stage),同时下发到多个数据节点上,通过每个数据节点上的执行引擎,协同并行执行。这大大增加了可同时处理的任务数和数据量。
复杂查询之分布式执行
复杂查询之向量化执行
体系结构
YashanDB是单进程多线程架构,默认端口是1688。
内存管理 :包括共享内存区域 和私有内存区域。
线程管理 :包括工作线程 和后台。
物理存储 :可以从操作系统看到的控制文件,数据文件,归档日志文件和slice文件等物理文件 。
共享内存区域
共享内存区域包括内存共享池(SHARE POOL)、数据缓存 (DATABUFFER)和有界加速缓存等部分
内存共享池 (SHARE POOL) 的各部分描述如下:
SQL缓存(SQL POOL) : SQL解析树和执行计划保存在这里,用于同一SQL再次被调用时避免硬解析,节省开销。
日志缓存 (REDO BUFFER) : Redo日志的缓存区日志并发写入缓存区,批量刷盘。
PL/SQL池: 存储过程、包、触发器等对象第一次执行时加载到这里,以提高后续再次执行的效率。
数据字典缓存 (DICTIONARY CACHE POOL): 数据字典是极为频繁使用的信息,缓存于此可以极大提升访问效率。
大对象池 (LARGE POOL) : 分配大对象的区域,例如超大SOL文木。
数据缓存(DATA BUFFER) 用于当磁盘上的一个Block被访问时,将其事先装载到此区域,且当此区域空间快满时,通过一定算法淘汰不经常使用的Block。
有界加速缓存是基于有界理论的访问约束对象缓存。
私有内存区域
私有内存区域是各工作线程运行时分配释放内存的区域与共享内存区域不同,此区域的内存一旦分配给特定1作线程后就是私有的,释放后才能再次分配给其他线程。
各部分描述如下:
SQL执行区: SQL执行期使用的堆栈空间。
虚拟内存: 即Materialize zone,虚拟内存主要为需要物化数据的SQL算子使用,且在物化对象过大时将磁盘作为虚拟内存使用。
工作线程(worker)
工作线程由数据库自身创建,用于处理连接数据库实例的用户所提出的请求
作线程(worker)主要完成以下任务
解析并执行用户提交的 SQL 语句PL/SQL 程序。
在数据缓存中搜索工作线程所要访问的据,如果数据不在数据缓存中,则需要硬盘数据文件中读取所需的数据,再将们复制到数据缓存中。
将用户改变数据库的操作写入日志缓存。
将查询或执行后的结果数据返回给工作程。
后台线程 (主要的线程)
写日志
写日志线程负责把日志缓存记录顺序写入Redo日志文件
写数据
写数据进程负责把数据缓存中的数据写到数据文件
Checkpoint
Checkpoint检查点是当负责把已经改变的数据缓存中的数据写到数据文件上时产生
所有到检查点为止的变化的数据都已经写入数据文件中在实例恢复时检查点之前的重做日志记录就不再需要,实例的恢复速度就加快了。
数据转换线程
LSC表中数据分为两部分: 可变和稳态部分。当热数据经过一段时间达到稳态时候,会进行冷热数据转换.
实例和数据库的关系:
实例: YashanDB实例由YashanDB线程及其管理内存结构组成。YashanDB实例用于控制和管理数据库,数据库提供服务的媒介。
数据库:数据库是数据载体,是参数文件、控制文件、Redo日志文件、数据文件、归档日志文件等物理文件的集合。
实例和数据库的关系:数据库启动时,实例会加载、打开数据库,并提供数据服务。一个实例最多加载一个数据库。
YashanDB 实例管理
YashanDB实例从关闭启动到正常使用,要经过NOMOUNT、MOUNT和OPEN三种状态。
NOMOUNT: 启动数据库实例,此时读取参数文件,启动进程,分配内存,可查看实例相关视图,但是不加载数据库。这个状态下可以重建控制文件,比如控制文件损坏。
MOUNT: 启动数据库实例,读取控制文件,加载数据库,可查看文件级别视图,但是数据库处于关闭状态,这个状态下可以恢复数据库。
OPEN: 启动数据库实例,初始化数据库,启动所有线程,加载并打开数据库,这个状态下可以读写数据库。
yasdb nomount &
数据库实例启动到NOMOUNT状态后,查看V$INSTANCE视图的STATUS状态值为STARTED,而不是NOMOUNT。
方式一: 在OS命令行直接启动数据库到MOUNT状态
$ yasdb mount &
方式二: 从NOMOUNT状态切换到MOUNT状态
SQL> ALTER DATABASE MOUNT;
数据库实例启动到MOUNT状态后,查看V$INSTANCE视图的STATUS状态值为MOUNTED。
yasdb命令只能在关闭状态运行。
启动库:
方式一: 在OS命令行直接启动数据库到OPEN状态
$ yasdb open &
方式二: 从NOMOUNT状态或者MOUNT状态切换到OPEN状态
SQL> ALTER DATABASE OPEN;
数据库实例启动到OPEN状态后,查看V$INSTANCE视图的STATUS状态值为OPEN。
关闭库:
SHUTDOWN NORMAL: 等待所有事务正常结束后关闭,生产环境一般不推荐这种方式来关闭数据库。默认关闭数据库将采用NORMAL模式。
SHUTDOWN IMMEDIATE: 立即中断当前用户的连接,同时强行终止用户的当前执行中的事务,将未完成的事务回退,并关闭数据库。采用默认关闭方式一般需要主动断开所有连接,推荐使用这种方式关闭数据库。
SHUTDOWN ABORT:强制中断所有数据库操作并关闭数据库,不会等待事务回滚完成,在启动数据库时需要进行实例恢复。生产环境一般不推荐这种方式来关闭数据库。
数据库打开模式:
在MOUNT状态下,准备OPEN打开时,可以根据不同场景配置数据库的打开模式为READWRITE、RESETLOGS或者READONLY。
如果数据库运行在OPEN状态,不能切换到其他模式。
可通过ALTER DATABASE命令配置数据库打开模式
SQL> ALTER DATABASE OPEN [READWRITE|RESETLOGS|READONLY]
READWRITE:数据库完整事务的读写操作,数据库可以对外提供服务。默认的模式,推荐使用的模式。适用于生产环境。
RESETLOGS:数据库需要重新设置日志号。当数据库发生故障时,需要进行不完全恢复操作。
READONLY:数据库只能进行读操作 。用于高可用的主备部署环境,备库以READONLY模式打开。
参数初始化配置
方式一: 修改参数文件
参数的初始化可通过直接编辑$(YASDB DATA/config/yasdb.ini的方式操作。
方式二:
语法
SQL> ALTER SYSTEM|SESSION SET PARAMETER parameter_name = parameter value [SCOPE = spfile|memory|both];
ALTER SYSTEM和ALTER SESSION分别用于修改系统级别和会话级别的配置参数,而ALTER SESSION修改方式默认只写到内存,仅对当前会话生效。
parameter name和parameter value分别为配置参数名称和值。
SCOPE用于设定对配置参数修改后的生效方式,这部分可选:
spfile: 将参数值写入参数文件,需重启才能生效。
memory: 将参数值写入内存,立即生效,但重启后失效。
both: 将参数值同时写入内存和参数文件,立即生效,重启后也生效。
日志级别
◼告警日志文件作用
当数据库发生死锁, 表空间满, 网络断连, 坏块等错误时, 运维人员应该及时知道这些信息并作出处理。通过数据库在告警日志中发出告警, 运维人员定时检查告警日志, 可以防患于未然, 时刻了解和维护系统的运行状况。
◼告警日志文件位置
$YASDB_DATA/log/alert/alert.log
常见告警事件:
space full 当表空间已满,且申请不到页面的时候,记录告警日志。
session exhausted 当连接数满的时候,上报连接数满告警。当可用连接数达到30%及以上,消除告警。
allocator exhausted 当内存使用量大于80%时告警,低于70%时取消告警。
databasels abnormal 当数据库出现故障时,数据库被置为abnormal状态。
dead lock 当以下3种死锁发生时候,数据库会选择死锁环中的一个session返回error,记录告警日志:
事务死锁,事务修改相同的数据产生并发等待,可能导致死锁。
xslot死锁,页面内事务槽位 (xslot)资源不足时,会产生事务等待,可能导致死锁。
表锁死锁,事务之间对表加共享锁与排他锁时,会产生事务等待,可能导致死锁。
物理文件
控制文件: 数据库初始配置信息的持久化文件
Redo日志文件: 记录的是新数据的备份
数据文件: 用于存储数据库数据
参数文件:定义了数据库实例的参数配置信息
归档文件: 归档日志是Redo日志完成归档后形成的日志
密码文件: 存放着数据库管理用户sys的密码
逻辑结构:
表空间:数据库划分的逻辑单元,包含若干数据库对象,例如表 索引等。
数据段:每个数据库对象至少包含一个数据段。空间上由若干数据区组成。包含表段、索引段、回滚段等不同类型的段。
数据区:
由一组物理上连续的数据块组成,可以提高空间管理的效率。
数据块:
数据存储的最小逻辑单元,默认的大小8K。包含表、索引、UNDO等不同类型的块。
表空间
SYSTEM表空间:主要包合数据字典;数据库管理信息的表和视图,已编译的存储对象,如触发器、过程和包。
SYSAUX表空间:作为SYSTEM表空间的辅助表空间,YashanDB AWR快照信息的默认表空间。
USERS表空间:默认的用户表空间,用于存储永久用户对象和私有信息。
TEMP表空间:主要用于临时表的段分配,存储临时表数据信息。
UNDO表空间:用于YashanDB创建和管理回滚(撤销数据库更改)信息。
SWAP表空间:用于存储临时数据排序,提高排序期间空间管理操作的效率。
多个表空间的优点:
将用户数据与数据字典数据分开,以减少I/0争用。
将一个应用程序的数据与另一个应用程序的数据分开,以防止在表空间必须脱机时多个应用程序受到影响。
将不同表空间的数据文件存储在不同的磁盘驱动器上,以减少I/O争用。
使单个表空间脱机,而其他表空间可以继续保持联机,无需全部表空间脱机或关闭数据库,从而提供更好的可用性。
备份单个表空间。
删除表空间注意事项:
不能删除一个已被某个用户指定的DEFAULT TABLESPACE,必须先通过ALTER USER语句将其变更。
不能删除一个已创建了任何数据库对象的表空间,除非指定了INCLUDING CONTENTS语句。
如果表空间中存在被其他表空间对象定义的外键约束,那么即使指定了INCLUDING CONTENTS语句,该表空间也不能被删除,除非同时指定了CASCADE CONSTRAINT。
不能删除SYSTEM/SYSAUX/UNDO/SWAPTEMPORARY/DEFAULT等内置表空间。
删除表空间选项:
删除表空间示例
SQL> DROP TABLESPACE yashan1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
INCLUDING CONTENTS
该语句用于指定将表空间及其包含的所有对象都删除
AND|KEEP DATAFILES
指定在删除表空间时,其对应的数据文件是被删除,还是被保留,缺省为保留。
CASCADE CONSTRAINT
当存在其他表空间里的对象定义了到本表空间里对象的外键约束时,先将这些外键约束项删除,再删除本表空间。
表空间相关视图:
DBA TABLESPACES 显示所有表空间的信息
DBA DATA FILES 显示所有数据文件信息
V$TABLESPACE 显示所有表空间的汇总信息
V$DATAFILE 显示数据文件汇总信息
密码文件
密码文件作用:
密码文件以加密的方式存放着系统用户的密码(比如sys用户)。
密码文件位置:
密码文件名为yasdb.pwd,为文本文件,不可直接进行编辑,需要yaspwd命令修改。
密码文件路径受PASSWORD_FILE参数控制。
使用yaspwd生成密码文件:
$ yaspwd file=yasdb.pwd password=Yashan_123456
提示:yasdb.pwd文件不存在,才能生成新的密码文件。
参数文件:
参数文件作用:记录数据库的配置信息。实例在启动阶段读取参数文件 ,并根据参数文件中的参数设置来配置数据库。
参数文件内容:参数文件定义了数据库实例的内存组件大小、监听端口、字符集、数据块大小等参数的配置信息。
参数文件位置:参数文件名为yasdb.ini,为文本文件,可直接进行编辑,存放在$YASDB_DATA/config路径下。
修改参数配置
参数文件虽然可以直接编辑,但是推荐使用SQL命令修改参数。
如,修改data_buffer_size参数,可以使用如下命令修改后再重启数据库才能生效。
SQL> ALTER SYSTEM SET data_buffer_size=2G SCOPE=spfile;
控制文件作用以及重要性:
一旦控制文件损坏,数据库将会宕机。YashanDB默认会创建3份冗余控制文件,提高安全性。
它包含有关打开数据库所需的数据文件、在线重做日志文件等的信息。MOUNT数据库时,数据库会打开控制文件并读取里面内容。
二进制文件,不可以编辑。
控制文件内容:
数据库名称
数据文件名字及位置
Redo日志文件名字及位置
表空间信息
归档日志信息
Redo日志作用:
Redo日志记录的数据库的所有历史变更。
在事务提交前,只要将Redo日志持久化即可,不需要将数据持久化。
当系统崩溃时,虽然数据没有持久化到数据文件,但是Redo日志已经持久化。
系统可以根据Redo日志的内容,将所有数据恢复到最新的状态。
Redo日志大小:添加日志成员的时候指定size,就是Redo的大小。
Redo日志块大小:在添加日志成员的时候指定BLOCKSIZE,就是Redo日志的块大小,如果不指定,默认为4096byte。
Redo日志的状态:日志文件有四种状态,分别为CURRENT、ACTIVE、INACTIVE与NEW。CURRENT为正在使用的,ACTIVE为未归档未可复用,INACTIVE为已归档可复用,NEW为新增未使用过的日志。
归档日志作用:
归档日志是Redo日志完成归档后形成的备份文件,也为二进制文件。归档日志可用于数据恢复,也可以在主备库中的备库上应用,还原主库上的数据。
修改归档路径:
归档路径只允许静态修改,需要写到yasdb.ini参数文件。
确保路径存在,且操作系统yashan用户有读写的权限。
SQL> ALTER SYSTEM SET archive_local_dest='/home/ yashan/arch' scope=spfile
数据文件分类
系统数据文件:系统数据文件就是SYSTEM和SYSAUX表空间的数据文件,主要存放数据库系统内部生成的数据。
UNDO数据文件:UNDO数据文件主要存放回滚段的数据。
TEMP数据文件:TEMP数据文件就是TEMP表空间里的临时数据。
用户数据文件:主要包括内置表空间USERS的数据文件以及用户自己创建的数据表空间的文件,存放实际的生产数据。
数据库对象
数据库对象是数据库里面用来存储和指向数据的各种概念和结构的总称。
数据库支持的对象包括:
表:表是一个逻辑概念,是数据库组织管理数据的基本单位。
索引:索引是建立在表上的逻辑对象,索引可以提高表数据的访问查询效率。
视图:视图是一种虚定义的逻辑对象,结构和数据是建立在对表的查询基础之上的。
序列:序列可以产生一组等间隔的数值,主要用于表的主键的自增。
同义词:数据对象的别名,与其代表的数据对象是一种映射关系。
存储过程:一组为了完成特定功能的SQL/PLSQL语句集。
触发器:一种特殊类型的存储过程,通过指定的事件触发执行。
修改索引
VISIBLE/INVISIBLE 语句用于设置索引对优化器是否可见。
在执行SQL查询时优化器是否会考虑使用该索引,当某个场景索引不能带来性能的提升,可以让该索引INVISIBLE,优化器就不会选择该索引。
让索引对优化器不可见
SQL> ALTER INDEX idx_area_06_info_1 INVISIBLE;
让索引对优化器可见
SQL> ALTER INDEX idx_area_06_info_1 VISIBLE;
UNUSABLE语句用于设置索引为不可用状态,之后对表操作不会触发该索引更新,因此如需要恢复该索引可用,则必须进行索引重建(REBUILD)。
SQL> ALTER INDEX idx_area_06_info_1 UNUSABLE;
视图
视图的作用:
可以基于一个查询建立视图,此后查询此视图即可,简化了一些复杂查询。
视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对表中的其它列起到安全和保密的作用,可以限制数据访问。
YashanDB系统视图:
YashanDB提供一系列系统视图,向用户展现数据库的各项静态数据,及运行过程中的各项实时动态数据,具体包括动态视图和静态视图:
动态性能视图:动态视图为系统提供的以V$的视图,用于实时展现正处于数据库运行中的各项数据,尤其与性能相关数据,用户通过查询这些视图,对系统进行管理和优化。
数据字典(静态视图):根据数据库的结构定义,展现整个数据库的全局视图。包括DBA视图,ALL视图和USER视图。三个视图的关系:
DBA_TABLES >= ALL_TABLES >= USER_TABLES
DBA_TABLES:DBA权限拥有者可以访问的所有表。
ALL_TABLES:当前用户所拥有的或者被授权可以访问的所有表。
USER_TABLES:当前用户所拥有的所有表。
所以当某一用户拥有DBA权限时时,DBA_TABLES 与 ALL_TABLES 是等价的。
动态性能视图:
动态视图为系统提供的以V$开头,用于实时展现正处于数据库运行中的各项数据,尤其与性能相关数据,用户通过查询这些视图,对系统进行管理和优化。
动态视图的特点:
实时变化。
将系统内部的信息以视图的方式呈现。
不依赖于用户或者系统内部表。
在启动的阶段自动加载。
NOMOUNT/MOUNT/OPEN阶段所加载的动态视图都不一样。
OPEN阶段可以通过查看V$DYNAMIC_VIEWS视图来查询存在的动态视图名称。
ODBC驱动:
ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据库,这些API利用SQL来完成其大部分任务。标准的ODBC接口定义了如下内容:
ODBC函数调用库,应用程序通过它可以连接到数据源,执行SQL命令并检索结果。
基于SQL-99规范的SQL语法。
一套标准的错误码。
一套连接并登录到数据源的标准方式。
对数据类型的标准描述。
JDBC API使用路线:
DriverManager(驱动注册--> Connection(建立连接)--> Statement(SQL发送方式) --> Result(返回结果)
SQL发送方式:
静态SQL路线(没有动态值语句):Statement
预编译SQL路线(有动态值语句):Preparedstatement
执行标准存储过程SQL路线 Callablestatement
注:只有查询会有resultset,其他的返回都是int类型。
崖山 YCA 课后习题
第一章
n 1. 以下属于YashanDB原创理论的是(A)
A. 有界计算理论
B. 关系数据库理论
C. 分布式计算理论
D. 高并发理论
n 2. 以下不属于YashanDB产品特点的是(A)
A. 免费开源
B. 100%自研
C. 超越融合
D. 一站式应用迁移
n 3. 以下关于有界计算的说法错误的是(C)
A. 有界计算是YashanDB原创理论
B. 有界计算实现与数据规模无关的查询响应能力,真正做到大数据变小
C. 有界计算主要解决数据快速恢复的问题
D. 有界计算是一种大数据查询分析方法
第二章
◼1. 以下不属于启动YashanDB命令的是(B)
A. yasdb open
B. yasdb start
C. yasdb nomount
D. yasdb mount
◼2. 以下关于DBeaver连接配置YashanDB,哪种说法是错误的(C)
A. DBeaver可以配置连接YashanDB
B. DBeaver是一个通用的数据库管理工具
C. YashanDB只能通过SYS用户才能连接到DBeaver
D. JDBC URL格式为:jdbc:yasdb://IP:PORT/yasdb
第三章
n 1. 以下关于SQL语言说法错误的是(B)
A. SQL是结构化查询语言
B. SQL是一种只支持查询的语言
C. SQL是一种是用于访问和管理数据库的标准计算机语言
D. SQL语言集数据定义、操纵、控制功能于一体。
n 2. 以下SQL分类不属于DDL语句的是(B)
A. ALTER
B. SELECT
C. CREATE
D. DROP
n 3. 以下哪个SQL关键字用于排序(C)
A. FROM
B. WHERE
C. ORDER BY
D. SELECT
第四章
◼ 1. 以下关于YashanDB的DATA_BUFFER_SIZE参数作用描述正确的是。(A)
A. 数据缓存区的大小
B. 数据块的大小
C. 共享缓存区的内存大小
D. 全局执行内存区大小
◼ 2. YashanDB共享内存区域只包括内存共享池、 数据缓存两部分。(B)
A. 正确
B. 错误
第五章
◼实例和数据库的关系
⚫实例:YashanDB实例由YashanDB线程及其管理内存结构组成。YashanDB实例用于控制和管理数据库, 数据库提供服务的媒介。
⚫数据库:数据库是数据载体, 是参数文件、 控制文件、 Redo日志文件、 数据文件、 归档日志文件等物理文件的集合。
⚫实例和数据库的关系:数据库启动时, 实例会加载、 打开数据库,并提供数据服务。一个实例最多加载一个数据库。
◼ 1. 以下关于YashanDB实例和数据库的关系说法错误的是(D)
A. YashanDB实例由YashanDB线程及其管理内存结构组成
B. YashanDB实例用于控制和管理数据库
C. 数据库启动的时候,实例会加载数据库
D. 一个实例可以加载多个数据库
◼ 2. 以下关于YashanDB实例启动说法错误的是(B)
A. NOMOUNT状态会读取参数文件
B. NOMOUNT状态会加载数据库
C. MOUNT状态会读取控制文件
D. OPEN状态会打开数据库
◼ 3. 以下属于推荐的关闭YashanDB实例命令的是(A)
A. SHUTDOWN IMMEDIATE
B. SHUTDOWN NORMAL
C. SHUTDOWN ABORT
D. SHUTDOWN
第六章
◼删除表空间
DROP TABLESPACE用于删除一个表空间。
◼注意:
⚫不能删除一个已被某个用户指定的DEFAULT TABLESPACE, 必须先通过ALTER USER语句将其变更。
⚫不能删除一个已创建了任何数据库对象的表空间, 除非指定了INCLUDING CONTENTS语句。
⚫如果表空间中存在被其他表空间对象定义的外键约束, 那么即使指定了INCLUDING CONTENTS语句, 该表空间也
不能被删除, 除非同时指定了CASCADE CONSTRAINT。
⚫不能删除SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT等内置表空间。
◼ 删除表空间示例
SQL> DROP TABLESPACE yashan1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
◼ INCLUDING CONTENTS
该语句用于指定将表空间及其包含的所有对象都删除。
◼ AND|KEEP DATAFILES
指定在删除表空间时,其对应的数据文件是被删除,还是被保留,缺省为保留。
◼ CASCADE CONSTRAINT
当存在其他表空间里的对象定义了到本表空间里对象的外键约束时, 先将这些外键约束项删除,再删除本表空间。
◼表空间相关视图
DBA_TABLESPACES 显示所有表空间的信息。
DBA_DATA_FILES 显示所有数据文件信息。
V$TABLESPACE 显示所有表空间的汇总信息。
V$DATAFILE 显示数据文件汇总信息。
◼1. 以下不属于YashanDB内置表空间的是(B)
A. SYSTEM表空间
B. SYSAUX表空间
C. Redo表空间
D. UNDO表空间
◼2. 以下不属于表空间维护操作的是(D)
A. 增加数据文件
B. 删除数据文件
C. 空闲空间回收
D. 增加Redo日志文件
第七章
◼密码文件作用
⚫密码文件以加密的方式存放着系统用户的密码(比如sys用户) 。
◼密码文件位置
⚫密码文件名为yasdb.pwd, 为文本文件, 不可直接进行编辑, 需要yaspwd命令修改。
⚫密码文件路径受PASSWORD_FILE参数控制。
◼ 参数文件位置
参数文件名为yasdb.ini,为文本文件可直接进行编辑存放在$YASDB_DATA/config路径下。
◼ 控制文件作用以及重要性
⚫ 一旦控制文件损坏, 数据库将会宕机。YashanDB默认会创建3份冗余控制文件, 提高安全性。
⚫ 它包含有关打开数据库所需的数据文件、 在线重做日志文件等的信息。MOUNT数据库时,数据库会打开控制文件,并读取里面内容。
⚫二进制文件, 不可以编辑。
◼ 控制文件内容
⚫ 数据库名称
⚫ 数据文件名字及位置
⚫ Redo日志文件名字及位置
⚫ 表空间信息
⚫ 归档日志信息
◼ Redo日志文件的查看
可以通过V$LOGFILE查看Redo日志的信息,包括它的ID、路径、块大小、 已用大小、序列号与状态等信息。
◼ 备注:
⚫ Redo日志大小:添加日志成员的时候指定size, 就是Redo的大小。
⚫ Redo日志块大小:在添加日志成员的时候指定BLOCKSIZE, 就是Redo日志的块大小, 如果不指定, 默认为4096 byte。
⚫ Redo日志的状态:日志文件有四种状态,分别为CURRENT、 ACTIVE、 INACTIVE与NEW。CURRENT为正在使用的,ACTIVE为未归档未可复用, INACTIVE为已归档可复用, NEW为新增未使用过的日志。
◼数据文件的大小
数据块默认大小为8k,单个普通数据文件最大为512G。
数据块为16k和32k的时候,单个数据文件的最大相应成倍增大。
◼数据文件的状态
数据文件的状态有ONLINE和OFFLINE, OFFLINE下的数据文件不能被访问使用。
◼数据文件的自动扩展性
自动扩展性有ON和OFF两种模式,ON表示允许数据文件空间自动扩展, OFF表示不允许自动扩展。
◼1. 以下关于YashanDB密码文件说法错误的是(C)
A. 密码文件路径受PASSWORD_FILE参数控制
B. 密码文件存放着数据库管理用户sys的密码
C. 密码文件可以直接进行编辑
D. sys用户登录数据库校验过程使用到密码文件
◼2. 可以通过编辑控制文件修改里面的配置信息。(B)
A. 正确
B. 不正确
第八章
◼1. 以下不属于YashanDB数据库对象的是(A)
A. 数据目录
B. 表
C. 索引
D. 视图
◼2. 设置索引INVISIBLE之后, 必须通过rebuild重建索引, 才能使索引生效。(B)
A. 正确
B. 不正确
解析:UNUSABLE语句用于设置索引为不可用状态,之后对表操作不会触发该索引更新,因此如需要恢复该索引可用,则必须进行索引重建(REBUILD)。
第九章
◼ 1. 以下关于V$INSTANCE视图的说法正确的是()
A. 只有sys用户才能查询v$instance视图
B. status结果为OPEN说明数据库已经启动
C. 实例关闭状态也可以查询v$instance视图
D. status结果为空说明数据库已经启动
◼ 2. 以下关于视图说法错误的是()
A. 视图简化了一些复杂查询
B. 删除视图, 会把基表数据也同时删除
C. 视图本质上就是一条SELECT语句
D. 视图可以对基表起到限制数据访问的作用
第十章
YashanDB支持JDBC、 C、 Python、 ADO.NET、 ODBC等驱动。
ODBC(Open Database Connectivity, 开放数据库互连) 提供了一种标准的API(应用程序编程接口) 方法来访问数据
库, 这些API利用SQL来完成其大部分任务。标准的ODBC接口定义了如下内容:
⚫ODBC函数调用库, 应用程序通过它可以连接到数据源, 执行SQL命令并检索结果。
⚫基于SQL-99规范的SQL语法。
⚫一套标准的错误码。
⚫一套连接并登录到数据源的标准方式。
⚫对数据类型的标准描述。
◼1. 使用Java连接YashanDB, 需要用到下面哪个驱动(C)
A. C驱动
B. Python驱动
C. JDBC驱动
D. ADO.NET驱动
◼2. 以下关于YashanDB JDBC驱动连接格式为:jdbc:yasdb://host:port/database_name 以下说法错误的是(A)
A. host参数只能填IP,不能填域名
B. host参数不填时表示连接localhost主机
C. database_name参数是数据库名称
D. port参数是数据库服务端口
=========================================================================
一、考试时间:
YashanDB考试系统将于年月日19:00-20:30期间开放,请学员务必在当天20:30前准时进入系统开始考试。
二、考试方式:
学员使用配备摄像头的电脑登录YashanDB考试系统通过设备调试和身份核验后进行线上考试
三、考试内容:
本期YCA认证考试试卷总分为100分,60分即为通过认证。
(1)单选题30道,每题2分,共计60分
(2)多选题6道,每题2分,共计12分
(请注意:多选题答案全部正确才得分,部分正确不得分)
(3)判断题14道,每题2分,共计28分
为保障您顺利完成考试,请认真阅读附件1、附件2、附件3相关内容,提前准备好带摄像头的电脑、身份证照片等材料,了解设备调试、身份核验、考试流程等相关内容
官方文档:https://doc.yashandb.com/yashandb/23.1/zh/%E4%BA%A7%E5%93%81%E6%8F%8F%E8%BF%B0/%E4%BA%A7%E5%93%81%E7%AE%80%E4%BB%8B.html
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
分享几个数据库备份脚本
一文搞懂 Oracle 统计信息
我的 Oracle ACE 心路历程
MOP 系列|MOP 三种主流数据库索引简介
Oracle 主流版本不同架构下的静默安装指南
关机重启导致 ASM 磁盘丢失数据库无法启动
Oracle SQL 性能分析(SPA)原理与实战演练
Oracle 11g 升级到 19c 需要关注的几个问题
Windows 10 环境下 MySQL 8.0.33 安装指南
SQL 大全(四)|数据库迁移升级时常用 SQL 语句
OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)
Oracle 大数据量导出工具——sqluldr2 的安装与使用
从国产数据库调研报告中你都能了解哪些信息及我的总结建议
使用数据泵利用 rowid 分片导出导入 lob 大表及最佳实践
在归档模式下直接 rm dbf 数据文件并重启数据库还有救吗?
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————