目录
一、DM8安装(NeoKylin Linux Server 7.0系统)
二、数据库部署 (一)创建相关目录 (二)初始化数据库 (三)注册数据库服务 (四)修改数据库配置参数 (五)配置归档文件 (六)重启数据库服务
三、表空间规划(DMTBS表空间) 四、用户与角色管理
五、表创建(EMP和DEPT表)
六、数据导入 七、备份策略实施
八、数据还原操作
九、逻辑全库导出 十、视图创建 十一、索引创建 十二、ODBC驱动安装与配置 (一)解压与编译安装 (二)配置文件设置 (三)权限设置与测试
一、DM8安装(NeoKylin Linux Server 7.0系统)
(一)考前准备与环境检查
防火墙管理
命令 :systemctl status firewalld
解释 :查看防火墙firewalld
的运行状态,包括是否正在运行、开机自启状态等信息,确认其是否会干扰达梦数据库的安装与后续使用。命令 :systemctl stop firewalld
解释 :停止firewalld
服务,临时关闭防火墙,避免在安装过程中,防火墙阻止网络连接或端口访问,确保安装过程顺利。 软件包检查与安装
命令 :rpm -qa|grep gcc
解释 :rpm -qa
列出系统中已安装的所有RPM软件包,grep gcc
筛选出名称中包含“gcc”的软件包,以此检查系统是否安装了gcc
(GNU编译器集合),gcc
是编译和构建许多软件的重要工具,在后续ODBC驱动安装时可能会用到。命令 :rpm -qa|grep glibc
解释 :同样,检查系统是否安装了glibc
(GNU C库),它提供了操作系统的基本运行时环境和函数库,是许多软件运行的基础依赖。命令 :yum install -y gcc glibc
(若未找到相关包时执行)解释 :yum
是基于RPM的软件包管理器,install
表示安装操作,-y
参数表示自动确认安装过程中的所有提示,无需手动干预,直接安装指定的gcc
和glibc
软件包。 系统参数调整
命令 :ulimit -a
解释 :查看当前系统对用户资源的限制设置,包括最大文件打开数、最大进程数等,了解系统当前资源限制情况,判断是否满足达梦数据库的运行需求。命令 :vim /etc/security/limits.conf
解释 :使用vim
编辑器打开limits.conf
配置文件,该文件用于设置用户的资源限制。在文件中添加或修改以下内容:
命令 :dmdba soft nofile 65536
解释 :设置dmdba
用户的软限制,即用户可同时打开的最大文件数为65536。软限制是系统建议的限制值,用户可以临时超过该限制,但可能会受到系统警告。命令 :dmdba hard nofile 65536
解释 :设置dmdba
用户的硬限制,用户可同时打开的最大文件数的绝对上限为65536,用户无法超过该限制。命令 :dmdba soft nproc 10240
解释 :设置dmdba
用户的软限制,用户可创建的最大进程数为10240。命令 :dmdba hard nproc 10240
解释 :设置dmdba
用户的硬限制,用户可创建的最大进程数的绝对上限为10240。 命令 :ulimit -n 65536
解释 :使修改后的最大文件打开数限制临时生效,无需重启系统即可应用新的设置,但该设置在系统重启后会失效。 用户创建与目录权限设置
命令 :cat /etc/passwd
解释 :查看/etc/passwd
文件,该文件记录了系统中所有用户的基本信息,用于确认dmdba
用户是否存在。命令 :id dmdba
解释 :通过id
命令查看dmdba
用户的详细信息,包括用户ID、组ID、所属组等,进一步确认用户是否存在。命令(若不存在dmdba用户时执行) :
groupadd dinstall
解释 :创建名为dinstall
的用户组,用于管理达梦数据库相关的用户。useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
解释 :创建dmdba
用户,-g dinstall
指定用户所属的组为dinstall
,-m
表示自动创建用户的家目录/home/dmdba
,-d /home/dmdba
指定家目录路径,-s /bin/bash
设置用户的默认Shell为/bin/bash
。passwd dmdba
解释 :设置dmdba
用户的密码,根据提示输入两次密码dameng123
。 命令 :mkdir -p /dm8
解释 :创建/dm8
目录,-p
参数表示如果父目录不存在则自动创建,确保目录结构完整。命令 :chown -R dmdba:dinstall /dm8
解释 :递归地更改/dm8
目录及其所有子目录和文件的所有者为dmdba
,所属组为dinstall
,确保dmdba
用户对该目录有足够的权限进行后续操作。命令 :ls -ld /dm8
解释 :使用ls -ld
命令查看/dm8
目录的详细信息,包括权限、所有者、所属组等,确认权限设置是否正确。
(二)安装过程
挂载安装包镜像
命令 :mount -o loop /opt/dm8_setup_rh7.iso /mnt
解释 :将达梦数据库安装包镜像文件/opt/dm8_setup_rh7.iso
挂载到/mnt
目录,-o loop
表示以回环设备的方式挂载镜像,使系统将镜像文件视为一个块设备进行访问。命令 :cd /mnt
解释 :切换到挂载点/mnt
目录,以便后续操作安装包文件。 安装包处理与安装
命令 :cd /opt
解释 :切换到/opt
目录,准备创建存放安装文件的目录。命令 :mkdir -p dm8_soft
解释 :创建dm8_soft
目录,用于存放DMInstall.bin
安装文件,-p
参数确保目录结构完整创建。命令 :chown -R dmdba:dinstall dm8_soft
解释 :递归地更改dm8_soft
目录及其所有子目录和文件的所有者为dmdba
,所属组为dinstall
。命令 :chmod 775 DMInstall.bin
解释 :修改DMInstall.bin
安装文件的权限为775
,表示所有者、所属组有读、写、执行权限,其他用户有读、执行权限,确保dmdba
用户能够执行该安装文件。命令 :su - dmdba
解释 :切换到dmdba
用户,使用该用户进行安装操作,以符合安装规范和权限要求。命令 :cd /opt/dm8_soft
解释 :进入存放安装文件的目录。命令 :./DMInstall.bin -i
解释 :执行安装文件DMInstall.bin
,-i
参数表示以交互模式进行安装,安装过程中会提示用户进行各种选择和配置。 安装后配置
命令 :/dm8/script/root/root_installer.sh
解释 :安装完成后,以root
用户执行该脚本,用于创建AP服务,完成安装的后续配置工作,使达梦数据库能够更好地与系统集成并稳定运行。
二、数据库部署
(一)创建相关目录
命令 :cd /dm8
命令 :mkdir -p backup
解释 :在/dm8
目录下创建backup
目录,用于存放数据库备份文件,-p
参数确保目录结构完整创建。 命令 :mkdir -p data
解释 :在/dm8
目录下创建data
目录,用于存放数据库的数据文件,-p
参数确保目录结构完整创建。 命令 :chown dmdba:dinstall backup
解释 :更改backup
目录的所有者为dmdba
,所属组为dinstall
,确保dmdba
用户对该目录有读写权限,以便进行备份操作。 命令 :chown dmdba:dinstall data
解释 :更改data
目录的所有者为dmdba
,所属组为dinstall
,确保dmdba
用户对该目录有读写权限,以便存放和管理数据文件。
(二)初始化数据库
命令 :cd /dm8/bin
解释 :切换到dm8
安装目录下的bin
目录,该目录包含了许多达梦数据库的可执行工具。 命令 :./dminit help
解释 :执行dminit
工具并带上help
参数,查看dminit
工具的帮助信息,了解其使用方法和可配置参数。 命令 :./dminit PATH=/opt/dm8/data DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5238 SYSDBA_PWD='Abc123Def' SYSAUDITOR_PWD='Abc123Def' EXTENT_SIZE=16 PAGE_SIZE=16 LOG_PATH=/opt/dm8/data/DMDB/DATA01.log LOG_SIZE=300 LOG_PATH=/opt/dm8/data/DMDB/DATA02.log LOG_SIZE=300 LOG_PATH=/opt/dm8/data/DMDB/DATA03.log LOG_SIZE=300
解释 :
PATH=/dm8/data
:指定数据库的数据文件存储路径为/dm8/data
。DB_NAME=DMDB
:设置数据库名称为DMDB
。INSTANCE_NAME=DBSERVER
:设置数据库实例名称为DBSERVER
。PORT_NUM=5238
:指定数据库的端口号为5238
,用于外部连接数据库。SYSDBA_PWD=Dameng123
:设置系统管理员SYSDBA
的密码为Dameng123
。EXTENT_SIZE=16
:设置簇大小为16页,簇是数据库分配存储空间的基本单位,合适的簇大小可以提高存储管理效率。PAGE_SIZE=16K
:设置页大小为16K,页是数据库中数据存储的最小逻辑单位,不同的页大小会影响数据存储和读写性能。LOG_PATH=/dm8/data/DMDB/DATA01.log LOG_SIZE=300
、LOG_PATH=/dm8/data/DMDB/DATA02.log LOG_SIZE=300
、LOG_PATH=/dm8/data/DMDB/DATA03.log LOG_SIZE=300
:分别指定三组日志文件的路径和大小,每组日志文件大小为300M,用于记录数据库操作日志,保证数据的一致性和可恢复性。
(三)注册数据库服务
命令 :cd /dm8/script/root
– root用户操作
命令 :./dm_service_installer.sh -t dmserver -p dbserver -dm_ini /dm8/data/DMDB/dm.ini
解释 :
-t dmserver
:指定服务类型为dmserver
,表示要注册的是达梦数据库服务器服务。-p dbserver
:设置服务名称为dbserver
,方便在系统中识别和管理该服务。-dm_ini /dm8/data/DMDB/dm.ini
:指定数据库的配置文件路径/dm8/data/DMDB/dm.ini
,脚本根据该配置文件来注册服务,确保服务与数据库实例正确关联。
(四)修改数据库配置参数
命令 :vi /dm8/data/DMDB/dm.ini
解释 :使用vim
编辑器打开数据库配置文件dm.ini
。 修改以下参数 :
命令 :COMPATIBLE_MODE=3
解释 :设置数据库的兼容模式,这里设置为3,具体兼容模式根据考试题要求更改。兼容模式可以使达梦数据库在一定程度上模拟其他数据库的行为,方便应用程序迁移。命令 :PWD_POLICY=7
解释 :设置口令策略,这里设置为7,具体策略根据考试题要求更改。口令策略用于控制用户密码的复杂度和安全性,如密码长度、是否包含特殊字符等。命令 :PWD_MIN_LEN=6
解释 :设置口令最小长度为6位,确保用户密码具有一定的强度。命令 :ARCH_INI=1
解释 :开启归档功能,归档可以记录数据库的所有变更操作,用于数据恢复和灾难恢复。命令 :BAK_PATH = /dm8/backup
解释 :指定数据库备份路径为/dm8/backup
,方便统一管理备份文件。 命令 :sp_set_para_value(1,'PWD_POLICY',0);
解释 :通过存储过程sp_set_para_value
动态修改PWD_POLICY
参数,1
表示动态修改,即修改后立即生效,无需重启数据库;'PWD_POLICY'
指定要修改的参数名称;0
表示修改后的参数值,具体含义根据参数定义确定。
(五)配置归档文件
命令 :cd /dm8/data/DMDB
命令 :vi dmarch.ini
解释 :使用vim
编辑器打开归档配置文件dmarch.ini
,添加以下内容:
命令 :[ARCHIVE_LOCAL1]
解释 :定义一个归档配置段,名称为ARCHIVE_LOCAL1
。命令 :ARCH_TYPE = LOCAL
解释 :指定归档类型为本地归档,表示归档文件存储在本地文件系统中。命令 :ARCH_DEST = /dm8/arch
解释 :指定归档文件的存储路径为/dm8/arch
。命令 :ARCH_FILE_SIZE = 128
解释 :设置每个归档文件的大小为128M,当归档文件达到该大小时,会创建新的归档文件。命令 :ARCH_SPACE_LIMIT = 2048
解释 :设置归档空间的上限为2048M,当归档文件占用的空间达到该限制时,会根据配置进行相应的处理,如删除旧的归档文件。
(六)重启数据库服务
命令 :/opt/dm8/bin/DmServicedbserver restart
解释 :执行该命令重启数据库服务,使修改后的数据库配置参数生效。在修改了dm.ini
和dmarch.ini
等配置文件后,必须重启数据库服务才能应用新的设置。
三、表空间规划(DMTBS表空间)
命令 :create tablespace "DMTBS" datafile '/dm8/data/DAMENG/DMTBS01.DBF' size 64 autoextend on next 2 maxsize 10240, '/dm8/data/DAMENG/DMTBS02.DBF' size 64 autoextend on next 2 maxsize 10240 CACHE = NORMAL;
解释 :
create tablespace "DMTBS"
:创建名为DMTBS
的表空间。datafile '/dm8/data/DAMENG/DMTBS01.DBF' size 64 autoextend on next 2 maxsize 10240
:指定表空间的数据文件为/dm8/data/DAMENG/DMTBS01.DBF
,初始大小为64M 。autoextend on
表示开启自动扩展功能,当数据文件空间不足时会自动增长。next 2
指每次自动扩展的幅度为2M,maxsize 10240
规定了该数据文件最大可扩展到10240M(即10GB),防止数据文件无限制增长占用过多磁盘空间。, '/dm8/data/DAMENG/DMTBS02.DBF' size 64 autoextend on next 2 maxsize 10240
:为DMTBS
表空间添加第二个数据文件/dm8/data/DAMENG/DMTBS02.DBF
,同样初始大小设为64M,具备自动扩展功能,每次扩展2M,最大扩展到10240M 。通过多个数据文件可以分散存储数据,提升I/O性能,尤其是在大数据量场景下。CACHE = NORMAL
:设置表空间的缓存模式为NORMAL
。达梦数据库的缓存模式决定了数据在内存中的缓存策略,NORMAL
模式采用默认的缓存算法,根据数据访问的频繁程度等因素来管理数据在缓存中的存放,以平衡内存使用和数据访问效率。
四、用户与角色管理
(一)创建用户
命令 :create user "DMTEST" identified by "Dameng123" default tablespace "DMTBS" default index tablespace "DMTBS";
解释 :
create user "DMTEST"
:创建一个新用户,用户名为DMTEST
。在达梦数据库中,每个用户都有独立的权限体系和默认的存储空间设置等。identified by "Dameng123"
:为DMTEST
用户设置密码为Dameng123
。强密码策略对于保障数据库安全至关重要,应避免使用过于简单易猜的密码。default tablespace "DMTBS"
:指定DMTEST
用户的默认表空间为DMTBS
。当该用户创建表、视图等数据库对象时,如果未显式指定表空间,这些对象将被创建在DMTBS
表空间中。合理分配默认表空间有助于组织和管理数据库存储。default index tablespace "DMTBS"
:设置DMTEST
用户创建索引时的默认表空间为DMTBS
。索引用于加速数据查询,将索引存储在合适的表空间可以优化查询性能,与数据文件分开存储在某些场景下能减少I/O冲突。
(二)创建角色与授权
创建角色并授权
命令 :create role "TESTROLE";
解释 :创建一个名为TESTROLE
的角色。角色是一组权限的集合,通过将权限赋予角色,再将角色授予用户,可以更方便地管理用户权限,尤其在多个用户需要相同权限集合的场景下,避免重复授权操作。命令 :grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "TESTROLE";
解释 :将创建表(CREATE TABLE
)、创建视图(CREATE VIEW
)和创建索引(CREATE INDEX
)的权限授予TESTROLE
角色。拥有这些权限后,被赋予该角色的用户将能够在其权限范围内执行相应的数据库对象创建操作。 角色赋予用户并授权
命令 :grant "RESOURCE","TESTROLE" to "DMTEST";
解释 :将RESOURCE
角色和TESTROLE
角色授予DMTEST
用户。RESOURCE
角色通常包含一些基本的数据库操作权限,如创建表、存储过程等,结合TESTROLE
角色赋予的权限,进一步丰富了DMTEST
用户的操作能力,使其能够进行更多类型的数据库开发和管理工作。命令 :grant SELECT on "SYS"."DBA_TABLESPACES" to "DMTEST";
解释 :授予DMTEST
用户查询SYS
模式下DBA_TABLESPACES
视图的权限。DBA_TABLESPACES
视图存储了数据库中所有表空间的详细信息,如名称、数据文件路径、大小、状态等,允许DMTEST
用户查询该视图,使其能够获取数据库表空间的相关信息,有助于进行数据库管理和维护工作。
五、表创建(EMP和DEPT表)
(一)切换用户并连接数据库
命令 :cd /dm8/bin
解释 :切换到dm8
安装目录下的bin
目录,该目录包含了达梦数据库的各种可执行工具,如数据库客户端工具disql
等,后续执行连接数据库等操作需要在该目录下进行。 命令 :./disql DMTEST/Dameng123:5237
解释 :使用disql
工具以DMTEST
用户(密码为Dameng123
)连接到运行在端口5237
上的达梦数据库实例。disql
是达梦数据库提供的命令行接口,用于执行SQL语句、管理数据库对象等操作。成功连接后,用户可以在命令行中输入SQL指令对数据库进行操作。
(二)创建表
创建DEPT表
命令 :create table DEPT (DEPT_ID INTEGER primary key, DEPT_NAME VARCHAR(30), LOCATION_ID INTEGER, LOCATION_ADDR VARCHAR(30)) tablespace DMTBS;
解释 :
create table DEPT
:创建一个名为DEPT
的表。(DEPT_ID INTEGER primary key
:定义DEPT_ID
列,数据类型为INTEGER
(整数型),并将其设置为主键。主键用于唯一标识表中的每一行记录,确保表中数据的唯一性和完整性,在数据关联和查询优化中起着关键作用。, DEPT_NAME VARCHAR(30)
:定义DEPT_NAME
列,数据类型为VARCHAR(30)
,即最大长度为30个字符的可变长度字符串,用于存储部门名称。, LOCATION_ID INTEGER
:定义LOCATION_ID
列,数据类型为INTEGER
,可用于存储部门所在位置的标识。, LOCATION_ADDR VARCHAR(30))
:定义LOCATION_ADDR
列,数据类型为VARCHAR(30)
,用于存储部门的详细地址。tablespace DMTBS
:指定该表存储在DMTBS
表空间中,按照DMTBS
表空间的存储规则和属性来存放数据。 创建EMP表
命令 :create table "EMP" ( "EMP_ID" INTEGER NOT NULL, "EMP_NAME" VARCHAR(20), "EMAIL" VARCHAR(50), "PHONE_NUM" VARCHAR(20), "HIRE_DATE" DATE, "JOB_ID" VARCHAR(10), "MANAGER_ID" INTEGER, "SALARY" INTEGER, "DEPT_ID" INTEGER FOREIGN KEY REFERENCES DEPT(DEPT_ID), PRIMARY KEY("EMP_ID")) tablespace DMTBS;
解释 :
create table "EMP"
:创建名为EMP
的表,表名使用双引号括起来,在达梦数据库中,这样可以确保表名大小写敏感,如果不使用双引号,表名将被自动转换为大写。"EMP_ID" INTEGER NOT NULL
:定义EMP_ID
列,数据类型为INTEGER
,且该列不能为空(NOT NULL
约束),后续将其设置为主键,用于唯一标识员工记录。, "EMP_NAME" VARCHAR(20)
:定义EMP_NAME
列,数据类型为VARCHAR(20)
,用于存储员工姓名。, "EMAIL" VARCHAR(50)
:定义EMAIL
列,数据类型为VARCHAR(50)
,用于存储员工的电子邮件地址。, "PHONE_NUM" VARCHAR(20)
:定义PHONE_NUM
列,数据类型为VARCHAR(20)
,用于存储员工的电话号码。, "HIRE_DATE" DATE
:定义HIRE_DATE
列,数据类型为DATE
,用于存储员工的入职日期。, "JOB_ID" VARCHAR(10)
:定义JOB_ID
列,数据类型为VARCHAR(10)
,用于存储员工的职位ID。, "MANAGER_ID" INTEGER
:定义MANAGER_ID
列,数据类型为INTEGER
,可用于存储员工的上级经理ID,用于构建组织架构关系。, "SALARY" INTEGER
:定义SALARY
列,数据类型为INTEGER
,用于存储员工的薪资。, "DEPT_ID" INTEGER FOREIGN KEY REFERENCES DEPT(DEPT_ID)
:定义DEPT_ID
列,数据类型为INTEGER
,并设置为外键,引用DEPT
表的DEPT_ID
列。外键约束建立了EMP
表和DEPT
表之间的关联关系,确保EMP
表中的DEPT_ID
值在DEPT
表中存在,维护了数据的参照完整性。, PRIMARY KEY("EMP_ID"))
:将EMP_ID
列设置为主键,保证EMP
表中每一行记录的唯一性。tablespace DMTBS
:指定EMP
表存储在DMTBS
表空间中,遵循DMTBS
表空间的存储特性和管理方式。
六、数据导入
命令 :./disql DMTEST/Dameng123:5238
解释 :再次使用disql
工具,以DMTEST
用户(密码Dameng123
)连接到运行在端口5238
上的达梦数据库实例。可能由于之前连接的端口或操作环境变化,需要重新连接以执行后续的数据导入操作。 命令 :start /opt/script1.sql
解释 :在已连接的disql
会话中,执行start
命令来运行位于/opt
目录下的script1.sql
脚本文件。该脚本文件中通常包含一系列的SQL插入语句或其他数据操作语句,用于向之前创建的EMP
和DEPT
表中导入数据,从而完成数据库的数据初始化工作。
七、备份策略实施
(一)手动完整备份
命令 :cd /dm8/bin
解释 :切换到dm8
安装目录下的bin
目录,因为dmrman
工具位于此目录,dmrman
是达梦数据库用于备份和恢复操作的命令行工具。 命令 :./dmrman
解释 :启动dmrman
工具,进入dmrman
的命令行交互界面,在该界面下可以执行各种备份、恢复相关的指令。 命令 :backup database to DMDB_bak backupset '/dm8/backup/';
解释 :在dmrman
中执行备份操作,对当前数据库进行完整备份。backup database to DMDB_bak
指定将数据库备份命名为DMDB_bak
,backupset '/dm8/backup/'
指定备份集存储的路径为/dm8/backup/
目录。完整备份会将数据库中的所有数据文件、控制文件等完整地复制到备份集中,用于在需要时进行全量恢复。
(二)JOB备份设置
JOB1(周日晚22:00全量备份)
命令 :call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');
解释 :调用存储过程SP_CREATE_JOB
创建一个名为JOB1
的作业。参数1
表示作业类型为本地作业;0
表示作业状态初始为禁用;两个空字符串分别用于指定作业描述和远程服务器名(这里为空表示本地作业不需要远程相关设置);后面两个0
分别表示重试次数和重试间隔(这里未设置重试相关参数);最后一个空字符串用于指定作业的扩展信息。命令 :call SP_JOB_CONFIG_START('JOB1');
解释 :启动JOB1
作业的配置过程,在这个过程中可以添加作业步骤和调度计划等详细配置信息。命令 :call SP_ADD_JOB_STEP('JOB1', 'B1', 5, '01000/dm8/backup/', 1, 2, 0, 0, NULL, 0);
解释 :为JOB1
作业添加一个步骤,步骤名为B1
。参数5
表示作业步骤类型为备份数据库;'01000/dm8/backup/'
中,01000
表示全量备份,/dm8/backup/
指定备份集存储路径;1
表示备份级别为0级(全量备份);2
表示备份介质类型为磁盘;后面几个0
分别表示是否压缩备份集、是否加密备份集等相关设置(这里都设为0表示不进行压缩和加密);NULL
表示备份集密码(未设置密码);最后的0
表示是否验证备份集(不验证)。命令 :call SP_ADD_JOB_SCHEDULE('JOB1', 'd3', 1, 2, 1, 1, 0, '22:00:00', NULL, '2020 - 11 - 27 17:04:35', NULL, '');
解释 :为JOB1
作业添加调度计划。d3
表示调度类型为每周执行一次;1
表示从周一开始计数;2
表示每周日执行(因为从周一开始计数,周日为第2天);1
表示开始日期为当前月的第1天;1
表示开始时间为每周日的22:00:00
;NULL
表示结束日期未设置;'2020 - 11 - 27 17:04:35'
表示作业生效的起始时间;NULL
表示作业失效时间未设置;最后的空字符串用于指定调度的扩展信息。命令 :call SP_JOB_CONFIG_COMMIT('JOB1');
解释 :提交JOB1
作业的配置,使之前添加的作业步骤和调度计划生效,数据库将按照设定的计划在每周日晚22:00执行全量备份操作。 JOB2(周一至周六晚22:00增量备份)
命令 :call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');
解释 :调用存储过程SP_CREATE_JOB
创建一个名为JOB2
的作业,参数含义与创建JOB1
时类似,创建一个本地作业,初始状态为禁用。命令 :call SP_JOB_CONFIG_START('JOB2');
解释 :启动JOB2
作业的配置过程,准备添加作业步骤和调度计划。命令 :call SP_ADD_JOB_STEP('JOB2', 'B2', 5, '11000/dm8/backup|/dm8/bakcup/', 1, 2, 0, 0, NULL, 0);
解释 :为JOB2
作业添加一个步骤,步骤名为B2
。参数5
表示作业步骤类型为备份数据库;'11000/dm8/backup|/dm8/bakcup/'
中,11000
表示增量备份,/dm8/backup/
和/dm8/bakcup/
指定了备份集存储路径(这里使用|
分隔表示可以有多个路径);1
表示备份级别为1级(增量备份);2
表示备份介质类型为磁盘;后面几个0
分别表示是否压缩备份集、是否加密备份集等相关设置(这里都设为0表示不进行压缩和加密);NULL
表示备份集密码(未设置密码);最后的0
表示是否验证备份集(不验证)。命令 :call SP_ADD_JOB_SCHEDULE('JOB2', 'd2', 1, 2, 1, 126, 0, '22:00:00', NULL, '2020 - 11 - 27 17:09:46', NULL, '');
解释 :为JOB2
作业设置调度计划。d2
代表调度类型为每日执行;1
表示从周一开始计数;2
意味着执行周期为1天,即每天执行;1
表示从每月的第1天开始;126
表示周一到周六执行(通过二进制位运算,126的二进制为01111110,对应周一到周六为1,周日为0);0
表示开始时间为每天的22:00:00
;NULL
表示结束日期未指定;'2020 - 11 - 27 17:09:46'
为作业生效的起始时间;NULL
表示作业失效时间未设置;最后的空字符串用于指定调度的扩展信息。通过这样的设置,JOB2
作业会在周一至周六的晚上22:00执行增量备份操作。命令 :call SP_JOB_CONFIG_COMMIT('JOB2');
解释 :提交JOB2
作业的配置信息。一旦提交,数据库将按照所设定的调度计划和备份步骤,在规定时间执行增量备份任务。这确保了数据库在日常运行中,除了每周日的全量备份外,周一至周六能通过增量备份记录数据库的变化,以便在需要恢复数据时,可以利用全量备份和增量备份的组合,更高效地还原到特定时间点的数据库状态。
八、数据还原操作
(一)执行脚本保证数据不丢失
命令 :./disql
解释 :启动达梦数据库的命令行客户端工具disql
。该工具允许用户以命令行方式与数据库进行交互,执行各种SQL语句和数据库管理命令。在进行数据还原相关操作前,需要先通过disql
连接到数据库实例。 命令 :start /opt/script2.sh
解释 :在disql
环境中执行位于/opt
目录下的script2.sh
脚本文件。通常,这个脚本包含一系列的SQL语句或数据库操作指令,用于在数据还原之前,执行一些必要的数据保护或备份策略。例如,它可能会执行额外的临时备份操作,或者对数据库的关键数据进行一致性检查和预处理,以确保在还原过程中数据的完整性和准确性,最大程度地减少数据丢失的风险。
(二)还原数据库
命令 :./dmrman
解释 :启动达梦数据库的备份恢复管理工具dmrman
。dmrman
提供了丰富的命令和功能,专门用于处理数据库的备份和还原操作,是进行数据还原的核心工具。 命令 :check backupset '/dm8/backup/';
解释 :在dmrman
中执行check backupset
命令,用于检查指定路径/dm8/backup/
下的备份集的完整性和有效性。该操作会验证备份集的文件结构、数据校验和等信息,确保备份集没有损坏或丢失数据,为后续的还原操作提供可靠的基础。如果备份集存在问题,工具会给出相应的错误提示,以便用户采取修复措施或选择其他可用的备份集。 命令 :RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup/ ';
解释 :使用dmrman
的RESTORE
命令,从指定的备份集/dm8/backup/
中还原数据库。/dm8/data/DMDB/dm.ini
指定了要还原的数据库的配置文件路径,通过该配置文件,工具能够了解数据库的结构、数据文件位置等关键信息,从而准确地将备份集中的数据恢复到数据库中。在还原过程中,dmrman
会根据备份集的内容,覆盖或重建数据库的数据文件、控制文件等,使数据库回到备份时的状态。 命令 :RECOVER DATABASE '/dm8/data/DMDB/dm.ini' WITH ARCHIVEDIR '/dm8/arch';
解释 :执行RECOVER
命令对还原后的数据库应用归档日志。/dm8/data/DMDB/dm.ini
指定了要恢复的数据库配置文件,WITH ARCHIVEDIR '/dm8/arch'
指定了归档日志的存储目录/dm8/arch
。在数据库运行过程中,归档日志记录了所有的事务操作。通过应用归档日志,可以将数据库恢复到故障点或特定时间点,确保数据的一致性和完整性。这一步骤在还原操作中非常重要,尤其是在需要恢复到最新状态或特定事务点的情况下。 命令 :RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC;
解释 :再次执行RECOVER
命令,但这次使用UPDATE DB_MAGIC
选项。数据库魔数(DB_MAGIC)是一个用于标识数据库状态和一致性的重要参数。在某些情况下,如数据库结构发生重大变化或经过特定的还原操作后,需要更新数据库魔数,以确保数据库内部的一致性和完整性。通过执行该命令,dmrman
会根据数据库的当前状态和还原操作的结果,更新数据库魔数,使数据库能够正常运行并与新的状态相匹配。
九、逻辑全库导出
命令 :cd /dm8/bin
解释 :切换到达梦数据库安装目录下的bin
目录。该目录包含了许多达梦数据库的可执行工具,其中dexp
工具用于数据库的逻辑导出操作,因此需要先进入该目录才能执行dexp
命令。 命令 :./dexp sysdba/Dameng123:5237 file=dmdb_full.dmp log=dmdb_full.log directory=/dm8/backup full=y
解释 :执行dexp
工具进行逻辑全库导出。sysdba/Dameng123:5237
表示使用系统管理员sysdba
,密码为Dameng123
,连接到运行在端口5237
上的数据库实例。file=dmdb_full.dmp
指定导出的数据将存储在名为dmdb_full.dmp
的文件中,该文件将包含数据库中的所有对象(如表、视图、存储过程等)及其数据。log=dmdb_full.log
指定导出操作的日志将记录在dmdb_full.log
文件中,通过查看日志可以了解导出过程中是否发生错误或警告信息。directory=/dm8/backup
指定导出文件和日志文件的存储目录为/dm8/backup
。full=y
表示进行全库导出,即导出数据库中的所有用户模式下的对象和数据,如果不使用该参数,可能只导出指定用户或部分对象。
十、视图创建
命令 :create VIEW TEST.V_EMP AS SELECT * FROM TEST.EMP WHERE HIRE_DATE > '1999 - 12 - 31' AND HIRE_DATE < '2004 - 01 - 01';
解释 :创建一个名为V_EMP
的视图,该视图属于TEST
模式。视图是一种虚拟表,它基于一个或多个表(这里是TEST.EMP
表)的查询结果构建。AS SELECT * FROM TEST.EMP WHERE HIRE_DATE > '1999 - 12 - 31' AND HIRE_DATE < '2004 - 01 - 01'
定义了视图的查询逻辑,即从TEST.EMP
表中选取HIRE_DATE
(入职日期)在1999 - 12 - 31
之后且在2004 - 01 - 01
之前的所有记录。通过创建这样的视图,用户可以像查询普通表一样查询V_EMP
,获取符合特定条件的员工数据,而无需每次都编写复杂的查询语句,同时也对底层数据提供了一定的保护和抽象。
十一、索引创建
命令 :create index "IND_EMP_NAME" on "DMTEST"."EMP"("EMP_NAME");
解释 :在DMTEST
模式下的EMP
表的EMP_NAME
列上创建一个名为IND_EMP_NAME
的索引。索引是一种数据库对象,用于提高数据查询的速度。当在EMP_NAME
列上创建索引后,数据库系统可以通过索引更快地定位和检索满足特定EMP_NAME
条件的数据行。在查询涉及到EMP_NAME
列的过滤条件时,数据库引擎可以直接使用索引来快速找到相关数据,而无需全表扫描,从而显著提升查询性能。特别是在表数据量较大时,索引的作用更加明显。
十二、ODBC驱动安装与配置
(一)解压与编译安装
命令 :tar -zxvf unixODBC-2.3.0.tar.gz
解释 :使用tar
命令解压unixODBC-2.3.0.tar.gz
压缩包。-z
表示解压的文件是经过gzip压缩的,-x
表示执行解压操作,-v
表示在解压过程中显示详细的文件列表,-f
指定要解压的文件名。解压后会得到unixODBC-2.3.0
目录,其中包含了ODBC驱动的源代码和相关文件,为后续的编译安装做准备。 命令 :cd unixODBC-2.3.0
解释 :切换到解压后的unixODBC-2.3.0
目录,该目录下包含了用于配置、编译和安装ODBC驱动的脚本和文件,后续的安装操作将在此目录中进行。 命令 :./configure --enable-gui=no
解释 :执行configure
脚本对ODBC驱动进行配置。--enable-gui=no
参数表示在配置过程中不启用图形用户界面相关的功能。因为在服务器环境中,可能不需要图形界面支持,这样可以简化安装过程并减少不必要的依赖。配置脚本会检查系统环境、依赖库等,并生成用于编译的Makefile文件。 命令 :make
解释 :在配置完成后,使用make
命令根据生成的Makefile文件编译ODBC驱动的源代码。make
会按照Makefile中定义的规则,调用编译器(如gcc
)将源代码文件编译成可执行文件和库文件,这一过程会生成中间文件和目标文件,最终构建出可供安装的ODBC驱动程序。 命令 :make install
解释 :执行make install
命令将编译好的ODBC驱动安装到系统中。该命令会将生成的可执行文件、库文件和配置文件等复制到系统的相应目录,如/usr/local/bin
、/usr/local/lib
和/usr/local/etc
等,使系统能够识别和使用该ODBC驱动,完成驱动的安装过程。
(二)配置文件设置
配置odbc.ini文件
命令 :vi /usr/local/etc/odbc.ini
解释 :使用vim
编辑器打开odbc.ini
配置文件,该文件用于配置ODBC数据源的相关信息。在文件中添加或修改以下内容:
命令 :[dm8]
解释 :定义一个名为dm8
的数据源节,在该节中配置与达梦数据库相关的数据源设置。每个数据源在odbc.ini
文件中都有一个对应的节,通过节名来区分不同的数据源配置。命令 :Description = DM ODBC DSND
解释 :为dm8
数据源添加描述信息DM ODBC DSND
,用于简要说明该数据源的用途或相关信息,方便用户识别和管理数据源。命令 :Driver = DM8 ODBC DRIVER
解释 :指定dm8
数据源所使用的ODBC驱动为DM8 ODBC DRIVER
。在odbcinst.ini
文件中需要有对应的驱动定义,这里的名称要与odbcinst.ini
中的驱动名称一致,以便ODBC系统能够正确加载和使用该驱动连接到达梦数据库。命令 :SERVER = localhost
解释 :设置要连接的达梦数据库服务器地址为本地主机localhost
。如果数据库服务器运行在其他主机上,需要将其替换为实际的服务器IP地址或主机名。命令 :UID = SYSDBA
解释 :指定连接数据库时使用的用户名SYSDBA
,该用户需要在达梦数据库中具有相应的权限,以便进行各种数据库操作。命令 :PWD = Dameng123
解释 :设置连接数据库时使用的密码Dameng123
,与用户名SYSDBA
相对应,用于验证用户身份,确保能够成功连接到达梦数据库。命令 :TCP_PORT = 5237
解释 :指定连接达梦数据库的TCP端口号为5237
,该端口号要与达梦数据库实例实际监听的端口一致,确保能够建立网络连接。 配置odbcinst.ini文件
命令 :vi /usr/local/etc/odbcinst.ini
解释 :使用vim
编辑器打开odbcinst.ini
配置文件,该文件用于配置ODBC驱动的相关信息。在文件中添加以下内容:
命令 :[DM8 ODBC DRIVER]
解释 :定义一个名为DM8 ODBC DRIVER
的驱动节,用于配置达梦数据库ODBC驱动的详细信息。与odbc.ini
中指定的驱动名称相对应,确保ODBC系统能够正确关联驱动配置。命令 :Description = ODBC DRIVER FOR DM8
解释 :为DM8 ODBC DRIVER
驱动添加描述信息ODBC DRIVER FOR DM8
,简要说明该驱动的用途,方便用户识别和管理。命令 :DRIVER = /dm8/bin/libdodbc.so
解释 :指定DM8 ODBC DRIVER
驱动的动态链接库文件路径为/dm8/bin/libdodbc.so
。ODBC系统在加载驱动时,会根据此路径找到对应的驱动库文件,从而实现与达梦数据库的连接。
(三)权限设置与测试
命令 :chmod 775 /usr/local/etc/odbc.ini
解释 :使用chmod
命令修改/usr/local/etc/odbc.ini
文件的权限为775
。这意味着文件所有者、所属组和其他用户都具有读和执行权限,文件所有者和所属组还具有写权限。适当的权限设置确保了相关用户(如dmdba
用户)能够读取和修改该配置文件,同时保证系统的安全性,防止未经授权的访问和修改。 命令 :chmod 775 /usr/local/etc/odbcinst.ini
解释 :同样,修改/usr/local/etc/odbcinst.ini
文件的权限为775
,以确保对该文件的访问控制与odbc.ini
文件一致,使相关用户能够正确读取和使用其中的驱动配置信息。 命令 :su - dmdba
解释 :切换到dmdba
用户。因为在安装和配置ODBC驱动过程中,可能需要以特定用户(如dmdba
)身份进行测试,以确保驱动能够在实际使用场景中正常工作,并且避免权限问题导致测试失败。 命令 :isql dm8
解释 :在dmdba
用户下执行isql
命令连接到名为dm8
的数据源。isql
是ODBC提供的命令行工具,用于测试ODBC数据源的连接。如果配置正确,执行该命令后将能够成功连接到达梦数据库,并进入一个交互式的SQL命令行环境,用户可以在此环境中执行SQL语句,验证ODBC驱动是否能够正常与达梦数据库进行通信和数据操作。如果连接失败,会提示相应的错误信息,用户可以根据错误信息进一步排查和解决问题。