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. 运行日志

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

相关推荐
JhonKI几秒前
【MySQL】行结构详解:InnoDb支持格式、如何存储、头信息区域、Null列表、变长字段以及与其他格式的对比
android·数据库·mysql
今天阳光明媚吗36 分钟前
SQlite数据库
数据库·sqlite
极小狐1 小时前
如何从极狐GitLab 容器镜像库中删除容器镜像?
java·linux·开发语言·数据库·python·elasticsearch·gitlab
gjc5922 小时前
MySQL OCP试题解析(3)
数据库·mysql·开闭原则
houzhizhen2 小时前
SQL JOIN 关联条件和 where 条件的异同
前端·数据库·sql
yy鹈鹕灌顶2 小时前
Redis 基础详解:从入门到精通
数据库·redis·缓存
_extraordinary_2 小时前
MySQL 索引(二)
数据库·mysql
JhonKI2 小时前
【MySQL】表空间结构 - 从何为表空间到段页详解
数据库·mysql
码农黛兮_462 小时前
MySQL数据库容灾设计案例与SQL实现
数据库·sql·mysql
野犬寒鸦2 小时前
MySQL索引详解(下)(SQL性能分析,索引使用)
数据库·后端·sql·mysql