Yashan DB 实例管理

一、实例启停机制

1. 启动阶段

• NOMOUNT:启动实例,但不加载数据库。此状态下可以重建控制文件,例如控制文件损坏。启动到NOMOUNT状态的命令为`yasboot cluster start -c yashandb -m nomount`,此时查询`V$INSTANCE`视图的`STATUS`状态值为`STARTED`。

• MOUNT:实例已启动,数据库完成加载,但数据库仍处于关闭状态。此状态下可以恢复数据库。启动到MOUNT状态有两种方式,一是通过命令`yasboot cluster start -c yashandb -m mount`,二是通过SQL命令`ALTER DATABASE MOUNT`(前提条件是数据库实例已启动到NOMOUNT状态),此时查询`V$INSTANCE`视图的`STATUS`状态值为`MOUNTED`。

• OPEN:实例已启动,数据库已处于打开状态。此状态下可以读写数据库。启动到OPEN状态也有两种方式,一是通过命令`yasboot cluster start -c yashandb -m open`,二是通过SQL命令`ALTER DATABASE OPEN`(前提条件是数据库实例已启动到NOMOUNT/MOUNT状态),此时查询`V$INSTANCE`视图的`STATUS`状态值为`OPEN`。

• 打开模式:在启动数据库到OPEN状态时,可以根据不同场景配置数据库的打开模式为`READWRITE`(数据库完整事务的读写操作,数据库可以对外提供服务,适用于生产环境,是默认的模式,推荐使用的模式)、`RESETLOGS`(数据库需要重新设置日志号,数据库发生故障时,可以使用RESETLOGS模式打开数据库,此时可以通过重新设置日志号,对数据库进行不完全恢复)、`UPGRADE`(用于数据库升级)。

2. 关闭实例

• 方式一:通过命令`yasboot cluster stop -c yashandb`。

• 方式二:通过SQL命令`SHUTDOWN`,具体有以下几种:

• `SHUTDOWN NORMAL`:等待所有事务正常结束后关闭,是默认的关闭方式。

• `SHUTDOWN IMMEDIATE`:立即中断当前用户的连接,同时强行终止用户的当前执行中的事务,将未完成的事务回退,并关闭数据库,一般推荐使用这种方式关闭数据库。

• `SHUTDOWN ABORT`:强制中断所有数据库操作并关闭数据库,不会等待事务回滚完成,在启动数据库时需要进行实例恢复,生产环境一般不推荐这种方式来关闭数据库。

二、实例配置参数

1. 参数文件

• 配置参数文件名为`yasdb.ini`,存放在`$YASDB_DATA/config`路径下。安装时所指定的数据库初始配置参数将保存在此文件中,后续数据库运行过程中对配置参数的非memory修改也将持久化到此文件中。

2. 查看参数

• 通过SQL命令`SHOW PARAMETER`查看参数,例如`SHOW PARAMETER data_buffer_size`。

3. 修改参数

• 方式一:使用SQL命令修改参数(推荐)。`ALTER SYSTEM/ALTER SESSION`分别用于修改系统级别和会话级别的配置参数,而`ALTER SESSION`修改方式默认只写到内存,仅对当前会话生效。`parameter_name/parameter_value`分别为配置参数名称和值。`SCOPE`用于设定对配置参数修改后的生效方式,这部分可选,默认是`both`。`spfile`表示将参数值写入参数文件,需重启才能生效;`memory`表示将参数值写入内存,立即生效,但重启后失效;`both`表示将参数值同时写入内存和参数文件,立即生效,重启后也生效。例如`ALTER SYSTEM SET data_buffer_size=256M SCOPE=spfile`。

• 方式二:编辑`yasdb.ini`修改参数值(不推荐)。需要重启数据库生效,一般用于使用SQL设置参数之后,重启数据库,因为内存不足报错时,编辑参数文件调整参数。建议修改前备份一份参数文件。

三、运行日志

1. 概述

• 运行日志记录了数据库各服务运行产生的轨迹信息、调试信息、状态变迁、未产生影响的潜在问题和直接的错误信息。

2. 文件名及路径

• 默认路径为`$YASDB_HOME/log/yashandb/db-1-1/run/run.log`,路径受参数`RUN_LOG_FILE_PATH`控制,文件名`run.log`不可修改。

3. 运行日志级别

• YashanDB运行日志文件支持不同级别的日志管理,并根据配置打印不同级别的日志。从上到下,日志等级依次增高,高日志级别包含低日志级别:

• `OFF`:关闭日志。

• `FATAL`:致命错误产生的日志。

• `ERROR`:一般错误产生的日志。

• `WARN`:告警类错误产生的日志。

• `INFO`:正常运行日志(默认日志级别)。

• `DEBUG`:调试日志级别。

• `TRACE`:追踪日志。

• `ALL`:所有日志。

4. 运行日志内容(部分)

复制代码
   2024-06-27 16:35:07.9054092 [INFO] [DB] start kernel
   2024-06-27 16:35:07.9054092 [INFO] [DB] database kernel version is 0.2.59
   2024-06-27 16:35:08.0764092 [INFO] [PARAM] the number of synchronous standby in QUORUM_SYNC_STANDBYS and REQUIRED_SYNC_STANDBYS is 0 and 0
   2024-06-27 16:35:08.0764092 [INFO] [HA] start redo receiver
   2024-06-27 16:35:08.2274092 [INFO] [CTRL] start mount type: normal
   2024-06-27 16:35:08.3084092 [INFO] [DB] the database protection mode is MAXIMUM PERFORMANCE
   2024-06-27 16:35:08.3084092 [INFO] [REDO] load the log file for instance 0
   2024-06-27 16:35:08.3104112 [INFO] [ARCH] archive process start
   2024-06-27 16:35:08.7794108 [INFO] [HA] redo receiver thread exited
   2024-06-27 16:35:08.7804092 [INFO] [HA] start redo sender for primary
   2024-06-27 16:35:08.7814092 [INFO] [DB] database mount
   2024-06-27 16:35:08.7814114 [INFO] [MONITOR] health monitor process start
   2024-06-27 16:35:08.9554092 [INFO] [RCY] instance 0 stop to replay, point 0-24-353-282409
   2024-06-27 16:35:08.9554092 [INFO] [DB] recover destroy
   2024-06-27 16:35:09.0784092 [INFO] [DB] database open, current role: primary

四、小结

1. 实例启停机制

• 包括三个阶段:NOMOUNT、MOUNT、OPEN。

2. 实例配置参数

• 包括参数文件`yasdb.ini`、参数修改以及查看。

3. 运行日志

• 包括运行日志路径、级别、作用。

相关推荐
好奇的菜鸟3 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
满昕欢喜3 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
Hello.Reader5 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
简佐义的博客5 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
爬山算法5 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡
老纪的技术唠嗑局8 小时前
OceanBase PoC 经验总结(二)—— AP 业务
数据库
阿里云大数据AI技术9 小时前
OpenSearch 视频 RAG 实践
数据库·人工智能·llm
m0_6239556611 小时前
Oracle使用SQL一次性向表中插入多行数据
数据库·sql·oracle
阿蒙Amon11 小时前
C#读写文件:多种方式详解
开发语言·数据库·c#