标签: 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 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
查看次数

OLE DB 错误 0x80004005 使用复制数据库向导

背景:在 Windows Server 2012R2 上新安装的 SQL Server 2012 SP3。

问题:当我使用复制数据库向导将数据库从server2复制到server2 时,我收到:

尝试在 SQL 上查找文件夹时遇到 OLE DB 错误,错误代码为 0x80004005(登录超时已过期)。

是的,我使用向导在同一台服务器上制作数据库副本。(会计软件和测试目的。)当向导尝试创建 Integration Services 包时,我收到此错误。同样重要的是,当我从我的计算机使用 SMSS 时会发生这种情况。我是这个 SQL Server的系统管理员。我什至将我的用户添加到此 Windows Server 的管理员组。

我们有一个旧的 server1,它的配置方式与 server2 非常相似。我检查了我想到的每个设置,两个配置看起来都一样。SSIS 包执行中没有代理,没有用户。

我可以从复制数据库服务器1服务器1服务器2Server1上没有任何问题。

看起来我没有足够的位置权限:server2_server2\DTS Packages\Copy Database Wizard Packages不管它是什么。

从理论上讲,我每次都可以使用 RDP 到服务器和域管理员帐户,但这在......后面很痛苦。还有会计软件支持,具有高 SQL 权限但不能具有域管理员。

我用谷歌搜索了这个,通常是关于 SQL Server 2008 和运行一些自定义包。

sql-server migration ssms ssis sql-server-2012

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

如何在从新版本的备份文件还原之前明确清除数据库

我们是一个数学家团队(即,没有 DBA 经验)。

我们正在从旧服务器盒 (SQL Server 2012) 迁移到新服务器盒 (SQL Server 2017)。对于旧服务器上的每个数据库,我们制作了一个备份副本,将其移植到新服务器,并从备份文件中将其恢复到完整的数据库荣耀。

到现在为止还挺好。

但是,我们的入住日期有所延迟,我们仍在使用旧服务器。随着我们继续在旧服务器上工作,这些数据库中的更改继续累积。因此,这意味着位于新服务器上的复制数据库现在已过时且已过时。(讽刺,不是吗?)

对于那些已更改的数据库,我们知道我们最终必须制作新的备份副本并将其移植到新服务器上。

到了时候,在恢复最新的备份副本之前摆脱新服务器上那些现在已经过时的数据库的最聪明方法是什么?

我们担心如果我们不小心,使用相同的名称,可能会发生一些遮挡或遮蔽。在恢复最新版本之前,我们希望确保新服务器上的过时副本完全消失。

sql-server migration sql-server-2012 sql-server-2017

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

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
查看次数

Postgres 9.4 wal_level=logical 增加磁盘空间

我正在尝试使用 AWS Database Migration Service 将数据从 RDS Postgres 实例迁移到 Aurora MySQL 实例。

数据库迁移服务要求将wal_level设置为源 Postgres DB 中的逻辑值。但是完成后,Postgres 开始消耗大量磁盘空间,以至于实例变得无法使用。

WAL 日志保留多长时间?是否可以启用其他设置来限制磁盘空间的使用?

replication migration postgresql-9.4 write-ahead-logging amazon-rds

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

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
查看次数

将 SQL Server 存储过程转换为 postgreSQL

我有一个 SQL Server 数据库,我正在将其迁移到 PostgreSQL 12.0。

我已成功迁移架构和表。连接数据库的应用程序很大程度上依赖于存储过程,这些存储过程也需要转换为PostgreSQL。

不幸的是,我使用的工具不能转换存储过程。关于我应该如何解决这个问题有什么想法或者有一个工具可以做到这一点吗?

postgresql migration stored-procedures postgresql-12

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

SQL Server 2008 R2 Ent 试用期过期搬家快递?

所以有人让我们的 SQL Server 2008 R2 企业试用版在 Web 服务器上过期。这是重新启动项目并将我们拥有的所有内容转移到 MySql 的计划的一部分。除了让旧网站运行几个月之外,我们不需要任何特别的东西。

express 或 compact 是否能够运行小型网站?

是否可以降级到 express 或 compact 以及如何降级?

既然我们已被有效地锁定在现有数据库之外,我该如何备份现有数据库?

sql-server migration

4
推荐指数
1
解决办法
5192
查看次数

我应该在计划迁移期间迁移到 InnoDB 吗?

我很快就会将 Debian Lenny 网络服务器迁移到另一台主机和 Debian Squeeze。即使在 Squeeze 上,标准 MySQL 安装也是 5.1,因此将默认为 MyISAM - 我倾向于坚持我通常的经验法则,我尽可能保持 Debian 安装的标准以获得最大稳定性,特别是因为启用 InnoDB 没有似乎是万无一失的

数据库上的事务负载很小,因为它是一个低流量网站。与其他任何事情相比,我更关心保持管理尽可能简单。该网站运行由第三方开发的定制版 WordPress。

我应该补充一点,我对任何形式的 MySQL 的经验都很少。

我应该坚持我的计划还是借此机会研究 InnoDB?

mysql innodb myisam migration storage-engine

4
推荐指数
1
解决办法
785
查看次数