#参数配置
# 参数初始化配置
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 SYSTEM和ALTER 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所描述内容。