注册
达梦数据库升级操作手册
技术分享/ 文章详情 /

达梦数据库升级操作手册

DM_2023620 2023/06/20 2693 1 0

1 文档概述

此为曾经达梦数据库升级的过程文档。

1.1 编写目的

为满足用户不断更新的需求,以及因性能、安全、功能等原因,需要对达梦数据库版本进行升级;

1.2 分析范围

本文档阐述从“1-2-18-21.06.17-141777-10013-SEC Pack3”升级至“--05134283890-20220525-161267-10045 Pack7”的操作指引。

2 达梦数据库单机升级

2.1 环境检查

本次提供的安装包:
1)CPU:飞腾;
2)操作系统:麒麟10;
安装前需检查操作系统内核版本和CPU架构是否匹配。

2.1.1 检查操作系统(内核)版本

本次提供的安装包是aarch64位,需检查操作系统内核版本是否匹配:

[root@jtdmcsvukd07 ~]# uname -a
Linux jtdmcsvukd07.novalocal 4.19.90-25.14.v2101.ky10.aarch64 #1 SMP Fri Apr 15 11:21:31 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
[root@jtdmcsvukd07 ~]# uname -r
4.19.90-25.14.v2101.ky10.aarch64
[root@jtdmcsvukd07 ~]# arch
aarch64

2.1.2 检查cpu架构

[root@jtdmcsvukd07 ~]# lscpu
Architecture:                    aarch64
CPU op-mode(s):                  64-bit
Byte Order:                      Little Endian
CPU(s):                          16
On-line CPU(s) list:             0-15
Thread(s) per core:              1
Core(s) per socket:              1
Socket(s):                       16
NUMA node(s):                    1
Vendor ID:                       Phytium
Model:                           2
Model name:                      FT-2000+/64
Stepping:                        0x1
CPU max MHz:                     2400.0000
CPU min MHz:                     2400.0000
BogoMIPS:                        100.00
L1d cache:                       1 MiB
L1i cache:                       1 MiB
L2 cache:                        8 MiB
L3 cache:                        512 MiB
NUMA node0 CPU(s):               0-15
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm crc32 cpuid


2.1.3 检查当前数据库版本

SQL> select id_code;

行号     id_code                                
---------- ---------------------------------------
1          1-2-18-21.06.17-141777-10013-SEC  Pack3

已用时间: 2.299(毫秒). 执行号:58957900.
SQL>

[dmdba@jtdmcsvukd07 ~]$ disql -id
1-2-18-21.06.17-141777-10013-SEC

2.1.4 检查数据库配置路径

/dmdata/data/dm/dm.ini

[root@jtdmcsvukd07 ~]# ps -elf|grep dmdba
0 S root      67254  67139  0  80   0 -   116 pipe_w 13:24 pts/0    00:00:00 grep dmdba
0 S dmdba     91449      1  0  80   0 -  1099 hrtime Jun08 ?        00:00:29 /dmdbms/bin/dmap
0 S dmdba    214757      1 99  80   0 - 183095 hrtime Jun14 ?       10-17:24:21 /dmdbms/bin/dmserver /dmdata/data/dm/dm.ini -noconsole
[root@jtdmcsvukd07 ~]#

2.1.5 检查DMAP服务

备份集备份还原实现策略有两种:DMAP 辅助进程方式和无辅助进程方式。用户可通过 DM.INI 参数 bak_use_ap 来选择(DMRMAN 使用参数 use_ap),bak_use_ap 取值 1、2。默认为 1。
启动 DMAP,手动启动 DMAP,有两种途径:
1)是启动 DM 服务查看器中的 DmAPService;
2)手动启动 DMAP 执行码,DMAP 执行码位于 DM 安装目录的 bin 子目录下。除此之外,Linux 下,还可以调用 bin 目录下的 DmAPService 脚本。
检查是否已启动DMAP服务:

[dmdba@jtdmcsvukd07 ~]$ ps -elf|grep dmap
0 S dmdba     71475  67926  0  80   0 -   116 pipe_w 13:37 pts/0    00:00:00 grep dmap
0 S dmdba     91449      1  0  80   0 -  1099 hrtime Jun08 ?        00:00:29 /dmdbms/bin/dmap

如果未启动,启动命令为:

[dmdba@jtdmcsvukd07 bin]$ ls -ltr /dmdbms/bin/DmAPService
-rwxr-xr-x 1 dmdba dmdba 13836 May 26 15:41 /dmdbms/bin/DmAPService
[dmdba@jtdmcsvukd07 bin]$ /dmdbms/bin/DmAPService
Usage: /dmdbms/bin/DmAPService { start | stop | status | condrestart | restart }
[dmdba@jtdmcsvukd07 bin]$ /dmdbms/bin/DmAPService start

2.1.6 检查是否开启归档

执行数据库实例备份前需先开启归档:

[dmdba@jtdmcsvukd07 bin]$ disql SYSDBA/'"***"'

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5.353(ms)
上次登录ip       : 10.200.204.41
上次登录时间   : 2022-06-20 14:25:21
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL> select * from v$dm_arch_ini;

行号     ARCH_NAME      ARCH_TYPE ARCH_DEST    ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_HANG_FLAG ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY ARCH_INCOMING_PATH ARCH_CURR_DEST ARCH_FLUSH_BUF_SIZE ARCH_RESERVE_TIME ARCH_LOCAL_SHARE ARCH_LOCAL_SHARE_CHECK
---------- -------------- --------- ------------ -------------- ---------------- -------------- --------------- ------------- --------------- ------------------ -------------- ------------------- ----------------- ---------------- ----------------------
           ARCH_SEND_DELAY
           ---------------
1          ARCHIVE_LOCAL1 LOCAL     /dmdata/arch 1024           20480            1              NULL            Y             NULL            NULL               /dmdata/arch   0                   0                 0                0
           0


已用时间: 1.853(毫秒). 执行号:6900.

SQL> select * from v$arch_status;

行号     ARCH_TYPE ARCH_DEST    ARCH_STATUS ARCH_SRC
---------- --------- ------------ ----------- --------
1          LOCAL     /dmdata/arch VALID       DM

已用时间: 5.172(毫秒). 执行号:6901.
SQL>

v$dm_arch_ini视图有查询记录,或v$arch_status视图的状态是VALID都代表数据库已开启归档模式。

2.2 准备新版本安装文件

root用户下载新版本的安装包:

[root@jtdmcsvukd07 tmp]# curl -O http://10.0.89.129:8090/dba/dm/dm8_20220526_FTarm_kylin10_sp1_64.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  979M  100  979M    0     0   102M      0  0:00:09  0:00:09 --:--:--  104M
[root@jtdmcsvukd07 tmp]# ls -ltr
total 1002988
-rw------- 1 root root 1027057664 Jun 20 11:18 dm8_20220526_FTarm_kylin10_sp1_64.iso
[root@jtdmcsvukd07 tmp]#

root用户挂载 iso 安装包文件到 /mnt 目录下:

[root@jtdmcsvukd07 tmp]# mount -o loop /tmp/dm8_20220526_FTarm_kylin10_sp1_64.iso /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@jtdmcsvukd07 tmp]# ls -ltr /mnt
total 1002924
-r-xr-xr-x 1 root root    2802237 May 26 15:41 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 1024191151 May 26 15:49  DMInstall.bin
[root@jtdmcsvukd07 tmp]#

2.3 停止旧版本服务

[dmdba@jtdmcsvukd07 bin]$ ls -ltr $DM_HOME/bin/DmService*
-rwx------ 1 dmdba dinstall 16117 Jun  8 16:51 DmServicedm
[dmdba@jtdmcsvukd07 bin]$ $DM_HOME/bin/DmServicedm status
DmServicedm (pid 214757) is running.
[dmdba@jtdmcsvukd07 bin]$ ps -elf|grep dms
0 S dmdba     73286  67926  0  80   0 -   116 pipe_w 13:42 pts/0    00:00:00 grep dms
0 S dmdba    214757      1 99  80   0 - 183095 hrtime Jun14 ?       10-17:24:22 /dmdbms/bin/dmserver /dmdata/data/dm/dm.ini -noconsole
[dmdba@jtdmcsvukd07 bin]$ $DM_HOME/bin/DmServicedm stop
Stopping DmServicedm:                                      [ OK ]
[dmdba@jtdmcsvukd07 bin]$ DmServicedm status
DmServicedm is stopped
[dmdba@jtdmcsvukd07 bin]$ ps -elf|grep dms
0 S dmdba     73896  67926  0  80   0 -   116 pipe_w 13:44 pts/0    00:00:00 grep dms
[dmdba@jtdmcsvukd07 bin]$

2.4 脱机备份旧版本

2.4.1 dmrman备份旧版本

创建备份文件夹:

[root@jtdmcsvukd07 ~]# mkdir -p /dm/backup
[root@jtdmcsvukd07 ~]# chown -R dmdba:dinstall /dm
[root@jtdmcsvukd07 ~]# ls -ltr /dm
total 0
drwx------ 2 dmdba dinstall 6 Jun 20 13:46 backup
[root@jtdmcsvukd07 ~]#

执行脱机备份:

[root@jtdmcsvukd07 ~]# su - dmdba
Last login: Mon Jun 20 13:26:59 CST 2022 on pts/0
[dmdba@jtdmcsvukd07 ~]$ dmrman
dmrman V8
RMAN> backup database '/dmdata/data/dm/dm.ini' backupset '/dm/backup';
backup database '/dmdata/data/dm/dm.ini' backupset '/dm/backup';
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[8234054493], file_lsn[8234054493]
Processing backupset /dm/backup
[Percent:7.03%][Speed:256.00M/s][Cost:00:06:44][Remaining:01:20:57]
RMAN>

Percent为100%代表备份结束。

2.4.2 备份旧版本bin目录

打包数据库安装目录下旧版本的bin目录:

[dmdba@jtdmcsvukd07 dmdbms]$ ls
bin  bin2  desktop  doc  drivers  include  jar  jdk  license_en.txt  license_zh.txt  log  samples  script  tool  uninstall  uninstall.sh  web
[dmdba@jtdmcsvukd07 dmdbms]$ tar -zcvf bin_1-2-18-21.06.17-141777-10013-SEC.tar.gz bin
bin/
bin/dm.key
bin/SYSWORD.UTF8.LIB
bin/client_ssl/
bin/client_ssl/DEVELOP/
…
[dmdba@jtdmcsvukd07 dmdbms]$ ls -ltr bin_*
-rw------- 1 dmdba dmdba 103536248 Jun 20 15:02 bin_1-2-18-21.06.17-141777-10013-SEC.tar.gz
[dmdba@jtdmcsvukd07 dmdbms]$

备份数据库安装目录下旧版本的bin目录:

[dmdba@jtdmcsvukd07 dmdbms]$ mv bin/ ./bin_1-2-18-21.06.17
[dmdba@jtdmcsvukd07 dmdbms]$ ls -ltr 
total 101148
drwxr-xr-x  6 dmdba dmdba       106 Jun  8 16:39 jdk
drwxr-xr-x  3 dmdba dmdba        19 Jun  8 16:39 desktop
drwxr-xr-x  3 dmdba dmdba        37 Jun  8 16:39 script
-rwxr-xr-x  1 dmdba dmdba      1146 Jun  8 16:39 license_zh.txt
-rwxr-xr-x  1 dmdba dmdba      1071 Jun  8 16:39 license_en.txt
drwxr-xr-x  2 dmdba dmdba      4096 Jun  8 16:39 include
drwxr-xr-x  5 dmdba dmdba        74 Jun  8 16:39 samples
drwxr-xr-x  2 dmdba dmdba        94 Jun  8 16:39 jar
drwxr-xr-x  2 dmdba dmdba        30 Jun  8 16:39 bin2
drwxr-xr-x  9 dmdba dmdba      4096 Jun  8 16:39 tool
drwxr-xr-x  2 dmdba dmdba        92 Jun  8 16:39 web
drwxr-xr-x 12 dmdba dmdba       131 Jun  8 16:39 drivers
drwxr-xr-x  2 dmdba dmdba      4096 Jun  8 16:39 doc
-rwxr-xr-x  1 dmdba dmdba      2146 Jun  8 16:39 uninstall.sh
drwxr-xr-x  3 dmdba dmdba        97 Jun  8 16:39 uninstall
drwxr-xr-x  8 dmdba dmdba      8192 Jun  8 16:51 bin_1-2-18-21.06.17
drwxr-xr-x  2 dmdba dmdba       308 Jun 20 14:57 log
-rw-------  1 dmdba dmdba 103536248 Jun 20 15:02 bin_1-2-18-21.06.17-141777-10013-SEC.tar.gz
[dmdba@jtdmcsvukd07 dmdbms]$

2.5 安装新版本

切换到 dmdba 用户:

[root@jtdmcsvukd07 ~]# su - dmdba
Last login: Sun Jun 19 10:05:13 CST 2022 on pts/0
[dmdba@jtdmcsvukd07 ~]$

执行以下命令,切换到 /mnt 目录下查看文件:

[dmdba@jtdmcsvukd07 ~]$ cd /mnt
[dmdba@jtdmcsvukd07 mnt]$ ll
total 1002924
-r-xr-xr-x 1 root root    2802237 May 26 15:41 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 1024191151 May 26 15:49  DMInstall.bin
[dmdba@jtdmcsvukd07 mnt]$

执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装:

[dmdba@jtdmcsvukd07 mnt]$ ./DMInstall.bin -i
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:E
Extract install files......... 
Welcome to DM DBMS Installer

Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:^C
[dmdba@jtdmcsvukd07 mnt]$ ls -ltr
total 1002924
-r-xr-xr-x 1 root root    2802237 May 26 15:41 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 1024191151 May 26 15:49  DMInstall.bin
[dmdba@jtdmcsvukd07 mnt]$ ls -ltr /tmp
total 1002992
-rw------- 1 root  root  1027057664 Jun 20 11:18 dm8_20220526_FTarm_kylin10_sp1_64.iso
drwxr-xr-x 4 dmdba dmdba         35 Jun 20 15:06 DMInstall
-rw-rw-rw- 1 dmdba dmdba          1 Jun 20 15:06 dm_build.properties
[dmdba@jtdmcsvukd07 mnt]$

直接Ctrl+C退出,然后在/tmp下去找/tmp/DMInstall/source下的bin:

[dmdba@jtdmcsvukd07 mnt]$ cd /tmp/DMInstall/source/
[dmdba@jtdmcsvukd07 source]$ ls -ltr
total 40
-rwxr-xr-x  1 dmdba dmdba   45 May 26 15:41 dm_svc.conf
drwxr-xr-x  3 dmdba dmdba   19 May 26 15:41 desktop
drwxr-xr-x  2 dmdba dmdba   30 May 26 15:41 bin2
drwxr-xr-x  6 dmdba dmdba   92 May 26 15:41 samples
-rwxr-xr-x  1 dmdba dmdba 1146 May 26 15:41 license_zh.txt
-rwxr-xr-x  1 dmdba dmdba 1071 May 26 15:41 license_en.txt
drwxr-xr-x  6 dmdba dmdba  106 May 26 15:41 jdk
drwxr-xr-x  2 dmdba dmdba   94 May 26 15:41 jar
drwxr-xr-x  2 dmdba dmdba 4096 May 26 15:41 doc
drwxr-xr-x  3 dmdba dmdba   37 May 26 15:42 script
drwxr-xr-x  3 dmdba dmdba   88 May 26 15:42 web
-rwxr-xr-x  1 dmdba dmdba 2146 May 26 15:42 uninstall.sh
drwxr-xr-x  9 dmdba dmdba 4096 May 26 15:42 tool
drwxr-xr-x  2 dmdba dmdba    6 May 26 15:42 log
drwxr-xr-x 12 dmdba dmdba  131 May 26 15:43 drivers
drwxr-xr-x  2 dmdba dmdba 4096 May 26 15:43 include
drwxr-xr-x 10 dmdba dmdba 8192 Jun 20 15:06 bin
drwxr-xr-x  3 dmdba dmdba   79 Jun 20 15:06 uninstall
[dmdba@jtdmcsvukd07 source]$

将其替换到旧版本bin的位置:

[dmdba@jtdmcsvukd07 source]$ cp -a -p bin /dmdbms
[dmdba@jtdmcsvukd07 source]$ ls -ltr /dmdbms/
total 101160
drwxr-xr-x  6 dmdba dmdba       106 Jun  8 16:39 jdk
drwxr-xr-x  3 dmdba dmdba        19 Jun  8 16:39 desktop
drwxr-xr-x  3 dmdba dmdba        37 Jun  8 16:39 script
-rwxr-xr-x  1 dmdba dmdba      1146 Jun  8 16:39 license_zh.txt
-rwxr-xr-x  1 dmdba dmdba      1071 Jun  8 16:39 license_en.txt
drwxr-xr-x  2 dmdba dmdba      4096 Jun  8 16:39 include
drwxr-xr-x  5 dmdba dmdba        74 Jun  8 16:39 samples
drwxr-xr-x  2 dmdba dmdba        94 Jun  8 16:39 jar
drwxr-xr-x  2 dmdba dmdba        30 Jun  8 16:39 bin2
drwxr-xr-x  9 dmdba dmdba      4096 Jun  8 16:39 tool
drwxr-xr-x  2 dmdba dmdba        92 Jun  8 16:39 web
drwxr-xr-x 12 dmdba dmdba       131 Jun  8 16:39 drivers
drwxr-xr-x  2 dmdba dmdba      4096 Jun  8 16:39 doc
-rwxr-xr-x  1 dmdba dmdba      2146 Jun  8 16:39 uninstall.sh
drwxr-xr-x  3 dmdba dmdba        97 Jun  8 16:39 uninstall
drwxr-xr-x  8 dmdba dmdba      8192 Jun  8 16:51 bin_1-2-18-21.06.17
drwxr-xr-x  2 dmdba dmdba       308 Jun 20 14:57 log
-rw-------  1 dmdba dmdba 103536248 Jun 20 15:02 bin_1-2-18-21.06.17-141777-10013-SEC.tar.gz
drwxr-xr-x 10 dmdba dmdba      8192 Jun 20 15:06 bin
[dmdba@jtdmcsvukd07 source]$

从旧版本bin目录下中拷贝启动脚本至新版本的bin目录:

[dmdba@jtdmcsvukd07 source]$ cd /dmdbms/
[dmdba@jtdmcsvukd07 dmdbms]$ cd  bin_1-2-18-21.06.17
[dmdba@jtdmcsvukd07 bin_1-2-18-21.06.17]$ cp DmServicedm ../bin
[dmdba@jtdmcsvukd07 bin_1-2-18-21.06.17]$ ls -ltr /dmdbms/bin
[dmdba@jtdmcsvukd07 bin_1-2-18-21.06.17]$ ls -ltr /dmdbms/bin/DmServicedm
-rwx------ 1 dmdba dmdba 16117 Jun 20 15:15 /dmdbms/bin/DmServicedm
[dmdba@jtdmcsvukd07 bin_1-2-18-21.06.17]$

2.6 启动新版本数据库
启动数据库:

[dmdba@jtdmcsvukd07 bin]$ /dmdbms/bin/DmServicedm start
Starting DmServicedm:                                      [ OK ]
[dmdba@jtdmcsvukd07 bin]$

查看数据库版本:

[dmdba@jtdmcsvukd07 bin]$ disql SYSDBA/'"***"'

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.227(ms)
disql V8
SQL> select id_code;

行号     id_code                                  
---------- -----------------------------------------
1          --05134283890-20220525-161267-10045 Pack7

已用时间: 1.976(毫秒). 执行号:11000.
SQL>

2.7 回退步骤

2.7.1 回退版本

使用备份的旧版本数据库的bin目录替换新的bin目录:
image.png

2.7.2 还原数据库

使用脱机备份文件还原数据库:
image.png

2.7.3 启动还原后的数据库

启动数据库服务:
image.png

2.7.4 验证是否还原

登录验证数据库版本:
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服