1、问题

数据库升级版本跨度较大时,升级后较易出现此类问题,报错截图如下:
在这里插入图片描述
注:本文档仅适用于跨度版本较大引起的此类问题,其余情况需具体情况具体分析。

2、环境信息

在这里插入图片描述

3、查询集群状态

登陆DSC备机节点,执行以下操作:

#主备集群状态
su - dmdba
cd /home/dmdba/dmdbms/bin
./dmmonitor /dmdata/DAMENG/dmmonitor_manual.ini
show
tip

4、关闭数据库

#关闭备库守护进程
systemctl stop DmWatcherServiceGRP1_DMSERVER

#关闭主库守护进程
systemctl stop DmWatcherServiceRAC01 
systemctl stop DmWatcherServiceRAC02 

#关闭dsc主库
cd /home/dmdba/dmdbms/bin
./dmcssm ini_path=/home/dmdba/DSC/dmcssm.ini
ep stop GRP_DSC

#关闭备库
systemctl stop DmServiceGRP1_DMSERVER 

5、调整dsc主库数据字典版本

#查询控制文件位置
cat /home/dmdba/DSC/rac01_config/dm.ini|grep CTL_PATH
CTL_PATH           = +DMDATA/data/rac/dm.ctl               #ctl file path

#拷贝asm磁盘组中的控制文件到本地磁盘
cd /home/dmdba/dmdbms/bin
./dmasmtool dcr_ini=/home/dmdba/DSC/dmdcr.ini
cp +DMDATA/data/rac/dm.ctl /home/dmdba/DSC/dm.ctl0712
exit

#转换控制文件为文本文件
./dmctlcvt c2t /home/dmdba/DSC/dm.ctl0712 /home/dmdba/DSC/ctl.txt0712

#修改控制文件文本
[dmdba@localhost bin]$ vi /home/dmdba/DSC/ctl.txt0712 
(修改dm8_dct_version=72为dm8_dct_version=39)
[dmdba@localhost bin]$ cat /home/dmdba/DSC/ctl.txt0712 |grep dm8_dct_version
dm8_dct_version=39

#转换文本文件为控制文件
./dmctlcvt t2c /home/dmdba/DSC/ctl.txt0712 /home/dmdba/DSC/dm.ctl0712

#拷贝修改后的控制文件到asm磁盘组中(将原有控制文件先重命名做备份,否则报错)
./dmasmtool dcr_ini=/dm8/config/dmdcr.ini
mv +DMDATA/data/rac/dm.ctl +DMDATA/data/rac/dm.ctlbak0712
cp /home/dmdba/DSC/dm.ctl0712 +DMDATA/data/rac/dm.ctl

6、调整备库数据字典版本

#查询控制文件位置
cat /dmdata/DAMENG/dm.ini|grep CTL_PATH
CTL_PATH           = /dmdata/DAMENG/dm.ctl               #ctl file path

#转换控制文件为文本文件
cd /home/dmdba/dmdbms/bin
./dmctlcvt c2t /dmdata/DAMENG/dm.ctl /dmdata/DAMENG/ctl.txt

#修改控制文件文本
[dmdba@localhost bin]$ vi /dmdata/DAMENG/ctl.txt 
(修改dm8_dct_version=72为dm8_dct_version=39)
[dmdba@localhost bin]$ cat /dmdata/DAMENG/ctl.txt |grep dm8_dct_version
dm8_dct_version=39

#重命名原控制文件做备份,并转换生成新的控制文件
mv /dmdata/DAMENG/dm.ctl /dmdata/DAMENG/dm.ctlbak0712
./dmctlcvt t2c /dmdata/DAMENG/ctl.txt /dmdata/DAMENG/dm.ctl

7、开启数据库,查看集群状态

#开启dsc主库
systemctl start DmServiceDM01
systemctl start DmServiceDM02

#开启备库
systemctl start DmServiceGRP1_DMSERVER 

#开启主库守护进程
systemctl start DmWatcherServiceRAC01 
systemctl start DmWatcherServiceRAC02 

#开启备库守护进程
systemctl start DmWatcherServiceGRP1_DMSERVER

注:启动数据库后数据字典版本会自动升到软件对应版本(72);

#查看主备集群状态
su - dmdba
cd /home/dmdba/dmdbms/bin
./dmmonitor /dmdata/DAMENG/dmmonitor_manual.ini
show
tip

8、重建视图及系统包后查询user_procedures,无报错

disql sysdba/密码:5236

sp_create_system_views(0);
sp_create_system_views(1);

SP_CREATE_SYSTEM_PACKAGES(0);
SP_CREATE_SYSTEM_PACKAGES(1);

SQL> select * from V$PKGPROCINFOS;
未选定行

已用时间: 3.832(毫秒). 执行号:14003.

SQL> explain select * from V$PKGPROCINFOS;

1   #NSET2: [1, 1, 620]
2     #PRJT2: [1, 1, 620]; exp_num(16), is_atom(FALSE)
3       #PRJT2: [1, 1, 620]; exp_num(16), is_atom(FALSE)
4         #SORT3: [1, 1, 620]; key_num(2), is_distinct(FALSE), top_flag(0), is_adaptive(0)
5           #HASH2 INNER JOIN: [1, 1, 620];  KEY_NUM(1); KEY(O.PKGID=I.PKGID) KEY_NULL_EQU(0)
6             #NEST LOOP INDEX JOIN2: [1, 1, 620]
7               #ACTRL: [1, 1, 620];
8                 #PRJT2: [1, 1, 224]; exp_num(4), is_atom(FALSE)
9                   #SLCT2: [1, 1, 224]; exp11 = 1
10                    #HASH2 INNER JOIN: [1, 1, 224]; RKEY_UNIQUE KEY_NUM(1); KEY(O_SCH.PID=O_USER.ID) KEY_NULL_EQU(0)
11                      #SLCT2: [1, 1, 224]; exp11 = 1
12                        #NEST LOOP INDEX JOIN2: [1, 1, 224]
13                          #ACTRL: [1, 1, 224];
14                            #HASH2 INNER JOIN: [1, 1, 168]; RKEY_UNIQUE KEY_NUM(1); KEY(O_PKG.SCHID=O_SCH.ID) KEY_NULL_EQU(0)
15                              #NEST LOOP INDEX JOIN2: [1, 1, 168]
16                                #ACTRL: [1, 1, 168];
17                                  #SLCT2: [1, 1, 160]; O_PKG.SUBTYPE$ = 'PKG'
18                                    #CSEK2: [1, 36, 160]; scan_type(ASC), SYSINDEXSYSOBJECTS(SYSOBJECTS as O_PKG), scan_range[('SCHOBJ',min,min),('SCHOBJ',max,max))
19                                #BLKUP2: [1, 1, 4]; SYSINDEXIDSYSOBJECTS(O_SCH)
20                                  #SSEK2: [1, 1, 4]; scan_type(ASC), SYSINDEXIDSYSOBJECTS(SYSOBJECTS as O_SCH), scan_range[O_PKG.SCHID,O_PKG.SCHID]
21                              #SSCN: [1, 1467, 8]; SYSINDEXPIDIDSYSOBJECTS(SYSOBJECTS as O_SCH)
22                          #BLKUP2: [1, 1, 52]; SYSINDEXIDSYSOBJECTS(O_USER)
23                            #SSEK2: [1, 1, 52]; scan_type(ASC), SYSINDEXIDSYSOBJECTS(SYSOBJECTS as O_USER), scan_range[O_SCH.PID,O_SCH.PID]
24                      #CSCN2: [1, 1467, 56]; SYSINDEXSYSOBJECTS(SYSOBJECTS as O_USER)
25              #CSEK2: [1, 1, 8]; scan_type(ASC), SYSINDEXSYSPKGPROCINFOS(SYSPKGPROCINFOS as I), scan_range[(O.PKGID,min),(O.PKGID,max))
26            #CSCN2: [1, 1, 396]; SYSINDEXSYSPKGPROCINFOS(SYSPKGPROCINFOS as I)

已用时间: 1.588(毫秒). 执行号:0.
SQL> select * from user_procedures;

行号     OBJECT_NAME                                PROCEDURE_NAME OBJECT_ID   SUBPROGRAM_ID OVERLOAD    OBJECT_TYPE
---------- ------------------------------------------ -------------- ----------- ------------- ----------- -----------
           AGGREGATE PIPELINED IMPLTYPEOWNER IMPLTYPENAME PARALLEL INTERFACE DETERMINISTIC AUTHID
           --------- --------- ------------- ------------ -------- --------- ------------- -------
1          SP_ARCH_BAKSET_REMOVE_BATCH                NULL           83887093    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER

2          SP_DB_BAKSET_REMOVE_BATCH                  NULL           83887090    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER

3          SP_DROP_CONS_AND_OBJ_REFS_WHEN_DROP_SCHEMA NULL           83887080    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER


行号     OBJECT_NAME                                PROCEDURE_NAME OBJECT_ID   SUBPROGRAM_ID OVERLOAD    OBJECT_TYPE
---------- ------------------------------------------ -------------- ----------- ------------- ----------- -----------
           AGGREGATE PIPELINED IMPLTYPEOWNER IMPLTYPENAME PARALLEL INTERFACE DETERMINISTIC AUTHID
           --------- --------- ------------- ------------ -------- --------- ------------- -------
4          SP_TAB_BAKSET_REMOVE_BATCH                 NULL           83887092    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER

5          SP_TS_BAKSET_REMOVE_BATCH                  NULL           83887091    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER

6          SP_UPDATE_SYSHPARTTABLEINFO_RESVD1         NULL           83887108    1             NULL        PROCEDURE
           NO        NO        NULL          NULL         YES      NO        NO            DEFINER


6 rows got

已用时间: 6.118(毫秒). 执行号:14004.

更多技术分享,见达梦技术社区:https://eco.dameng.com

更多推荐