首先,必须强调的一点是达梦数据库确实是具有自主知识产权的国产数据库。
创新互联公司是专业的湘潭网站建设公司,湘潭接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行湘潭网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
To 那些连达梦数据库安装软件都没见到过而乱喷的朋友们:
达梦数据库与国外Oracle比起来确实没有什么优势,达梦数据库确实存在很多问题,但是,达梦在发展,努力改进产品,努力缩小与国外产品的优势,至少达梦是国产基础软件中敢站出来在市场上竞争的。
朋友们,你们一边用着国内外的盗版软件,一边喷国产软件烂,难道你们就没有一丢丢的内疚?软件的成长不是靠软件厂商的努力,也需要用户的配合,为什么提到国产基础软件,你们就想喷?有多少人真正实打实的用过,评估过?
国产基础软件承载了国家的期望,国家给予了一定的支持,你们就说成骗钱了,这么好骗,你倒是骗出一个达梦数据库来看看。
批评可以,如果给达梦数据库指出了具体的问题,达梦一定会认证听取,努力改进,但是请在喷之前问问自己是不是有理有据...
还有一点,达梦数据库现在已经走出国门了....
Windows系统下加载模块
步骤:
1) 下载apache的windows版本并安装,同时修改httpd.conf;
2) 下载php并安装;
3) 安装DM DBMS,拷贝bin目录下php4_dm.dll、php5_dm.dll到php目录下的extensions目录中,修改php.ini,添加extension=php5_dm.dll (如果php安装的是php4版本,则改为extension=php4_dm.dll),添加php.ini中有关连接的配置;
4) 重启apache服务器,在浏览器中输入http:\\localhost\php_info.php查看是否有dm模块项,如有说明加载DM PHP成功。
?php
/* 连接选择数据库*/
$link = dm_connect("localhost", "SYSDBA", "SYSDBA")
or die("Could not connect : " . dm_error());
print "Connected successfully";
/* 执行SQL 查询*/
$query = " INSERT INTO production.product(name,author,publisher,publishtime, product_subcategoryid,productno,satetystocklevel,originalprice,nowprice, discount,description,photo,sellstarttime)
VALUES('三国演义','罗贯中','中华书局','2005-04-01','4','9787101046121','10', '19.0000','15.2000','8.0','《三国演义》是中国第一部长篇章回体小说!',null,'2006-03-20')"; $result = dm_query($query)
or die("Query failed : " . dm_error());
/* 释放资源*/
dm_free_result($result);
/* 断开连接*/
dm_close($link);
?
以上来自官方文档!
下面是在命令行客户端工具直接执行的脚本(执行后,会输出待调整参数):
备注:第一次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_CPU8 then 8 3 when N_CPU32 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;
/