转储 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的主要内容,如果未能解决你的问题,请参考以下文章