看了下你的描述, 可能是你在恢复的时候没有在本地选择MDF和LDF的文件位置。如果你把服务器的MDF和LDF拷贝出来,需要把服务器上的数据库停用才能行。建议不要这么做。
我详细说下怎么 *** 作。
1 在服务器上找到特定数据库名--右键所有任务--备份数据库--d出备份窗口,选择备份目标地址路径。(文件名以后缀名 bak )
2 把备份的数据库文件(bak) 复制到本地电脑
3在本地数据中选中数据库(不是数据库名)--右键所有任务--恢复数据库--d出恢复窗口,在恢复数据库里输入你想恢复成的数据库名(可以随便取,也可以用原来数据库名),选择从设备恢复,找到bak文件。
4此时不要点击OK。需要在回到恢复数据库窗口--选项--选择本地的物理逻辑地址,就是放MDF和LDF的地方。(你可能没有修改这里,用的还是服务器上的路径, 所以本地找不到报错。)
哪个数据库?Mysql还是Mssql?MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程)复制的概念复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。SQL复制的基本元素包括出版服务器、订阅服务器、分发服务器、出版物、文章SQL复制的工作原理SQLSERVER主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器SQLSERVER复制技术类型SQLSERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。
第一先来配置出版服务器(1)选中指定[服务器]节点(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令(3)系统d出一个对话框点[下一步]然后看着提示一直 *** 作到完成。(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库
第二创建出版物(1)选中指定的服务器(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会d出一个对话框(3)选择要创建出版物的数据库,然后单击[创建发布](4)在[创建发布向导]的提示对话框中单击[下一步]系统就会d出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行""的数据库服务器(6)单击[下一步]系统就d出一个定义文章的对话框也就是选择要出版的表(7)然后[下一步]直到 *** 作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
第三设计订阅(1)选中指定的订阅服务器(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅](3)按照单击[下一步] *** 作直到系统会提示检查SQLSERVER代理服务的运行状态,执行复制 *** 作的前提条件是SQLSERVER代理服务必须已经启动。(4)单击[完成]。完成订阅 *** 作。完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开
采纳哦
数据库表间数据复制在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。
1。表结构相同的表,且在同一数据库(如,table1,table2)
Sql:insertintotable1selectfromtable2(完全复制)
insertintotable1selectdistinctfromtable2(不复制重复纪录)
insertintotable1selecttop5fromtable2(前五条纪录)
2。不在同一数据库中(如,db1table1,db2table2)
sql:insertintodb1table1selectfromdb2table2(完全复制)
insertintodb1table1selectdistinctfromdb2table2(不复制重复纪录)
insertintotdb1able1selecttop5fromdb2table2(前五条纪录)
3表结构不同的表或复制部分纪录(如,dn_user,dn_user2)
a建一个新表[DN_UserTemp](在老表dn_user上增加一列)
sql2008特殊复制最多支持246列的表。。sql2008特殊复制数据库复制 *** 作方法如下。
1、在MicrosoftsqlserverManagementstudio中,将源数据库进行备份,生成一个备份文件dbnamebak,记住备份文件存放的地址。
2、在MicrosoftsqlserverManagementstudio中,新建一个数据库dbname2(与源数据库名称不一样),新建数据库的时候记住或者重新指定数据库文件存放的路径,创建后在E:\data下生成2个文件。
3、选中新建的dbname2数据库,右击选择任务、还原,在还原面板上按如下 *** 作。
4、点击确认即可。
在SQL
Server
Management
Studio中,使用“SQL
Server导入和导出向导”,可以很容易地复制表。
如果一定要使用语句,假设你的架构是dbo,在DBERP数据库中运行:
select
into
U_物料编码
from
DBTESTdboU_物料编码
如果有索引,创建索引。如果有约束,创建约束。
如果两个数据库不在同一个实例,先创建连接服务器。
--首先,做一个与客户端的映射
exec masterxp_cmdshell
'net use z: \\1921681145\c$ "密码" /user:1921681145\administrator'
/--说明:
z: 是映射网络路径对应本机的盘符,与下面的备份对应
\\1921681145\c$ 是要映射的网络路径
1921681145\administrator
1921681145是远程的计算机名,administrator是登陆的用户名 密码
上面指定的administrator用户的密码 -/
--其次,进行数据库备份
backup database TEST to disk='z:\Testbak'
--最后备份完成后删除映射
exec masterxp_cmdshell 'net use z: /delete'
--来自网络
--以下代码放在作业里做调度,自动备份、自动删除4天前备份
--创建映射
exec masterxp_cmdshell 'net use w: \DatabaseBackup$ "password"/user:Roy',NO_OUTPUT
go
-----2000用游标:
declare @s nvarchar(200),@del nvarchar(200)
select @s='',@del=''
declare datebak cursor for
select
[bak]='backup database '+quotename(Name)+' to disk =''w:'+Name+'_'+convert(varchar(8),getdate(),112)+'bak'' with init',
[del]='exec masterxp_cmdshell '' del w:'+Name+'_'+convert(varchar(8),getdate()-4,112)+'bak'', no_output'
from mastersysdatabases where dbid>4 --不备份系统数据库
open datebak
fetch next from datebak into @s,@del
while @@fetch_status=0
begin
exec (@del)
exec(@s)
fetch next from datebak into @s,@del
end
close datebak
deallocate datebak
go
--删除映射
exec masterxp_cmdshell 'net use w: /delete'
go
以上就是关于SQL 2000如何把服务器上的数据库复制到本地的数据库全部的内容,包括:SQL 2000如何把服务器上的数据库复制到本地的数据库、Sql数据库同步怎么做(数据库数据同步)、SQL中复制一个表到另外一个数据库中(sql复制一个表数据到另一个表)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)