如何将SQL数据库迁移到另一台数据库服务器上

如何将SQL数据库迁移到另一台数据库服务器上,第1张

1
你要看下你迁移数据库的时候是不是需要停机的?停机的话直接备份个全备,再还原就可以了。
2
如不停机需要先设置日志
增量备份
在备份一个全备

再把全备还原
还原全备之后再一个个根据时间点去还原全备之后的
日志文件

一:备份远程数据库,将备份文件拷贝到本地,然后在本地还原数据库。
二:将远程数据库的数据文件跟日志文件拷贝到本地(拷贝之前需要先停止远程数据库服务,否则无法进行拷贝),然后在本地进行附加数据库 *** 作。
三:(需要知道远程数据库的登录名跟密码)打开企业管理器,在“sql server”组上右键选择“新建sql server注册”,点下一步,在“可用的服务器”中输入远程服务器的IP,然后点击“添加”,继续下一步,一步一步按照指导完成。注册完成后就可以像 *** 作本地数据库一样对远程数据库进行 *** 作了backup database sys to disk='\\你的ip\共享目录\abak' with init有一点是很关键的,就是启动你远程sql server数据库服务的帐号需要有在本地驱动器共享文件夹写的权限。要不,也是无法进行备份的。

定期备份SQL数据库是必须的。 我们已经覆盖的方式就可以轻松备份您的所有SQL Server数据库到本地硬盘中,但这并不能防止驱动器和/或系统故障。 作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。

在本地备份,然后复制到网络共享

完成此任务的首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。您可以通过创建如下所示的批处理脚本来完成此 *** 作:

SET LocalFolder = C:Program Files Microsoft SQL ServerMSSQL1MSSQLBackup 
SqlCmd -E -Q“备份数据库MyDB到磁盘=%LocalFolder%MyDBbak” 
XCopy“%LocalFolder%MyDBbak”“\ 1921681655BackupDatabases”/ Z / V 
DEL“%LocalFolder%MyDBbak”

此脚本执行以下 *** 作(逐行):

将变量设置为本地SQL备份目录。

创建MyDB的SQL备份(使用Windows身份验证)到本地SQL备份目录。

将本地备份文件复制到网络共享。

删除本地备份文件。

同样,这是首选方法,因为它的工作原理和备份失败的可能性是最小的,因为备份是在本地磁盘上创建。 但是,如果没有足够的磁盘空间来存储备份文件的本地副本,则此 *** 作将失败。 在这种情况下,您需要添加额外的磁盘空间或直接备份到网络共享。

直接备份到网络共享

通常,当您尝试使用以下命令直接创建备份到网络共享时:

SqlCmd -E -Q“备份数据库MyDB到磁盘=\ 1921681655BackupDatabasesMyDBbak”

你很可能会得到一个错误的行:

消息3201,级别16,状态1,服务器JF,行1 
无法打开备份设备\ 1921681655BackupDatabasesMyDBbak。  *** 作系统错误5(访问被拒绝。)。 
消息3013,级别16,状态1,服务器JF,第1行 
BACKUP DATABASE异常终止。

尽管使用Windows身份验证(-E开关)和Windows帐户作为通过Windows资源管理器访问和复制文件到共享的能力运行SQL备份命令,仍会出现此错误。

此 *** 作失败的原因是SQL命令在SQL Server服务运行的帐户的边界内执行。 当您在计算机上查看服务列表时,很可能您将看到运行为(登录为)列的SQL Server服务本地系统或网络服务,它们是没有网络访问权限的系统帐户。

在我们的系统上,网络共享命令的备份失败,因为我们有SQL Server服务作为本地系统运行,再也无法获得任何网络资源。

为了允许SQL直接备份到网络共享,我们必须将SQL Server服务作为可访问网络资源的本地帐户运行。

编辑SQL Server服务的属性,并在“登录”选项卡上将服务配置为作为具有网络访问权限的备用帐户运行。

单击“确定”后,您将收到一条提示,指示在重新启动服务之后,设置才会生效。

重新启动服务。

服务列表现在应显示SQL Server服务正在作为您配置的帐户运行。

现在当您运行命令直接备份到网络共享:

SqlCmd -E -Q“备份数据库MyDB到磁盘=\ 1921681655BackupDatabasesMyDBbak”

您应该会看到一个成功消息:

处理数据库MyDB的152页,文件1上的文件MyDB。 
为数据库MyDB处理2页,文件1上的文件MyDB_log。 
BACKUP DATABASE在0503秒(2493 MB /秒)中成功处理了154页。

使用备份文件现在在网络共享目录:

网络共享注意事项请务必注意,备份命令希望能够直接连接到网络共享,而不会提示您输入凭据。 您配置要运行的SQL Server服务的帐户必须与网络共享具有可信连接,其中相应的凭据允许访问,否则可能会发生以下错误:

消息3201,级别16,状态1,服务器JF,行1 
无法打开备份设备\ 1921681655BackupDatabasesMyDBbak。  *** 作系统错误1326(登录失败:未知用户名或密码错误。)。 
消息3013,级别16,状态1,服务器JF,第1行 
BACKUP DATABASE异常终止。

此错误表示网络共享不接受帐户的用户名和密码,并且命令失败。


另一个要记住的问题是备份直接执行到网络资源,因此网络连接中的任何打嗝可能会导致您的备份失败。 因此,您只应该备份到稳定的网络位置(即可能不是)。

安全隐患

如前所述,使用在本地备份然后复制到网络共享的方法是首选,因为它允许您将SQL服务作为仅具有本地系统访问权限的帐户运行。

通过将服务作为备用帐户运行,您打开了潜在的安全问题的大门。 例如,恶意SQL脚本可以在备用帐户下执行并攻击网络资源。 此外,对相应帐户(密码更改/到期或帐户的删除/禁用)的任何更改将导致SQL Server服务无法启动。

如果您使用备用帐户运行SQL Server实例,请务必记住这些要点。 如果采取适当的预防措施,则这些不显示阻止程序,则应考虑添加额外的硬盘驱动器空间,然后实施本地备份和复制,以便可以使用本地帐户运行SQL服务。

我如何才能创建一个文本文件,这样我可以用那个文本文件来大块拷贝或者将数据从一个地方传输到另一个地方? 答:有可能重新存储备份到另一个服务器上;然而,两个服务器的代码页和分类排序都是一样的。第一个用来重新存储的数据库是主要的(它包括了数据库和用户登陆信息)。要重新存储主数据库,如下所示: 1、 使用服务管理器停止SQL Server服务
2、 打开命令窗口
3、 在一个单一的用户模式下在命令提示符后输入sqlserverexe -m 命令开启SQL Server
4、 开启第二个使用osql连接到sqlserver命令窗口
5、 RESTORE主数据库
6、使用SHUTDOWN命令关闭SQL Server 使用服务管理器重新启动SQL Server服务 剩余的数据库可以通过使用企业管理器来重新存储;工作是在msdb数据库中,其中维护计划和事物日志都作为用户数据库备份的一部分。确认使用sp_change_users_login存储过程来讲数据库用户映射到合适的SQL Server 账户。 有两种方式可以为创建块拷贝的文本文件。 使用DTS创建一个包,从表、视图,或者SELECT 语句将数据提取到以逗号分隔的文本文件中。
使用查询分析器修改输出,以便于使用逗号分割的列,运行查询,并保存输出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12754733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存