达梦数据库常见参数调整

下面是在命令行客户端工具直接执行的脚本(执行后,会输出待调整参数): 备注:第一次dminit后就要调整,获取的是当前系统可用内存。

set serveroutput on declare v_maxsess bigint;

v_cpus bigint; v_mem_mb bigint; v_bufs bigint; v_refs bigint; v_maxdisk_mb bigint; begin

-- manual set

v_maxsess=5000;

-- reload messages v_cpus=64; v_mem_mb=500000; v_bufs=101; v_refs=67; v_maxdisk_mb=100000;

SELECT cast(67434610688*0.8/1024/1024 as int) into v_maxdisk_mb FROM V$SYSTEMINFO ORDER BY DRIVER_TOTAL_SIZE DESC ;

-- SELECT * FROM V$SYSTEMINFO ORDER BY DRIVER_TOTAL_SIZE DESC LIMIT 1 OFFSET 1;

SELECT case when N_CPU<8 then 83 when N_CPU<32 then N_CPU2 else 64 end n_CPU,FREE_PHY_SIZE/1024/1024 MEM into v_cpus,v_mem_mb FROM V$SYSTEMINFO LIMIT 1;

with a(val) as(select 5 union all select 7 union all select 11 union all select 13 union all select 17 union all select 19 union all select 23 union all select 29 union all select 31 union all select 37 union all select 41 union all select 43 union all select 47 union all select 53 union all select 59 union all select 61 union all select 67 union all select 71 union all select 73 union all select 79 union all select 83 union all select 89 union all select 97 union all select 101),b as( select rownum rn,val val from a) select ( select VAL bufs from b where rn=( 3 + CAST( v_mem_mb/1024.01.0/2048100 AS INT))) v_bufs,,( select VAL refs from b where rn=( 3 + CAST( v_mem_mb/1024.01.0/2048100 AS INT)) )v_refs into v_bufs,v_refs from dual ; print ' begin SP_SET_PARA_VALUE(2,''MAX_OS_MEMORY'',100); SP_SET_PARA_VALUE(2,''MEMORY_POOL'',cast( '||v_mem_mb||'0.1 as int) ); SP_SET_PARA_VALUE(2,''MEMORY_TARGET'',cast ( '||v_mem_mb||'0.2 as int) ); SP_SET_PARA_VALUE(2,''MEMORY_MAGIC_CHECK'',1);

SP_SET_PARA_VALUE(2,''VM_POOL_TARGET'',cast( (0.37)'||v_mem_mb||'10240.6/'||v_maxsess||' as int)); SP_SET_PARA_VALUE(2,''SESS_POOL_TARGET'',cast( (0.37)'||v_mem_mb||'1024*0.3/'||v_maxsess||' as int ) ); SP_SET_PARA_VALUE(2,''CACHE_POOL_SIZE'',cast( (0.37)'||v_mem_mb||'('||v_maxsess||'/2000.0)0.55 as int) );

SP_SET_PARA_VALUE(2,''BUFFER'',cast('||v_mem_mb||' * 0.5 as int)); SP_SET_PARA_VALUE(2,''MAX_BUFFER'',cast('||v_mem_mb||' * 0.5 as int)); SP_SET_PARA_VALUE(2,''RECYCLE'',10000*'||v_cpus||'/100); SP_SET_PARA_VALUE(2,''BUFFER_POOLS'','||v_bufs||'); SP_SET_PARA_VALUE(2,''RECYCLE_POOLS'','||v_refs||'); SP_SET_PARA_VALUE(2,''WORKER_THREADS'','||v_cpus||'); SP_SET_PARA_VALUE(2,''TASK_THREADS'','||v_cpus||');

SP_SET_PARA_VALUE(2,''HJ_BUF_GLOBAL_SIZE'', cast('||v_mem_mb||' * 0.18 as int)); SP_SET_PARA_VALUE(2,''HJ_BUF_SIZE'', cast('||v_mem_mb||' * 0.0018 as int)); SP_SET_PARA_VALUE(2,''HAGR_BUF_GLOBAL_SIZE'',cast('||v_mem_mb||' * 0.12 as int)); SP_SET_PARA_VALUE(2,''HAGR_BUF_SIZE'', cast('||v_mem_mb||' * 0.0024 as int));

SP_SET_PARA_VALUE(2,''DICT_BUF_SIZE'','||v_refs||'5); SP_SET_PARA_VALUE(2,''TEMP_SIZE'',5000'||v_mem_mb||'/1024.0/256);

SP_SET_PARA_VALUE(2,''VM_POOL_SIZE'','||v_refs||'5); SP_SET_PARA_VALUE(2,''SESS_POOL_SIZE'','||v_refs||'5);

SP_SET_PARA_VALUE(2,''MAX_SESSIONS'','||v_maxsess||'); SP_SET_PARA_VALUE(2,''MAX_SESSION_STATEMENT'','||v_maxsess||'*8);

SP_SET_PARA_VALUE(2,''ENABLE_ENCRYPT'',0); SP_SET_PARA_VALUE(2,''USE_PLN_POOL'',1); SP_SET_PARA_VALUE(2,''OLAP_FLAG'',2); SP_SET_PARA_VALUE(2,''OPTIMIZER_MODE'',1); SP_SET_PARA_VALUE(2,''VIEW_PULLUP_FLAG'',1); SP_SET_PARA_VALUE(2,''COMPATIBLE_MODE'',2); SP_SET_PARA_VALUE(2,''MONITOR_TIME'',0); SP_SET_PARA_VALUE(2,''ENABLE_MONITOR'',1); SP_SET_PARA_VALUE(2,''SVR_LOG'',0);

end; ';

print ' create tablespace "USER" datafile ''USER01.dbf'' size 200;'; --print ' --alter user SYSDBA default tablespace "USER";'; print ' sp_set_para_value(1,''PWD_POLICY'',0);'; print ' create user DMDBA identified by DMDBA default tablespace "USER";'; print ' GRANT DBA TO dmdba;'; print ' sp_set_para_value(1,''PWD_POLICY'',2);';

print ' ALTER DATABASE MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE ADD ARCHIVELOG ''DEST=/home/dmdba/dmdbms/arch,TYPE=LOCAL,FILE_SIZE=1024,SPACE_LIMIT='||cast(v_maxdisk_mb*0.1 as int)||'''; ALTER DATABASE OPEN;';

print ' sp_set_para_value(1,''BAK_USE_AP'',2); BACKUP DATABASE FULL TO DMBAK_FULL_00 BACKUPSET ''DMBAK_FULL_00'' COMPRESSED; ';

exception when others then raise_application_error (-20001,substr( ' 执行失败, '||SQLCODE||' '||SQLERRM||' '||dbms_utility.format_error_backtrace , 1, 400)); end;

/

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丨fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值