1.预安装修改:
因为红旗系统的局限性,导致在第二次预安装的时候,执行输出环境变量的命令执行不了 所以在代码中加上source命令,可以直接执行命令 2.增加获取主dn的日志打印 3.switchover后升级失败: switchover后,使用gs_om -t refreshconf生成动态文件,但是由于930的解码方式和 1230的解码方式存在差异,导致升级过程中,解读动态文件时错误
This commit is contained in:
@ -6231,15 +6231,25 @@ class dbClusterInfo():
|
||||
logPathWithUser[0:(logPathWithUser.rfind(splitMark))]
|
||||
dynamicConfigFile = self.__getDynamicConfig(user)
|
||||
# read dynamic_config_file
|
||||
dynamicConfigFilePath = os.path.split(dynamicConfigFile)[0]
|
||||
versionFile = os.path.join(
|
||||
dynamicConfigFilePath, "upgrade_version")
|
||||
version, number, commitid = VersionInfo.get_version_info(
|
||||
versionFile)
|
||||
fp = open(dynamicConfigFile, "rb")
|
||||
info = fp.read(24)
|
||||
(crc, lenth, version, currenttime, nodeNum) = \
|
||||
struct.unpack("=IIIqi", info)
|
||||
if float(number) <= 92.200:
|
||||
info = fp.read(28)
|
||||
(crc, lenth, version, currenttime, nodeNum) = \
|
||||
struct.unpack("=qIIqi", info)
|
||||
else:
|
||||
info = fp.read(24)
|
||||
(crc, lenth, version, currenttime, nodeNum) = \
|
||||
struct.unpack("=IIIqi", info)
|
||||
totalMaterDnNum = 0
|
||||
for i in range(nodeNum):
|
||||
offset = (fp.tell() // PAGE_SIZE + 1) * PAGE_SIZE
|
||||
fp.seek(offset)
|
||||
(dbNode, materDnNum) = self.__unpackDynamicNodeInfo(fp)
|
||||
(dbNode, materDnNum) = self.__unpackDynamicNodeInfo(fp, number)
|
||||
totalMaterDnNum += materDnNum
|
||||
self.dbNodes.append(dbNode)
|
||||
if totalMaterDnNum != 1:
|
||||
@ -6252,9 +6262,13 @@ class dbClusterInfo():
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50204"] %
|
||||
dynamicConfigFile + " Error:\n" + str(e))
|
||||
|
||||
def __unpackDynamicNodeInfo(self, fp):
|
||||
info = fp.read(72)
|
||||
(crc, nodeId, nodeName) = struct.unpack("=II64s", info)
|
||||
def __unpackDynamicNodeInfo(self, fp, number):
|
||||
if float(number) <= 92.200:
|
||||
info = fp.read(76)
|
||||
(crc, nodeId, nodeName) = struct.unpack("=qI64s", info)
|
||||
else:
|
||||
info = fp.read(72)
|
||||
(crc, nodeId, nodeName) = struct.unpack("=II64s", info)
|
||||
nodeName = nodeName.decode().strip('\x00')
|
||||
dbNode = dbNodeInfo(nodeId, nodeName)
|
||||
info = fp.read(4)
|
||||
|
Reference in New Issue
Block a user