2

这是场景 - 客户端将 Sybase 转储文件上传到(gzip 压缩)到我们的本地 FTP 服务器。我们有一个自动化流程,它会挑选这些数据,然后将它们移动到数据库服务器所在的网络中的不同服务器。不幸的是,这种传输是通过 WAN 进行的,对于大文件需要很长时间,有时我们的客户忘记以二进制模式进行 FTP,这导致通过我们的 WAN 进行 10GB 的传输,因为无法加载转储文件。在另一端。我想做的是在通过 WAN 发送之前验证本地服务器上的转储文件的完整性,但我不能只是尝试“加载”转储文件,因为我们没有 Sybase已安装(并且无法安装)。我可以使用任何工具或代码来执行此操作吗?

4

2 回答 2

3

您可以从命令行执行一些操作。首先,在发送端,生成文件的 md5sum。

$ md5sum *.dmp
2bddf3cd8b04010183dd3295ce7594ff  pubs_1.dmp
7510e0250c8d68bae3e0e794c211e60b  pubs_2.dmp
091fe54fa5fd81d8c109cc7835d37f4a  pubs_3.dmp

在客户端,它们可以运行相同。其次,通常 Sybase 转储是使用 compress 选项完成的。如果使用此选项,您还可以通过命令行解压缩文件来测试文件完整性。这并不完整,但它将验证 8 字节 CRC-32 校验和,这是压缩算法的一部分。

$ gunzip --test *.dmp
gunzip: pubs_3.dmp: unexpected end of file

这两种方法都不能验证 Sybase 是否能够加载文件,但它确实有助于确保文件没有损坏。

于 2009-02-17T05:04:31.767 回答
0

如果不通过备份服务器以某种方式加载转储文件,就无法真正验证转储文件的完整性。客户端应该通过备份日志或转储过程中的输出知道转储是否成功。

但是要解决您的问题,您应该使用 SFTP 或 SCP,所有传输都以二进制形式完成,从而缓解您的问题。

确保他们也在转储中使用压缩,值 1-3 绰绰有余,这也应该减少您的网络流量。

于 2009-02-16T19:30:14.130 回答