下面是在命令行客户端工具直接执行的脚本(执行后,会输出待调整参数):
备注:第一次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 8 3 when N_CPU<32 then N_CPU 2 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.0 1.0/2048 100 AS INT))) v_bufs,,(
select VAL refs from b where rn=( 3 + CAST( v_mem_mb/1024.0 1.0/2048 100 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||' 1024 0.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
/
没有抄袭。根据查询达梦数据库相关资料得知,达梦数据库没有抄袭谁的。1992年华中理工大学达梦数据库研究所成立。达梦数据库很多功能和函数都是对标Oracle数据库,有的人会说这是抄袭,学习完后,了解里面的运行机制,底层的算法等等这些完全是不一样的,达梦是一家国产数据库,根据它的介绍,感觉还不错。不过实际使用暂时未知,它号称是国产第一,但是又有其他数据库说是中国老大,这个没法评估,还需要实际测测才知道。不过看过论坛的评论,貌似它兼容oracle比较好欢迎分享,转载请注明来源:内存溢出
评论列表(0条)