• 达梦数据库(DM8)服务部署与日常运维


            最近参加了达梦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 新建用户及用户组

    1. 创建用户组
    2. [root@dm-srv002 ~]# groupadd dinstall
    3. 创建用户
    4. [root@dm-srv002 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
    5. 修改用户密码
    6. [root@dm-srv002 ~]# echo Kylin123 |passwd --stdin dmdba

    1.1.7 修改系统参数

    1. 修改文件打开最大数
    2. [root@dm-srv002 ~]# vi /etc/security/limits.conf
    3. dmdba hard nofile 65536
    4. dmdba soft nofile 65536
    5. dmdba hard stack 32768
    6. dmdba soft stack 16384
    7. 查看是否生效
    8. [root@dm-srv002 ~]# su - dmdba
    9. [dmdba@dm-srv002 ~]# ulimit -a

    1.1.8  关闭防火墙

    1. [root@dm-srv002 ~]# systemctl stop firewalld
    2. [root@dm-srv002 ~]# systemctl disable firewalld

    1.1.9 下载安装包

    我这里下载的包dm8_20220701_x86_rh6_64_ent.zip,可以到达梦官网下载对应版本。

    1.2 命令行安装

    1.2.1 解压安装包

    1. [root@dm-srv002 ~]# unzip dm8_20220701_x86_rh6_64_ent.zip
    2. Archive:  dm8_20220701_x86_rh6_64_ent.zip
    3.    creating: dm8_20220701_x86_rh6_64_ent/
    4.   inflating: dm8_20220701_x86_rh6_64_ent/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso  
    5.   inflating: dm8_20220701_x86_rh6_64_ent/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso_SHA256.txt
    6. 检查文件
    7. [root@dm-srv002 ~]# dm8_20220701_x86_rh6_64_ent/
    8. [root@dm-srv002 ~]# sha256 dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso
    9. [root@dm-srv002 ~]# cat dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso_SHA256.txt

    1.2.2 挂载镜像

    1. [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
    2. mount: /dev/loop0 写保护,将以只读方式挂载

    1.2.3 创建目录

    1. [root@dm-srv002 ~]# mkdir -p /dm8
    2. [root@dm-srv002 ~]# chown -R dmdba.dinstall /dm8
    3. [root@dm-srv002 ~]# chmod 755 /dm8

    1.2.4 安装软件

    如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通

    过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示: #以 BASH 为例:

    1. [dmdba@dm-srv002 ~]$ mkdir -p /dm8tmp
    2. [dmdba@dm-srv002 ~]$ chown -R dmdba.dinstall /dm8tmp
    3. [dmdba@dm-srv002 ~]$ chmod 755 /dm8tmp
    4. [dmdba@dm-srv002 ~]$ DM_INSTALL_TMPDIR=/dm8tmp
    5. [dmdba@dm-srv002 ~]$ export DM_INSTALL_TMPDIR
    6. [dmdba@dm-srv002 mnt]$ cd /mnt
    7. [dmdba@dm-srv002 mnt]$ ls
    8. DM8 Install.pdf  DMInstall.bin
    9. [dmdba@dm-srv002 mnt]$ ./DMInstall.bin -i
    10. 请选择安装语言(C/c:中文 E/e:英文) [C/c]:
    11. 解压安装程序.........
    12. 欢迎使用达梦数据库安装程序
    13. 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
    14. 是否设置时区? (Y/y:是 N/n:否) [Y/y]:
    15. 设置时区:
    16. [ 1]: GTM-12=日界线西
    17. [ 2]: GTM-11=萨摩亚群岛
    18. [ 3]: GTM-10=夏威夷
    19. [ 4]: GTM-09=阿拉斯加
    20. [ 5]: GTM-08=太平洋时间(美国和加拿大)
    21. [ 6]: GTM-07=亚利桑那
    22. [ 7]: GTM-06=中部时间(美国和加拿大)
    23. [ 8]: GTM-05=东部部时间(美国和加拿大)
    24. [ 9]: GTM-04=大西洋时间(美国和加拿大)
    25. [10]: GTM-03=巴西利亚
    26. [11]: GTM-02=中大西洋
    27. [12]: GTM-01=亚速尔群岛
    28. [13]: GTM=格林威治标准时间
    29. [14]: GTM+01=萨拉热窝
    30. [15]: GTM+02=开罗
    31. [16]: GTM+03=莫斯科
    32. [17]: GTM+04=阿布扎比
    33. [18]: GTM+05=伊斯兰堡
    34. [19]: GTM+06=达卡
    35. [20]: GTM+07=曼谷,河内
    36. [21]: GTM+08=中国标准时间
    37. [22]: GTM+09=汉城
    38. [23]: GTM+10=关岛
    39. [24]: GTM+11=所罗门群岛
    40. [25]: GTM+12=斐济
    41. [26]: GTM+13=努库阿勒法
    42. [27]: GTM+14=基里巴斯
    43. 请选择设置时区 [21]:
    44. 安装类型:
    45. 1 典型安装
    46. 2 服务器
    47. 3 客户端
    48. 4 自定义
    49. 请选择安装类型的数字序号 [1 典型安装]:
    50. 所需空间: 1602M
    51. 请选择安装目录 [/home/dmdba/dmdbms]:/dm8
    52. 可用空间: 17G
    53. 是否确认安装路径(/dm8)? (Y/y:是 N/n:否)  [Y/y]:y
    54. 安装前小结
    55. 安装位置: /dm8
    56. 所需空间: 1602M
    57. 可用空间: 17G
    58. 版本信息:
    59. 有效日期:
    60. 安装类型: 典型安装
    61. 是否确认安装? (Y/y:是 N/n:否):y
    62. 2022-09-02 14:59:35
    63. [INFO] 安装达梦数据库...
    64. 2022-09-02 14:59:35
    65. [INFO] 安装 基础 模块...
    66. 2022-09-02 14:59:44
    67. [INFO] 安装 服务器 模块...
    68. 2022-09-02 14:59:44
    69. [INFO] 安装 客户端 模块...
    70. 2022-09-02 14:59:52
    71. [INFO] 安装 驱动 模块...
    72. 2022-09-02 14:59:54
    73. [INFO] 安装 手册 模块...
    74. 2022-09-02 14:59:55
    75. [INFO] 安装 服务 模块...
    76. 2022-09-02 14:59:56
    77. [INFO] 移动日志文件。
    78. 2022-09-02 14:59:57
    79. [INFO] 安装达梦数据库完成。
    80. 请以root系统用户执行命令:
    81. /dm8/script/root/root_installer.sh
    82. 安装结束

    在root用户下执行

    [dmdba@dm-srv002 ~]$ /dm8/script/root/root_installer.sh

    1.2.5 修改系统变量(小技巧)

    1. [dmdba@dm-srv002 ~]$ echo "export PATH=\$PATH:\$DM_HOME/bin:\$DM_HOME/tool" >> ~/.bash_profile
    2. [dmdba@dm-srv002 ~]$ source ~/.bash_profile

    1.2.6 配置数据库实例

    1. [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
    2. [dmdba@dm-srv002 ~]$ dminit path=/dm8/data
    3. initdb V8
    4. db version: 0x7000c
    5. file dm.key not found, use default license!
    6. License will expire on 2023-06-30
    7. Normal of FAST
    8. Normal of DEFAULT
    9. Normal of RECYCLE
    10. Normal of KEEP
    11. Normal of ROLL
    12.  log file path: /dm8/data/DAMENG/DAMENG01.log
    13.  log file path: /dm8/data/DAMENG/DAMENG02.log
    14. write to dir [/dm8/data/DAMENG].
    15. create dm database success. 2022-09-02 15:07:39

    dminit默认没有注册数据库服务,需要使用

    1.2.7 注册服务

    1. [root@dm-srv002 DAMENG]# cd /dm8/script/root
    2. [root@dm-srv002 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER
    3. Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
    4. 创建服务(DmServiceDMSERVER)完成

    1.3 图形化安装

    1. [root@dm-srv002 root]#  su - dmdba
    2. [root@dm-srv002 root]# export DISPLAY=:0.0

    1.3.1 安装数据库软件

    开发版无需导入key

    切换到root用户执行

    1. [root@dm-srv002 ~]# /dm8/script/root/root_installer.sh
    2. 移动 /dm8/bin/dm_svc.conf 到/etc目录
    3. 修改服务器权限
    4. 创建DmAPService服务
    5. Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
    6. 创建服务(DmAPService)完成
    7. 启动DmAPService服务

     1.3.2 初始化数据库

     

    切换到root用户

    1. [root@dm-srv002 ~]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
    2. [root@dm-srv002 ~]# systemctl enable DmServiceDMSERVER.service
    3. Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
    4. [root@dm-srv002 ~]# systemctl start DmServiceDMSERVER.service
    5. [root@dm-srv002 ~]# systemctl status DmServiceDMSERVER.service
    6. ● DmServiceDMSERVER.service - DM Instance Service
    7.    Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)
    8.    Active: active (running) since 五 2022-09-02 18:31:18 CST; 7s ago
    9.   Process: 15606 ExecStart=/dm8/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS)
    10.  Main PID: 15634 (dmserver)
    11.     Tasks: 66
    12.    CGroup: /system.slice/DmServiceDMSERVER.service
    13.            └─15634 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
    14. 902 18:31:03 dm-srv002 systemd[1]: Starting DM Instance Service...
    15. 902 18:31:18 dm-srv002 DmServiceDMSERVER[15606]: [39B blob data]
    16. 902 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 通过配置文件连接

    1. 修改配置文件
    2. vim /etc/dm_svc.conf
    3. TIME_ZONE=(480)
    4. LANGUAGE=(cn)
    5. DM=(127.0.0.1:5236)
    6. [dmdba@dm-srv002 ~]# disql sysdba/Dameng123@DM

    2.2 数据库的启停

    1. 状态查询
    2. [root@dm-srv002 root]# systemctl status DmServiceDMSERVER.service
    3. 启动
    4. [root@dm-srv002 root]# systemctl start DmServiceDMSERVER.service
    5. 停止
    6. [root@dm-srv002 root]# systemctl stop DmServiceDMSERVER.service
    7. 重启
    8. [root@dm-srv002 root]# systemctl restart DmServiceDMSERVER.service

    2.3 数据库参数管理

    2.3.1 参数类型

    达梦的参数可通过以下方式查询:

    1. desc v$parameter
    2. 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进行,然后重启数据库生效。

    查询参数类型

    1. SQL> Select name, value,file_value,sys_value,type from v$parameter t where t.name like 'COMPATIBLE_MODE';
    2. 行号     NAME            VALUE FILE_VALUE SYS_VALUE TYPE   
    3. ---------- --------------- ----- ---------- --------- -------
    4. 1          COMPATIBLE_MODE 0     0          0         IN FILE

    方法1:SQL语句(加了引号之后就区分大小写)

    1. SQL> alter system set COMPATIBLE_MODE=2 spfile;
    2. SQL> alter session set LIST_TABLE=1;

    方法2:通过函数修改

    1. 修改参数的函数sp_set_para_value(范围scope,parameter_name,value)
    2. SQL> sp_set_para_value(2,COMPATIBLE_MODE,0);

    2.4 数据库的表空间管理

    2.4.1 创建表空间

    数据文件的范围:数据文件的大小不能低于页大小的4096倍,最大值不能大于页大小的2的31次方-1(页大小为8k,则最大值为16T-1)

    1. SQL> Select page*4096/1024/1024
    2. SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32;
    3. 开启自动扩展
    4. SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32 autoextend on;
    5. 设定每次扩展的大小并设置最大上限
    6. SQL> Create tablespace tbs datafile 'TBS01.DBF' size 32 autoextend on next 4 maxsize 10240;
    7. 查询当前表空间文件的使用量
    8. 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 表空间联机/脱机

    1. 联机
    2. SQL> Alter tablespace tbs online;
    3. 脱机
    4. 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 修改口令策略

    1. select * from SYS."V$PARAMETER" t where name ='PWD_POLICY';
    2. alter system set 'PWD_POLICY' =31 BOTH;
    ​​​​​​​

    2.5.4 创建用户

    1. SQL> create user dmtest identified by "Dameng123" password_policy 15;
    2. SQL> alter user dmtest identified by "Dameng@123";
    3. 密码包含特殊字符登录
    4. [dmdba@kylin-srv001 DAMENG]$ disql dmtest/'"Dameng@123"'

    2.5.5 用户授权/收权

    1. SQL> grant select on DM_PRD.test1 to DMTEST;
    2. SQL> revoke select on DM_PRD.test1 from DMTEST;

    2.5.6 用户禁用/启用

    SQL> Alter user dmtest account lock/unlock;

    2.5.7 角色管理

    1. 创建角色
    2. SQL> create role t1;
    3. 给角色授权
    4. SQL> grant select on DM_PRD.test1 to t1;
    5. 将角色授权给用户
    6. 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 数据字典

    1. Select * from user_tables;--当前用户的表
    2. Select * from sys.all_tables;--所有有权限的表
    3. 列信息
    4. Select * from user_tab_columns;
    5. 约束
    6. Select * from sys.user_constraints;
    7. 约束字段
    8. Select * from user_cons_columns;
    9. 索引
    10. select * from sysindexes;
    11. 所有对象
    12. select * from sysobjects;
    13. 所有列
    14. select * from syscolumns;

    2.7.2 动态性能视图

    1. 事务等待
    2. SQL> Select * from v$trxwait;
    3. 锁请求等待时间默认为10秒,时间由以下参数控制
    4. SQL> Select * from v$parameter t where name='DDL_WAIT_TIME';
    5. 当前进程信息
    6. SQL> Select * from V$process;
    7. 结束会话
    8. SQL> sp_close_session(sessionID);
    9. 数据文件
    10. SQL> Select * from v$datafile;
    11. 缓冲池
    12. 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;

    1. 修改字段
    2. 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);

    1. 重建索引
    2. 数据删除后,索引不会释放空间,释放空间需要重建索引。
    3. SQL> Alter index idx_tablename_colname rebuild online;
    4. online不会影响线上服务。
    5. 开启监控
    6. SQL> Alter index idx_tablename_colname monitoring usage;
    7. SQL> Select * from sys.v$object_usage;
    8. 关闭索引监控
    9. SQL> Alter index idx_tablename_colname nomonitoring usage;

    2.8.4 添加主外键

    1. SQL> Alter table t_testpid add constraint pk_testpid primary key(pid);
    2. SQL> Alter table t_testpid add constraint uk_testpid_pname unique(pname);

    2.8.5 创建视图

    视图是由查询语句组成的查询窗口。视图中不保存数据,数据保存在基表中。

    1. SQL> create view LZY.V_CODE_MORETHAN3 AS
    2. SELECT B.CODE,A.NAME,COUNT(*) AS COUNTID
    3. FROM LZY.TEST1 A
    4. JOIN LZY.TEST1_CODE B ON B.ID=A.CODE_ID
    5. GROUP BY B.CODE,A.NAME
    6. HAVING COUNT(*)>3;

    2.8.6 批量导入数据

    1. disql内部操作
    2. SQL> ` /dm8/backup/DEPT.sql
    1. shell命令操作
    2. [root@kylin-srv001 ~]# sysdba/Dameng123 '`/dm8/backup/DEPT.sql'

     

    第三章 达梦数据库的备份

    3.1 物理备份

    3.1.1 dmrman备份

    1. [root@kylin-srv001 ~]# systemctl stop DmServiceDMSERVER
    2. [root@kylin-srv001 ~]# su - dmdba
    3. 上一次登录: 五 9月 23 14:04:05 CST 2022 pts/3 上
    4. [dmdba@kylin-srv001 ~]$ dmrman
    5. dmrman V8
    6. RMAN> backup database '/dm8/data/DAMENG/dm.ini';
    7. backup database '/dm8/data/DAMENG/dm.ini';
    8. file dm.key not found, use default license!
    9. Database mode = 0, oguid = 0
    10. Normal of FAST
    11. Normal of DEFAULT
    12. Normal of RECYCLE
    13. Normal of KEEP
    14. Normal of ROLL
    15. EP[0]'s cur_lsn[62187], file_lsn[62187]
    16. Processing backupset /dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920
    17. [Percent:100.00%][Speed:0.00M/s][Cost:00:00:03][Remaining:00:00:00]                                 
    18. backup successfully!
    19. time used: 00:00:05.083
    20. RMAN> exit
    21. time used: 4.163(ms)

    1. 查看备份信息
    2. RMAN> show backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';

    1. 指定备份集名称及备份集路径
    2. RMAN> backup database '/dm8/data/DAMENG/dm.ini'  to DMFULLBAK03 backupset '/dm8/backup/full/DMFULLBAK03';

    1. 增量备份
    2. 默认使用备份目录最新的备份集作为基础
    3. 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

    1. 服务器[LOCALHOST:5236]:处于普通打开状态
    2. 登录使用时间 : 11.328(ms)
    3. disql V8
    4. SQL> alter database mount;
    5. 操作已执行
    6. 已用时间: 3.378(毫秒). 执行号:0.
    7. SQL> alter database archivelog;
    8. 操作已执行
    9. 已用时间: 51.411(毫秒). 执行号:0.
    10. SQL> alter database add archivelog 'type=local,dest=/dm8/data/DAMENG/ARCH,file_size=64,space_limit=10240';
    11. 操作已执行
    12. 已用时间: 6.492(毫秒). 执行号:0.
    13. SQL> alter database open;
    14. 操作已执行
    15. 已用时间: 33.377(毫秒). 执行号:0.

    1. 备份
    2. backup database;
    3. backup database INCREMENT;
    4. backup database to DMFULLBAK01 BACKUPSET '/dm8/backup/full/DMFULLBAK01';
    5. select * from SYS."V$BACKUPSET";
    6. select * from SYS."V$IFUN" t where t.name like '%BAKSET%';
    7. SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full/');
    8. SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/incr/');
    9. 64backup tablespace dmtbs;
    10. backup tablespace dmtbs INCREMENT to DMTBSINCR01 BACKUPSET
    11. '/dm8/backup/incr/DMTBSINCR01';
    12. backup table dmtest.T_EMP;
    13. backup ARCHIVE LOG all;

    3.2 逻辑备份

    3.2.1 dexp导出

    数据库迁移、历史数据归档、重新组织表、物理备份的辅助
    逻辑导出包含四个级别:
    Full=y 全库导出
    Owner=XX 按用户导出
    Schemas=XX 按模式导出
    Tables=XX 导出指定的表
    1. 全库导出
    2. [root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
    3. 按模式导出
    4. [root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=LZY.dmp log=LZY.log schema=LZY
    5. 按用户导出
    6. [root@kylin-srv001 ~]# dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=LZY.dmp log=LZY.log schema=LZY
    7. 按表导出
    8. [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 表空间的恢复

    1. 还原
    2. RMAN> restore databse '/dm8/data/DAMENG/dm.ini' TABLESPACE DMTBS FROM BACKUPSET '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';
    3. 恢复
    4. RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace DMTBS;

    4.2 库恢复

    1. 还原
    2. RMAN> restore database '/dm8/data/DAMENG/dm.ini' TABLESPACE DMTBS FROM BACKUPSET '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20220923_152859_385920';
    3. 恢复
    4. RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/DAMENG/ARCH';
    5. 更新魔数
    6. RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

    4.3 表恢复

    1. 将 DMTEST 模式下 T_EMP 表导入到 HRTEST 用户下:
    2. [root@kylin-srv001 ~]# dimp userid=hrtest/Dameng123@127.0.0.1:5238
    3. directory=/dm8/backup/dexp file=dmtest_emp.dmp log=dmtest_emp.log tables=DMTEST.T_EMP
    4. remap_schema=DMTEST:HRTEST

    第五章 达梦数据库的作业系统

    5.1 作业系统的开启

    1. 创建代理环境命令
    2. Call sp_init_job_sys(1);

    或者图形化操作

    5.2 创建作业

     

    5.3 手动调用作业

    1. 查询jobid
    2. select * from sysjob.sysjobs;
    3. 执行job
    4. dbms_job.run(jobid)

    5.4 作业状态查询

    1. select * from SYSJOB.SYSJOBS;
    2. select * from SYSJOB.SYSJOBHISTORIES2;

    第六章 达梦数据库的开发

    达梦数据库支持多种开发语言,支持JDBC、ODBC

    6.1 JDBC配置

    JDBC
    DM8 JDBC 编程注意事项
    1. // 定义 DM JDBC 驱动串
    2. String jdbcString = "dm.jdbc.driver.DmDriver";
    3. // 定义 DM URL 连接串
    4. String urlString = "jdbc:dm://localhost:5236";

    6.2 ODBC配置

    6.2.1 ODBC安装

    1. [root@kylin-srv001 ~]# tar -xzvf unixODBC-2.3.0.tar.gz
    2. [root@kylin-srv001 ~]# cd unixODBC-2.3.0
    3. [root@kylin-srv001 unixODBC-2.3.0]# ./configure
    4. [root@kylin-srv001 unixODBC-2.3.0]# make
    5. [root@kylin-srv001 unixODBC-2.3.0]# make install

    6.2.2 修改配置文件

    1. [root@kylin-srv001 unixODBC-2.3.0]# odbcinst -j
    2. [root@kylin-srv001 unixODBC-2.3.0]# vim /usr/local/etc/odbcinst.ini
    3. [DM8 ODBC DRIVER]
    4. Description = ODBC DRIVER FOR DM8
    5. Driver = /dm8/bin/libdodbc.so
    6. [root@kylin-srv001 unixODBC-2.3.0]# vim /usr/local/etc/odbc.ini
    7. [DAMENG]
    8. Description = DM ODBC DSN
    9. Driver = DM8 ODBC DRIVER
    10. SERVER = localhost
    11. UID = SYSDBA
    12. PWD = dameng123
    13. TCP_PORT = 5236

    6.2.3 连接数据库

    1. [root@kylin-srv001 ~]# su - dmdba
    2. 上一次登录: 日 9月 25 20:38:45 CST 2022 pts/1 上
    3. [dmdba@kylin-srv001 ~]$ isql DAMENG -v
    4. +---------------------------------------+
    5. | Connected!                            |
    6. |                                       |
    7. | sql-statement                         |
    8. | help [tablename]                      |
    9. | quit                                  |
    10. |                                       |
    11. +---------------------------------------+
     
    1. SQL> select * from LZY.test1
    2. +------------+------------+---------------------------------------------------+---------------------------+
    3. | ID         | CODE_ID    | NAME                                              | CREATEDATE                |
    4. +------------+------------+---------------------------------------------------+---------------------------+
    5. | 1          | 1          | shuiguo1                                          | 2022-09-24 20:29:23.000000|
    6. | 2          | 1          | shuiguo1                                          | 2022-09-24 20:29:23.000000|
    7. | 3          | 1          | shuiguo1                                          | 2022-09-24 20:29:23.000000|
    8. | 4          | 2          | shuiguo2                                          | 2022-09-24 20:29:23.000000|
    9. | 5          | 3          | shuiguo3                                          | 2022-09-24 20:29:23.000000|
    10. | 6          | 3          | shuiguo3                                          | 2022-09-24 20:29:23.000000|
    11. | 7          | 3          | shuiguo3                                          | 2022-09-24 20:29:23.000000|
    12. | 8          | 4          | shuiguo4                                          | 2022-09-24 20:29:23.000000|
    13. | 9          | 4          | shuiguo4                                          | 2022-09-24 20:29:23.000000|
    14. | 10         | 5          | shuiguo5                                          | 2022-09-24 20:29:23.000000|
    15. | 11         | 6          | shuiguo6                                          | 2022-09-24 20:29:23.000000|
    16. | 12         | 7          | shuiguo7                                          | 2022-09-24 20:29:23.000000|
    17. | 13         | 8          | shuiguo8                                          | 2022-09-24 20:29:23.000000|
    18. | 14         | 9          | shuiguo9                                          | 2022-09-24 20:29:23.000000|
    19. | 15         | 10         | shuiguo10                                         | 2022-09-24 20:29:23.000000|
    20. | 16         | 10         | shuiguo10                                         | 2022-09-24 20:29:23.000000|
    21. | 17         | 1          | shuiguo1                                          | 2022-09-24 20:29:23.000000|
    22. | 18         | 3          | shuiguo3                                          | 2022-09-24 20:29:23.000000|
    23. | 19         | 3          | shuiguo3                                          | 2022-09-24 20:29:23.000000|
    24. | 20         | 1          | shuiguo1                                          | 2022-09-24 21:30:05.000000|
    25. +------------+------------+---------------------------------------------------+---------------------------+
    26. SQLRowCount returns 20
    27. 20 rows fetched

  • 相关阅读:
    2023-10-29 LeetCode每日一题(H 指数)
    今天是1024,获取一下纪念牌
    UG\NX二次开发 分享“一键清除高亮工具”的源代码
    Linux应用开发基础知识——Framebuffer 应用编程(四)
    linux关于ssh免密登录、known_hosts文件
    AOJ 0531 坐标离散化
    技术标准的演变:从HTML5到小程序技术
    设计模式-创建型模式-单例模式
    navicat无法连接mysql超详细处理方法
    Andriod Studio小游戏
  • 原文地址:https://blog.csdn.net/llliarby/article/details/127039374