对于你添加的文件,还原的时候会自动创建的
参考下面的代码, 第一次完全备份不包含文件db1.ndf, 第二次日志备份包含
还原的时候, 在完全备份还原的基础上, 还原日志是成功的(日志传送也是用备份+还原,所以道理是一样的)-- 测试数据库
CREATE DATABASE db
ON(
NAME = db,
FILENAME = 'c:\db.mdf'
)
LOG ON(
NAME = db_log,
FILENAME = 'c:\db.ldf'
)
GO-- 备份
BACKUP DATABASE db
TO DISK = 'c:\db.bak'
GO-- 添加数据文件
ALTER DATABASE db
ADD FILE(
NAME = db1,
FILENAME = 'c:\db1.ndf')
GO-- 日志备份
BACKUP LOG db
TO DISK = 'c:\db.bak'
GO-- 还原测试
-- A. 删除数据库
DROP DATABASE db
GO-- B. 还原
RESTORE DATABASE db
FROM DISK = 'c:\db.bak'
WITH NORECOVERY,
FILE = 1RESTORE DATABASE db
FROM DISK = 'c:\db.bak'
WITH RECOVERY,
FILE = 2
GO-- 查看数据文件
SELECT * FROM db.dbo.sysfiles
GO-- 删除测试库
DROP DATABASE db
参考下面的代码, 第一次完全备份不包含文件db1.ndf, 第二次日志备份包含
还原的时候, 在完全备份还原的基础上, 还原日志是成功的(日志传送也是用备份+还原,所以道理是一样的)-- 测试数据库
CREATE DATABASE db
ON(
NAME = db,
FILENAME = 'c:\db.mdf'
)
LOG ON(
NAME = db_log,
FILENAME = 'c:\db.ldf'
)
GO-- 备份
BACKUP DATABASE db
TO DISK = 'c:\db.bak'
GO-- 添加数据文件
ALTER DATABASE db
ADD FILE(
NAME = db1,
FILENAME = 'c:\db1.ndf')
GO-- 日志备份
BACKUP LOG db
TO DISK = 'c:\db.bak'
GO-- 还原测试
-- A. 删除数据库
DROP DATABASE db
GO-- B. 还原
RESTORE DATABASE db
FROM DISK = 'c:\db.bak'
WITH NORECOVERY,
FILE = 1RESTORE DATABASE db
FROM DISK = 'c:\db.bak'
WITH RECOVERY,
FILE = 2
GO-- 查看数据文件
SELECT * FROM db.dbo.sysfiles
GO-- 删除测试库
DROP DATABASE db
消息 3156,级别 16,状态 3,第 1 行
文件 'ssBBS_Data48' 无法还原为 'F:\Microsoft SQL Server\MSSQL\ssBBS48.NDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
消息 3119,级别 16,状态 1,第 1 行
在计划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
消息 3013,级别 16,状态 1,第 1 行
RESTORE LOG 正在异常终止。
LOG SHIPPING环境,备用库有种模式是: 恢复/只读,就是说日志恢复完后,数据库转为只读,请问这步是哪个存储过程来实现的呢?如果我想手动的来控制,比如我现在需要恢复,我就让数据库处于恢复模式,现在不想要它恢复,手动改为只读模式.
这些步骤是那些存储过程来完成的呢?
STANDBY = standby_file_name
指定一个允许撤消恢复效果的备用文件。STANDBY 选项可以用于脱机还原(包括部分还原),但不能用于联机还原。尝试为联机还原操作指定 STANDBY 选项将会导致还原操作失败。如果必须升级数据库,也不允许使用 STANDBY 选项。
消息 5172,级别 16,状态 15,第 1 行
文件 'F:\Microsoft SQL Server\MSSQL\ssBBS40.NDF' 的文件头不是有效的数据库文件头。PageAudit 属性不正确。
消息 3013,级别 16,状态 1,第 1 行
RESTORE LOG 正在异常终止。
ssBBS40.NDF这个文件正好是我添加的第一个文件
有个表,字段VARCHAR 我想向表插如数据,
T_SQL是:'exec sp_change_users_login 'update_one','a_r', 'a_r'insert into Script (IP1,IP2,T_SQL)
values ('0','192.168.0.14','exec sp_change_users_login 'update_one','a_r', 'a_r'')
执行时提示:消息 102,级别 15,状态 1,第 2 行
'update_one' 附近有语法错误。
我知道应该是T——SQL字段里面‘’造成的错误,如何修改下呀!
values ('0','192.168.0.14','exec sp_change_users_login ''update_one'',''a_r'', ''a_r''')