# 故障排除

本文档介绍了使用 DataMover 时可能遇到的常见问题及其解决方案。

# 常见问题

# 传输速度慢

如果发现数据传输速度较慢,可以尝试以下解决方案:

  1. 增加并发数:

    const config = {
      source: './source',
      destination: './destination',
      options: {
        concurrency: 16  // 默认为4
      }
    };
    
  2. 调整缓冲区大小:

    const config = {
      source: './source',
      destination: './destination',
      options: {
        bufferSize: 1024 * 1024  // 1MB 缓冲区
      }
    };
    
  3. 启用批量处理:

    const config = {
      source: './source',
      destination: './destination',
      options: {
        batchSize: 100  // 批量处理100个文件
      }
    };
    

# 内存不足错误

当处理大型数据集时,可能会遇到内存不足的错误:

  1. 减少并发数:

    datamover transfer --source ./source --destination ./dest --concurrency 2
    
  2. 减小缓冲区大小:

    const config = {
      options: {
        bufferSize: 64 * 1024  // 64KB 缓冲区
      }
    };
    
  3. 启用流式处理:

    const config = {
      options: {
        streaming: true
      }
    };
    

# 网络连接问题

在进行网络传输时可能会遇到连接问题:

  1. 增加重试次数:

    datamover transfer --source remote --destination local --retry 10
    
  2. 设置超时时间:

    const config = {
      options: {
        timeout: 30000  // 30秒超时
      }
    };
    
  3. 启用断点续传:

    const config = {
      options: {
        resume: true
      }
    };
    

# 错误代码

# ERR_SOURCE_NOT_FOUND

描述:无法找到或访问数据源

解决方案:

  1. 检查数据源路径是否正确
  2. 确认您有访问数据源的权限
  3. 如果是网络资源,检查网络连接

# ERR_DESTINATION_NOT_WRITABLE

描述:无法写入到目标位置

解决方案:

  1. 检查目标路径是否存在且可写
  2. 确认您有写入目标位置的权限
  3. 检查磁盘空间是否充足

# ERR_NETWORK_CONNECTION

描述:网络连接失败

解决方案:

  1. 检查网络连接
  2. 确认远程服务是否可用
  3. 检查防火墙设置

# ERR_INVALID_CONFIG

描述:配置无效

解决方案:

  1. 检查配置文件格式是否正确
  2. 确认必需的配置项是否已设置
  3. 验证配置值是否符合要求

# 调试技巧

# 启用详细日志

datamover transfer --source ./source --destination ./dest --verbose

或者在代码中:

const mover = new DataMover(config);
mover.setLogLevel('debug');

# 导出传输报告

datamover transfer --source ./source --destination ./dest --report ./report.json

# 测试连接

在实际传输前测试连接:

datamover test --source ./source --destination ./dest

# 性能监控

# 实时监控传输状态

mover.on('progress', (stats) => {
  console.log(`传输速度: ${stats.speed} MB/s`);
  console.log(`已完成: ${stats.completed}/${stats.total} 文件`);
  console.log(`剩余时间: ${stats.eta} 秒`);
});

# 获取详细统计信息

mover.on('complete', (stats) => {
  console.log(`总传输量: ${stats.totalBytes} 字节`);
  console.log(`平均速度: ${stats.averageSpeed} MB/s`);
  console.log(`传输时间: ${stats.duration} 秒`);
});

# 联系支持

如果您遇到无法解决的问题,请提供以下信息:

  1. DataMover 版本号
  2. 操作系统信息
  3. 错误信息和日志
  4. 相关配置
  5. 重现步骤

您可以通过以下方式获取帮助:

  • 在 GitHub 上提交 issue
  • 发送邮件到 support@datamover.com
  • 在社区论坛提问
最后更新: 2025/9/16 17:02:07