最近报名学习了国产达梦数据库DCA的课程,在此将所有干货记录于此,希望能帮助到需要的人。
说在前面的重点:
1.考试时一定要细心,第一遍创建索引时没看到考卷要求的名字,检查时发现索引名起错了;创建表时字段为varchar,想当然的弄了个varchar2,当时真是瞎,瞎瞎瞎!
2.备份那块一定要多练习,尤其是开启归档,如果考试时一直提示你归档配置不对,不要着急,心平气和地把manager退掉再重连
3.考试时肯定不是建立5236端口的,如果嫌登陆麻烦可以运行dca.sh建立个网络服务名,你懂的
4.第1点反复看几遍,别忘了!人大金仓也是基于pg
达梦在电力上应用很广
mongodb 文档数据库
redis 缓存数据库
达梦蜀天梦 图数据库–查找关系比如查找密接关系
hadoop分布式复合数据库dmdsc 共享存储集群 相当于oracle rac
dmtdd 分布式集群
dmrwc 读写分离 可一主多备开发版与企业版功能相同 只是仅可用一年 ,开始时间为官网发布时间,官网版本每3个月更新一次
标准版不支持集群一、安装与卸载
–安装软件
DM_INSTALL_TMPDIR
lscpu
临时生效:[root@localhost ~]# ulimit -n 655361.图形
mkdir /dm8
chown dmdba:dinstall /dm8
mount -o loop xxx.iso /mnt/
su - dmdba
./DMInstall.bin
创建实例-- 图形方式 /dm8/dmdbms/tool/dbca.sh2.命令行
./DMInstall.bin -i
创建实例-- 命令行方式 /dm8/dmdbms/bin/dminit
dminit path=/dm8/dmdbms/data db_name=LJC2 instance_name=DMSERVER2 port_num=5238 sysdba_pwd=Dameng123 LOG_SIZE=256!!!dminit后需要手工运行注册服务
注册服务有两种方式:
1.DM配置助手,即dbca.sh
2.用root执行$DM_HOME/script/root/dm_service_installer.sh
./dm_service_installer.sh -t dmserver -p DMTESTSVR -dm_ini /dm8/data/DMTEST/dm.ini
服务的删除:
./dm_service_uninstaller.sh -n DmServiceDMTESTSVR3.静默
–卸载软件
删实例-- 图形方式 /dm8/dmdbms/tool/dbca.sh
删实例-- 命令行方式 /dm8/dmdbms/tool/dbca.sh删软件-- 图形方式 /dm8/dmdbms/uninstall.sh
删软件-- 命令行方式 /dm8/dmdbms/uninstall.sh -inote:
1.开启操作系统验证可以避免sysdba密码丢失的情况
2.DM redo只支持改大,不支持改小,所以考试时要看好题目要求,在创建实例时指定大小二、连接实例
1.使用dm管理工具
$DM_HOME/tool/manager2.disql
连接串:
1.$DM_HOME/tool/nca.sh 右击添加
2.直接修改/etc/dm_svc.conf 相当于tnsnames.ora,属主需改为dmdba:dinstall
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(127.0.0.1:5236)
DMTEST=(127.0.0.1:5238)disql SYSDBA/Dameng123@ljc2 --连接串不需要区分大小写
disql sysdba/‘“Dameng@123”’ --转译操作系统验证登陆方式:enable_local_os_auth 202110月份版本后才支持
三、启动与关闭
分mount、open、suspend三种状态
mount和open、suspend和open可以相互转换,但是subspend和mount不能相互转换1.systemctl start DmServiceDMSERVER.service 使用root
2.DM服务查看器 使用root(dmdba只可操作DmAPService,不可操作创建的服务)
$DM_HOME/tool/dmservice.sh
3.命令行前台启动 使用dmdba,也可加&置于后台
适用于不管是否注册为数据库服务, 都可以使用此方式
dmserver /dm8/dmdbms/data/DAMENG/dm.ini
dmserver /dm8/dmdbms/data/DAMENG/dm.ini mount 直接启动到mount状态
4.命令行后台启动 使用dmdba
适用于已经注册了数据库服务的实例
DmServiceDMSERVER startnote:
disql下可以shutdown immedite,但是不可以startup,因为启动时需要会话;
DM共有2个disql,分别位于bin和tool下,tool下的是一个链接文件,相当于./bin/disql /nolog
以第2种方式dmservice.sh启动或关闭服务,systemctl status中是不会同步状态的;
dm_DMSERVER1_202203.log为实例运行日志,每个月生成一个
DmServiceDMSERVER1.log为启动日志;
相关sql:
select status$ from v$instance;四、DM的客户端工具 $DM_HOME/tool/
1.管理工具 manager,相当于plsql developer
2.控制台工具 console
控制台工具是脱机工具, 提供参数修改(修改的是 dm.ini), 冷备份还原等功能
以此工具修改后的配置需要重启实例才能生效
3.迁移工具 dts
4.性能监控工具 monitor五、DMSQL
DML DCL DDL TCLconcat(‘Hello’,‘World’) = HelloWorld
substr(‘HelloWorld’,1,5) = Hello
length(‘HelloWorld’) = 10
instr(‘HelloWorld’,‘W’) = 6 在字符串中找到W所在的位置
lpad(salary,10,‘‘) = ****24000 在salary列值的左侧补,补到10位
rpad(salary,10,’’) = 24000***** 在salary列值的右侧补*,补到10位
trim(‘H’ FROM ‘HelloWordl’) = elloWorld 在首尾去掉H
round 4舍5入
trunc 截断
mod 取余
months_between
add_months
next_day
last_day
round 舍入日期
trunc截断日期cube实现groupby内的总计、小计、合计
rollup实现groupby内的grouping sets
两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行,这种连接称为左(或右)外连接;
两个表在连接过程中除了返回满足连接条件的行以外还返回两个表中不满足条件的行,这种连接称为全外连接;内连接:笛卡儿积、等值连接、自连接
外连接:全外连接、左右外连接
左外关联的(+)在右表一侧,eg:where a.id = b.id(+)
左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL多行子查询 in any all
六、体系结构
–物理结构配置文件(dm.ini/dmarch.ini)、控制文件、参数文件、日志文件、其它文件(归档/备份文件/sqltrace)
【控制文件】
会自动定时备份
控制文件被修改(创建表空间、修改数据文件路径…)时也会自动备份
/dm8/dmdbms/data/LJC1/ctl_bak下
/dm8/bin/dmctlcvt可将控制文件内容转换为文本
dmctlcvt type=1 src=dm.ctl dest=dmctl.txtdmctlcvt可用于更换数据文件目录,示例如下:
1.关闭数据库
2.dmctlcvt type=1将控制文件转换为文本
3.编辑dmctl的文本文件,将目录更改
4.dmctlcvt type=2将文本文件转换为二进制文件
5.启动数据库【数据文件】以.DBF为后缀
【参数文件】 vparameter参数修改:
1.SQL语句
alter system set xxx=xxx spfile|memory(默认)|both; 与oracle中不同,不需要指定scope=
2.系统函数
select * from v$ifun t where t.name like ‘%SET_PARA%’; --查看匹配函数select * from V$IFUN_ARG t where id= 584; --查看584号函数变量代表值的释义
SP_SET_PARA_DOUBLE_VALUE 修改浮点型参数
SP_SET_PARA_STRING_VALUE 修改字符型参数
SP_SET_PARA_VALUE 修改整型参数SP_SET_PARA_VALUE(2,‘COMPATIBLE_MODE’,4);
SP_SET_PARA_DOUBLE_VALUE(1,‘UNDO_RETENTION’,180);
0–仅内存
1–内存及spfile
2–仅spfile3.直接修改dm.ini
4.通过console控制台修改(最终也是修改dm.ini)参数类型:
READ ONLY:只读,不能通过系统函数或SQL语句修改,只能修改dm.ini重启
SYS:系统动态级,可以通过系统函数修改,即可以修改参数文件的值,也可以修改内存中值
SESSION:系统会话级,可以通过系统函数修改,可以同步修改参数文件和内存中值,可以对某个会话生效
IN FILE:静态参数,可以通过系统函数或SQL(spfile) 修改参数文件的值,不能直接修改内存中的值,需要重启数据库才能生效DM技术总监写的自动修改参数脚本:
【日志文件】redo,控制台
调整重做日志大小,manager工具实例名处右键->管理服务器
目前版本只允许添加日志,不允许删除
alter database resize logfile ‘DAMENG01.LOG’ to 500;
添加重做日志
alter database add logfile ‘/dm8/data/DAMENG/DAMENG03.LOG’ size 500;
重命名/迁移路径 --mount状态操作
alter database rename logfile ‘DAMENG03.LOG’ TO ‘/dm8/data/XXX.LOG’;redo日志
v$rlogfile
v$rlog --cur_file列代表当前使用的日志号,redo不可人工switch,switch只可切归档
归档配置文件dmarch.ini
v$arch_file
v$archive_logs开启归档arch方法:
1)SQL
alter database mount;
alter database archivelog;
alter database add archivelog ‘type=local,dest=/dm8/arch,file_size256,space_limit=10240’;
alter database open;
select arch_mode from v$database;
2)dm.ini与dmarch.ini
3)图形工具manager归档的清理:
1.函数
select SF_ARCHIVELOG_DELETE_BEFORE_LSN(599725);=0
select SF_ARCHIVELOG_DELETE_BEFORE_TIME(sysdate-1);LSN来源于v$arch_file.arch_lsn或clsn
–内存结构
select page;查看block size
动态视图字典 v$dynamic_tables,老版本为sysobjects
1.缓冲区
【数据缓冲区】 提高逻辑读减少物理读
buffer参数:系统缓冲区大小为可用物理内存的60%~80%,有效值范围(8~1048576)
alter system set ‘BUFFER’=xxx spfile;
v$buffer
v$bufferpool多页读MULTI_PAGE_GET_NUM
【日志缓冲区】 用来缓存REDO信息 RLOG_BUF_SIZE
日志缓冲区何时刷盘:日志满了、每3s、执行commit
create table t_test(id int,value varchar(50));
begin
for i in 1…10000 loop
insert into t_test(id,value) values (i,dbms_random.string(‘A’,30));
commit;
end loop;
end;begin
for i in 1…10000 loop
insert into t_test(id,value) values (i,dbms_random.string(‘A’,30));
end loop;
commit;
end;【SQL缓冲区】 SQLCACHEPOOL简称SCP,用来存储包信息、执行计划、结果集缓存 CACHE_POOL_SIZE
v$cacheitem
v$cachepln
v$cachesql
v$cachersuse_pln_pool是否开启执行计划重用,默认开启
结果集缓存参数rs_can_cache=1且use_pln_pool非0时缓存结果集,默认不开启【字典缓冲区】 缓存表结构、列信息、权限信息等 DICT_BUF_SIZE
vdict_cache_item2.内存池 v$mem_pool
【共享内存池】也叫主内存池,用于其它内存不够时可以向此池借用空间
memory_pool 初始大小
memory_target 目标大小,扩展的最大限制大小,0表示不限制
memory_extent_size 每次扩展大小
memory_n_pools 共享内存池的个数【运行时内存池]
使用时申请,用完后释放
包括会话内存池、虚拟机内存池排序区 SORT_BUF_SIZE
当sql有排序动作时,少量的数据排序优先在内存中排序,此时占用排序区;大量的sql排序会占用临时表空间排序HASH区
HJ_BUF_SIZE
HAGR_HASH_SIZE 表示处理聚集函数时创建哈希表的个数–线程结构
监听线程、工作线程、IO线程、调试线程、日志线程、定时器线程…
vprocess
ps -T -p [dmserver进程号]查看线程,eg:
[root@dm1 ~]# ps -T -p 3454
PID SPID TTY TIME CMD
3454 3454 ? 00:00:00 dmserver
3454 3518 ? 00:00:00 dm_quit_thd
3454 3566 ? 00:00:00 dm_io_thd
3454 3567 ? 00:00:00 dm_io_thd
3454 3568 ? 00:00:00 dm_io_thd
3454 3569 ? 00:00:00 dm_io_thd
3454 3570 ? 00:00:00 dm_io_thd
3454 3571 ? 00:00:00 dm_io_thd
3454 3572 ? 00:00:00 dm_io_thd
3454 3573 ? 00:00:00 dm_io_thd
3454 3574 ? 00:00:00 dm_io_thd
3454 3575 ? 00:00:00 dm_io_thd一个sql的执行过程
(1) 当客户端发起请求, 到达监听线程, 监听线程生成会话线程, 加入工作线程队列。第 43 页
(2) 语法语义权限解析(字典缓冲区)
(3) 查找 sql、sql执行计划(sql缓冲区),如果找到执行计划,则根据计划执行 sql(软解析),如果没有找到对应执行计划,则根据统计信息生成执行计划,并将执行计划放入sql缓冲区(硬解析)。
执行sql获取数据,如果数据缓冲区中没有找到数据页,则IO线程从磁盘数据文件中读取数据加载到数据缓冲区(物理读)。 如果数据缓冲区中找到数据页, 则直接返回查询结果(逻辑读)。
如果sql涉及排序,则会占用排序区(少量的排序);如果sql涉及hash连接,则会占用 HASH 去。
如果涉及写数据操作,产生的redo会放入日志缓冲区;执行commit时,日志刷新线程会将日志缓冲区写入联机日志。当系统执行检查点时,会调用IO线程将脏页写入数据文件。七、表空间管理
创建表空间时不能指定M/G等单位,默认为M,自动扩展默认打开
dba_tablespaces
dba_data_files
v$tablespace
v$datafile创建表空间时可以指定缓冲区normal或keep
创建时可以指定相对路径,32M~~16T-1
create tablespace dmtbs datafile ‘DMTBS01.DBF’ size 32;alter tablespace dbtbs datafile ‘xxx’ autoextend off;
alter tablespace dbtbs datafile ‘xxx’ autoextend on next 10 maxsize 10240;
alter tablespace dbtbs resize datafile ‘xxx’ to 128;
alter tablespace dbtms rename to hrtbs;
drop tablespace xxx ; --无including选项临时表空间:
TEMP_PATH 路径
TEMP_SIZE 初始大小,数据库重启后的默认大小
TEMP_SPACE_LIMIT 空间限制,自动扩展的上限
如果考试时需要修改tempfile大小,则更改temp_size即可
收缩temp表空间:
1.重启
2.在线使用sp_trunc_ts_file(ts_id,file_id,to_size),v$datafile中的group_id与id对应前两个参数DM的闪回查询也是依赖ROLL表空间中的UNDO
更改数据文件位置:
1.alter tablespace tbs offline;
2.alter tablespace tbs rename datafile ‘/dm8/xxx.dbf’ to ‘/dm7/xxx.dbf’;
3.alter tablespace tbs online;note:
huge表空间为列存储表空间,正常表空间为行hang表空间
临时表空间每次数据库重启时都是重建,可以在线收缩临时表空间
dm中undo和temp表空间不能自定义,不能个人重建,且只能有一个八、用户与权限管理
sysusers 中只有id没有name
dba_users
dba_roles
dba_tab_privs
dba_sys_privs
dba_role_privs
dba_col_privs–查看用户资源限制,需要从sysusers中
select b.username,a.* from sysusers a,dba_users b where a.id=b.user_id;PWD_POLICY参数为系统密码策略
0-无策略 1-禁止与用户名相同 2-口令长度不小于9
4-至少包含一个大写字母 8-至少包含一个数字
16-至少包含一个标点符号
基为其它数字则表示配置值的和,如3=1+2表示同时启用1和2两项策略
当compatible_mode=1时,pwd_policy的实际值均为0alter user hr default tablespace hrtbs default index tablespace idxtbs;
–密码输入错误5次后锁定3分钟
alter user hr limit falied_login_attemps 5,password_lock_time 3;CREATE PROFILE “profileljc” LIMIT SESSION_PER_USER 100 FAILED_LOGIN_ATTEMPS 5 PASSWORD_LIFE_TIME 90 PASSWORD_REUSE_TIME 10 PASSWORD_REUSE_MAX 7 PASSWORD_LOCK_TIME 3 PASSWORD_GRACE_TIME 6;
alter user hr profile profileljc
DM中角色的禁用 SP_SET_ROLE(‘ROLE1’,0)
DM中角色的启用 SP_SET_ROLE(‘ROLE1’,1)数据库创建完成默认预定角色:
DBA: 管理员角色,默认赋给 SYSBDA 用户。 拥有除审计和强制访问安全控制之外的几乎
所有权限。
RESOURCE:具有用户所属模式下对象操作权限,比如create tablecreate index等
PUBLIC:具有用户所属模式下的数据操作权限,insert、update、delete、select
SOI:具有查询系统表(SYS 开头的表)的权限
VTI:具有查询动态视图的权限(v$开头的表)grant create session th hr with admin option;
grant select on xx.xx to hr with grant option;
revoke select on xx.xx from hr cascade;九、模式管理
–查询当前模式
select sys_context(‘USERENV’,‘CURRENT_SCHEMA’);
–查询系统下所有模式
select * from sysobjects where type$=‘SCH’;–查询系统中模式与用户的对应所属关系
select t.id schid,t.name schname,b.id,b.name username
from sysobjects t,sysobjects b
where t.type$=‘SCH’ and t.pid=b.id;DM中一个用户可以拥有多个模式
–authorization指定模式归属哪个用户,不指定则归属当前用户
create schema dameng authorization sysdba;–相同用户切换模式,只对当前会话生效
set schema dameng;–模式下有对象时级联删除
drop schema dameng [cascade];DM默认以字节为单位(可从manager->管理服务器中查看),一个中文占2个字节
可以理解为:以字节为单位的数据库中,varchar(2)可插1个中文,而以字符为单位的数据库中varchar(2)可插2个中文
varchar(2 char)的形式表示以字符为单位,可插2个中文create table dmtest.emp02 like dmhr.employee; --此方式不复制约束
CTAB_SEL_WITH_CONS参数控制CTAS复制表时是否带约束,默认为0alter table xx.xx rename to xxx.xx;
comment on table xx.xx is ‘this is a test table’;
comment on column xx.xx.empno is ‘empno info’;
select * from dba_tab_comments;
select * from dba_col_comments;ALTER TABLE “TEST”.“EMP” ADD CONSTRAINT PK_EMP_ID PRIMARY KEY (ID);
ALTER TABLE test.DEPT ADD CONSTRAINT fk_dept_id FOREIGN KEY(id) REFERENCES test.emp(id);alter table dmtest.t_test add CONSTRAINT FK_test_pid
FOREIGN KEY(pid) REFERENCES dmtest.t_testpid(pid);
alter table dmtest.t_test add CONSTRAINT ck_test_salary CHECK(salary>2500);一张表只能有一个pk,唯一约束可以为空且一张表可以有多个唯一键
–创建聚簇索引
create cluster indexDM中默认建表为聚簇索引组织表,oracle为堆表
索引组织表有且只有一个聚簇索引键,表的数据按照聚簇索引键的值排序,所以索引组织表的数据是有序的,插入也是有序的。创建表时如果未指定聚簇索引键则默认使用rowid为聚簇索引键
索引组织表的rowid为逻辑rowid,占用存储空间,所以索引组织表比堆表占用空间稍大
如果创建表时添加了主键,则默认主键为聚簇索引键,由参数pk_with_cluster指定
聚簇索引组织表的查询是从聚簇索引中提取数据,不需查询基表LIST_TABLE设置数据库创建表的类型,索引组织表/堆表,0:否;1:是
alter table t_test disable constraint xxx;
大表增加字段时不要带默认值
DM中非空约束不在dba_constraint中体现,只在表结构中体现DM中move表后不需要rebuild索引,自动维护
alter index xx.xx mointoring usage;
alter index xx.xx nomointoring usage;v$object_usage中显示索引监控的状态
十、数据字典与动态性能视图
sysobjects
sysindexes
syscolumns
v$buffer
v$process
v$sessions
v$trxwait --等待事件
v$lock where blocked=1 --查询锁阻塞v$sql_history --同一会话历史sql信息
–结束会话
sp_close_session(sess_id);十一、备份与还原
–物理备份,分为脱机和联机即冷备和热备
物理备份包含完全备份和增量备份
BAK_PATH默认备份集目录
BAK_USE_AP备份时是否使用AP服务SF_BAKSET_BACKUP_DIR_ADD 添加备份目录
【脱机备份】,关闭数据库,使用console工具或dmrman
–dmrman的备份
./dmrman
-RMAN>backup database ‘/dm8/data/DAMENG/dm.ini’ full backupset
‘/dm8/data/DAMENG/bak_full’;–dmrman的还原
-RMAN>restore database ‘/dm8/data/DAMENG/dm.ini’ from backupset ‘/dm8/data/DAMENG/bak_full’;–dmrman的恢复
-RMAN>recover database ‘/dm8/data/DAMENG/dm.ini update db_magic’–dmrman查看备份集
-show backupset ‘/dm8/data/DAMENG/bak_full’;–dmrnan删除备份集
-remove backupset ‘/dm8/data/DAMENG/bak_icrement’;–dmrman检查备份集
-check backupset ‘/dm8/data/DAMENG/bak_full’;–load导入备份集
note:每次数据库级还原后要更新db_magic
【联机备份】,可以备份数据库、表空间、表和归档
表空间的备份在联机下,还原只能在脱机状态下进行
backup tablespace dmhr full to TS_DMHR_FULL backupset ‘/dm8/data/DAMENG/bak/TS_DMHR_FULL’;
restore database ‘/dm2/data/DAMENG/dm.ini’ tablesapce HRTBS from backupset ‘/dm8/dm8bak/TS_DMHR_FULL’; --库级备份做表空间的还原
recover database ‘/dm2/data/DAMENG/dm.ini’ tablesapce HRTBS with archdir ‘/dm8/arch’;–从备份集还原并恢复至最新归档
restore database ‘/dm8/data/DAMENG/dm.ini’ from backupset ‘/dm8/backup/DMFULL’;
recover database ‘/dm8/data/DAMENG/dm.ini’ with archivedir ‘/dm8/dm8arch/’
recover database ‘/dm8/data/DAMENG/dm.ini’ update db_magic;backup database full to DMBAKFULL01 BACKUPSET ‘/dm8/dm8bak/DMBAKFULL01’
SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,‘/dm8/dm8bak’); --添加备份目录,只对当前会话生效backup database increment with BACKUPDIR ‘/dm8/dm8bak’ to DMBAKFULL01 backupset ‘/dm8/dm8bak/DMBAKINCR01’;
DM默认为差异增量备份,基础备份集为上一次的全量或增量备份;累积增量备份的基础备份集为上一次全量备份
backup tablespace HRTBS full to TBS_HRTBSFULLBAK01 backupset ‘/dm8/dm8bak/hrtbsfullbak01’;
backup tablespace HRTBS increment;backup table xx.xx;
backup archivelog all;test.emp:
=1 时全备
=2 3 4增量1
=5 6 7 8 9增量2no1.从增量1还原并恢复后,数据只有1-4
no2.再重新从全备还原并恢复后,数据只有1
no3.再重新从增量2还原并恢复后,数据为1-9
no4.插入10-13后再从增量2还原并恢复后,数据为1-9–逻辑备份
full、owner、schema、table四个级别
dexp/eimp/dexpdp/eimpdpdexp userid=sysdba/Dameng123 directory=/dm8/backup/dexp full=y file=full.dmp log=full.log full=y
模糊匹配参数:fuzzy_match、query
十二、作业管理
DM8管理工具中,右击代理,创建成功后会增加SYSJOB模式
sysjob.sysalerthistories
sysjob.sysjobs
sysjob.sysjobschedules
sysjob.sysjobsteps通过SP_INIT_JOB_SYS(1)来创建存储作业相关信息的表 --DBMS_JOB
SP_INIT_DBMS_SCHEDULER_SYS(1) --DBMS_SCHEDULER_JOBcall sp_create_job(‘TEST’,1,0,‘’,0,0,‘’,0,‘’);
–添加Job的完整步骤
call SP_CREATE_JOB(‘JOB01’,1,0,‘’,0,0,‘’,0,‘’);
call SP_JOB_CONFIG_START(‘JOB01’);
call SP_ADD_JOB_STEP(‘JOB01’, ‘s1’, 6, ‘00000000’, 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB01’, ‘s1’, 1, 2, 1, 1, 0, ‘21:58:06’, NULL, ‘2022-04-06 21:58:06’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB01’);select * from dba_jobs;
dbms_job.run(jobid);
select * from sysjob.sysjobhistories2十三、数据库开发
c、java、php、dotNetJDBC,用于java语言
驱动路径位于安装目录drivers/jdbc中
DmJdbcDriver15-18分别对应jdk1.5-1.8定义DMjdbc驱动串
String jdbcString=“dm.jdbc.driver.DmDriver”;定义DM URL连接串
String urlString=“jdbc:dm://localhost:5236”;ODBC,用于c语言
cd /opt/
tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure --prefix=/usr/local --指定安装目录为/usr/local
make
make install
odbcinst -j --查看安装情况
cd /usr/local/etc/
vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so --此行注意安装目录vi odbc.ini
[DM8] --数据源名称
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER --此行须与odbcinst.ini中第一行名称一致
SERVER = localhost
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5236su - dmdba
isql dm8 -v --测试连接是否成功DM比oracle异同点:
1.支持列表即huge表
2.mount与open之间可随时切换
3.manager等工具集成的很好,简装易用
4.DM是单进程多线程服务架构,oracle是多进程,这点不如oracle
5.没有事务时手动切归档不生效
6.DM中date类型只有年月日,没有时分秒,time类型表示时分秒,datetime/timestamp表示年月日时分秒
7.dm8的物理备份可以对表进行DM 服务器所有配置端口的范围为 1024-65534
达梦默认不缓存sql结果集,需要开启功能
DM所有参数默认值大小为M
DM有柱状图吗?字典缓冲区:语法、语义、权限等的验证,缓存数据字典
v$dynamic_tables 动态视图字典
达梦TIMESTAMP 对应java 达梦 compatible_mode
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:怎么看当前仓库的地址
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【达梦系列】分割字符串,返回表之(管道表函数)
文章分类没有达梦数据库,所以只能选择oracle了
字符串 自定义 自定义函数