如何验证已升级 Amazon Redshift JDBC 或 ODBC 驱动程序?
上次更新时间:2020 年 9 月 1 日
我正在尝试升级到最新的 Amazon Redshift JDBC 或 ODBC 驱动程序以连接到 Amazon Redshift 集群。如何执行此操作并检查我是否已升级所有驱动程序?
简短描述
最佳做法是,使用最新的 Amazon Redshift 驱动程序以避免遇到在旧的驱动程序版本中发现的任何问题。有时,AWS 会发送一封电子邮件,告知客户应将其驱动程序更新到最新版本。当最新的 Amazon Redshift 驱动程序出现已知问题或出现有意义的变化时,将发送电子邮件通知。
注意:驱动程序升级仅会使客户端 SQL 数据或尝试连接到 Amazon Redshift 的应用程序发生改变。因此,您不需要对您的 Amazon Redshift 集群进行任何更改。
解决方法
JDBC 升级
要升级您的 Amazon Redshift JDBC 驱动程序,请执行以下步骤:
1. 验证当前正在使用的 JDBC 驱动程序版本:
SELECT DISTINCT trim(remotehost) remote_host,trim(application_name) jdbc_version,
MAX(recordtime) OVER (PARTITION BY application_name) last_time_loggedin
FROM stl_connection_log
WHERE application_name LIKE '%JDBC%'
AND trim(event) = 'set application_name'
ORDER BY 2 DESC;
注意:使用输出中的 IP 地址来识别客户端机器。
2. 请确定您是需要 32 位还是 64 位的版本。
3. 下载 Amazon Redshift JDBC 驱动程序。
4. 验证驱动程序是否包含 AWS 开发工具包。
注意:驱动程序文件名中显示该驱动程序的版本号。
例如,RedshiftJDBC42-no-awssdk-1.2.34.1058.jar 表示您应该使用不带 AWS 开发工具包的 JDBC 4.2 兼容驱动程序,并且驱动程序版本为 1.2.34.1058。您可以向 Amazon Redshift 进行身份验证,请使用 IAM 凭证和 JDBC 进行验证。如果您需要 AWS 开发工具包,您必须下载一个包含适用于 Java 的 AWS 开发工具包的 JDBC 驱动程序,或单独下载 AWS 开发工具包。
5. (可选)如果您使用的是 SQL Workbench/J,请选中现有驱动程序,然后将其删除。选择文件夹图标并提供最新驱动程序的下载位置。然后,选择 OK(确定)。您的驱动程序现已更新。
ODBC 升级
要升级您的 Amazon Redshift ODBC 驱动程序,请执行以下步骤:
1. 请确认您要升级哪些平台(Windows、macOS 还是 Linux)。
2. 安装并配置 ODBC 连接。
3. 验证使用的 ODBC 驱动程序版本是否适用于您的平台。
Windows:从 Start(开始)菜单,导航到 ODBC Data Sources(ODBC 数据源)并选择 Drivers(驱动程序)选项卡。从已安装的 ODBC 驱动程序列表中找到 Amazon Redshift ODBC 驱动程序。版本号将显示在 Version(版本)列中。请务必选择 ODBC 数据源管理员,它与用于连接到 Amazon Redshift 的客户端应用程序位数相同。
macOS:在终端,请运行 pkgutil --info com.amazon.redshiftodbc 命令。
Linux:根据您的程序包管理器,请运行以下命令之一:
yum list | grep AmazonRedshiftODBC
-或者-
rpm -qa | grep AmazonRedshiftODBC
循序渐进的驱动程序更新
要循序渐进地更新您的 JDBC 或 ODBC 驱动程序,请执行以下步骤:
1. 用新驱动程序将旧的替换掉。如果应用程序明确指向旧驱动程序文件名,请重新配置此应用程序,然后使用新的驱动程序 3-5 天。
2. 如果更改驱动程序没有产生影响,请将其他 SQL 客户端也更换掉。检查新客户端在 3-5 天内的运行情况以及对 Amazon Redshift 集群是否产生任何影响。
3. 继续循序渐进地更换驱动程序,直至将所有 SQL 客户端都更新到较新版本。
其他问题排查方法
如果您在升级期间遇到任何问题,请尝试一下以下故障排除方法:
- 临时启用驱动程序级别的日志记录。有关启用驱动程序日志记录的更多信息,请参阅 Simba 网站上如何启用对 ODBC 和 JDBC 驱动程序的日志记录?
- 恢复到以前的驱动程序版本。