如果是备份文件,如下操作:
如果用ENTERPRISE MANAGER恢复,具体操作步骤如下:
1、打开ENTERPRISE MANAGER,展开到DATABASES。
2、在DATABASES上点右键,“所有任务”中选“RESTORY DATABASE”
3、在GENERAL标签页中选择“FROM DEVICE”,再点击“SELECT DEVICE”
4、在出现的窗口中点击“ADD”,再在窗口中选择“FILE NAME”,点击...按钮
5、选中您所创建的备份文件,即可成功。
如果用SQL语句,我只会通过*.mdf建立数据库,如下:
首先创建一个与原来数据库同名的数据库、LOGIN,然后将DATA文件夹中的*.mdf、*.ldf删除,将你以前备份的*.mdf考到DATA文件夹中,然后在用SQL语句:
exec sp_detach_db @db_name='dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
exec sp_attach_single_file_db 'dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
----------------------------------
右键数据库-->所有任务-->还原数据库-->写入名字-->选项-->改为现在的data目录的路径-->OK
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdf
--------------------------
backup database systo disk='\\wind\c\a.bak' with init
----------------------
还原 RESTORE DATABASE TestDB
FROM DISK = 'c:\2002.dat'
--------------------
远程
SQL异地备份失败,归根结底是权限问题!!!
如:
SQLServer备到FileServer上
那你的SQLServer的启动用户必须在FileServer上有足够的权限!
--------------------^^^---------------------------------
1、SQLServer上新建一SQLUser用户权限大一点。
2、FileServer上建同一用户对某一文件夹有足够权限。
3、两机的SQLUser密码相同(方便一点)
4、将SQLServer改为SQLUser启动
(管理工具-->服务-->mssql项-->属性-->指定用户及密码)
5、\\192.168.*.*\文件夹\ShareBak.Bak就可以了
如果用ENTERPRISE MANAGER恢复,具体操作步骤如下:
1、打开ENTERPRISE MANAGER,展开到DATABASES。
2、在DATABASES上点右键,“所有任务”中选“RESTORY DATABASE”
3、在GENERAL标签页中选择“FROM DEVICE”,再点击“SELECT DEVICE”
4、在出现的窗口中点击“ADD”,再在窗口中选择“FILE NAME”,点击...按钮
5、选中您所创建的备份文件,即可成功。
如果用SQL语句,我只会通过*.mdf建立数据库,如下:
首先创建一个与原来数据库同名的数据库、LOGIN,然后将DATA文件夹中的*.mdf、*.ldf删除,将你以前备份的*.mdf考到DATA文件夹中,然后在用SQL语句:
exec sp_detach_db @db_name='dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
exec sp_attach_single_file_db 'dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
----------------------------------
右键数据库-->所有任务-->还原数据库-->写入名字-->选项-->改为现在的data目录的路径-->OK
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdf
--------------------------
backup database systo disk='\\wind\c\a.bak' with init
----------------------
还原 RESTORE DATABASE TestDB
FROM DISK = 'c:\2002.dat'
--------------------
远程
SQL异地备份失败,归根结底是权限问题!!!
如:
SQLServer备到FileServer上
那你的SQLServer的启动用户必须在FileServer上有足够的权限!
--------------------^^^---------------------------------
1、SQLServer上新建一SQLUser用户权限大一点。
2、FileServer上建同一用户对某一文件夹有足够权限。
3、两机的SQLUser密码相同(方便一点)
4、将SQLServer改为SQLUser启动
(管理工具-->服务-->mssql项-->属性-->指定用户及密码)
5、\\192.168.*.*\文件夹\ShareBak.Bak就可以了
停止sql服务或脱机-->拷贝你的data目录下的数据库文件
粘贴你的数据库文件到目标机上
右键数据库-->所有任务-->附加数据库
或备份、恢复
先备份
恢复如下:
右键数据库-->所有任务-->还原数据库-->写入名字-->选项-->改为现在的data目录的路径-->OK
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdf
--------------------------
停止SQL SERVER,把MDF和LDF文件COPY 下来,放到她的机器上,
再使用 SP_ATTACH_DB 就可以了。具体用法参见联机丛书
我打算按照pengdali(大力)的
“首先创建一个与原来数据库同名的数据库、LOGIN,然后将DATA文件夹中的*.mdf、*.ldf删除,将你以前备份的*.mdf考到DATA文件夹中,然后在用SQL语句:
exec sp_detach_db @db_name='dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
exec sp_attach_single_file_db 'dbname',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
”
来做
我新建立了一个shoptest数据库
然后把data下shop的Shop_Log.LDF与Shop_Data.MDF复制,重命名来代替了shoptest的.LDF与.MDF文件,连接sql server后,在shoptest目录下就看到了所有的东西。
我想问的是
这样是不是就好了呢?
还要
sp_detach_db和sp_attach_db做什么用呢?
这样使用的话有什么不良之处吗?
sp_attach_db附加数据库学方法,多试两种,都行的!
这里推荐一个软件toad,链接你的数据库,选择你的表,用export功能可以很方便的选择倒出数据还是倒出表,她的倒出很灵活,是到处到sql教本相当于自动创建一个教本.文件内容为creat... insert ..相关,呵呵.非常方便,推荐使用
在她的机器上建一个数据库为shop
然后把Shop_Log.LDF与Shop_Data.MDF copy到她的data目录下代替她生成的这两个文件,行吗?
就不用sp_detach_db和sp_attach_db了
我在自己机器上试了一下,可以读出所有的数据
不知道这样有什么问题没有
最后一个问题:
我有点不明白的是
既然直接覆盖就可以
那么用sp_attach_db与不用有什么区别呢?
那么为什么还需要那么麻烦的导入导出呢?
直接把两个文件压缩一下保存起来不就可以了吗
恢复时再解压缩还原回去就可以了不明白,盼解答
sp_attach_db就是附加数据库:
粘贴你的数据库文件到目标机上-->右键数据库-->所有任务-->附加数据库导入导出是因为对方是7.0或6.5你是2000怎么办呢???