最近参加了达梦DCA的培训,3天的培训内容干货满满,讲师讲课很细致,内容由浅入深,即便新入行的小白 对于达梦数据库的相关基础操作也能很快掌握。当然其中部分内容讲得比较浅显,毕竟是初级的DCA,只是给了一块敲门砖,日后还要多加实践才能运用得如鱼得水。
3天的课程内容包含数据库的发展、达梦数据库的技术特点、达梦数据库认证体系、达梦数据库的安装、达梦数据库的使用、达梦数据库的体系结构、达梦数据库的管理(包含用户管理、表空间管理、模式管理、数据字典及动态性能视图等)、达梦数据库的备份与还原、达梦数据库的作业系统、达梦数据库的开发。这里挑实践内容,讲一下具体的操作流程和注意事项,对于理论感兴趣的朋友可以进行深入研究。
第一章 达梦数据库的安装
1.1 安装前准备
1.1.1 基本硬件要求
CPU:Intel Pentium 4以上处理器。
内存:安装数据库最小内存1G,Linux服务器swap空间是内存的1.5倍以上。
硬盘:根据需求设置硬盘大小,安装时临时存储空间(/tmp)需要最少2G,也可通过参数DM_INSATLL_TMPDIR指定其他满足要求的目录。
1.1.2 网络要求
100M以上支持TCP/IP协议的网络。
1.1.3 平台要求
达梦数据库支持AIX、Windows、HP Unix、solaris、Linux等操作系统。
1.1.4 系统要求
Linux 内核2.6以上,Glibc 2.3以上。
1.1.5 我的配置
我这里采用kylin操作系统,安装桌面环境,内存设置2G,硬盘40G。
1.1.6 新建用户及用户组
创建用户组
[root@dm-srv002 ~]# groupadd dinstall
创建用户
[root@dm-srv002 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改用户密码
[root@dm-srv002 ~]# echo Kylin123 |passwd --stdin dmdba
1.1.7 修改系统参数
修改文件打开最大数
[root@dm-srv002 ~]# vi /etc/security/limits.conf
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
查看是否生效
[root@dm-srv002 ~]# su - dmdba
[dmdba@dm-srv002 ~]# ulimit -a
1.1.8 关闭防火墙
[root@dm-srv002 ~]# systemctl stop firewalld
[root@dm-srv002 ~]# systemctl disable firewalld
1.1.9 下载安装包
我这里下载的包dm8_20220701_x86_rh6_64_ent.zip,可以到达梦官网下载对应版本。
1.2 命令行安装
1.2.1 解压安装包
[root@dm-srv002 ~]# unzip dm8_20220701_x86_rh6_64_ent.zip
Archive: dm8_20220701_x86_rh6_64_ent.zip
creating: dm8_20220701_x86_rh6_64_ent/
inflating: dm8_20220701_x86_rh6_64_ent/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso
inflating: dm8_20220701_x86_rh6_64_ent/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso_SHA256.txt
检查文件
[root@dm-srv002 ~]# dm8_20220701_x86_rh6_64_ent/
[root@dm-srv002 ~]# sha256 dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso
[root@dm-srv002 ~]# cat dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso_SHA256.txt
1.2.2 挂载镜像
[root@dm-srv002 ~]# mount -o loop /root/dm8_20220701_x86_rh6_64_ent/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso /mnt
mount: /dev/loop0 写保护,将以只读方式挂载
1.2.3 创建目录
[root@dm-srv002 ~]# mkdir -p /dm8
[root@dm-srv002 ~]# chown -R dmdba.dinstall /dm8
[root@dm-srv002 ~]# chmod 755 /dm8
1.2.4 安装软件
如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通
过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示: #以 BASH 为例:
[dmdba@dm-srv002 ~]$ mkdir -p /dm8tmp
[dmdba@dm-srv002 ~]$ chown -R dmdba.dinstall /dm8tmp
[dmdba@dm-srv002 ~]$ chmod 755 /dm8tmp
[dmdba@dm-srv002 ~]$ DM_INSTALL_TMPDIR=/dm8tmp
[dmdba@dm-srv002 ~]$ export DM_INSTALL_TMPDIR
[dmdba@dm-srv002 mnt]$ cd /mnt
[dmdba@dm-srv002 mnt]$ ls
DM8 Install.pdf DMInstall.bin
[dmdba@dm-srv002 mnt]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序.........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1602M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
可用空间: 17G
是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm8
所需空间: 1602M
可用空间: 17G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2022-09-02 14:59:35
[INFO] 安装达梦数据库...
2022-09-02 14:59:35
[INFO] 安装 基础 模块...
2022-09-02 14:59:44
[INFO] 安装 服务器 模块...
2022-09-02 14:59:44
[INFO] 安装 客户端 模块...
2022-09-02 14:59:52
[INFO] 安装 驱动 模块...
2022-09-02 14:59:54
[INFO] 安装 手册 模块...
2022-09-02 14:59:55
[INFO] 安装 服务 模块...
2022-09-02 14:59:56
[INFO] 移动日志文件。
2022-09-02 14:59:57
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/script/root/root_installer.sh
安装结束
在root用户下执行
[dmdba@dm-srv002 ~]$ /dm8/script/root/root_installer.sh
1.2.5 修改系统变量(小技巧)
[dmdba@dm-srv002 ~]$ echo "export PATH=\$PATH:\$DM_HOME/bin:\$DM_HOME/tool" >> ~/.bash_profile
[dmdba@dm-srv002 ~]$ source ~/.bash_profile
1.2.6 配置数据库实例
[dmdba@dm-srv002 ~]$ dminit path=/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 SYSDBA_PWD=dameng123 SYSAUDITOR_PWD=dameng123
[dmdba@dm-srv002 ~]$ dminit path=/dm8/data
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-06-30
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm8/data/DAMENG/DAMENG01.log
log file path: /dm8/data/DAMENG/DAMENG02.log
write to dir [/dm8/data/DAMENG].
create dm database success. 2022-09-02 15:07:39
dminit默认没有注册数据库服务,需要使用
1.2.7 注册服务
[root@dm-srv002 DAMENG]# cd /dm8/script/root
[root@dm-srv002 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
1.3 图形化安装
[root@dm-srv002 root]# su - dmdba
[root@dm-srv002 root]# export DISPLAY=:0.0
1.3.1 安装数据库软件
开发版无需导入key
切换到root用户执行
[root@dm-srv002 ~]# /dm8/script/root/root_installer.sh
移动 /dm8/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
1.3.2 初始化数据库
切换到root用户
[root@dm-srv002 ~]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@dm-srv002 ~]# systemctl enable DmServiceDMSERVER.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
[root@dm-srv002 ~]# systemctl start DmServiceDMSERVER.service
[root@dm-srv002 ~]# systemctl status DmServiceDMSERVER.service
● DmServiceDMSERVER.service - DM Instance Service
Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)
Active: active (running) since 五 2022-09-02 18:31:18 CST; 7s ago
Process: 15606 ExecStart=/dm8/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS)
Main PID: 15634 (dmserver)
Tasks: 66
CGroup: /system.slice/DmServiceDMSERVER.service
└─15634 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
9月 02 18:31:03 dm-srv002 systemd[1]: Starting DM Instance Service...
9月 02 18:31:18 dm-srv002 DmServiceDMSERVER[15606]: [39B blob data]
9月 02 18:31:18 dm-srv002 systemd[1]: Started DM Instance Service.
切换到root用户
[root@dm-srv002 ~]# systemctl restart DmServiceDMSERVER.service
第二章 达梦数据库的使用
2.1 数据库的连接
2.1.1 直接用disql客户端连接
[dmdba@dm-srv002 ~]# disql sysdba/Dameng123@127.0.0.1:5236
2.1.2 通过配置文件连接
修改配置文件
vim /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(127.0.0.1:5236)
[dmdba@dm-srv002 ~]# disql sysdba/Dameng123@DM
2.2 数据库的启停
状态查询
[root@dm-srv002 root]# systemctl status DmServiceDMSERVER.service
启动
[root@dm-srv002 root]# systemctl start DmServiceDMSERVER.service
停止
[root@dm-srv002 root]# systemctl stop DmServiceDMSERVER.service
重启
[root@dm-srv002 root]# systemctl restart DmServiceDMSERVER.service
2.3 数据库参数管理
2.3.1 参数类型
达梦的参数可通过以下方式查询:
desc v$parameter
desc v$dm_ini
达梦的参数有4个类型
序号 | TYPE | 说明 |
1 | READ ONLY | 手工参数,不能通过函数或SQL修改,只能通过编辑dm.ini来修改 |
2 | SYS | 系统级动态参数,可以通过函数或SQL修改,既可以修改内存中的值,也能修改参数文件文件的值。 |
3 | IN FILE | 静态参数,可以通过函数或SQL修改,但不能修改内存中的值,只能修改参数文件中的值,重启后生效。 |
4 | SESSION | 会话级动态参数,可以通过函数或SQL修改,既可以修改内存中的值,也能修改参数文件文件的值,可以选择仅对当前会话生效,也可以选择对整个数据库生效。 |
2.3.2 修改参数
对于静态参数和只读参数,修改配置文件dm.ini进行,然后重启数据库生效。
查询参数类型
SQL> Select name, value,file_value,sys_value,type from v$parameter t where t.name like 'COMPATIBLE_MODE';
行号 NAME VALUE FILE_VALUE SYS_VALUE TYPE
---------- --------------- ----- ---------- --------- -------
1 COMPATIBLE_MODE 0 0 0 IN FILE
方法1:SQL语句(加了引号之后就区分大小写)
SQL> alter system set COMPATIBLE_MODE=2 spfile;
SQL> alter session set LIST_TABLE=1;
方法2:通过函数修改
修改参数的函数sp_set_para_value(范围scope,parameter_name,value)
SQL> sp_set_para_value(2,COMPATIBLE_MODE,0);
2.4 数据库的表空间管理
2.4.1 创建表空间
数据文件的范围:数据文件的大小不能低于页大小的4096倍,最大值不能大于页大小的2的31次方-1(页大小为8k,则最大值为16T-1)
SQL> Select page*4096/1024/1024
SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32;
开启自动扩展
SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32 autoextend on;
设定每次扩展的大小并设置最大上限
SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32 autoextend on next 4 maxsize 10240;
查询当前表空间文件的使用量
SQL> Select * from user_segments t where t.segment_name='table_name';
2.4.2 添加数据文件
SQL> Alter tablespace tbs add datafile 'TBS02.DBF' size 32 autoextend on;
2.4.3 修改数据文件大小
SQL> Alter tablespace tbs resize datafile 'TBS01.DBF' to 128;
2.4.4 表空间重命名
SQL> Alter tablespace tbs rename to tbs01;
2.4.5 表空间联机/脱机
联机
SQL> Alter tablespace tbs online;
脱机
SQL> Alter tablespace tbs offline;
2.4.6 注意事项
表空间脱机后,表空间中的表将无法读写,自定义表空间可以脱机。
2.5 数据库的用户管理
2.5.1 系统预定义用户
用户名 | 中文名 | 权限 | 备注 |
SYSDBA | 系统管理员 | 具有数据库对象的几乎所有操作权限 | DCA考察 |
SYSAUDITOR | 系统审计管理员 | ||
SYSSSO | 安全管理员 | ||
SYS | 内置用户 | 不允许登录 | |
SYSDBO | 对象操作员 | 安全版才有 |
2.5.2 口令策略
用户口令最长为 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 即可。
2.5.3 修改口令策略
select * from SYS."V$PARAMETER" t where name ='PWD_POLICY';
alter system set 'PWD_POLICY' =31 BOTH;
2.5.4 创建用户
SQL> create user dmtest identified by "Dameng123" password_policy 15;
SQL> alter user dmtest identified by "Dameng@123";
密码包含特殊字符登录
[dmdba@kylin-srv001 DAMENG]$ disql dmtest/'"Dameng@123"'
2.5.5 用户授权/收权
SQL> grant select on DM_PRD.test1 to DMTEST;
SQL> revoke select on DM_PRD.test1 from DMTEST;
2.5.6 用户禁用/启用
SQL> Alter user dmtest account lock/unlock;
2.5.7 角色管理
创建角色
SQL> create role t1;
给角色授权
SQL> grant select on DM_PRD.test1 to t1;
将角色授权给用户
SQL> grant t1 to DMTEST;
2.6 数据库的模式管理
当用户创建时自动创建一个同名的模式
达梦是支持一个用户拥有多个模式
2.6.1 查询模式
SQL> Select * from sys.sysobjects t where t."TYPE$"='SCH';
2.6.2 创建模式
SQL> Create schema hrtest01 authorization HRTEST;
2.6.3 切换模式
SQL> set schema hrtest01
2.7 数据库的数据字典与动态性能视图
2.7.1 数据字典
表
Select * from user_tables;--当前用户的表
Select * from sys.all_tables;--所有有权限的表
列信息
Select * from user_tab_columns;
约束
Select * from sys.user_constraints;
约束字段
Select * from user_cons_columns;
索引
select * from sysindexes;
所有对象
select * from sysobjects;
所有列
select * from syscolumns;
2.7.2 动态性能视图
事务等待
SQL> Select * from v$trxwait;
锁请求等待时间默认为10秒,时间由以下参数控制
SQL> Select * from v$parameter t where name='DDL_WAIT_TIME';
当前进程信息
SQL> Select * from V$process;
结束会话
SQL> sp_close_session(sessionID);
数据文件
SQL> Select * from v$datafile;
缓冲池
SQL> Select * from V$bufferpool;
2.8 数据库的SQL编写
2.8.1 建表
SQL> CREATE TABLE SCHEMA_NAME.TEST1(ID INT,CODE VARCHAR(20),NAME VARCHAR(50));
2.8.2 修改表
SQL> ALTER TABLE SCHEMA_NAME.TEST1 ADD COLUMN CREATETIME DATETIME DEFAULT SYSDATE;
修改字段
SQL> Alter table dmtest.t_testpid modify pname varchar(50) not null;
2.8.3 创建索引
SQL> CREATE INDEX IDX_TEST1_CODE ON SCHEMA_NAME.TEST1(CODE);
重建索引
数据删除后,索引不会释放空间,释放空间需要重建索引。
SQL> Alter index idx_tablename_colname rebuild online;
online不会影响线上服务。
开启监控
SQL> Alter index idx_tablename_colname monitoring usage;
SQL> Select * from sys.v$object_usage;
关闭索引监控
SQL> Alter index idx_tablename_colname nomonitoring usage;
2.8.4 添加主外键
SQL> Alter table t_testpid add constraint pk_testpid primary key(pid);
SQL> Alter table t_testpid add constraint uk_testpid_pname unique(pname);
2.8.5 创建视图
视图是由查询语句组成的查询窗口。视图中不保存数据,数据保存在基表中。
SQL> create view LZY.V_CODE_MORETHAN3 AS
SELECT B.CODE,A.NAME,COUNT(*) AS COUNTID
FROM LZY.TEST1 A
JOIN LZY.TEST1_CODE B ON B.ID=A.CODE_ID
GROUP BY B.CODE,A.NAME
HAVING COUNT(*)>3;
2.8.6 批量导入数据
disql内部操作
SQL> ` /dm8/backup/DEPT.sql
shell命令操作
[root@kylin-srv001 ~]# sysdba/Dameng123 '`/dm8/backup/DEPT.sql'
第三章 达梦数据库的备份
3.1 物理备份
3.1.1 dmrman备份
[root@kylin-srv001 ~]# systemctl stop DmServiceDMSERVER
[root@kylin-srv001 ~]# su - dmdba
上一次登录: 五 9月 23 14:04:05 CST 2022 pts/3 上
[dmdba@kylin-srv001 ~]$ dmrman
dmrman V8
RMAN> backup database '/dm8/data/DAMENG/dm.ini';
backup database '/dm8/data/DAMENG/dm.ini';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[62187], file_lsn[62187]
Processing backupset /dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:03][Remaining:00:00:00]
backup successfully!
time used: 00:00:05.083
RMAN> exit
time used: 4.163(ms)
查看备份信息
RMAN> show backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';
指定备份集名称及备份集路径
RMAN> backup database '/dm8/data/DAMENG/dm.ini' to DMFULLBAK03 backupset '/dm8/backup/full/DMFULLBAK03';
增量备份
默认使用备份目录最新的备份集作为基础
RMAN> backup database '/dm8/data/DAMENG/dm.ini' increment with backupdir '/dm8/data/DAMENG/bak/' to DB_DAMENG_FULL_20220923_152859_385920_INC01 backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920_INC01';
3.1.2 disql备份
需要开启归档
开启归档
[dmdba@kylin-srv001 ~]$ disql sysdba/dameng123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 11.328(ms)
disql V8
SQL> alter database mount;
操作已执行
已用时间: 3.378(毫秒). 执行号:0.
SQL> alter database archivelog;
操作已执行
已用时间: 51.411(毫秒). 执行号:0.
SQL> alter database add archivelog 'type=local,dest=/dm8/data/DAMENG/ARCH,file_size=64,space_limit=10240';
操作已执行
已用时间: 6.492(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 33.377(毫秒). 执行号:0.
备份
backup database;
backup database INCREMENT;
backup database to DMFULLBAK01 BACKUPSET '/dm8/backup/full/DMFULLBAK01';
select * from SYS."V$BACKUPSET";
select * from SYS."V$IFUN" t where t.name like '%BAKSET%';
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full/');
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/incr/');
64backup tablespace dmtbs;
backup tablespace dmtbs INCREMENT to DMTBSINCR01 BACKUPSET
'/dm8/backup/incr/DMTBSINCR01';
backup table dmtest.T_EMP;
backup ARCHIVE LOG all;
3.2 逻辑备份
3.2.1 dexp导出
全库导出
[root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
按模式导出
[root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=LZY.dmp log=LZY.log schema=LZY
按用户导出
[root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=LZY.dmp log=LZY.log schema=LZY
按表导出
[root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=LZY_TEST1.dmp log=LZY_TEST1.log TABLES=LZY.TEST1
第四章 达梦数据库的恢复
4.1 表空间的恢复
还原
RMAN> restore databse '/dm8/data/DAMENG/dm.ini' TABLESPACE DMTBS FROM BACKUPSET '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';
恢复
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace DMTBS;
4.2 库恢复
还原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' TABLESPACE DMTBS FROM BACKUPSET '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';
恢复
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/DAMENG/ARCH';
更新魔数
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
4.3 表恢复
将 DMTEST 模式下 T_EMP 表导入到 HRTEST 用户下:
[root@kylin-srv001 ~]# dimp userid=hrtest/Dameng123@127.0.0.1:5238
directory=/dm8/backup/dexp file=dmtest_emp.dmp log=dmtest_emp.log tables=DMTEST.T_EMP
remap_schema=DMTEST:HRTEST
第五章 达梦数据库的作业系统
5.1 作业系统的开启
创建代理环境命令
Call sp_init_job_sys(1);
或者图形化操作
5.2 创建作业
5.3 手动调用作业
查询jobid
select * from sysjob.sysjobs;
执行job
dbms_job.run(jobid)
5.4 作业状态查询
select * from SYSJOB.SYSJOBS;
select * from SYSJOB.SYSJOBHISTORIES2;
第六章 达梦数据库的开发
达梦数据库支持多种开发语言,支持JDBC、ODBC
6.1 JDBC配置
// 定义 DM JDBC 驱动串
String jdbcString = "dm.jdbc.driver.DmDriver";
// 定义 DM URL 连接串
String urlString = "jdbc:dm://localhost:5236";
6.2 ODBC配置
6.2.1 ODBC安装
[root@kylin-srv001 ~]# tar -xzvf unixODBC-2.3.0.tar.gz
[root@kylin-srv001 ~]# cd unixODBC-2.3.0
[root@kylin-srv001 unixODBC-2.3.0]# ./configure
[root@kylin-srv001 unixODBC-2.3.0]# make
[root@kylin-srv001 unixODBC-2.3.0]# make install
6.2.2 修改配置文件
[root@kylin-srv001 unixODBC-2.3.0]# odbcinst -j
[root@kylin-srv001 unixODBC-2.3.0]# vim /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
[root@kylin-srv001 unixODBC-2.3.0]# vim /usr/local/etc/odbc.ini
[DAMENG]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
6.2.3 连接数据库
[root@kylin-srv001 ~]# su - dmdba
上一次登录: 日 9月 25 20:38:45 CST 2022 pts/1 上
[dmdba@kylin-srv001 ~]$ isql DAMENG -v
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from LZY.test1
+------------+------------+---------------------------------------------------+---------------------------+
| ID | CODE_ID | NAME | CREATEDATE |
+------------+------------+---------------------------------------------------+---------------------------+
| 1 | 1 | shuiguo1 | 2022-09-24 20:29:23.000000|
| 2 | 1 | shuiguo1 | 2022-09-24 20:29:23.000000|
| 3 | 1 | shuiguo1 | 2022-09-24 20:29:23.000000|
| 4 | 2 | shuiguo2 | 2022-09-24 20:29:23.000000|
| 5 | 3 | shuiguo3 | 2022-09-24 20:29:23.000000|
| 6 | 3 | shuiguo3 | 2022-09-24 20:29:23.000000|
| 7 | 3 | shuiguo3 | 2022-09-24 20:29:23.000000|
| 8 | 4 | shuiguo4 | 2022-09-24 20:29:23.000000|
| 9 | 4 | shuiguo4 | 2022-09-24 20:29:23.000000|
| 10 | 5 | shuiguo5 | 2022-09-24 20:29:23.000000|
| 11 | 6 | shuiguo6 | 2022-09-24 20:29:23.000000|
| 12 | 7 | shuiguo7 | 2022-09-24 20:29:23.000000|
| 13 | 8 | shuiguo8 | 2022-09-24 20:29:23.000000|
| 14 | 9 | shuiguo9 | 2022-09-24 20:29:23.000000|
| 15 | 10 | shuiguo10 | 2022-09-24 20:29:23.000000|
| 16 | 10 | shuiguo10 | 2022-09-24 20:29:23.000000|
| 17 | 1 | shuiguo1 | 2022-09-24 20:29:23.000000|
| 18 | 3 | shuiguo3 | 2022-09-24 20:29:23.000000|
| 19 | 3 | shuiguo3 | 2022-09-24 20:29:23.000000|
| 20 | 1 | shuiguo1 | 2022-09-24 21:30:05.000000|
+------------+------------+---------------------------------------------------+---------------------------+
SQLRowCount returns 20
20 rows fetched