.bak,.dat文件的处理注意一下恢复时的源文件路径和恢复到的路径是否正确 RESTORE FILELISTONLY 命令可以帮助查看源文件路径 如 RESTORE FILELISTONLY from disk='f:\tdmis.bak' 结果为 tdmis_Data e:\database\tdmis.mdf D PRIMARY 497221632 35184372080640 tdmis_Log e:\database\tdmis_log.ldf L NULL 1048576 35184372080640然后用 restore database tdmis from disk='f:\tdmis.bak' with NORECOVERY, move 'tdmis_Data' to 'e:\database\tdmis.mdf', move 'tdmis_Log' to 'e:\database\tdmis_log.ldf' 就可以了
An error occurred while trying to access the database information. 我这样用了以后,数据库没了 Enterprise Manager里面显示(loading) No items
把backup文件copy到另一个机器上,然后在另一机器上用企业管理器里的还原数据库
backup log source with no_log dbcc shrinkdatabase(source)BACKUP DATABASE source TO DISK = 'c:\test\source.bak'Use master GO CREATE DATABASE testdb ON ( NAME = testdb_dat, FILENAME = 'c:\test\testdbdat.mdf') LOG ON ( NAME = 'testdb_log', FILENAME = 'c:\test\testdblog.ldf') GORESTORE FILELISTONLY FROM DISK = 'c:\test\source.bak' RESTORE DATABASE TestDB FROM DISK = 'c:\test\source.bak' WITH MOVE 'source_data' TO 'c:\test\testdbdat.mdf', MOVE 'source_log' TO 'c:\test\testdblog.ldf', replace
请问一下 restore Filelistonly这个参数是什么意思? with move又是什么意思呢?
恢复时的源文件路径和恢复到的路径是否正确 RESTORE FILELISTONLY 命令可以帮助查看源文件路径 如 RESTORE FILELISTONLY from disk='f:\tdmis.bak' 结果为 tdmis_Data e:\database\tdmis.mdf D PRIMARY 497221632 35184372080640 tdmis_Log e:\database\tdmis_log.ldf L NULL 1048576 35184372080640然后用restore databae tdmis from disk='f:\tdmis.bak' with NORECOVERY, move 'tdmis_Data' to 'd:\database\tdmis.mdf', move 'tdmis_Log to 'd:\database\tdmis_log.ldf' 就可以了
这么说吧,我如何把一个库A备份以后,恢复到B中?然后再连续几次追加到B中? 也就是实现 B = 2A甚至3A.....备份我用了:backup database a to disk = c:\1.data 恢复我用了:restore database b from disk = c:\data with move a_data to d:\a.mdf, mov a_log to d:\a.ldf 在下一次的追加,我怎么实现? 用restore database b from disk = c:\data with norecovery ,move a_data to d:\a.mdf, mov a_log to d:\a.ldf 可是不好使,B也没有了,企业管理器中变成了b(正在装载)...也就是不好使,打不开 请问怎么办?怎么实现追加?
.bak,.dat文件的处理注意一下恢复时的源文件路径和恢复到的路径是否正确
RESTORE FILELISTONLY 命令可以帮助查看源文件路径
如
RESTORE FILELISTONLY
from disk='f:\tdmis.bak' 结果为
tdmis_Data e:\database\tdmis.mdf D PRIMARY 497221632 35184372080640
tdmis_Log e:\database\tdmis_log.ldf L NULL 1048576 35184372080640然后用
restore database tdmis
from disk='f:\tdmis.bak'
with NORECOVERY,
move 'tdmis_Data' to 'e:\database\tdmis.mdf',
move 'tdmis_Log' to 'e:\database\tdmis_log.ldf'
就可以了
我这样用了以后,数据库没了
Enterprise Manager里面显示(loading)
No items
dbcc shrinkdatabase(source)BACKUP DATABASE source
TO DISK = 'c:\test\source.bak'Use master
GO
CREATE DATABASE testdb
ON
( NAME = testdb_dat,
FILENAME = 'c:\test\testdbdat.mdf')
LOG ON
( NAME = 'testdb_log',
FILENAME = 'c:\test\testdblog.ldf')
GORESTORE FILELISTONLY
FROM DISK = 'c:\test\source.bak'
RESTORE DATABASE TestDB
FROM DISK = 'c:\test\source.bak'
WITH MOVE 'source_data' TO 'c:\test\testdbdat.mdf',
MOVE 'source_log' TO 'c:\test\testdblog.ldf', replace
restore Filelistonly这个参数是什么意思?
with move又是什么意思呢?
RESTORE FILELISTONLY 命令可以帮助查看源文件路径
如
RESTORE FILELISTONLY
from disk='f:\tdmis.bak' 结果为
tdmis_Data e:\database\tdmis.mdf D PRIMARY 497221632 35184372080640
tdmis_Log e:\database\tdmis_log.ldf L NULL 1048576 35184372080640然后用restore databae tdmis
from disk='f:\tdmis.bak'
with NORECOVERY,
move 'tdmis_Data' to 'd:\database\tdmis.mdf',
move 'tdmis_Log to 'd:\database\tdmis_log.ldf'
就可以了
也就是实现 B = 2A甚至3A.....备份我用了:backup database a to disk = c:\1.data
恢复我用了:restore database b from disk = c:\data with move a_data to d:\a.mdf, mov a_log to d:\a.ldf
在下一次的追加,我怎么实现?
用restore database b from disk = c:\data with norecovery ,move a_data to d:\a.mdf, mov a_log to d:\a.ldf
可是不好使,B也没有了,企业管理器中变成了b(正在装载)...也就是不好使,打不开
请问怎么办?怎么实现追加?
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str 2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x)
insert 表名 values(2,0x)
go3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2go4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','O' --注意条件是 编号=2
go