DCA学习笔记
1、安装与卸载
卸载
采用图形界面进行卸载
在/tool目录下执行./unistall.sh
安装
采用图形界面进行安装:
采用root账户进行安装时,执行在安装目录下执行./DMinstall.bin进行安装;
非root用户采用图形界面安装时需要,查看root用户下 的DISPLAY变量,并设置DISPLAY环境变量
2、创建实例
使用 ./tool/dbca.sh创建实例
3、表空间管理
新建表空间
采用图形界面进行安装
管理数据文件
点击添加→写入表空间名→添加文件路径
归档管理
右键点击连接实例,选择管理服务器
设置数据库为挂起状态
设置归档
打开数据库
4、用户管理
用户密码策略设置
用户口令最长为 48 字节,创建用户语句中的 PASSWORD POLICY 子句用来指定该用
户的口令策略, 如果没有指定, 则使用系统默认口令策略(由参数 PWD_POLICY 指定), 系
统支持的口令策略有:
⚫ 0 无限制。但总长度不得超过 48 个字节
⚫ 1 禁止与用户名相同
⚫ 2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值
⚫ 4 至少包含一个大写字母(A-Z)
⚫ 8 至少包含一个数字(0-9)
⚫ 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置 口
令策略为 2+4=6 即可。
系统口令策略的修改:
select * from SYS.“V$PARAMETER” t where name =‘PWD_POLICY’;
alter system set ‘PWD_POLICY’ =6 BOTH;
用户权限设置
角色就是一系列权限的集合,是方便用户操作的一个方式,因为把很多的权限(如很多表的查询权限,或者其他权限等)打包到一个角色中,后面要授予某个用户所有这些权限,只需要【grant 角色 to 用户】就可以了。
2. 达梦数据库默认有三个角色:DBA、RESOURCE、PUBLIC 三个角色。
3. DBA 角色中,是系统全部权限的即可,授予了 DBA,就是数据库系统中的老大了。
4. RESOURCE 角色中,是对应用户自己用户下的全部权限,授予了 RESOURCE ,就是用户可以在自己的用户下尽情操作了。
角色管理
DBA: 几乎具有所有 DDL 和 DML 权限, 但没有审计和强制访问控制权限。
RESOURCE:具有本模式下对象的 DDL 操作权限和 DML 操作权限。
PUBLIC:具有用户模式下表或视图的 DML 数据操作权限, 及 user 开头的数据字典的权限。
VTI:具有 V$开头动态视图的查询权限
SOI: 有 SYS 开头系统数据字典的权限。
角色可以禁用, 默认是启用状态, 使用 SP_SET_ROLE 函数禁用;
角色相关数据字典:
select * from DBA_ROLES;
创建角色
create role r1;
角色权限管理
赋予系统权限(数据库权限):
grant create table to r1;
grant create index to r1 with admin option;
回收系统权限:
revoke create table from r1;
赋予对象权限:
grant SELECT on dmhr.employee to r1 ;
grant select on dba_tablespaces to r1 with GRANT option;
回收对象权限:
revoke SELECT on dmhr.employee from r1;
revoke SELECT on dmhr.employee from r1 CASCADE;
注:赋予对象权限时使用了 grant option,权限回收时需要增加 cascade 级联回收对象权限。
赋予角色权限:
grant vti to r1;
回收角色权限:
revoke vti from r1;
删除角色:
drop role r1;
5、模式对象管理
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema;
一个用户还可以使用其他的schema(Oracle数据库也可通过权限管理实现访问其他schema);
创建模式不指定用户时,该模式默认为SYSDBA拥有;
在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同;
用户可以直接访问同名模式对象,但如果要要访问其他模式对象,则必须具有对象权限;
当用户要访问其他模式对象时,必须附加模式名作后缀(schema.table);
用户是用来连接数据库对象,而模式是用来创建及管理对象的。
角色管理
#创建模式
create schema (模式名) [AUTHORIZATION <用户名>]
#删除模式
drop schema <模式名> [RESTRICT | CASCADE];
6、数据库的备份还原
数据库备份是日常工作最重要的工作之一,数据库备份是为了在数据库发生故障时,通过备份还原,将数据库恢复到可用状态
DM8支持三种方式的备份:逻辑备份、使用联机SQL命令进行备份、DMRMAN工具的备份
在进行备份操作前,先说一些基本概念;
数据备份
库备份:备份整个库,拷贝数据库中所有有效数据页如果是联机备份,还会拷贝归档日志
表空间备份:只支持联机状态下进行
表备份:只支持联机状态下进行,一次备份操作只能备份一张表,不支持增量
归档日志备份:既可以联机也可以停机
一致性备份和非一致性备份
一致性备份包含了完整的数据文件和归档日志信息,不指定without log参数即为一致性备份,脱机备份会将检查点之后的redo log拷贝到备份集,因此,脱机备份一定是一致性备份
非一致性备份,只包含了数据文件,没有归档日志,利用非一致性备份的库无法正常启动,必须依靠归档日志。表空间备份、指定了without log参数的联机备份一定是非一致性备份
数据还原
联机还原:表还原可以在联机状态下进行
脱机还原:是指在数据库关闭状态下,通过dmrman进行还原。
根据备份集类型,数据库还原可以分为库还原、表空间还原和表还原。库和表空间还原必须处于脱机状态下
还原的表空间不能是TEMP表空间
实现方式
select * from dba_data_files;
select * from v$datafile;
select * from v$tablespace;查询的结果中status的取值为int类型
0:ONLIE 1:OFFLINE 2:RES_OFFLINE 3:CORRUPT
ALTER DATABASE RESIZE LOGFILE ‘LOG1.LOG’ to 2048;
ALTER DATABASE RESIZE LOGFILE ‘LOG2.LOG’ to 2048;
ALTER DATABASE RESIZE LOGFILE ‘LOG3.LOG’ to 2048;
注意:只能调大,不能调小
archive 日志:默认不开启。生产环境建议开启归档
归档日志文件大小建议和redo log大小设置成一样。归档日志建议单独存放在一块磁盘上
查询归档配置
select * from v$dm_arch_ini;
查询归档状态
select * from v$arch_status;
在线开启方式
alter database mount;
alter database add archivelog ‘dest=/dm8/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=0’
alter database archivelog;
alter database open;
也可以修改dm.ini文件中的ARCH_INI值为1
并在数据文件路径下添加dmarch.ini文件
dmarch.ini配置文件
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmarch/ #本地归档文件存放路径
ARCH_FILE_SIZE = 2048 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 10240 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
归档日志切换
alter database archivelog current;
alter system archive log current;
alter system switch logfile;
三个语句都可
4种模式
1.full全库备份
./dexp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log FULL=Y
2.用户级 OWNER
备份DMTEST用户下的表
./dexp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log OWNER=DMTEST
3.模式级 SCHEMAS
备份模式DMTEST下的表
./dexp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log SCHEMAS=DMTEST
4.表级 TABLES
备份表
./dexp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log TABLES=table1,table2,…
还原
还原数据库
./dimp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log FULL=Y
还原DMTEST用户下的表
./dimp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log OWNER=DMTEST
还原模式DMTEST下的表
./dimp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log SCHEMAS=DMTEST
还原表
./dimp USERID=SYSDBA/Dameng123:5238 FILE=db16_full.dmp DIRECTORY=/dm8/backup/ LOG=db16_full.log TABLES=table1,table2,…
数据库备份
备份方式:dmap辅助进程方式和无辅助进程方式。可以通过dm.ini的bak_use_ap参数来设定,可以取值1或者2。默认值为1
参数值1为dmap辅助进程方式,2为无辅助进程方式
查询当前实例备份路径:
select * from v$dm_ini where para_name like ‘%BAK_PATH%’;
最简单的备份语句:
BACKUP DATABASE BACKUPSET ‘db_full_bak_20220718’;
备份的路径即为上边的SQL查询的结果中的路径
BACKUP DATABASE参数:
FULL 备份类型,表示全备,可以不用指定,默认为全备份
DDL_CLONE 数据库克隆,会备份Huge表。该参数只能在全备下使用
INCREMENT 备份类型,增量备份,如果要执行增量备份,则需要制定此参数
CUMULATIVE 用户增量备份中,指明增量备份的类型,如果不指定,默认为差异增量备份。
差异增量和累计增量区别:
差异增量备份:备份上级备份或者同级备份以来变化的数据块
累计增量备份:备份上级备份以来变化的数据块
WITH BACKUPDIR 用户增量备份中,指定基备份的搜索目录,若不指定,在默认的备份路径下进行寻找。如果基备份不在默认路径下,此参数必须指定
BASE ON BACKUPSET 用于增量备份中,指定基备份的路径
TO 指定生成备份的名称。如果不指定,则系统随机生成。格式为DB_库名_备份类型_备份时间 其中备份时间为开始备份的系统时间
BACKUPSET 指定当前备份集的生成路径。若指定相对了路径,则在默认备份路径下生成。如果不指定,则在默认路径下按照预定规则生成,格式为DB_库名_备份类型_备份时间 其中备份时间为开始备份的系统时间
DEVICE TYPE 储存备份集的介质类型,支持DISK和TAPE,默认DISK
PARMS 只对介质类型为TAPE有效
BACKUPINFO 备份的描述信息
MAXPIECESIZE 最大备份片的文件大小上限。以M为单位,最小32M。32位系统最大2G,64为系统最大128G
LIMIT 备份时最大读写速率,单位为M/S,默认0表示无限制
IDENTIFIED BY 备份时加密。加密策略参照dm.ini下的PWD_POLICY
WITH ENCRYPTION 指定加密类型,0表示不加密,1表示简单加密,2表示完全加密
对于增量备份加密,如果基备份加密,则增量备份必须用同样加密方式。如果基备份没有加密,增量备份则没有要求
COMPRESSED 备份集是否进行压缩,取值0——9。数字越大,压缩率越高,速度越慢
WITHOUT LOG 是否备份日志,如果使用,则表示不备份日志。如果使用此参数,使用DMRMAN进行还原时,必须指定WITH ARCHIVEDIR参数指定归档日志路径。
TRACE FILE 指定生成的trace文件,如果不指定,则在log目录下生成DM_SBTTRACE_年月.log 文件
TRACE LEVEL 是否启用trace文件,取值1、2,默认1,表示不启用
TASK THREAD 备份过程中的线程数,取值范围0——64,默认4。如果指定为0,则调整为1。如果超过服务器CPU核数,则调整为主机核数。线程数*并行数不超过512
PARALLEL 备份的并行数和拆分的数据块大小。取值范围0——128。默认为4。设置为0或者1代表不启用并行
设定备份集路径
/dm8/backup/db_full_bak_20220718
BACKUP DATABASE BACKUPSET ‘/dm8/backup/db_full_bak_20220718’
设置备份名
备份名称为WEEKLY_FULL_BAK BACKUPSET
BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET ‘/dm8/backup/db_full_bak_20220718’;
增量备份指定基备份
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718’;
指定介质类型
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718_1’ DEVICE TYPE DISK;
添加备份描述
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718_2’ BACKUPINFO ‘增量’;
限制备份片大小
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718_3’ MAXPIECESIZE 1024;
备份压缩
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718_4’ COMPRESSED LEVEL 2;
并行备份
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘db_full_bak_20220718’ BACKUPSET ‘db_inc_bak_20220718_5’ PARALLEL 6;
表空间备份
备份表空间操作和备份数据库一样。数据库必须运行在归档模式下
最简单的备份表空间的语句
BACKUP TABLESPACE MAIN BACKUPSET ‘TS_MAIN_FULL’;
BACKUP TABLESPACE参数:
参考BACKUP DATABASE参数
表空间的备份和数据库的备份参数基本一致,可参考数据库的备份
表备份
和备份数据库和表空间不同,备份表不需要在归档模式下也可以进行备份
最简单的备份表的语句
BACKUP TABLE DMTEST.T1 BACKUPSET ‘TABLE_T1_BAK’;
BACKUP TABLE参数:
参考BACKUP DATABASE参数
归档备份
归档备份前提:
归档中的db_magic和permanent_magic和数据库的这两个值必须相同
服务器必须配置归档
归档日志必须连续,如果不连续,前面的连续部分会忽略,只会备份最近的连续的归档
最简单的归档备份语句
BACKUP ARCHIVE LOG ALL BACKUPSET ‘ARCH_BAK_ALL’;
BACKUP ARCHIVE LOG参数
ALL 备份所有归档,默认为ALL
FROM LSN 指定起始的LSN
UNTIL LSN 指定备份截止的LSN
注意:起始和截止的LSN可以通过查询v$ARCH_FILE进程查询
select * from v$ARCH_FILE;
FROM TIME 指定备份开始的时间点
UNTIL TIME 指定备份截止的时间点
BETWEEN…AND… 指定备份的时间区间
DELETE INPUT 用来指定备份完成后是否删除归档日志
TO 指定备份的名称,如果不指定,则默认生成 ARCH_备份时间 备份时间为备份开始系统时间
BACKUPSET 指定备份集的路径。如果不指定,生成名为 ARCH_LOG_时间
其他参数参考BACKUP DATABASE参数
使用加密和跟踪日志文件
使用加密
密码长度为9——48个字节,默认的加密算法为AES256_CFB
使用加密级别为2,加密算法为RC4的加密
BACKUP DATABASE BACKUPSET ‘db_full_bak_20220718_1’ IDENTIFIED BY “123456789” WITH ENCRYPTION 2 ENCRYPT WITH RC4;
设置跟踪日志文件
指定了TRACE FILE但是TRACE LEVEL设定为1,会生成TRACE文件,但没有TRACE信息
BACKUP DATABASE BACKUPSET ‘db_full_bak_20220718_trace’ TRACE FILE ‘/dm8/log/DB_FULL_TRACE.log’ TRACE LEVEL 1;
管理备份
备份管理相关的过程和函数
SF_BAKSET_BACKUP_DIR_ADD 添加备份目录。
设定
SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,‘/dm8/data/DAMENG/bak’);
查询,如果返回结果为1,则代表成功
select SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,‘/dm8/data/DAMENG/bak’);
SF_BAKSET_BACKUP_DIR_REMOVE 删除内存中指定的备份目录
设定
SF_BAKSET_BACKUP_DIR_REMOVE(‘DISK’,‘/dm8/data/DAMENG/bak’);
查询,返回1目录删除成功、目录不存在或者目录为空
返回0目录为库默认路径;其他情况报错
SELECT SF_BAKSET_BACKUP_DIR_REMOVE(‘DISK’,‘/dm8/data/DAMENG/bak’);
SF_BAKSET_BACKUP_DIR_REMOVE_ALL 删除内存中全部的备份目录
不需要添加参数
查询,返回1代表目录清楚成功
select SF_BAKSET_BACKUP_DIR_REMOVE_ALL()
SF_BAKSET_CHECK 对备份集进行校验
参数为(‘存储介质’,‘备份集路径’)
SELECT SF_BAKSET_CHECK(‘DISK’,‘/dm8/data/DAMENG/bak/db_full_bak_20220718’)
SF_BAKSET_REMOVE 删除指定设备类型和指定备份集目录的备份集
参数为(‘存储介质’,‘备份路径’,删除选项)
删除选项为int类型,取值为0或者1。0单独删除,1级联删除。1用于删除级联的增量备份
SELECT SF_BAKSET_REMOVE(‘DISK’,‘/dm8/data/DAMENG/bak/db_full_bak_20220718’,1);
SF_BAKSET_REMOVE_BATCH 批量删除满足指定条件的所有备份集
参数为(‘存储介质’,‘截止时间’,范围,‘对象名称’)
只删除截止时间以前的备份。范围 range代表备份级别1库2表空间3表4归档日志
对象名称obj_name备份集中的对象名称。仅在表空间和表级有效。
SELECT SF_BAKSET_REMOVE_BATCH (‘DISK’, now(), NULL, NULL);
SP_DB_BAKSET_REMOVE_BATCH 批量删除指定时间之前的数据库备份集
参数为(‘存储介质’,‘截止时间’)
CALL SP_DB_BAKSET_REMOVE_BATCH (‘DISK’, now());
SP_TS_BAKSET_REMOVE_BATCH 批量删除指定表空间对象及指定时间之前的表空间备份集
参数为(‘存储介质’,‘截止时间’,‘表空间名’)
CALL SP_TS_BAKSET_REMOVE_BATCH(‘DISK’, now(),‘MAIN’)
SP_TAB_BAKSET_REMOVE_BATCH 批量删除指定表对象及指定时间之前的表备份集
参数(‘存储介质’,‘截止时间’,‘模式名’,‘表名’)
CALL SP_TAB_BAKSET_REMOVE_BATCH(‘DISK’,NOW(),‘DMTEST’,‘T1’)
SP_ARCH_BAKSET_REMOVE_BATCH 批量删除指定条件的归档备份集
参数(‘存储介质’,‘截止时间’)
CALL SP_ARCH_BAKSET_REMOVE_BATCH(‘DISK’,NOW())
备份管理相关动态视图
V$BACKUPSET 显示备份集基本信息
V$BACKUPSET_DBINFO 显示备份集的数据库相关信息
V$BACKUPSET_DBF 显示备份集中数据文件的相关信息
V$BACKUPSET_ARCH 显示备份集的归档信息
V$BACKUPSET_BKP 显示备份集的备份片信息
V$BACKUPSET_SEARCH_DIRS 显示备份集搜索目录
V$BACKUPSET_TABLE 显示表备份集中备份表信息
V$BACKUPSET_SUBS 显示并行备份中生成的子备份集信息
V$BACKUP_MONITOR 显示当前备份任务实时监控信息
V$BACKUP_HISTORY 显示最近 100 条备份监控信息
V$BACKUP_FILES:显示当前备份任务待备份数据文件列表
表还原
简单的表还原语句
RESTORE TABLE DMTEST.T1 FROM BACKUPSET ‘TABLE_T1_BAK’;
RESTORE TABLE参数
表名 指定需要还原的表名,指定表名时,数据库必须存在该表,否则报错,不会再备份集中判断是否存在该表
STRUCT 执行表结构还原,如果不指定,则认为是还原表数据。表数据还原要求还原目标表与备份集中完全一致。
KEEP TRXID 指定还原后数据页上的记录的TRXID保持不变,若发现备份时系统最大TRXID大于等于当前系统的最大TRXID,则将当前系统的最大事务ID+1000。调整后副作用,rec_id>=next_trxid的记录,或者rec_id<=bak_max_trxid+1000的记录,可能因为还原后,原来删除的数据,又可见了。
BACKUPSET、DEVICE TYPE 、PARMS 、IDENTIFIED BY 、ENCRYPT WITH 、TRACE FILE 、TRACE LEVEL 参数请参考BACKUP DATABASE中对应的参数
使用说明:
仅支持普通用户表进行还原,包括堆表。系统表、临时表、物化视图表、物化视图附属表、日志表以及特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表不支持还原
列类型为对象类型的表不支持还原
若还原表中存在位图连接索引或者位图连接虚拟索引则不支持还原
若为加密库,表还原时要求与目标库加密算法一致
备份集路径应包含完整的备份。包括.meta和.bak文件
目标表所在表空间必须处于脱机状态
守护集群,允许主库还原,备库不允许
MOUNT和SUSPEND状态不可以进行还原
MPP不允许还原表
如果指定了STRUCT参数,执行表结构还原,会根据备份集中的备份表还原要求,对目标表进行校验。并删除目标表中的二级索引和约束
若不指定 STRUCT 关键字,则执行表数据还原,表数据还原默认仅会将备份表中聚集索引上的数据进行还原。表数据还原默认仅会在目标表定义与备份表一致且不存在二级索引和约束的情况下执行
若用户指定 TRACE FILE,则指定的文件不能为已经存在的文件,否则报错;也不可以为 ASM 文件
表还原不会检查默认值
若表列进行了加密,不能跨库,只能还原到备份库
举例
CREATE TABLE TAB_FOR_RES_01(C1 INT);
BACKUP TABLE TAB_FOR_RES_01 BACKUPSET ‘tab_bak_for_res_01’;
SELECT SF_BAKSET_CHECK(‘DISK’,‘tab_bak_for_res_01’);
RESTORE TABLE TAB_FOR_RES_01 FROM BACKUPSET ‘tab_bak_for_res_01’
备份和还原时可以不用指定路径,默认存放的路径为v$dm_ini的BAK_PATH对应的路径下
表中存在索引,需要先使用STRUCT参数进行表结构还原
CREATE TABLE TAB_FOR_RES_02(C1 INT);
CREATE INDEX I_TAB_FOR_RES_02 ON TAB_FOR_RES_02(C1);
BACKUP TABLE TAB_FOR_RES_02 BACKUPSET ‘tab_bak_for_res_02’;
SELECT SF_BAKSET_CHECK(‘DISK’,‘tab_bak_for_res_02’);
RESTORE TABLE TAB_FOR_RES_02 STRUCT FROM BACKUPSET ‘tab_bak_for_res_02’;
RESTORE TABLE TAB_FOR_RES_02 FROM BACKUPSET ‘tab_bak_for_res_02’;
还原时不重建索引或者不重建约束
不重建索引使用WITHOUT INDEX
RESTORE TABLE TAB_FOR_RES_01 WITHOUT INDEX FROM BACKUPSET ‘tab_bak_for_res_01’;
不重建约束使用WITHOUT CONSTRAINT
RESTORE TABLE TAB_FOR_RES_01 WITHOUT CONSTRAINT FROM BACKUPSET ‘tab_bak_for_res_01’;
7、数据库作业管理
作业步骤”,它可以执行SQL脚本,备份数据库,重组数据库,更新统计信息,数据迁移。
8、数据库开发
DM 支持开发语言的种类非常对,对绝大部分语言都支持
JDBC
需要用到对应的jar包:
DMJDBCDriver18.jar
需要进行配置,如上图所示:
ODBC
下载odbc源码包:
tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0/
./configure
make
make install
安装完成,接下来进行配置:
cd /usr/local/etc/
vim odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5236
上面的配置根据自己数据库的实际情况进行配置
vi odbcinst.ini
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so