当前位置: 首页 > news >正文

达梦数据库学习笔记@3

目录

    • 一、DM8安装(NeoKylin Linux Server 7.0系统)
      • (一)考前准备与环境检查
      • (二)安装过程
    • 二、数据库部署
      • (一)创建相关目录
      • (二)初始化数据库
      • (三)注册数据库服务
      • (四)修改数据库配置参数
      • (五)配置归档文件
      • (六)重启数据库服务
    • 三、表空间规划(DMTBS表空间)
    • 四、用户与角色管理
      • (一)创建用户
      • (二)创建角色与授权
    • 五、表创建(EMP和DEPT表)
      • (一)切换用户并连接数据库
      • (二)创建表
    • 六、数据导入
    • 七、备份策略实施
      • (一)手动完整备份
      • (二)JOB备份设置
    • 八、数据还原操作
      • (一)执行脚本保证数据不丢失
      • (二)还原数据库
    • 九、逻辑全库导出
    • 十、视图创建
    • 十一、索引创建
    • 十二、ODBC驱动安装与配置
      • (一)解压与编译安装
      • (二)配置文件设置
      • (三)权限设置与测试

一、DM8安装(NeoKylin Linux Server 7.0系统)

(一)考前准备与环境检查

  1. 防火墙管理
    • 命令systemctl status firewalld
    • 解释:查看防火墙firewalld的运行状态,包括是否正在运行、开机自启状态等信息,确认其是否会干扰达梦数据库的安装与后续使用。
    • 命令systemctl stop firewalld
    • 解释:停止firewalld服务,临时关闭防火墙,避免在安装过程中,防火墙阻止网络连接或端口访问,确保安装过程顺利。
  2. 软件包检查与安装
    • 命令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参数表示自动确认安装过程中的所有提示,无需手动干预,直接安装指定的gccglibc软件包。
  3. 系统参数调整
    • 命令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
    • 解释:使修改后的最大文件打开数限制临时生效,无需重启系统即可应用新的设置,但该设置在系统重启后会失效。
  4. 用户创建与目录权限设置
    • 命令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目录的详细信息,包括权限、所有者、所属组等,确认权限设置是否正确。

(二)安装过程

  1. 挂载安装包镜像
    • 命令mount -o loop /opt/dm8_setup_rh7.iso /mnt
    • 解释:将达梦数据库安装包镜像文件/opt/dm8_setup_rh7.iso挂载到/mnt目录,-o loop表示以回环设备的方式挂载镜像,使系统将镜像文件视为一个块设备进行访问。
    • 命令cd /mnt
    • 解释:切换到挂载点/mnt目录,以便后续操作安装包文件。
  2. 安装包处理与安装
    • 命令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参数表示以交互模式进行安装,安装过程中会提示用户进行各种选择和配置。
  3. 安装后配置
    • 命令/dm8/script/root/root_installer.sh
    • 解释:安装完成后,以root用户执行该脚本,用于创建AP服务,完成安装的后续配置工作,使达梦数据库能够更好地与系统集成并稳定运行。

二、数据库部署

(一)创建相关目录

  1. 命令cd /dm8
    • 解释:切换到达梦数据库的安装目录/dm8
  2. 命令mkdir -p backup
    • 解释:在/dm8目录下创建backup目录,用于存放数据库备份文件,-p参数确保目录结构完整创建。
  3. 命令mkdir -p data
    • 解释:在/dm8目录下创建data目录,用于存放数据库的数据文件,-p参数确保目录结构完整创建。
  4. 命令chown dmdba:dinstall backup
    • 解释:更改backup目录的所有者为dmdba,所属组为dinstall,确保dmdba用户对该目录有读写权限,以便进行备份操作。
  5. 命令chown dmdba:dinstall data
    • 解释:更改data目录的所有者为dmdba,所属组为dinstall,确保dmdba用户对该目录有读写权限,以便存放和管理数据文件。

(二)初始化数据库

  1. 命令cd /dm8/bin
    • 解释:切换到dm8安装目录下的bin目录,该目录包含了许多达梦数据库的可执行工具。
  2. 命令./dminit help
    • 解释:执行dminit工具并带上help参数,查看dminit工具的帮助信息,了解其使用方法和可配置参数。
  3. 命令./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=300LOG_PATH=/dm8/data/DMDB/DATA02.log LOG_SIZE=300LOG_PATH=/dm8/data/DMDB/DATA03.log LOG_SIZE=300:分别指定三组日志文件的路径和大小,每组日志文件大小为300M,用于记录数据库操作日志,保证数据的一致性和可恢复性。

在这里插入图片描述

(三)注册数据库服务

  1. 命令cd /dm8/script/rootroot用户操作
    • 解释:切换到存放数据库服务注册脚本的目录。
  2. 命令./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,脚本根据该配置文件来注册服务,确保服务与数据库实例正确关联。

在这里插入图片描述

(四)修改数据库配置参数

  1. 命令vi /dm8/data/DMDB/dm.ini
    • 解释:使用vim编辑器打开数据库配置文件dm.ini
  2. 修改以下参数
    • 命令COMPATIBLE_MODE=3
    • 解释:设置数据库的兼容模式,这里设置为3,具体兼容模式根据考试题要求更改。兼容模式可以使达梦数据库在一定程度上模拟其他数据库的行为,方便应用程序迁移。
    • 命令PWD_POLICY=7
    • 解释:设置口令策略,这里设置为7,具体策略根据考试题要求更改。口令策略用于控制用户密码的复杂度和安全性,如密码长度、是否包含特殊字符等。
    • 命令PWD_MIN_LEN=6
    • 解释:设置口令最小长度为6位,确保用户密码具有一定的强度。
    • 命令ARCH_INI=1
    • 解释:开启归档功能,归档可以记录数据库的所有变更操作,用于数据恢复和灾难恢复。
    • 命令BAK_PATH = /dm8/backup
    • 解释:指定数据库备份路径为/dm8/backup,方便统一管理备份文件。
  3. 命令sp_set_para_value(1,'PWD_POLICY',0);
    • 解释:通过存储过程sp_set_para_value动态修改PWD_POLICY参数,1表示动态修改,即修改后立即生效,无需重启数据库;'PWD_POLICY'指定要修改的参数名称;0表示修改后的参数值,具体含义根据参数定义确定。

(五)配置归档文件

  1. 命令cd /dm8/data/DMDB
    • 解释:切换到数据库数据目录下的DMDB目录。
  2. 命令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,当归档文件占用的空间达到该限制时,会根据配置进行相应的处理,如删除旧的归档文件。

(六)重启数据库服务

  1. 命令/opt/dm8/bin/DmServicedbserver restart
    • 解释:执行该命令重启数据库服务,使修改后的数据库配置参数生效。在修改了dm.inidmarch.ini等配置文件后,必须重启数据库服务才能应用新的设置。

三、表空间规划(DMTBS表空间)

  1. 命令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模式采用默认的缓存算法,根据数据访问的频繁程度等因素来管理数据在缓存中的存放,以平衡内存使用和数据访问效率。

四、用户与角色管理

(一)创建用户

  1. 命令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冲突。

(二)创建角色与授权

  1. 创建角色并授权
    • 命令create role "TESTROLE";
    • 解释:创建一个名为TESTROLE的角色。角色是一组权限的集合,通过将权限赋予角色,再将角色授予用户,可以更方便地管理用户权限,尤其在多个用户需要相同权限集合的场景下,避免重复授权操作。
    • 命令grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "TESTROLE";
    • 解释:将创建表(CREATE TABLE)、创建视图(CREATE VIEW)和创建索引(CREATE INDEX)的权限授予TESTROLE角色。拥有这些权限后,被赋予该角色的用户将能够在其权限范围内执行相应的数据库对象创建操作。
  2. 角色赋予用户并授权
    • 命令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表)

(一)切换用户并连接数据库

  1. 命令cd /dm8/bin
    • 解释:切换到dm8安装目录下的bin目录,该目录包含了达梦数据库的各种可执行工具,如数据库客户端工具disql等,后续执行连接数据库等操作需要在该目录下进行。
  2. 命令./disql DMTEST/Dameng123:5237
    • 解释:使用disql工具以DMTEST用户(密码为Dameng123)连接到运行在端口5237上的达梦数据库实例。disql是达梦数据库提供的命令行接口,用于执行SQL语句、管理数据库对象等操作。成功连接后,用户可以在命令行中输入SQL指令对数据库进行操作。

(二)创建表

  1. 创建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表空间的存储规则和属性来存放数据。
  2. 创建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表空间的存储特性和管理方式。

六、数据导入

  1. 命令./disql DMTEST/Dameng123:5238
    • 解释:再次使用disql工具,以DMTEST用户(密码Dameng123)连接到运行在端口5238上的达梦数据库实例。可能由于之前连接的端口或操作环境变化,需要重新连接以执行后续的数据导入操作。
  2. 命令start /opt/script1.sql
    • 解释:在已连接的disql会话中,执行start命令来运行位于/opt目录下的script1.sql脚本文件。该脚本文件中通常包含一系列的SQL插入语句或其他数据操作语句,用于向之前创建的EMPDEPT表中导入数据,从而完成数据库的数据初始化工作。

七、备份策略实施

(一)手动完整备份

  1. 命令cd /dm8/bin
    • 解释:切换到dm8安装目录下的bin目录,因为dmrman工具位于此目录,dmrman是达梦数据库用于备份和恢复操作的命令行工具。
  2. 命令./dmrman
    • 解释:启动dmrman工具,进入dmrman的命令行交互界面,在该界面下可以执行各种备份、恢复相关的指令。
  3. 命令backup database to DMDB_bak backupset '/dm8/backup/';
    • 解释:在dmrman中执行备份操作,对当前数据库进行完整备份。backup database to DMDB_bak指定将数据库备份命名为DMDB_bakbackupset '/dm8/backup/'指定备份集存储的路径为/dm8/backup/目录。完整备份会将数据库中的所有数据文件、控制文件等完整地复制到备份集中,用于在需要时进行全量恢复。

(二)JOB备份设置

  1. 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:00NULL表示结束日期未设置;'2020 - 11 - 27 17:04:35'表示作业生效的起始时间;NULL表示作业失效时间未设置;最后的空字符串用于指定调度的扩展信息。
    • 命令call SP_JOB_CONFIG_COMMIT('JOB1');
    • 解释:提交JOB1作业的配置,使之前添加的作业步骤和调度计划生效,数据库将按照设定的计划在每周日晚22:00执行全量备份操作。
  2. 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:00NULL表示结束日期未指定;'2020 - 11 - 27 17:09:46'为作业生效的起始时间;NULL表示作业失效时间未设置;最后的空字符串用于指定调度的扩展信息。通过这样的设置,JOB2作业会在周一至周六的晚上22:00执行增量备份操作。
    • 命令call SP_JOB_CONFIG_COMMIT('JOB2');
    • 解释:提交JOB2作业的配置信息。一旦提交,数据库将按照所设定的调度计划和备份步骤,在规定时间执行增量备份任务。这确保了数据库在日常运行中,除了每周日的全量备份外,周一至周六能通过增量备份记录数据库的变化,以便在需要恢复数据时,可以利用全量备份和增量备份的组合,更高效地还原到特定时间点的数据库状态。

八、数据还原操作

(一)执行脚本保证数据不丢失

  1. 命令./disql
    • 解释:启动达梦数据库的命令行客户端工具disql。该工具允许用户以命令行方式与数据库进行交互,执行各种SQL语句和数据库管理命令。在进行数据还原相关操作前,需要先通过disql连接到数据库实例。
  2. 命令start /opt/script2.sh
    • 解释:在disql环境中执行位于/opt目录下的script2.sh脚本文件。通常,这个脚本包含一系列的SQL语句或数据库操作指令,用于在数据还原之前,执行一些必要的数据保护或备份策略。例如,它可能会执行额外的临时备份操作,或者对数据库的关键数据进行一致性检查和预处理,以确保在还原过程中数据的完整性和准确性,最大程度地减少数据丢失的风险。

(二)还原数据库

  1. 命令./dmrman
    • 解释:启动达梦数据库的备份恢复管理工具dmrmandmrman提供了丰富的命令和功能,专门用于处理数据库的备份和还原操作,是进行数据还原的核心工具。
  2. 命令check backupset '/dm8/backup/';
    • 解释:在dmrman中执行check backupset命令,用于检查指定路径/dm8/backup/下的备份集的完整性和有效性。该操作会验证备份集的文件结构、数据校验和等信息,确保备份集没有损坏或丢失数据,为后续的还原操作提供可靠的基础。如果备份集存在问题,工具会给出相应的错误提示,以便用户采取修复措施或选择其他可用的备份集。
  3. 命令RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup/ ';
    • 解释:使用dmrmanRESTORE命令,从指定的备份集/dm8/backup/中还原数据库。/dm8/data/DMDB/dm.ini指定了要还原的数据库的配置文件路径,通过该配置文件,工具能够了解数据库的结构、数据文件位置等关键信息,从而准确地将备份集中的数据恢复到数据库中。在还原过程中,dmrman会根据备份集的内容,覆盖或重建数据库的数据文件、控制文件等,使数据库回到备份时的状态。
  4. 命令RECOVER DATABASE '/dm8/data/DMDB/dm.ini' WITH ARCHIVEDIR '/dm8/arch';
    • 解释:执行RECOVER命令对还原后的数据库应用归档日志。/dm8/data/DMDB/dm.ini指定了要恢复的数据库配置文件,WITH ARCHIVEDIR '/dm8/arch'指定了归档日志的存储目录/dm8/arch。在数据库运行过程中,归档日志记录了所有的事务操作。通过应用归档日志,可以将数据库恢复到故障点或特定时间点,确保数据的一致性和完整性。这一步骤在还原操作中非常重要,尤其是在需要恢复到最新状态或特定事务点的情况下。
  5. 命令RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC;
    • 解释:再次执行RECOVER命令,但这次使用UPDATE DB_MAGIC选项。数据库魔数(DB_MAGIC)是一个用于标识数据库状态和一致性的重要参数。在某些情况下,如数据库结构发生重大变化或经过特定的还原操作后,需要更新数据库魔数,以确保数据库内部的一致性和完整性。通过执行该命令,dmrman会根据数据库的当前状态和还原操作的结果,更新数据库魔数,使数据库能够正常运行并与新的状态相匹配。

九、逻辑全库导出

  1. 命令cd /dm8/bin
    • 解释:切换到达梦数据库安装目录下的bin目录。该目录包含了许多达梦数据库的可执行工具,其中dexp工具用于数据库的逻辑导出操作,因此需要先进入该目录才能执行dexp命令。
  2. 命令./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/backupfull=y表示进行全库导出,即导出数据库中的所有用户模式下的对象和数据,如果不使用该参数,可能只导出指定用户或部分对象。

十、视图创建

  1. 命令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,获取符合特定条件的员工数据,而无需每次都编写复杂的查询语句,同时也对底层数据提供了一定的保护和抽象。

十一、索引创建

  1. 命令create index "IND_EMP_NAME" on "DMTEST"."EMP"("EMP_NAME");
    • 解释:在DMTEST模式下的EMP表的EMP_NAME列上创建一个名为IND_EMP_NAME的索引。索引是一种数据库对象,用于提高数据查询的速度。当在EMP_NAME列上创建索引后,数据库系统可以通过索引更快地定位和检索满足特定EMP_NAME条件的数据行。在查询涉及到EMP_NAME列的过滤条件时,数据库引擎可以直接使用索引来快速找到相关数据,而无需全表扫描,从而显著提升查询性能。特别是在表数据量较大时,索引的作用更加明显。

十二、ODBC驱动安装与配置

(一)解压与编译安装

  1. 命令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驱动的源代码和相关文件,为后续的编译安装做准备。
  2. 命令cd unixODBC-2.3.0
    • 解释:切换到解压后的unixODBC-2.3.0目录,该目录下包含了用于配置、编译和安装ODBC驱动的脚本和文件,后续的安装操作将在此目录中进行。
  3. 命令./configure --enable-gui=no
    • 解释:执行configure脚本对ODBC驱动进行配置。--enable-gui=no参数表示在配置过程中不启用图形用户界面相关的功能。因为在服务器环境中,可能不需要图形界面支持,这样可以简化安装过程并减少不必要的依赖。配置脚本会检查系统环境、依赖库等,并生成用于编译的Makefile文件。
  4. 命令make
    • 解释:在配置完成后,使用make命令根据生成的Makefile文件编译ODBC驱动的源代码。make会按照Makefile中定义的规则,调用编译器(如gcc)将源代码文件编译成可执行文件和库文件,这一过程会生成中间文件和目标文件,最终构建出可供安装的ODBC驱动程序。
  5. 命令make install
    • 解释:执行make install命令将编译好的ODBC驱动安装到系统中。该命令会将生成的可执行文件、库文件和配置文件等复制到系统的相应目录,如/usr/local/bin/usr/local/lib/usr/local/etc等,使系统能够识别和使用该ODBC驱动,完成驱动的安装过程。

(二)配置文件设置

  1. 配置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,该端口号要与达梦数据库实例实际监听的端口一致,确保能够建立网络连接。
  2. 配置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系统在加载驱动时,会根据此路径找到对应的驱动库文件,从而实现与达梦数据库的连接。

(三)权限设置与测试

  1. 命令chmod 775 /usr/local/etc/odbc.ini
    • 解释:使用chmod命令修改/usr/local/etc/odbc.ini文件的权限为775。这意味着文件所有者、所属组和其他用户都具有读和执行权限,文件所有者和所属组还具有写权限。适当的权限设置确保了相关用户(如dmdba用户)能够读取和修改该配置文件,同时保证系统的安全性,防止未经授权的访问和修改。
  2. 命令chmod 775 /usr/local/etc/odbcinst.ini
    • 解释:同样,修改/usr/local/etc/odbcinst.ini文件的权限为775,以确保对该文件的访问控制与odbc.ini文件一致,使相关用户能够正确读取和使用其中的驱动配置信息。
  3. 命令su - dmdba
    • 解释:切换到dmdba用户。因为在安装和配置ODBC驱动过程中,可能需要以特定用户(如dmdba)身份进行测试,以确保驱动能够在实际使用场景中正常工作,并且避免权限问题导致测试失败。
  4. 命令isql dm8
    • 解释:在dmdba用户下执行isql命令连接到名为dm8的数据源。isql是ODBC提供的命令行工具,用于测试ODBC数据源的连接。如果配置正确,执行该命令后将能够成功连接到达梦数据库,并进入一个交互式的SQL命令行环境,用户可以在此环境中执行SQL语句,验证ODBC驱动是否能够正常与达梦数据库进行通信和数据操作。如果连接失败,会提示相应的错误信息,用户可以根据错误信息进一步排查和解决问题。

相关文章:

  • Unity DOTS 从入门到精通之 创建实体
  • Unity引擎使用HybridCLR(华佗)热更新
  • LangChain构建语言模型驱动应用的强大框架
  • 深入理解Linux网络随笔(四):内核是如何与用户进程协作的(下篇:多路I/O复用模型epoll)
  • c语言笔记 数组进阶题目的理解
  • 网络基础(一)【网络发展/认识协议/网络 VS 系统/以太网通信原理/重谈协议/网络中的地址管理】
  • 15 HarmonyOS NEXT UVList组件开发指南(二)
  • 先序二叉树的线索化,并找指定结点的先序后继
  • 1-1 驱动开发HelloWorld
  • 【定制开发】碰一碰发视频系统定制开发,支持OEM
  • 【Java】认识String类、字符串不可变性 + StringBuilder和StringBuffer —— 有码有图有真相
  • Java多线程与高并发专题——关于CopyOnWrite 容器特点
  • Cursor 使用经验,一个需求开发全流程
  • Spring为什么要用三级缓存解决循环依赖?
  • Django模板语法及静态文件
  • 阿里云CTF2025 ---Web
  • Javascript 基础数据类型
  • AI多模态教程:DeepSeek多模态模型解析及实践指南
  • python re正则表达式
  • 分布式锁—7.Curator的分布式锁二
  • 开发公司销售房产交哪些税/网站服务器速度对seo有什么影响
  • 龙湾做网站/百度关键词购买
  • 那个网站可以做考卷/百度商家怎么入驻
  • 如何引流与推广/企业关键词优化专业公司
  • 购买网址/企业网站设计优化公司
  • 工程项目管理软件app/太原百度推广排名优化