以下是该方案 - 客户端将Sybase转储文件上载到(gzip)本地FTP服务器。我们有一个自动化流程,可以选择这些流程,然后将它们移动到数据库服务器所在网络中的不同服务器。不幸的是,这种传输是通过WAN进行的,对于大型文件需要很长时间,有时我们的客户端会忘记以二进制模式进行FTP,这会导致通过WAN传输10GB的所有内容,因为转储文件无法加载在另一端。我想做的是在通过WAN发送之前验证本地服务器上转储文件的完整性,但我不能只是尝试“加载”转储文件,因为我们没有Sybase安装(并且无法安装)。我可以用它来做任何工具或代码吗?
答案 0 :(得分:3)
您可以从命令行执行一些操作。第一个是发送方,是生成文件的md5sum。
$ md5sum *.dmp
2bddf3cd8b04010183dd3295ce7594ff pubs_1.dmp
7510e0250c8d68bae3e0e794c211e60b pubs_2.dmp
091fe54fa5fd81d8c109cc7835d37f4a pubs_3.dmp
在客户端,他们可以运行相同的。其次,通常使用compress选项完成Sybase转储。如果使用此选项,您还可以通过命令行解压缩文件来测试文件完整性。这不完整,但它将验证8字节CRC-32校验和,它是压缩算法的一部分。
$ gunzip --test *.dmp
gunzip: pubs_3.dmp: unexpected end of file
这些方法都没有验证Sybase是否能够加载文件,但它确实有助于确保文件没有损坏。
答案 1 :(得分:0)
如果没有备份服务器以某种方式加载转储文件,则无法真正验证转储文件的完整性。客户端应该在转储期间通过备份日志或输出知道转储是否成功。
但是为了解决您的问题,您应该使用SFTP或SCP,所有传输都以二进制方式完成,从而缓解您的问题。
确保他们也在转储中使用压缩值1-3是绰绰有余,这也应该减少您的网络流量。