lt_upgrade_check — lt_upgrade升级前检查工具
lt_upgrade_check
-b
oldbindir
[-B
newbindir
] -d
oldconfigdir
-D
newconfigdir
[option
...]
本程序在lt_upgrade升级之前执行,用于提前检查升级不兼容及异常项,尽量避免在升级过程中出现失败。
目前支持的检查内容如下:
1,关键字检查。
2,存储空间检查,仅当空闲存储空间超过原目录大小乘以(100 + reserved-space-percent)%的时候才允许升级,尽量避免升级过程中储存空间不足,其中reserved-space-percent是选项参数,下文有具体介绍。
lt_upgrade_check接受下列命令行参数:
-b
bindir
--old-bindir=
bindir
旧的 LightDB 可执行文件目录;
环境变量LTBINOLD
。
-B
bindir
--new-bindir=
bindir
新的 LightDB 可执行文件目录;
默认为lt_upgrade_check所在的目录;
环境变量LTBINNEW
。
-d
configdir
--old-datadir=
configdir
旧的实例数据目录;环境变量
LTDATAOLD
。
-D
configdir
--new-datadir=
configdir
新的实例数据目录;环境变量
LTDATANEW
。
-p
port
--old-port=
port
旧的实例端口号;环境变量
LTPORTOLD
。
-P
port
--new-port=
port
新的实例端口号;环境变量
LTPORTNEW
。
-r
--reserved-space-percent
剩余磁盘空间百分比,计算新目录所需空间时规则是原目录大小乘以(1 + reserved-space-percent)%,默认 20,即剩余磁盘空间要大于原目录大小*120%。
-s
--strict
采用严格模式检查,默认不开启。 若开启此选项,则会检查表名、列名、函数名等对象名称,并检查函数、存储过程、视图、等编译式要素的代码中是否用了任何关键字, 若不开启,则只检查增量关键字(增量关键字是指新旧数据库实例之间新增的关键字),如果包含了关键字,则视为检查失败。
-v
--verbose
启用详细的内部日志。
-V
--version
显示版本信息,然后退出。
-?
--help
显示帮助,然后退出。
下面是在新库的数据库实例调用lt_upgrade_check执行一次检查的命令:
new-bindir/lt_upgrade_check -d old-datadir -D new-datadir -b old-bindir -B new-bindir -v -r 50
这个命令表示在指定的旧库数据库实例升级到新库数据库实例时,关键字检查是非严格检查,需要剩余磁盘空间大于原目录大小乘以150%,并打印详细检查日志。
运行lt_upgrade_check
运行lt_upgrade_check前,要求新旧数据库实例都是在一台服务器上并都是停止状态, 没有人可以在检查期间访问这些实例。 默认会在端口 50432 上运行服务来避免意外的客户端连接。在做检查时, 可以对两个实例使用相同的端口号,因为新旧实例不会同时被运行。
检查流程是: 获取新库、旧数据库实例关键字信息后,首先做关键字检查,然后进行存储空间检查。