标签: migration

如何比较迁移中的两个 SQL Server 实例级对象?

我目前正在进行 SQL Server 迁移(从 SQL Server 2005 到 2008 R2 服务器,在新的物理服务器上)。

数据库本身将使用数据库备份和恢复脚本进行传输。我已经测试过了,它工作正常,没有问题。

我担心的是所有其他实例/系统对象,例如登录、SQL 代理作业。这些已从源服务器编写并重新应用到新服务器上,恐怕我已经忘记了一些。我可以明显地直观地比较使用SQL Management Studio,这就是我所做的,但它既耗时又容易出错。因此,在及时拔掉现有服务器的插头之前,我更希望有一种更“科学”的方法来确认一切都在那里......

我一直在寻找进行这种比较的软件,但只找到了模式或数据比较工具。我想我可以比较 sys.sql_logins 和 msdb.dbo.sysjobs 等系统表,但我不知道它们全部。

简而言之,有没有一种方法可以快速比较两个服务器的实例级对象,如果可能的话,还可以比较它们的内容,而不仅仅是通过名称?

谢谢。

sql-server migration scripting

5
推荐指数
1
解决办法
4495
查看次数

将所有数据库从一个 SQL Server 2005 迁移到另一个

我们有一个生产 SQL Server 2005 服务器,我们在上面托管了 200 个数据库。

我们想在我们的新服务器上托管这些数据库。在新服务器上安装了 SQL Server 2005 并准备就绪。

我想知道迁移整个数据的最佳和最方便的方法包括:

  • 安全和许可
  • 用户和会员
  • 所有的数据库和..

总之,我希望在新服务器上的新实例上拥有与当前 SQL Server 2005 完全相同的副本。

如果你能指导我解决这个问题,我将不胜感激。

此致

sql-server backup migration

5
推荐指数
1
解决办法
1万
查看次数

如何自动从 CSV 创建和填充 PostgreSQL 表?

我是数据库管理的新手,我们正在使用 PostgreSQL。我需要做的就是将 CSV 文件(对应大约 200 个表)迁移到我们的数据库。为每个 CSV 文件手动创建表格有点烦人,所以请帮帮我。有什么办法不仅可以导入数据,还可以从CSV文件生成表格吗?

postgresql migration csv

5
推荐指数
1
解决办法
2万
查看次数

遍历表格或复制粘贴

我必须做一个迁移,我应该从 40 个 Access 表中检索数据,这些表应该包含几个相同的列(但不是全部,模式不同)。为简化起见,我使用 SSMA 在 SQL Server 中转换这些表。

它是通过 SSIS 迁移的一部分。我必须将所有这些表合并到一张表中,而不会重复。所有表格的部分处理都是相同的,但有一些微妙之处。一个问题是列名略有不同(如 X_Y 而不是 X)。每个表都有特定的列,但我不想检索其中的数据。

我希望这不是一个太宽泛的问题,但是:

  • 尝试做一个通用的部分,将表名作为变量,对其中的条件应用相同的处理来处理差异是否更好?

  • 或者我应该只是复制和粘贴核心/模板数据流并在单独的包中管理每个差异?

ms-access sql-server migration ssis

5
推荐指数
1
解决办法
902
查看次数

如何加速 pg_dump 大数据库

我有一个大数据库(大约 900GB),当我将它迁移到新服务器时,转储速度不超过 2MB/s(非常慢)。服务器之间的链路为 10Gb/s。

该数据库包含 20 个不同大小的表(最大的一个有 600GB 左右)。由于服务器具有不同版本的 postgresql(源 9.3 和目标 9.4),我无法将所有集群复制到新服务器。我尝试使用:

pg_dump -h source | pg_restore -h 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

但没有结果。我也尝试转储到文件,然后使用 '-j' 参数恢复,但也没有结果(20 分钟后只有一个线程工作,因为其他人完成了他们的工作)。问题不在于磁盘速度,因为这两种方法都给了我相似的速度。

我没有任何迁移如此大数据的经验,所以也许这种方法很糟糕。您有什么建议为什么这种迁移会变慢,以及如何加快速度?

migration postgresql-9.3 pg-dump

5
推荐指数
1
解决办法
2470
查看次数

将镜像迁移到 AG 的最快方法

场景是这样的,prod 是两个带镜像的两节点 FCI(主/灾难 DC)。这工作得很好。新硬件即将推出,版本升级到 SQL Server 2012(从 2008 R2 开始),主要形式为两个双节点 FCI,带有异步 AG,以将数据传输到第二个 FCI。(DR 是在 DR 站点中具有相同框的所有 SAN 镜像)

当 SQL Server 2012 FCI 主数据库位于 AG 中时,我可以将 2008 R2 主数据库和日志传送到 SQL Server 2012 FCI 主数据库吗?

如果没有,我可以让 AG 关闭,然后登录船进行迁移,然后上线并设置 AG,这不是世界末日。只是想看看我是否可以跳过此设置。

sql-server migration mirroring availability-groups

5
推荐指数
2
解决办法
246
查看次数

特殊累积和基于前一行的行数据转换

根据对这个问题回答,我设法产生了以下输出以获得运行的值总和:

id      creation                    operation       value       running sum
SyJw-c  2016-09-01 00:11:08.307419  positive_op_1   1.33        28.82
SyJw-c  2016-08-21 08:32:54.431662  negative_op_1   -1          27.49
SyJw-c  2016-08-18 07:38:33.878365  positive_op_2   1           28.49
SyJw-c  2016-08-14 18:12:03.599797  negative_op_1   -1          27.49
SyJw-c  2016-08-02 15:44:29.693303  positive_op_1   1.33        28.49
SyJw-c  2016-07-31 12:08:50.659905  override_op_1   4.66        27.16
SyJw-c  2016-06-26 06:53:54.537603  negative_op_1   -3.5        22.5
SyJw-c  2016-05-31 13:34:08.005687  negative_op_1   -1          26
SyJw-c  2016-05-31 13:34:04.776970  negative_op_1   -1          27
SyJw-c  2016-05-31 11:27:09.502983  override_op_2   28          28
Run Code Online (Sandbox Code Playgroud)

我的情况更复杂。我不仅需要对这些值求和,还需要能够首先根据其下方行的运行总和对某些行执行转换。

我先解释一下动机:

目前我有一个带有增量、减量和覆盖操作的表。我想将数据移植到一个只有增量和减量操作的表中,这样我就可以直接总结这些值。我不希望维护旧表,只是一种将数据迁移到更简单模型的方法,因此只将数据附加到新表。

采用上面的“原始”表,我想编写一个查询(我在 postgresql 9.5 上运行)并获得一个与下面非常相似的表。(相反,我想知道我正在尝试的是 …

postgresql migration window-functions

5
推荐指数
1
解决办法
213
查看次数

将群集从 SQL Server 2005 迁移到 SQL Server 2016

我正在迁移 SQL Server 群集。我想听听成功迁移的注意事项。

生产集群的规格是:

  1. Windows Server 2003 SP2 32 位。
  2. SQL Server 2005 企业版 - 9.00.3152.00(内部版本 3790:Service Pack 2)
  3. 包括所有数据库在内的磁盘空间约为 1.5TB。(IBM v7000)

目标集群的规格是:

  1. Windows Server 2016 标准版 64 位
  2. SQL Server 2016 标准 64 位
  3. 与旧集群相同的磁盘,但速度更快(IBM v9000 闪存系统)

特别注意事项:

  • 群集名称必须相同以避免应用程序、链接服务器和其他连接发生变化。我的意思是,我们必须使用不同的集群名称进行迁移,然后关闭旧集群并使用旧名称重命名新集群(我希望这很清楚)

此时我所做和测试的内容如下:

  1. 使用 Windows Server 2016(具有不同的名称)创建和配置 Windows 故障转移群集
  2. 配置 Active Directory 以允许集群创建对象
  3. 将数据库从 MSSQL 2005 恢复到 MSSQL 2016,运行一些查询并探索对象。

还:

  • 我按照最佳实践拆分了驱动器。
  • 我们正在清理“超级用户”并为用户提供正确的权限。
  • 设置和测试兼容模式为 130
  • 大约 1 周前定义了备份策略以确保数据可用性

要做或考虑的事情:

  • 将所有 SSIS 包下载到新项目并针对新集群进行测试。集群名称更改后,将 SSIS 更改为原始名称
  • 迁移所有作业并确保它们成功运行
  • 使用迁移数据库的测试应用程序
  • 为指向 SQL Server 2000 数据库的链接服务器创建 ODBC …

replication sql-server migration clustering

5
推荐指数
1
解决办法
438
查看次数

mysql_upgrade 到 5.7 后,优化器不在大 IN 子句上使用索引

我有一个与其他人描述的类似的问题。

  • 在MySQL 5.6.23-72.1-log中,子句中包含大量值的查询IN使用索引,需要10分钟才能运行;
  • 在5.7.19-17中,相同的查询不使用索引,并且需要至少2(有时超过4)小时

我试过了

  • set session eq_range_index_dive_limit=4294967295; 没有运气。
  • set @@global.max_seeks_for_key=100; 还是没有运气。

这是在我升级了一些服务器之后发生的。

mysql_upgrade 没有报告任何问题。

正如我所指出的,我看到了其他问题,但其中提出的答案都没有解决我的问题。


非常感谢罗兰多到目前为止的回答。我继续在 my.cnf 的 [mysqld] 部分对此进行了测试

optimizer_switch = index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=off,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=off,derived_merge=off
Run Code Online (Sandbox Code Playgroud)

遗憾的是,索引仍然没有被拾取。我尝试关闭所有新添加的选项:

duplicateweedout=off
condition_fanout_filter=off
derived_merge=off
Run Code Online (Sandbox Code Playgroud)

我什至尝试过,因为我在我的解释计划中SET optimizer_switch='block_nested_loop=off' 得到了'Using where; Using join buffer (Block Nested Loop)'和。'Using temporary; Using filesort'

还在挠头。谢谢,最重要的是升级导致很多查询不使用索引,这仍然是一个痛苦。数据库接近 2TB,但查询在 5.6 上的最后几个 master 中运行良好

mysql migration upgrade mysql-5.6 mysql-5.7

5
推荐指数
1
解决办法
6552
查看次数

SQL 托管实例 - 跨订阅还原/迁移

精简版:

我正在尝试将备份从一个 SQL 托管实例恢复到另一个 SQL 托管实例。这些在不同的订阅中。使用此处的示例 3,我至少可以看到恢复从 sys.dm_operation_status 开始,但错误消息是“订阅 [目标] 不包含 [源 SQL MI]”。

问题: 如何将数据库从一个 SQL 托管实例迁移到另一个(在不同订阅中)?我目前的解决方法是对 blob 存储执行 copy_only 并以这种方式恢复。

一旦我们启用 TDE(进行中),我们将无法对 blob 执行 copy_only 备份。然后怎样呢?

长版:

最近,我们公司开始在 SQL 托管实例(和其他 PaaS/IaaS)上运行 Azure 中的生产工作负载,并且进展顺利。尽管我确实熟悉数据库迁移服务 (DMS),但我们有一个足够大的窗口,表明我们能够使用完整备份执行初始加载。

但是现在我们正在扩展我们的 dev/test/qa 环境,当然我们现在希望从生产环境恢复到这些环境。出于隔离目的,每个人都获得了自己的订阅。

这些命令有效,因为我至少可以在 sys.dm_operation_status 中看到恢复操作开始,但它失败并出现错误。错误是“订阅 [目标] 不包含 [源 SQL MI]”并让我相信交叉订阅还原对我们不起作用(尽管跨区域可以)。

DMS 似乎不支持使用数据库迁移服务作为源的方案。

Select-AzSubscription -Subscription $SourceSubscriptionID

$GeoBackup = Get-AzSqlInstanceDatabaseGeoBackup -ResourceGroupName $SourceResourceGroupName `
     -InstanceName $SourceSQLMI `
     -Name $SourceDatabaseName

Select-AzSubscription -Subscription $TargetSubscriptionID

Restore-AzSqlInstanceDatabase -FromGeoBackup `
    -GeoBackupObject $GeoBackup `
    -TargetInstanceDatabaseName $TargetDatabaseName `
    -TargetInstanceName $TargetSQLMI ` …
Run Code Online (Sandbox Code Playgroud)

migration restore azure-sql-managed-instance

5
推荐指数
3
解决办法
2396
查看次数