目录

Yashan-DB-实例管理

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用于设定对配置参数修改后的生效方式,这部分可选,默认是bothspfile表示将参数值写入参数文件,需重启才能生效;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. 运行日志

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