转储 T-sql 脚本失败服务器 2000

Posted

技术标签:

【中文标题】转储 T-sql 脚本失败服务器 2000【英文标题】:Dump T-sql script failing server 2000 【发布时间】:2013-12-06 05:54:27 【问题描述】:

我正在尝试找到一种方法来获取 SQL 2000 中的数据库转储,以便在 Ubuntu Server 12.04 上迁移到 mysql 5.5。 Linux 机器运行一些 ruby​​ 脚本,将 SQL 数据转换为 JSON,以便上传到 AWS 上的网站,作为客户端门户。

我们在 Windows Server 2008 Standard (x86) 上运行 SQL 2000,它是 XenServer 6.0 主机上的 VM。目标 Ubuntu 服务器是 x64,也是同一 XenServer 主机上的 VM。我知道 SQL2K 是过时的技术,但它是我们运行的专有软件可以使用的最新版本的 SQL。是的——我们正在研究那里的升级;但那不是今天。

我的想法是通过查询分析器运行 DUMP 命令,但我不断收到错误。

    USE <database_name>
    EXEC sp_addumpdevice 'disk', 'tempdumpdisk', 'c:\dump\dump.bak'
    GO
    DUMP DATABASE <database_name>
      TO DISK = 'tempdumpdisk'
    GO
    EXEC sp_dropdevice 'tempdumpdisk'

我得到的错误:

服务器:消息 15247,级别 16,状态 1,过程 sp_addumpdevice,第 27 行 用户无权执行此操作。 为文件 4 上的数据库 ''、文件 '' 处理了 98264 页。 为数据库 '' 处理 1 页,文件 4 上的文件 ''。 BACKUP DATABASE 在 22.056 秒(36.497 MB/秒)内成功处理了 98265 个页面。 服务器:消息 15247,级别 16,状态 1,过程 sp_dropdevice,第 38 行 用户无权执行此操作。

我以域管理员身份登录服务器,并以 sysdba 身份连接到数据库。我不知道权限问题来自哪里。

如果这对你们所有人来说都是显而易见的,我深表歉意。我对这一切都很陌生,并且已经被抛入了深渊。我不会在这些论坛上发帖(我通常会搜索这些论坛),但我很绝望。

谢谢!!

【问题讨论】:

您将无法将 mssql x.bak 导入 mysql 看看这些 qlosed 问题:***.com/questions/2176728/… 和 ***.com/questions/129/… 好的。谢谢你,布米!立即尝试 ms2my;我们会看看这是怎么回事。 【参考方案1】:

这听起来像一个两步过程:首先构建空数据库结构,然后导入数据。

您应该能够通过管理 GUI(现在称为 SQL Server Management Studio,以前称为企业管理器)编写数据库结构的脚本。 CREATE TABLE 等语句应该能够被修改以与 MySQL 一起使用。

然后您可以使用导出功能手动将表格导出到平面文件。显然,如果您有 20 张桌子,这将比您有 200 张桌子更实用。对于自动化,SQL Server 2000 使用了 DTS 包(现在被 SSIS 包取代)。您可能希望编写一个平面文件导出脚本,将每条记录放入一个 INSERT 语句中,以简化导入 MySQL。

INSERTS 的顺序需要取决于表之间的关系。例如,FK 指向的子记录必须插入到父记录之前。

(注意:如果您正在考虑迁移到任何更新版本的 SQL Server,请不要在 DTS 包开发上投入大量精力。您必须从头开始为 SSIS 重新创建所有内容,这与 DTS 不同完全没有。)

【讨论】:

哇。这可能是我无法做到的。我只是一个初级系统管理员。我想我找到了一种通过 MySQL Workbench 以我需要的方式来解决这个问题的方法。不知道我是否能够实现自动化,但我试图一次将这个大象分成一个依赖项。谢谢!

以上是关于转储 T-sql 脚本失败服务器 2000的主要内容,如果未能解决你的问题,请参考以下文章

linux内核崩溃转储创建失败

创建作业(JOB)

T-SQL 安装/升级脚本作为事务

T-SQL Server 代理作业失败“用户无权执行此操作”

没有为 systemd 服务生成核心转储

t-sql 为学年分配日期