DM数据库的版本介绍
开发版:有时间和并发数限制,不能作为商用
标准版:小型应用,没有集群等高级功能和特性
企业版:三权分立,大中型企业使用,具有集群等高级特性
安全版:基于企业版的四权分立,安全特性进一步增强(强访问控制、客体重用等)
DM8数据库安装
1、确认服务器软硬件信息
查看cpu信息:
lscpu
cat /proc/cpuinfo
查看内存使用情况:
free -g
查看磁盘、分区信息:
fdisk -l 和 df -lh
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
磁盘io性能测试:
缓冲写:dd if=/dev/zero of=/opt/testw.dbf bs=1M count=10240
缓冲读:dd if=/opt/testr.dbf of=/dev/null bs=4k
纯写:dd if=/dev/zero of=/opt/testw.dbf bs=1M count=10240 oflag=direct
纯读:dd if=/opt/testr.dbf of=/dev/null bs=4k oflag=direct
2、规划数据库路径并且授权
mkdir /dm8
chown -R dmdba :dinstall /dm8
3、新建dmdba用户
groupadd dinstall
useradd -g dinstall
passwd dmdba
更改用户 dmdba 的密码。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
4、修改用户资源限制
vi /etc/security/limits.conf
dmdba soft nproc 65535
dmdba hard nproc 65535
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
可以通过以下命令临时修改最大 文件打开数
prlimit --nofile=65535:65535 --pid 13508
5.dmdba用户安装数据库
./DMInstall.bin -i
root用户执行
/home/dmdba/dmdbms/script/root/root_installer.sh
前台启动
cd /home/dmdbadmdbms/bin
./dmserver /dm8/DAMENG/dm.ini
**出现SYSTEM IS READY即为数据库启动正常**
执行exit停止数据库
**DM Database Server shutdown successfully.**
6、数据库实例状态
shutdown:关闭状态
mount:配置状态
open:数据库打开状态,数据库对外提供服务
suspend:挂起状态
7、初始化数据库实例
[dmdba@localhost bin]$ ./dminit help
initdb V7.6.0.209-Build(2019.10.25-114655)ENT
db version: 0x7000a
file dm.key not found, use default license!
License will expire in 14 day(s) on 2020-10-30
格式: ./dminit KEYWORD=value
例程: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字 说明(默认值)
--------------------------------------------------------------------------------
INI_FILE 初始化文件dm.ini存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16、32,单位:页
PAGE_SIZE 数据页大小(8),可选值:4、8、16、32,单位:K
LOG_SIZE 日志文件大小(256),单位为:M,范围为:64M ~ 2G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE 权限管理模式(0),可选值:0[TRADITION],1[BMJ]
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD 设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
TIME_ZONE 设置时区(+08:00)
PAGE_CHECK 页检查模式(0),可选值:0/1/2
EXTERNAL_CIPHER_NAME 设置默认加密算法
EXTERNAL_HASH_NAME 设置默认HASH算法
EXTERNAL_CRYPTO_NAME 设置根密钥加密引擎
RLOG_ENC_FLAG 设置日志文件是否加密(N),可选值:Y/N,1/0
USBKEY_PIN 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE 设置页加密分片大小,可选值:512、4096,单位:Byte
ENCRYPT_NAME 设置全库加密算法
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH MAIN数据文件镜像
ROLL_MIRROR_PATH 回滚文件镜像路径
MAL_FLAG 初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG 初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL 初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH 是否使用改进的字符类型HASH算法(1)
DCP_MODE 是否是DCP代理模式(0)
DCP_PORT_NUM DCP代理模式下管理端口
ELOG_PATH 指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM ECS模式下AP协同工作的监听端口
HELP 打印帮助信息
cd /home/dmdba/dmdbms/bin
./dminit path=/dm8 PAGE_SIZE=16
通过查看dminit***.log日志来查看初始化参数
[dmdba@localhost DAMENG]$ cat /dm8/DAMENG/dminit20201016152821.log
start init database: V7.6.0.209-Build(2019.10.25-114655)ENT , 2020-10-16 15:28:21
init params:
db path: /dm8/DAMENG
db name: DAMENG
auto overwrite: 0
page size: 16384
extent size: 16
time zone: +08:00
string case sensitive: 1
charset: 0
length in char: 0
page check mode: 0
priv flag: 0
rlog enc flag: 0
use new hash: 1
blank pad mode: 0
sec priv mode: 0
log file path: /dm8/DAMENG/DAMENG01.log
log file path: /dm8/DAMENG/DAMENG02.log
create ini file /dm8/DAMENG/dm.ini success.
create rlog file /dm8/DAMENG/DAMENG01.log success.
create rlog file /dm8/DAMENG/DAMENG02.log success.
SYSTEM file : /dm8/DAMENG/SYSTEM.DBF
MAIN file : /dm8/DAMENG/MAIN.DBF
ROLL file : /dm8/DAMENG/ROLL.DBF
create dm database success. 2020-10-16 15:28:25
8、创建服务(root用户)
cd /dm8/scrpits/root
./dm_service_installer.sh -t dmserver -p _5236 -dm_ini /dm8/DAMENG/dm.ini
9、启动数据库服务
vi dm.ini
ARCH_INI =1 #开启归档
开启归档后重启数据库服务
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/DAMENG/ARCH
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 2048
cd /home/dmdba/dmdbms/bin
./DmService_5236 restart
10、数据库设置定时作业
--开启代理--
SP_INIT_JOB_SYS(1);
--关闭代理--
SP_INIT_JOB_SYS(0);
数据库全量备份
call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB1');
call SP_ADD_JOB_STEP('JOB1', 'JOB1', 6, '01000000/dm8/backup', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB1', 'JOB1', 1, 2, 1, 1, 0, '16:40:57', NULL, '2020-10-16 16:40:57', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB1');
数据库增量备份
call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB2');
call SP_ADD_JOB_STEP('JOB2', 'JOB2', 6, '11000000/dm8/backup|/dm8/backup', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB2', 'JOB2', 1, 2, 1, 126, 0, '16:42:54', NULL, '2020-10-16 16:42:54', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB2');
定时删除备份
call SP_CREATE_JOB('JOB3',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB3');
call SP_ADD_JOB_STEP('JOB3', 'JOB3', 0, 'sp_db_bakset_remove_batch(null,sysdate-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB3', 'JOB3', 1, 2, 1, 1, 0, '16:46:21', NULL, '2020-10-16 16:46:21', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB3');
11、数据库备份还原
DM 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对某个数据文件页的读写操作。
因此,DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。
联机备份:
cd /data/dmdbms/dmdbms/bin
./DmService_5236 start
./disql
SQL>select arch_mode from v$database; #查看归档状态
SQL>BACKUP DATABASE BACKUPSET ‘/dm8/backup/FULL_BAK’; #联机备份数据库(保证数据库在归档模式及OPEN状态)
脱机备份:
停止数据库服务
./dmrman
backup database ‘/data/dmdbms/DAMENG/dm.ini’ backupset ‘/dm8/backup/FULL_BAK’;
数据库进行还原
./dmrman
RESTORE DATABASE '/dm8/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/FULL_BAK';
RECOVER DATABASE '/dm8/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/FULL_BAK';
RECOVER DATABASE '/dm8/DAMENG/dm.ini' UPDATE DB_MAGIC;
12、配置DM8开发环境
1.Linux环境中配置ODBC,要安装gcc包。
[root@loaclhost ~]#rpm -aq|grep gcc
[root@loaclhost ~]#tar -zxvf unixODBC-2.3.0.tar.gz
[root@loaclhost ~]#cd unixODBC-2.3.0
2.配置ODBC(root)
[root@loaclhost unixODBC-2.3.0]#./configure --enable-gui=no
3.编译ODBC
[root@loaclhost unixODBC-2.3.0]#make && make install
4.查看ODBC版本
[root@loaclhost unixODBC-2.3.0]#odbc_config --version
5.查看ODBC配置文件路径
[root@loaclhost unixODBC-2.3.0]#odbc_config --odbcini
[root@loaclhost unixODBC-2.3.0]#odbcinst -j
6.配置ODBC.INI
[root@loaclhost unixODBC-2.3.0]#vi /usr/local/etc/odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
7.配置odbcinst.ini
[root@loaclhost unixODBC-2.3.0]#vi /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so
8.测试ODBC
su - dmdba
[dmdba@loaclhost ~]$ isql dm8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> quit