#参数配置

# 参数初始化配置

YashanDB的所有系统参数都存在一个默认值,允许在产品安装后不做任何处理也能启动实例。默认值一般基于在个人PC也能运行的最小配置给出,可能并不适用于生产环境,因此建议在安装YashanDB时也进行参数的初始化配置工作。

参数的初始化通过在产品安装过程中配置安装参数完成。

需进行初始化配置的参数范围和值应结合企业的自身业务、资源环境来确定,同时,在调优手册数据库配置调优中所列出的性能相关参数应该重点关注。

# 参数自适应配置

数据库的参数配置直接影响性能表现,对参数值的初始化和后续调整依赖于专业的DBA,为协助DBA快速决策和减少运维难度,YashanDB提供参数自适应功能,依据环境信息给出针对当前负载的调参配置推荐。

# 基本原理

1.可在数据库NOMOUNT、MOUNT或OPEN状态下运行,区分HEAP/TAC/LSC不同表类型。

2.获取CPU核数、内存总数、空闲内存数等环境信息。

3.结合用户指定的CPU和内存限制,计算数据库可用的资源。

4.依据数据库可用资源计算内存相关参数。

5.测试数据文件和日志文件所在磁盘性能。

6.依据磁盘性能结果计算IO相关参数。

# 操作步骤

1.选择无业务运行的时间,并清理其他进程,避免干扰对资源的计算和测试。

2.运行参数配置推荐程序,该程序存在可输入的参数,请查看开发手册DBMS_PARAM详细了解后再操作。

--使用默认参数生成推荐参数,不写入配置文件。
EXEC DBMS_PARAM.OPTIMIZE();

--使用TAC表类型,分配80%的内存,100%的CPU,生成推荐参数后,写入配置文件。
EXEC DBMS_PARAM.OPTIMIZE(True, 'TAC', 80);

--使用默认的HEAP表类型,分配100%的内存,100%的CPU,生成推荐参数后,不写入配置文件。
EXEC DBMS_PARAM.OPTIMIZE(NULL, NULL, 100, 100);

--使用LSC表类型,分配100%的内存,100%的CPU,指定datafile和redofile的路径,生成推荐参数后,不写入配置文件。
EXEC DBMS_PARAM.OPTIMIZE(NULL, 'LSC', NULL, NULL, '/home/yashan/data', '/home/yashan/redo');

3.查看最新的推荐参数信息。

SELECT DBMS_PARAM.SHOW_RECOMMEND() FROM dual;

4.将推荐的参数配置写入yasdb.ini文件,此过程并不会生效参数。

EXEC DBMS_PARAM.APPLY_RECOMMEND();

5.重启数据库,生效参数。

# 修改参数配置

在系统运行过程中,可能会由于应用变化、资源扩充、性能调优等需求,手工调整某个参数的值。此时应该根据参考手册配置参数文档里对该参数的描述,评估调整参数是否对在线业务造成影响,确定执行操作的合适时机。

# 使用SQL命令修改参数

# 命令格式

参考开发手册ALTER SYSTEMALTER SESSION文档说明。

# 参数说明

alter system和alter session分别用于修改系统级别和会话级别的配置参数,而alter session修改方式默认只写到内存,对当前会话生效。

param_name和value分别为配置参数名称和值,其中值需满足系统指定的取值范围,详见参考手册配置参数描述。

scope用于设定对配置参数修改后的生效方式,默认为both。

  • spfile:将参数值写入参数文件,需重启才能生效。
  • memory:将参数值写入内存,立即生效,但重启后失效。
  • both:将参数值同时写入内存和参数文件,立即生效,重启后也生效。

# 查看配置参数

修改后通过show命令查看配置参数是否生效。

SQL > show parameter param_name;

示例

--修改日期格式参数
--1、查看当前参数值
SQL > SHOW PARAMETER date_format;
NAME              VALUE        
----------------- --------------
DATE_FORMAT       yyyy-mm-dd   
 
 
--2、修改参数值,date_format为需重启生效参数
SQL > ALTER SYSTEM SET date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;    
 
--3、重启数据库
--4、登录后查看参数值
SQL > SHOW PARAMETER date_format;
NAME            VALUE                  
--------------- ------------------------
DATE_FORMAT     yyyy-mm-dd hh24:mi:ss

Note

  • 无法对只读参数执行ALTER SYSTEM,只读参数只能在安装时进行配置或使用默认值。
  • 通常情况下,建议一直使用SQL命令修改配置参数,修改后的参数值将持久化到yasdb.ini配置文件,不建议直接编辑该配置文件。
  • 分布式部署中,上述命令将修改分布式集群中本地节点的对应配置,如需修改指定的节点配置,请参考开发手册ALTER SYSTEM中type和node所描述内容。