Questions tagged «migration»

将数据库或数据从一个地方移到另一个地方的过程


5
是否建议SQL Server就地升级不如从前?
从SQL Server 6.5开始,我就一直在使用SQL Server进行断断续续的工作,至今仍然在我脑海中响起的那条老建议是永远不要进行就地升级。 我目前正在将我的2008 R2 DEV和TEST系统升级到SQL Server 2012,并且需要使用相同的硬件。不必还原我的Reporting Services配置的想法非常吸引人,我真的很不明智。没有涉及分析服务,也没有任何异常或非标准的服务-仅安装了数据库引擎和报告服务。 有没有人遇到就地升级的严重问题?还是应该重新评估就地升级的立场?

1
在不停机的情况下进行模式更改和将数据迁移到活动数据库的最佳做法?
如何在不停机的情况下对活动数据库进行架构更改? 例如,假设我有一个PostgreSQL数据库,该数据库的表包含各种用户数据(如电子邮件地址等),这些数据均与特定用户相关联。如果要将电子邮件地址移动到新的专用表中,则必须更改架构,然后将电子邮件数据迁移到新表中。如何在不停止写入原始表的情况下完成此操作?当然,当数据从旧表写入新表时,新数据将继续写入旧表并丢失,对吗? 我猜这个问题经常出现,但是我找不到任何标准的解决方案。 本文解决了这个问题,但是我并没有真正理解步骤3。他说要写入两个表,然后将旧数据从第一个表迁移到新表。您如何确保仅迁移旧数据? (我在Heroku上使用PostgreSQL。)

4
如何将数据库从SQL Server 2012移动到SQL Server 2005
如果我需要将数据库从SQL Server 2012(32位)移至SQL Server 2005(64位),该怎么办? 我知道我不能: 在SQL Server 2005上还原数据库的备份 分离并附着 我知道我可以: 使用导入数据向导,我在一个数据库上进行了尝试,但是它只能移动数据,即使那样也很麻烦,因为我需要做很多工作来创建临时表来维护标识列,重新创建所有FK,索引等。 有没有更简单的选择?

5
归档旧数据
由于数据库太大,我们当前遇到一些性能问题。有过去10年存储的数据,我看不出为什么必须将2年以上的数据与新数据存储在同一表中的原因。 现在,由于我在管理数据库方面没有很丰富的经验,因此我正在寻找归档旧数据的最佳方法。 信息 数据库中总共有约310'000'000条记录。 数据库在硬盘上需要250 GB。 服务器版本为具有兼容级别SQL Server 2005(90)的SQL Server 2008,但我们计划很快升级到SQL Server 2012 我考虑过两种可能性: 新资料库 在生产服务器上创建一个与之相似的数据库,并将所有旧数据插入新数据库中。 缺点:由于我们的环境中不允许使用链接服务器,因此如果需要,将很难加入旧数据 历史架构 使用与生产数据库相同的表创建新的模式fe [hist]。在新架构的这些新表中插入所有旧数据。 优势:易于加入,如果将来需要旧数据 您是否更喜欢其中一种解决方案? 为什么? 还有更好的可能性吗? 是否有现有工具可轻松实现此任务? 还有其他想法吗? 提前致谢 编辑 附加问题: 新创建的存档表是否还需要主键/外键? 还是应该只包含列但没有键/约束?

1
将SQL Server 2000数据库升级到2008 R2并启用新功能
我最近将SQL Server 2000数据库升级到2008 R2。 我所做的是: 在旧计算机上关闭SQL Server 2000(快速)服务, 将数据文件(mydatabase.mdf和mydatabase.ldf)移至新计算机, 运行SQL Server Management Studio 2008, 连接到本地数据库引擎, 将数据文件附加到数据库。 将数据库的兼容性级别更改为SQL 2008(100)。 问题:我还应该怎么做才能完成迁移? 我想要: 使用诸如校验和和完整恢复模型之类的新功能, 使该数据库与在SQL 2008 R2中创建的数据库完全相同, 使该数据库具有完全的兼容性,正确性,并且非常适合新的SQL 2008 R2数据库引擎。 换句话说:我只想知道如何正确地将旧的SQL 2000数据库正确地完全转换为新的2008 R2数据库,请对所有事情都做对了保持冷静,并对所有新功能感到满意。 我问这个问题,是因为我在Internet上发现了很多网站,这些网站说了很多不同的内容,这让我感到困惑:有些人说需要重建索引,而另一些人说要做其他事情……现在我一无所知,所以我想听听经验丰富的人的意见和清晰的分步说明。我在一家非常小的公司工作,我一个人工作,我不想搞砸。 主席先生,您的回答给我留下了深刻的印象,没想到那么多。 所以一些评论: 该数据库现已投入生产。就像我说的那样,如我在第一篇文章中所描述的那样,它使用deattach-attach方法进行了升级,并且在MSDN 上进行了描述:http : //msdn.microsoft.com/zh-cn/library/ms189625.aspx必须快速完成,所以我被迫那样做。让我们忘记这有多么不恰当,而将注意力集中在当前情况上。 用户/权限在这里不是问题-人数很少,权限很简单。 直到2012年,使用数据库的应用程序都与SQL 2000兼容,因此这也不是问题。 数据库文件(MDF)并不大-只有大约1GB。 几个问题: 您建议使用备份/还原方法,但是我如上所述,所以现在可以遇到任何问题吗?一切正常,没有任何问题。 关于校验和和完整恢复模型:在SQL 2000上不可用/未启用,因此我现在想使用它们。您说过,我唯一需要做的就是在数据库属性中启用这些选项?我读过某个地方,那还不够,还应该重建索引或其他内容。我真的不知道,我只是问。 我正在准备将该数据库迁移到SQL 2012-首先是从SQL 2000到2008 R2,现在是从2008 R2到2012(由于缺少对SQL …

4
您计划进行数据迁移的工作流程是什么?
在软件开发工作的最后阶段,我被吸引了很多次,并被告知诸如“好吧,我们已经拥有了所有这些新代码,并且需要更改表和迁移数据”。 似乎每次都是一次性的,最好的猜测。我觉得这是我作为DBA的最薄弱的技能。 我想了解一些用于接近,管理和测试数据迁移的模式。 请为我提供一些最佳实践和/或在哪里可以获取学习材料的帮助,以帮助我在这一领域变得更好。

2
通过网络以较低的停机时间迁移大型SQL Server数据库的最佳方法
问题定义 我们的数据库服务器需要转移到另一个数据中心。它在Microsoft SQL Server 2012 Enterprise(64位)上运行,并包含两个大约2TB和1TB的数据库。 为此,几乎没有停机时间甚至没有停机时间将是理想的。 工作量 这些数据库用于.NET网站,并且会不断更新。 周末不可用它是可以接受的。在切换到新数据库之前,当前正在使用的数据库将保持唯一。 理想情况下,只需更改DNS条目以指向新的数据库服务器,同时确保不更新数据库,即可进行该切换。 此外,只要将从一台服务器切换到另一台服务器的停机时间(停机时间)保持在较低水平,此操作所花费的时间并不重要。 考虑的方法 备份还原 过去已经做到了这一点,但是即使通过内部网络完成,也要花费大量的停机时间,因此比通过Internet 更有效 日志传送 据我了解,该方法将通过配置主/从服务器并将主数据库的精确副本传输到只读的从服务器,从而最大程度地减少停机时间。如上所述,不需要访问从属服务器,我们只需要一种在不破坏数据的情况下拥有主数据库副本的方法。 就资源利用率而言,它似乎也相当有效,并且不会对主服务器性能产生太大影响。 我对这种方法可能不对,请随时纠正我。 数据库镜像 我不太了解这种方法,但似乎是一个有效的选择。不需要实时同步,并且主机的性能非常重要,因此,如果选择这种方法,异步将是必经之路。 还有其他选择吗? 该服务器直接在裸机硬件上运行,因此不幸的是不能选择较低级别的解决方案。也许有更好的方法可以做到这一点? 约束条件 如上所述,这些数据库很大,难以维护,但这是另一个问题。 SQL Server的版本将相同(Microsoft SQL Server 2012 Enterprise 64位)。 它必须在两个数据中心之间通过网络传输,因此很有可能在Internet上传输。不幸的是,无法将磁盘从一个站点发送到另一个站点进行初始同步。为传输提供某种安全性将是理想的,但是我们会尽力解决这种情况。 这应该可以很好地概述我们对这项任务的需求,希望你们中的某些人不得不面对这种情况。

7
需要将SQL Server迁移到MySQL
我在Windows服务器上的SQL Server 2008上有一个数据库,我想将所有数据移到Ubuntu服务器上的MySQL数据库中。我尝试将SQL Server导入和导出向导与MySQL ODBC驱动程序一起使用,并且它可以正确访问两个数据库,但是不存在包含用于类型转换的规范的xml文件,并且该规范对于我而言无法正确创建。有谁知道如何创建类型转换文件或在哪里可以找到更好的工具来传输此数据?


3
我应该使用分离/复制/附加还是通过备份-还原-重放来迁移数据?
我即将着手将数据库文件迁移到新的SAN(从旧的SAN)到abd,我有两种选择来实现。(1)建议我研究将完全备份还原到服务器上新数据库的工作水平。但是,(2)我最初的计划是通过分离然后重新附加数据库将文件从旧SAN复制到新SAN。 我的直觉告诉我,我宁愿分离,复制和附加,因为它看起来似乎更安全,但这可能只是我的天真。我不想在重命名数据库的过程中错过事务或以某种方式“破坏某些东西”。 我想我的问题是,我对BACKUP-RESTORE-Replay选项的怀疑是否合理,该选项还有其他优点或风险?

4
当源数据库以UTF8编码时,如何解决还原时UTF8无效字节序列复制错误?
我获得了将PostgreSQL 8.2.x数据库迁移到另一台服务器的任务。为此,我使用的是pgAdmin 1.12.2(顺便说一句在Ubuntu 11.04上),并使用通过自定义/压缩格式(.backup)和UTF8编码进行的备份和还原。 原始数据库位于UTF8中,如下所示: -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; 我正在目标服务器上完全像这样创建此数据库。但是,当我使用Restore选项从.backup文件还原数据库时,它给了我一些错误: pg_restore: restoring data for table "arena" pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry …

7
将表移动到另一个SQL2008数据库(包括索引,触发器等)
我需要将一大堆(100多个)大型(数百万行)表从一个SQL2008数据库移动到另一个数据库。 我最初只是使用导入/导出向导,但是所有目标表都缺少主键和外键,索引,约束,触发器等。(标识列也被转换为普通INT,但是我想我只是错过了向导。) 什么是正确的方法? 如果这只是几个表,我将回到源头,编写表定义的脚本(包括所有索引,等等),然后在目标上运行脚本的索引创建部分。但是,有这么多表,这似乎是不切实际的。 如果没有太多数据,我可以使用“创建脚本...”向导来编写包括数据在内的源脚本,但是72m行脚本似乎不是一个好主意!

2
备份/还原用户/密码/特权
我正在从一台服务器移动到另一台服务器,并且想从我的MySQL Server备份所有数据库+用户/特权/密码。我发现使用来备份数据库mysqldump,但是我不知道如何备份所有用户和给定的特权。有没有办法实现这一目标,还是必须在新服务器上重新进行设置?

1
如何将大型Blob表从mysql迁移到Postgresql?
我现在正在将MySQL数据库迁移到PostgreSQL。除了我拥有的一张桌子外,几乎所有其他东西都很好(嗯,经过大量的谷歌搜索以查找正确的mysqldump参数等),实际上是我的应用程序中最重要的一张桌子。 表的结构很简单: mysql> show create table samples; .. skipped ... CREATE TABLE `samples` ( `File_ID` int(11) NOT NULL, `File` longblob, PRIMARY KEY (`File_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=binary 但它非常大(> 20 Gb)。 我尝试使用mysqldump的--hex-blob参数-但是当我尝试将生成的转储文件用作命令文件时,PostgreSQL不接受这种格式的数据。我尝试过的另一个选项是使用--tab选项只是获取转储,然后使用COPY命令将其插入到PostgreSQL中-但是--hex-blob无法与--tab一起使用,并且PostgreSQL仍然不接受在那说的转储文件是无效字符。 我很高兴收到关于此事的任何建议-尽管我开始认为编写自定义迁移工具毕竟不是一个坏主意...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.