加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

使用复制数据库向导

发布时间:2022-10-14 07:30:55 所属栏目:MsSql教程 来源:转载
导读: 使用复制数据库向导本文内容
适用于:

SQL Server (所有受支持的版本)
复制数据库向导可以轻松地将数据库和某些服务器对象从SQL Server的一个实例移动到另一个实例,且不会造成服务器停机

使用复制数据库向导本文内容

适用于:

SQL Server (所有受支持的版本)

复制数据库向导可以轻松地将数据库和某些服务器对象从SQL Server的一个实例移动到另一个实例,且不会造成服务器停机。 使用此向导可执行以下操作:

备注

是否考虑迁移到 Azure SQL? 请查看下列工具,而不是“复制数据库”向导:

限制和局限

使用 FileTables 时,不能在同一服务器上使用复制数据库向导,因为该向导使用同一目录名。

无法将数据库移动或复制到较早版本的 SQL Server。

如果选择 “移动” 选项,则在移动数据库之后,该向导将自动删除源数据库。 如果选择 “复制” 选项,则复制数据库向导不会删除源数据库。 此外,将复制所选服务器对象,而不是将其移至目标;数据库是唯一实际移动的对象。

如果使用 SQL Server 管理对象方法移动全文目录,则必须在移动后重新填充索引。

分离和附加 方法可分离数据库,移动或复制数据库 .mdf、.ndf、.ldf 文件,并在新的位置重新附加该数据库。 对于 分离和附加 方法,若要避免数据丢失或不一致,不能将活动会话附加到正在移动或复制的数据库。 对于 SQL Server 管理对象方法,由于数据库从不会脱机,因此允许活动会话。

如果传输的 SQL Server 代理作业引用目标服务器上尚不存在的数据库,将导致整个操作失败。 向导在创建数据库之前,会尝试创建 SQL Server 代理作业。 解决方法如下:

在目标服务器上创建与要复制或移动的数据库同名的 Shell 数据库。 请参阅 创建数据库。

从“配置目标数据库”页中,选择“删除目标服务器上同名的任何数据库,然后继续传输数据库,覆盖现有数据库文件”。

警告

分离和附加 方法将导致源数据库和目标数据库所有权设置为执行 复制数据库向导的登录名。 若要更改数据库的所有权,请参阅 ALTER AUTHORIZATION (Transact-SQL) 。

先决条件

重要

在 分离和附加 方法下,如果不使用 Integration Services 代理帐户,复制或移动过程将失败。 在某些情况下,源数据库不会重新附加到源服务器,并将从数据和日志文件中去除所有 NTFS 安全权限。 如果发生这种情况,请导航到你的文件,重新应用相关权限,然后再将数据库重新附加到 SQL Server 实例。

建议 权限

您必须是源服务器和目标服务器上 sysadmin 固定服务器角色的成员。

复制数据库向导

在源或目标 SQL Server 实例上,在 SQL Server Management Studio 中通过对象资源管理器启动复制数据库向导,再展开“数据库” 。 然后右键单击某个数据库,指向“任务”,再选择“复制数据库” 。 如果显示“欢迎使用复制数据库向导”初始页,则选择“下一步” 。

选择源服务器

用于指定要移动或复制的数据库所在的服务器并输入登录信息。 在选择身份验证方法并输入登录信息后,选择“下一步”即可与源服务器建立连接。 此连接会在整个会话过程中保持打开状态。

选择目标服务器

用于指定将数据库移动或复制到的服务器。 如果将源服务器和目标服务器设置为同一个服务器实例mssql复制,则会创建一个数据库副本。 在此情况下,必须稍后在向导中重命名数据库。 仅当目标服务器上不存在名称冲突时,源数据库名称才能用于复制或移动的数据库。 如果存在名称冲突,则必须在目标服务器上手动解决冲突问题,然后才能在此处使用源数据库名称。

选择传输方法

选择“分离和附加”方法或“SQL 管理对象”方法 。

选择数据库

选择要从源服务器移动或复制到目标服务器的数据库。 请查看。

配置目标数据库

更改数据库名称(如果适用)并指定数据库文件的位置和名称。 在移动或复制每个数据库时都会出现此页。

如果目标数据库已存在:

确定目标数据库已存在时要执行的操作。

选择服务器对象

只有当源和目标为不同服务器的时候,此页才可用。

源数据库文件的位置

只有当源和目标为不同服务器的时候,此页才可用。 指定源服务器上包含数据库文件的文件系统共享。

配置包

复制数据库向导将创建 SSIS 包以传输数据库。

安排运行包

指定希望何时启动移动或复制操作。 如果你不是系统管理员,则必须指定有权访问 Integration Services (SSIS) 包执行子系统的 SQL Server 代理的代理帐户。

重要

在 分离和附加 方法下,必须使用 Integration Services 代理帐户。

Integration Services 代理帐户 从下拉列表中选择可用的代理帐户。 若要计划传输,则必须至少有一个代理帐户可供用户使用,而且必须将该帐户配置为拥有对 SSIS 包执行子系统的权限。

备注

若要为 SSIS 包执行创建代理帐户,请在对象资源管理器中,依次展开“SQL Server 代理”和“代理”,再右键单击“执行 SSIS 包”,然后选择“新建代理” 。

完成向导

显示所选选项的摘要。 选择“上一步”可更改选项。 选择“完成”可创建 SSIS 包。 “正在执行操作”页会监视与复制数据库向导的执行有关的状态信息。

示例一般步骤

无论你选择“移动”还是“复制”,“分离和附加”还是“SMO”,下列五个步骤均相同。 为简洁起见,这些步骤仅在此处列出一次,之后所有示例将从 步骤 6开始。

在“对象资源管理器” 中,连接到一个 SQL Server 数据库引擎实例,然后展开该实例。

展开“数据库”,右键单击所需的数据库,指向“任务”,然后选择“复制数据库...” 。

如果显示“欢迎使用复制数据库向导”初始页,则选择“下一步” 。

“选择源服务器”页:指定要移动或复制的数据库所在的服务器。 选择身份验证方法。 如果选择“使用 SQL Server 身份验证”,则需要输入登录凭据。 选择“下一步”即可与源服务器建立连接。 此连接会在整个会话过程中保持打开状态。

选择“目标服务器 ”页:指定要将数据库移动到或复制到的服务器。 选择身份验证方法。 如果选择“使用 SQL Server 身份验证”,则需要输入登录凭据。 选择“下一步”即可与源服务器建立连接。 此连接会在整个会话过程中保持打开状态。

备注

可以从任何数据库启动复制数据库向导。 可以从源服务器或目标服务器使用复制数据库向导。

A. 使用分离和附加方法将数据库移动到其他物理服务器上的实例。 同时将移动登录名和 SQL Server 代理作业。

以下示例会将 Sales 数据库、名为 contoso\Jennie 的 Windows 登录名和名为 Jennie's Report 的 SQL Server 代理作业从 Server1 上的 SQL Server 2008 实例移动到 Server2上的 SQL Server 2016 实例。 Jennie's Report 使用 Sales 数据库。 Sales 在目标服务器 Server2上尚不存在。 Server1 将在数据库移动后重新分配到其他团队。

如前面的 中所述,在传输一个引用目标服务器上尚不存在的数据库的 SQL Server 代理作业时,需在目标服务器上创建一个 Shell 数据库。 在目标服务器上创建一个名为 Sales 的 Shell 数据库。

返回到 向导, 选择“传输方法 ”页:查看和维护默认值。 选择“下一页”。

“选择数据库”页:为所需数据库 Sales 选中“移动”复选框。 选择“下一页”。

“配置目标数据库 ”页: 向导 已 Sales 确定目标服务器上已存在,如上述 步骤 6 中创建,并已 _new 追加到 目标数据库 名称。 从“目标数据库”文本框中删除 _new。 根据需要更改“文件名”和“目标文件夹”。 选择“删除目标服务器上同名的任何数据库,然后继续传输数据库,覆盖现有数据库文件”。 选择“下一页”。

“选择服务器对象”页:在“所选相关对象:”面板中,选择“对象名称登录名”的省略号按钮 。 在“复制选项”下面,选择“只复制所选登录名:”。 选中“显示所有服务器登录名”的对应框。 选中 contoso\Jennie 的对应“登录”框。 选择“确定”。 在“可用相关对象:”面板中,选择SQL Server 代理作业,然后选择>该按钮。 在“所选相关对象:”面板中,选择“SQL Server 代理作业”的省略号按钮 。 在“复制选项”下面,选择“只复制所选作业”。 选中 Jennie's Report的对应框。 选择“确定”。 选择“下一页”。

“源数据库文件”页的位置 :选择 源服务器上的文件共享 的省略号按钮,并导航到给定文件夹位置的位置。 例如,对于文件夹位置 D:\MSSQL13.MSSQLSERVER\MSSQL\DATA,请对“源服务器上的文件共享”使用 \\Server1\D$\MSSQL13.MSSQLSERVER\MSSQL\DATA。 选择“下一页”。

配置包 页:在 包名称: 文本框中,输入 SalesFromServer1toServer2_Move。 选中“是否保存传输日志?”框。 在“日志记录选项”下拉列表中,选择“文本文件” 。 记下“错误日志文件路径”;根据需要进行修改。 选择“下一页”。

备注

“错误日志文件路径”是目标服务器上的路径。

计划包 页:从 Integration Services 代理帐户 下拉列表中选择相关代理。 选择“下一步”。

完成向导 页:查看所选选项的摘要。 选择“上一步”可更改选项。 选择“完成”可执行任务。 在传输过程中,“正在执行操作”页会监视与向导的执行有关的状态信息。

“正在执行操作”页:如果操作成功,请选择“关闭” 。 如果操作不成功,请查看错误日志,并且可能需要单击“返回”以便进一步查看。 否则请选择“关闭”。

移动后步骤 请考虑在新主机 Server2上执行以下 T-SQL 语句:

Transact-SQL复制

SET COMPATIBILITY_LEVEL = 130; GO USE [Sales] GO EXEC sp_updatestats; GO ">ALTER AUTHORIZATION ON DATABASE::Sales TO sa; GO ALTER DATABASE Sales SET COMPATIBILITY_LEVEL = 130; GO USE [Sales] GO EXEC sp_updatestats; GO

移动后步骤清理

由于 Server1 将移动到其他团队,并且“移动”操作不会重复,因此,请考虑执行以下步骤:

B.使用分离和附加方法将数据库复制到同一个实例并设置定期计划。

在本示例中,将复制 Sales 数据库,并在同一实例上将其创建为 SalesCopy。 此后,将每周重新创建一次 SalesCopy。

选择“传输方法 ”页:查看和维护默认值。 选择“下一页”。

“选择数据库”页:为 Sales 数据库选中“复制”复选框。 选择“下一页”。

“配置目标数据库”页:将“目标数据库”名称更改为 SalesCopy。 根据需要更改“文件名”和“目标文件夹”。 选择“删除目标服务器上同名的任何数据库,然后继续传输数据库,覆盖现有数据库文件”。 选择“下一页”。

配置包 页:在 包名称: 文本框中,输入 SalesCopy Weekly Refresh。 选中“是否保存传输日志?”框。 选择“下一页”。

计划包 页面:选择 “计划: 单选”按钮,然后选择“ 更改计划 ”按钮。

“新建作业计划”页:在“名称”文本框中输入“每周星期日” 。

选择“确定”。

从“Integration Services 代理帐户”下拉列表中选择相关的代理。 选择“下一页”。

完成向导 页:查看所选选项的摘要。 选择“上一步”可更改选项。 选择“完成”可执行任务。 在包创建期间,“正在执行操作”页会监视与向导的执行有关的状态信息。

“正在执行操作”页:如果操作成功,请选择“关闭” 。 如果操作不成功,请查看错误日志,并且可能需要单击“返回”以便进一步查看。 否则请选择“关闭”。

手动启动新创建的 SQL Server 代理作业 SalesCopy weekly refresh。 查看作业历史记录,并确保实例上现在存在 SalesCopy 。

跟进:在升级数据库之后

使用复制数据库向导将数据库从早期版本的 SQL Server 升级到 SQL Server后,该数据库将立即变为可用,然后自动升级。 如果数据库具有全文检索,升级过程将导入、重置或重新生成它们,具体取决于 全文升级选项 服务器属性的设置。 如果将升级选项设置为“导入”或“重新生成”,在升级过程中将无法使用全文检索。 导入可能需要数小时,而重新生成所需的时间最多时可能十倍于此,具体取决于要编制索引的数据量。 另请注意,当升级选项设置为“导入”时,如果全文目录不可用,将重新生成关联的全文检索。 有关查看或更改“全文升级选项”属性设置的信息,请参阅管理和监视服务器实例的全文搜索。

升级后,数据库兼容性级别将保持在升级前的兼容性级别,除非新版本不支持以前的兼容性级别。 在这种情况下,升级后的数据库兼容性级别将设置为支持的最低兼容性级别。

例如,如果附加兼容性级别为 90 的数据库,然后将其附加到 SQL Server 2019 (15.x) 的实例,在升级后,兼容性级别设置为 100,这是 SQL Server 2019 (15.x) 中支持的最低兼容性级别。 有关详细信息,请参阅 ALTER DATABASE 兼容性级别 (Transact-SQL)。

复制或移动后的注意事项

请考虑在“复制”或“移动”之后是否要执行以下步骤:

后续步骤

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!