如何将运行在远程服务器上的SQLAnywhere 9 db迁移到我机器上的mysql服务器?

如何将运行在远程服务器上的SQLAnywhere 9 db迁移到我机器上的mysql服务器?,mysql,sql,database,sqlanywhere,Mysql,Sql,Database,Sqlanywhere,我在一家公司工作,该公司在一台远程Windows XP服务器上运行一些CRM软件,该服务器使用SQLAnywhere 9 db存储数据;我有权使用管理员帐户访问此远程服务器 我想将数据库提取到一个.sql文件中,这样我就可以在我的机器上本地运行数据库,而不会影响服务器上运行的数据库(因为它是公司日常运营的关键) 我之所以需要它,是因为我们要测试一些BI软件,我们需要从这个数据库中获取数据来测试它,但是我们不知道数据库的结构,因为CRM软件的开发人员没有给我们任何关于它的文档。因此,我们需要在本地

我在一家公司工作,该公司在一台远程Windows XP服务器上运行一些CRM软件,该服务器使用SQLAnywhere 9 db存储数据;我有权使用管理员帐户访问此远程服务器

我想将数据库提取到一个.sql文件中,这样我就可以在我的机器上本地运行数据库,而不会影响服务器上运行的数据库(因为它是公司日常运营的关键)

我之所以需要它,是因为我们要测试一些BI软件,我们需要从这个数据库中获取数据来测试它,但是我们不知道数据库的结构,因为CRM软件的开发人员没有给我们任何关于它的文档。因此,我们需要在本地拥有数据库,以便在不影响正在运行的CRM的情况下,我们可以:

  • 通过查看DDL了解结构
  • 对其进行查询以获取样本数据
  • 我做了一些研究,最常见的解决方案是在远程服务器上使用dbunload将db卸载到包含我所需内容的reload.sql文件中。但是关于这个主题的大多数教程都提到我必须首先停止db(这将是灾难性的)。如果这是唯一的选择,那么我想我愿意在周末不使用CRM时这样做,但我想知道是否有其他解决方案

    如果没有其他解决办法,你能告诉我在哪里可以找到正确和更安全的方法吗

    我已经做了很多研究,但在这之前我从未听说过SQLAnywhere,所以我真的需要所有能得到的帮助。我主要关心的是做一些对CRM软件产生负面影响的事情


    谢谢。

    您可以在网络上运行dbunload,只需告诉它执行“外部”卸载即可。默认情况下,执行内部卸载,该卸载仅在运行数据库服务器的机器上工作

    我现在没有SQLAnywhere 9文档来查找确切的开关,但是dbunload-?应该告诉你所有可能的开关

    编辑:
    -将创建一个新数据库,并从另一个数据加载数据和架构
    -xi开关将进行外部卸载和内部重新加载。

    -要连接到远程数据库的c参数

    为什么选择向下投票?我认为这是一个合理的问题,网上没有太多文档,这可以帮助未来的开发人员处理使用SQLAnywhere的遗留系统。我不知道MySQL是从哪里来的,但如果您只是想要一个测试环境,那么请关闭SQLAnywhere服务器,将.db和.log文件复制到您的测试机器上,并在那里运行dbsrv9.exe或dbeng9.exe。我可以在不关闭服务器的情况下执行此操作吗?我不能关闭它,因为它被一个对公司运营至关重要的应用程序使用。是的,但更难。只要您可以在测试机器上的任何位置安装Adaptive Server,然后使用dbbackup.exe命令备份live db,然后您就可以从这些备份文件运行测试db服务器。谢谢,我将尝试一下。有没有办法在数据库运行时执行此操作?是的,如果要通过网络执行此操作,数据库必须运行。我建议为远程数据库创建一个dsn,然后只需将dbunload指向dsn即可。如果您仍在使用命令行开关,请告诉我。