to 达梦大学
刘秀君原创,抄袭必究
目录
达梦数据库入门及使用... 1
1 介绍... 3
2 安装环境要求... 4
2.1 操作系统... 4
2.2 数据库版本... 4
2.3 连接工具... 4
3 开始安装... 5
3.1 安装前准备... 5
3.1.1 操作系统参数调优... 5
3.1.2 VNC安装... 5
3.1.3 上传数据库文件... 8
3.1.4 挂载ISO镜像... 8
3.2 安装数据库程序... 9
3.2.1 创建数据库用户、分组信息,环境变量等配置... 9
3.2.2 开始安装数据库... 10
3.2.3 初始化数据库... 16
4 达梦相关资料介绍... 23
4.1 工具命令... 23
4.2 达梦数据库手册... 23
4.3 连接数据库... 23
5 数据库使用... 24
5.1 表空间管理... 24
5.1.1 查询表空间... 24
5.1.2 创建表空间... 25
5.1.3 表空间状态... 26
5.1.4 表空间维护... 28
5.1.5 临时表空间... 31
5.1.6 Roll表空间... 32
5.1.7 删除表空间... 32
5.1.8 实验... 32
5.2 用户管理... 33
5.2.1 用户体系介绍... 33
5.2.2 用户规则... 34
5.2.3 删除用户... 36
5.2.4 删除角色... 36
5.2.5 案例1. 36
5.2.6 案例2. 37
5.2.7 案例3. 38
5.3 模式对象管理... 40
5.3.1 表操作... 40
5.3.2 创建表指定约束... 41
5.3.3 导入数据... 43
5.3.4 表维护... 52
5.3.5 视图... 52
5.3.6 索引... 53
5.4 DMSQL. 55
5.4.1 介绍... 55
5.4.2 语法... 56
5.4.3 函数... 59
5.4.4 多表联接查询... 61
5.4.5 DML 语句... 62
5.5 备份还原... 63
5.5.1 介绍... 63
5.5.2 物理备份... 63
5.5.3 冷备和热备... 63
5.6 作业... 77
5.7 DM8 ODBC配置... 82
武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等服务。多年来,达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权。达梦公司是国家规划布局内重点软件企业,同时也是获得国家“双软”认证和国家自主原创产品认证的高新技术企业,拥有国内数据库研发精英团队,多次与国际数据库巨头同台竞技并夺标。
本次内容主要针对达梦8数据库的安装及使用进行实操全程大量截图和演示。
Centos7或中标麒麟7 64位操作系统。本次部署在vmware 15.5环境上。
1、检查操作系统版本及位数:
uname -ra
2、安装KDE/GNOME 桌面环境(没有的话只能命令行操作了)
3、检查操作系统cpu以确保后续用什么版本数据库:
cat /proc/cpuinfo
4、检查数据库依赖包:
rpm -aq|grep glibc
如果没有,执行yum install glibc -y 安装(2.3以上)
5、检查内存 free -m swap分区为物理内存的1.5倍以上
6、检查磁盘空间容量,根据实际业务计算,df -h
达梦V8试用版 Linux x64版本。
Xshell、vnc
操作系统参数将影响数据库的最优运行,需要提前进行调优:
ulimit -a检查open file 最大打开数,默认是1024,需要扩充:
vi /etc/security/limits.conf(重启后生效)
* soft nofile 102400
* hard nofile 102400
为了不重启服务器,可使用:
ulimit -HSn 102400
临时扩大,重启后失效
[root@dmdb ~]# rpm -q vnc-server
未安装软件包 vnc-server
[root@dmdb ~]# yum install tigervnc-server -y
[root@dmdb ~]# /./usr/bin/vncserver
Warning: dmdb:1 is taken because of /tmp/.X11-unix/X1
Remove this file if there is no X server dmdb:1
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
New 'dmdb:2 (root)' desktop is dmdb:2
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/dmdb:2.log
开放防火墙端口:
[root@dmdb ~]# firewall-cmd --zOne=public --permanent --add-port=5902/tcp
[root@dmdb ~]# systemctl restart firewalld
启停命令:
/usr/local/vncserver :1 stop
/usr/local/vncserver :1 restart
用vnc工具连接测试一下:
VNC安装调试完毕。
[root@dmdb /]# cd /opt
[root@dmdb opt]# ls
dm8_setup.iso
[root@dmdb opt]# mount -o loop /opt/dm8_setup.iso /mnt
mount: /dev/loop0 写保护,将以只读方式挂载
[root@dmdb opt]# cd /mnt
[root@dmdb mnt]# ls
DMInstall.bin DM_Install.pdf release_en.txt release_zh.txt
挂载成功
groupadd dinstall
useradd -g dinstall dmdba
passwd dmdba (密码默认设为:dmdba)
创建数据库安装路径:
mkdir /dm8
chown -R dmdba:dinstall /dm8
配置dmdba用户环境变量
[root@dmdb mnt]# su - dmdba
上一次登录:日 6月 21 17:39:25 CST 2020pts/2 上
[dmdba@dmdb ~]$ vi .bash_profile
最底部增加:
export DM_HOME=/dm8
export PAHT=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool
使用图形化界面安装,使用dmdba用户安装
[dmdba@dmdb ~]$ cd /mnt
[dmdba@dmdb mnt]$ ./DMInstall.bin
提示图形化安装不了,需要设置xhost 用dmdba用户设置 export DISPLAY=127.0.0.1:2 注意后面2是vnc序号 xhsot +
|
安装完毕会自动打开初始化数据库或者使用dmdba运行
./dm8/tool/dbca.sh
这个是为了将数据库加入操作系统服务中。
cd /dm8/tool
下面有很多日常数据库管理工具,可以方便进行数据库管理维护,下面是各功能的介绍:
./manager 数据库管理工具,可视化数据库管理
./dts数据库迁移工具,导入数据文件或将数据库迁移到达梦
./dbca.sh 数据库配置助手,用于数据库实例的可视化增删,以及数据库服务注册(开机启停数据库)
./console 控制台工具,服务器实例参数管理/备份还原/数据库许可证等
./monitor 性能监控工具,监控系统运行情况
./analyzer审计分析程序,针对审计日志文件进行分析的工具
./dmservice.sh 达梦服务器查看器,用于监控各服务启停情况
./disql 类似oracle的sqlplus 用于连接达梦数据库
cd /dm8/doc 里面有详细的使用介绍
su – dmdba
disql sysdba/dameng123
或者指定端口:
disql sysdba/dameng123@localhost:5236
可通过:
/dm/tool/manager 图形化来管理
达梦默认的系统表空间
SYSTEM:数据字典和全局的系统数据
ROLL:存入了数据库运行过程中产生的回滚记录
TEMP:临时表空间
MAIN:存放对象数据的表空间,创建对象的时候,如果不指定表空
间,就是放在该表空间
HMAIN:存放huge table的信息的表空间。
create tablespace "TEST" datafile '/dm8/data/DAMENG/TBS01.DBF' size 32 autoextend on next 1 CACHE = NORMAL;
一般表空间出现问题需要做恢复时,需要先脱机。
脱机状态
alter tablespace TEST offline;
在线状态
alter tablespace TEST online;
5.1.4.1 表空间不足扩容
alter tablespace "TEST" resize datafile 'TBS01.DBF' to 64;
5.1.4.2 扩容表空间文件
先查看表空间有多少文件,可以图形化或者命令查看
select FILE_NAME,STATUS,TABLESPACE_NAME from dba_data_files;
5.1.4.3 增加数据文件
alter tablespace "TEST" add datafile '/dm8/data/DAMENG/TBS02.DBF' size 64;
5.1.4.4 更换存储的位置
注意:system,roll,temp 不能offline
alter tablespace TEST offline;
select tablespace_name,status from dba_tablespaces;
alter tablespace TEST rename datafile
'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs02.dbf';
alter tablespace TEST rename datafile
'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs01.dbf';
alter tablespace TEST online;
select para_name,para_value from v$dm_ini where para_name like
'TEMP%';
Roll时回滚表空间,如果不够就需要扩充
参数undo_retention
Roll 表空间不足:
Alter tablespace roll resize datafile ‘/dm8/data/DAMENG/ROLL.DBF’
to 256;
drop tablespace test; 后续还要使用先不要删;
创建一个表空间,初始大小50M,表空间由2 个数据文件组成,分别存储在不同的位置,数据文件自动扩展,每次扩展1M,每个数据文件最大100M。
create tablespace "CESHI" datafile '/dm8/CESHI1.DBF' size 50 autoextend on next 1 maxsize 100, '/dm8/CESHI2.DBF' size 50 autoextend on next 1 maxsize 100 CACHE = NORMAL;
在DM 数据库中用户管理主要涉及到三块,用户,权限,角色权限:执行特定类型sql 或是访问其他模式对象的权利系统权限:数据库对象的创建,删除,修改等等。
对象权限:对数据对象的数据的操作权限。
数据库预定义用户Sysdba
Sys:不能用于用户登录,是系统内置用户
Syssso
Sysauditor
sysdbo
三权分立(企业版)
Sysdba:数据库系统管理员
Syssso:数据安全员
Sysauditor:数据库审计员
四权分立(安全版)
Sysdba
Syssso
Sysauditor
Sysdbo :数据库对象操作员
名字:字母开头,a_z,0-9,$#_
位置:对应的表空间
密码:口令策略
0:无策略
1:禁止与用户名相同
2:口令长度不小于9
4:至少包含一个大写字母
8:至少包含一个数字
16:至少包含一个标点符号(英文状态下输入除空格和“”)
口令可以单独使用,也可以组合使用。比如:要求口令策略禁止用户
名相同,并且口令长度不小于9)
则设置口令策略为1+2=3
Faild_login_attemps:密码尝试登录次数
Password_lock_time:密码失败后锁定时间
Password_life_time 密码过期时间。
策略配置地方在:
/dm8/tool/console
drop user test cascade; 级联删除,关联的schema都会被删除
drop user test;只删除用户账号
drop role testrole;
案例1:建立用户test,用户可以创建自己的表,有属于自己的表空间,用户密码要求每60 天变更一次。
create user "TEST" identified by "dameng123"
limit password_life_time 60
default tablespace "TEST";
grant "PUBLIC","VTI" to "TEST";
grant CREATE TABLE to "TEST";
这里就使用上面那个test表空间
查看test拥有哪些权限了
select grantee,granted_role from SYS.DBA_ROLE_PRIVS where grantee='TEST';
查看public角色有哪些权限
SELECT GRANTEE,PRIVILEGE FROM SYS.DBA_SYS_PRIVS WHERE GRANTEE='PUBLIC';
规划一个用户test2,用户每60 天变更一次密码,密码尝试连
接2 次失败,账号锁定5 分钟,用户能查询dmhr.employee 表。
create user "TEST2" identified by "dameng123"
limit failed_login_attemps 2, password_life_time 60, password_lock_time 5;
grant "PUBLIC","VTI" to "TEST2";
grant SELECT on "DMHR"."EMPLOYEE" to "TEST2";
企业招聘一批录入人员,权限固定,只能录入city 表的权限。
角色:一组固定权限的集合。
create role "TESTROLE3";
grant REFERENCES ANY TABLE to "TESTROLE3";
grant INSERT on "DMHR"."CITY" to "TESTROLE3";
grant "TESTROLE3" to "TEST2";
测试一下:
[dmdba@dmdb ~]$ disql test2/dameng123
SQL> insert into dmhr.city(city_id,city_name,region_id) values('11','beijing',1);
SQL>commit;
模式(scema)是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集模式对象:表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域Dm 创建用户的时候,会默认去创建一个同名的式,如果你创建的用户,模式名已存在,用户无法创建一个用户可以拥有多个模式。
create table "TEST"."STU"
(
"ID" CHAR(10) not null ,
"SNAME" VARCHAR(20) not null ,
"SEX" CHAR(1),
"AGE" INT,
"TEL" VARCHAR(15) not null ,
"ADDRESS" VARCHAR(50),
primary key("ID")
)
storage(initial 1, next 1, minextents 1, fillfactor 0, on "STU");
comment on table "TEST"."STU" is 'STUDENT INFO';
增加列
alter table DMHR.TEST add column(AGE INT);
删除列
alter table DMHR.TEST drop column AGE;
1、非空约束
SQL> create table test.t1(id int);
48
SQL> alter table test.t1 modify id int not null;
2、唯一约束(唯一约束遇到null,忽略,可录入多个null 值)
SQL> create table test.t3(id int, name varchar(20) unique);
SQL>insert into test.t3 values(1,'ssss');
SQL> insert into test.t3 values(2,null);
SQL> insert into test.t3 values(3,null);
SQL> insert into test.t3 values(4,null);
commit;
3、主键约束(一张表只能有一个主键约束)
SQL> create table test.t4(id int primary key, name varchar(20));
SQL> create table test.t5(id int);
SQL> alter table test.t5 add constraint t5_pri primary key(id);
4、检查约束
SQL> create table test.t6(id int check(id>=5));
5、外健约束
SQL> create table test.t8(sid int primary key ,pid int);
SQL> create table test.t9(id int primary key,sid int foreign key references
test.t8(sid));
外键一定是其他表的主键。
6、对列加备注;
SQL> comment on column test.t8.sid is '测试';
查看约束
select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS from dba_constraints where TABLE_NAME='T8';
select * from dba_col_comments where table_name='T8';
create table test.t10(sid int);
制造数据
vi test.sql
insert into test.t10(sid) values(1);
insert into test.t10(sid) values(2);
insert into test.t10(sid) values(3);
insert into test.t10(sid) values(4);
insert into test.t10(sid) values(5);
insert into test.t10(sid) values(6);
两种操作,命令行:
SQL> start /home/dmdba/test.sql
图形化:
/dm8/tool/dts
这个执行特别慢。
完成后执行:
select * from test.t10
1、重命名:
SQL> alter table test.t1 rename to tt;
启用和禁用约束
SQL>select
CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS from
dba_constraints where TABLE_NAME='T3';
alter table test.t3 disable constraint CONS134218845;
alter table test.t3 enable constraint CONS134218845;
删除表:
SQL> drop table test.tt;
视图分类:简单视图,复杂视图,物化视图
1、简单视图
创建语法:create view() as select() from() where ()
修改语法:craete or replace view() as select () from () where ()
SQL> create view test.v1 as select * from dmhr.employee;
SQL> create or replace view test.v1 as select employee_name from
dmhr.employee limit 5;
删除视图
SQL> drop view test.v1;
查询视图
DBA_VIEWS;
索引的作用:加快表的查询,增加数据库的查询性能,对数据库做DML 操作的时候,数据库会自动维护索引,索引占空间。
达梦支持的索引:二级索引,位图索引,唯一索引,复合索引,函数索引,分区索引等。
建立索引的规则:
适合建索引的情况:
1、经常查询的列
2、连接条件列
3、谓词经常出现的列(where)
4、查询是返回表的一小部分数据。
不适合建索引的情况
1、列上有大量的null
2、列上的数据是有限的(性别)
查看表的索引
select table_name,index_name from dba_indexes where
table_name='STU';
创建索引:
规划索引表空间,表的数据无序的,索引的数据是有序的
创建索引表空间
SQL> create tablespace index1 datafile '/dm8/data/DAMENG/index1_01.dbf' size 32;
建索引
SQL> create table test.emp as select * from dmhr.employee;
SQL> create table test.dept as select * from dmhr.department;
SQL> create index ind_emp on test.emp(employee_id) tablespace index1;
查看表的执行计划
SQL> explain select * from test.emp where employee_id<20;
1 #NSET2: [0, 42, 280]
2 #PRJT2: [0, 42, 280]; exp_num(12), is_atom(FALSE)
3 #SLCT2: [0, 42, 280]; EMP.EMPLOYEE_ID <20
4 #CSCN2: [0, 856, 280]; INDEX33555551(EMP)
没有走我们自己建的索引,统计信息是旧的,需要得新收集统计信息;
收集统计信息
SQL> begin
dbms_stats.gather_table_stats('TEST','EMP');
END;
/
DMSQL 过程已成功完成
SQL> explain select * from test.emp where employee_id<20;
1 #NSET2: [0, 1, 280]
2 #PRJT2: [0, 1, 280]; exp_num(12), is_atom(FALSE)
3 #BLKUP2: [0, 1, 280]; IND_EMP(EMP)
4 #SSEK2: [0, 1, 280]; scan_type(ASC), IND_EMP(EMP), scan_range(null2,20)
注意:创建索引,删除索引,重建索引和收集统计信息,不要在业务
高峰去做。在业务低谷的时候去操作。
维护索引:
重建索引:
SQL> alter index test.ind_emp rebuild;
SQL> alter index test.ind_emp rebuild online; ---慎用
删除索引:
SQL> drop index test.ind_emp;
注意:达梦默认不会自动收集统计信息,需要手动收集,可以利用作
业来定时的自动收集。
DMSQL 基于sql92,部分sql99 的。
Sql 语句的分类
DQL:数据查询语句select ...from....where 组成的查询块
DDL:数据定义语句create table create view create index 等等
DML:数据操作语句insert update delete
DCL:数据控制语句用于授予或回收访问数据库的某种特权,控制数据操作纵事务,对数据库进行监视等
Grant revoke commit rollback lock unlock 等。
语法:select () from () where ()
过滤查询
Where <搜索条件>
Where 子句常用的查询条件
谓词种类谓词
比较> <<= >= != not
确定范围Between and >= and <=
集合In not in
字符匹配Like not like
空值Is null is not null
这些和日常oracle语法都一样
多重条件And or
注意like用法 %号模糊匹配,_下划线匹配后面一个字,两个下划线两个字
select employee_name,salary from test.emp where employee_name like
'刘%';
select employee_name,salary from test.emp where employee_name like
'刘_';
查找工资在20000 到30000 之间的员工。
Sql>select employee_name,salary from test.emp where salary between
20000 and 30000;
等价的sql
SQL> select employee_name,salary from test.emp where salary >=20000
and salary<=30000;
5.4.3.1 单行函数
大小写处理函数
5.4.3.2 字符处理函数
5.4.3.3 数值处理函数
ROUND:将值舍入到指定的小数位(四舍五入)
ROUND(49.36, 1) 49.4
TRUNC:将值截断到指定的小数位(不舍入)
TRUNC(49.36,1) 49.3
MOD:返回除法运算的余数
MOD(100, 3) 1
5.4.3.4 日期函数
MONTHS_BETWEEN 两个日期之间的月数
ADD_MONTHS 将日历月份添加到日期中
NEXT_DAY 指定日期的下一天
LAST_DAY 月份的最后的一天
显示转换
TO_CHAR
select employee_name,to_char(salary,'L999,999.00') from
dmhr.employee;
TO_NUMBER (char [,fmt])
TO_DATE (char [,fmt])
select employee_name,hire_date,to_date(hire_date,'yyyy-mm-dd') from
dmhr.employee;
5.4.3.5 分组函数
分组函数作用于一组数据,并对一组数据返回一个值。
常见的分组函数:
AVG 、COUNT 、MAX 、MIN 、SUM…
案例1:求各个部门的最高工资。
select department_id,max(salary) from test.emp group by
department_id;
案例2:找出部门平均工资大于10000 的所有部门。
select department_id,avg(salary) av1 from test.emp
group by department_id having avg(salary)>10000 order by av1 desc;
注意:having 表示分组后的数据进行过虑,having 不能单独使用,一定是和group by 一起使用的,分组函数不能出现在where 子句中。
5.4.3.6 排序order by
升序:asc 降序:desc 默认是升序
案例3:从邮件地址中取出邮箱名字
select substr(email,1,(instr(email,'@')-1)), employee_name from test.emp limit 10;
语法:select () from join () on()
1、内连接:结果集显示全部满足条件的记录。
select employee_name,department_name
from test.emp e join test.dept d on e.department_id=d.department_id
2、外连接
左外连接:把left join 左边的全部显示出来,右边的只显示满足条件
的,不满足条件的用null 代替
select employee_name,department_name
from test.emp e left join test.dept d on
e.department_id=d.department_id
右外连接:把right join 右边的全部显示出来,左边的只显示满足条
件的,不满足条件的用null 代替
select employee_name,department_name
from test.emp e right join test.dept d on
e.department_id=d.department_id
全外连接=左外连接+右外连接
select employee_name,department_name
from test.emp e full join test.dept d on
e.department_id=d.department_id
insert into
insert into test.dept values('1106', 'aaaaa', '9002', 9);
update
update test.emp set department_id=null where employee_id='1001';
delete
delete test.dept where department_id='1106';
MERGE 语法
使用merge into 语法可以合并update 和insert 语句
merge into test.t1 using test.t12 on (test.t1.c1=test.t12.c3)
when MATCHED THEN update set test.t1.c2=test.t12.C4
when not matched then insert (c1,c2) values (test.t12.c3,t12.c4);
数据库备份就是制作数据库的“副本”防止数据库丢失数据,在数据丢失后重建数据库.
完全备份是指一个备份包含指定数据库或表空间的所有数据
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。
备份的方式:物理备份和逻辑备份
备份的介质:磁盘,磁带,光盘
集群:数据守护,dsc (rac)
也支持第三方的备份软件:爱数,鼎甲
:
5.5.3.1 热备管理工具方式
backup database full to "DB_DAMENG_FULL_2020_06_21_22_58_54" backupset 'DB_DAMENG_FULL_2020_06_21_22_58_54';
命令行方式下全备,增量备
全备
SQL> backup database full backupset '/dm8/backup/fullbak2';
增量备
SQL> backup database increment backupset '/dm8/backup/incr_bak';
表空间还原:
表空间只能脱机还原,使用Dmrman
模拟表空间test 损坏:
[dmdba@localhost DAMENG]$ mv TEST01.DBF TEST01.DBF.BAK
重启实例服务,实例处于mount 状态。关闭实例服务
使用dmrman 进行还原
1、校验备份集
RMAN> check backupset '/dm8/backup/fullbak2';
2、还原表空间
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace test
from backupset '/dm8/backup/fullbak2';
2、恢复表空间
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace test;
重启实例服务
5.5.3.2 冷备控制台方式
冷备:dmap 服务是打开的,数据库实例是关闭的。
[root@dmdb tool]# ./console
勾上dmap会造成连接通信超时
【问题原因】DmServerDMSERVER服务没有关闭。DMRMAN是脱机备份,备份时一定要关闭数据库。
【解决方法】:使用root执行如下命令关闭数据库实例服务(DMSERVER是数据库实例名)即可。
systemctl stop DmServiceDMSERVER.service
脱机还原时,先还原再恢复。
特别注意,如果还原时候出现服务无法启动,八成你是用root用户启动的图形化界面,所以造成了还原时部分文件权限发生改变,应该用dmdba启动./console
systemctl start DmServiceDMSERVER.service
5.5.3.3 冷备DMRMAN 工具去备
[-137]:服务器正在运行或者存在其他进程正在操作同一个库
需要停止服务
systemctl stop DmServiceDMSERVER.service
冷备:要停止数据库,如果不停止会造成数据丢失
5.5.3.4 逻辑备份
导入导出(dexp,dimp)
分四级别:分别独立,互斥不能同时存在
Ø 数据库级别
Ø 用户
Ø 模式
Ø 表级
1、逻辑导出
[dmdba@dmdb bin]$ ./dexp sysdba/dameng123@localhost:5236 file=dexp01.dmp log=dexp01.log directory=/dm8/backup/dexp full=y
2、逻辑导入
[dmdba@ dmdb bin]$ ./dimp sysdba/SYSDBA@localhost:5239 file=/dm8/backup/dexp/dexp01.dmp log=/dm8/backup/dexp/dimp01.log
.
call SP_CREATE_JOB('TEST01',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('TEST01');
call SP_ADD_JOB_STEP('TEST01', 'job1', 5, '01010/dm8/backup|/dm8/backup', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('TEST01', 'task1', 1, 2, 1, 40, 0, '23:52:03', NULL, '2020-06-21 23:52:03', NULL, '');
call SP_JOB_CONFIG_COMMIT('TEST01');
达梦支持的语言:c c++ java python php perl .net
15.1 Linux 环境中配置ODBC(以root 配置)
检查gcc 包
[root@localhost ~]# rpm -aq|grep gcc
[root@dmdb unixODBC-2.3.0]# yum install gcc -y
解压安装包
[root@localhost opt]# tar -xzvf unixODBC-2.3.0.tar.gz
配置odbc
[root@localhost unixODBC-2.3.0]# ./configure --enable-gui=no
(注意如果抱错,就是因为gcc没装)
编译安装ODBC
[root@localhost unixODBC-2.3.0]# make && make install
查看odbc 的版本
[root@localhost unixODBC-2.3.0]# odbc_config --version
2.3.0
查看ODBC 配置文件的路径
[root@dmdb unixODBC-2.3.0]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
配置odbc.ini 和odbcinst.ini
vi /usr/local/etc/odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
vi /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so