实现SQL_SERVER的双机实时备份
转自:http://topic.csdn.net/t/20040430/11/3024328.html
如何建立、维护以及联机备用服务器 (Transact-SQL)
备用服务器的建立通常包括在主服务器上创建数据库备份和定期事务日志备份,然后按照顺序将这些备份应用到备用服务器。在还原操作之间,备用服务器保持只读状态。当需要使用备用服务器时,任何未完成的事务日志备份,包括来自主服务器的活动事务日志备份都将应用到备用服务器中,同时还要恢复数据库。
在主服务器上创建备份
执行 BACKUP DATABASE 语句以创建数据库备份。
执行 BACKUP LOG 语句以创建事务日志备份。
为每个希望随着时间的变化而创建的事务日志重复步骤 2。
建立和维护备用服务器
执行使用 STANDBY 子句的 RESTORE DATABASE 语句以便还原步骤 1 中在主服务器上创建的数据库备份。在回滚未提交事务影响的数据页之前,指定包含这些数据页内容的撤消文件名称。
执行使用 STANDBY 子句的 RESTORE LOG 语句以便应用步骤 2 中在主服务器上创建的每个事务日志。
为每个在主服务器上创建的事务日志重复步骤 2。
使备用服务器联机(主服务器发生故障)
执行使用 NO_TRUNCATE 子句的 BACKUP LOG 语句以备份当前活动的事务日志。当备用服务器联机时,这是将应用到备用服务器的最新事务日志备份。有关更多信息,请参阅如何创建当前活动事务日志的备份。
执行使用 STANDBY 子句的 RESTORE LOG 语句以便应用所有事务日志备份,包括步骤 1 中创建的仍未应用到备用服务器的活动事务日志备份。
执行 RESTORE DATABASE WITH RECOVERY 语句以恢复数据库并使备用服务器联机。
示例
下例在备用服务器上安装 MyNwind 数据库。在还原操作之间,可以只读模式使用数据库。
-- Restore the initial database backup on the standby server.
USE master
GO
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the next transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log2
WITH STANDBY = 'c:\undo.ldf'
GO
-- Repeat for each transaction log backup created on the
-- primary server.
--
-- Time elapses.. .. ..
--
-- The primary server has failed. Back up the
-- active transaction log on the primary server.
BACKUP LOG MyNwind
TO MyNwind_log3
WITH NO_TRUNCATE
GO
-- Apply the final (active) transaction log backup
-- to the standby server. All preceding transaction
-- log backups must have been already applied.
RESTORE LOG MyNwind
FROM MyNwind_log3
WITH STANDBY = 'c:\undo.ldf'
GO
-- Recover the database on the standby server,
-- making it available for normal operations.
RESTORE DATABASE MyNwind
WITH RECOVERY
GO
请参
备用服务器的建立通常包括在主服务器上创建数据库备份和定期事务日志备份,然后按照顺序将这些备份应用到备用服务器。在还原操作之间,备用服务器保持只读状态。当需要使用备用服务器时,任何未完成的事务日志备份,包括来自主服务器的活动事务日志备份都将应用到备用服务器中,同时还要恢复数据库。
在主服务器上创建备份
执行 BACKUP DATABASE 语句以创建数据库备份。
执行 BACKUP LOG 语句以创建事务日志备份。
为每个希望随着时间的变化而创建的事务日志重复步骤 2。
建立和维护备用服务器
执行使用 STANDBY 子句的 RESTORE DATABASE 语句以便还原步骤 1 中在主服务器上创建的数据库备份。在回滚未提交事务影响的数据页之前,指定包含这些数据页内容的撤消文件名称。
执行使用 STANDBY 子句的 RESTORE LOG 语句以便应用步骤 2 中在主服务器上创建的每个事务日志。
为每个在主服务器上创建的事务日志重复步骤 2。
使备用服务器联机(主服务器发生故障)
执行使用 NO_TRUNCATE 子句的 BACKUP LOG 语句以备份当前活动的事务日志。当备用服务器联机时,这是将应用到备用服务器的最新事务日志备份。有关更多信息,请参阅如何创建当前活动事务日志的备份。
执行使用 STANDBY 子句的 RESTORE LOG 语句以便应用所有事务日志备份,包括步骤 1 中创建的仍未应用到备用服务器的活动事务日志备份。
执行 RESTORE DATABASE WITH RECOVERY 语句以恢复数据库并使备用服务器联机。
示例
下例在备用服务器上安装 MyNwind 数据库。在还原操作之间,可以只读模式使用数据库。
-- Restore the initial database backup on the standby server.
USE master
GO
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the next transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log2
WITH STANDBY = 'c:\undo.ldf'
GO
-- Repeat for each transaction log backup created on the
-- primary server.
--
-- Time elapses.. .. ..
--
-- The primary server has failed. Back up the
-- active transaction log on the primary server.
BACKUP LOG MyNwind
TO MyNwind_log3
WITH NO_TRUNCATE
GO
-- Apply the final (active) transaction log backup
-- to the standby server. All preceding transaction
-- log backups must have been already applied.
RESTORE LOG MyNwind
FROM MyNwind_log3
WITH STANDBY = 'c:\undo.ldf'
GO
-- Recover the database on the standby server,
-- making it available for normal operations.
RESTORE DATABASE MyNwind
WITH RECOVERY
GO
请参
或者用: 日志传送
在 Microsoft® SQL Server™ 2000 企业版中,可以使用日志传送不间断地将事务日志从一个数据库提供给另一个。不间断地从源数据库中备份事务日志,然后将它们复制并还原到目的数据库,使目的数据库与源数据库保持同步。这使您得以有一台备用服务器,为将查询处理从主计算机(源服务器)卸载到只读目的服务器上提供了一条途径。日志传送使用的所有服务器上都必须安装 SQL Server 2000 企业版。
使用数据库维护计划向导配置日志传送
若要很容易地配置日志传送,请使用数据库维护计划向导。利用此向导您将可以:
定义日志生成频率、备份与还原操作之间的时间以及什么时候目的服务器与源服务器异步。
注册任何新的服务器。
在所有目的服务器上创建源数据库。在通过数据库维护计划向导添加目的数据库时,可以选择在目的服务器上创建数据库或使用现有数据库。在为日志传送配置数据库之前,任何现有数据库必须为备用模式。
指定哪台目的服务器可以采用源服务器角色。
设置还原延迟。还原延迟定义还原事务日志前必须等待的时间。如果源服务器出现故障,该延迟将为损坏的日志被还原到目的服务器上之前提供额外时间。
创建调度来设置备份调度。
在使用数据库维护计划向导之前,需要考虑下列事项:
配置日志传送的用户必须是 sysadmin 服务器角色成员,以便有权修改要进行日志传送的数据库。
一次只能在一个数据库上配置日志传送。如果选择的数据库不止一个,向导上的日志传送选项将禁用。
用于启动 MSSQLServer 和 SQLServerAgent 服务的登录必须能够访问日志传送计划作业、源服务器和目的服务器。
当使用数据库维护计划向导配置日志传送时,只能将日志传送到磁盘。备份到磁带选项不可用。
手工配置日志传送
如果在运行 SQL Server 7.0 Service Pack 2 (SP2) 的计算机上启用挂起升级选项,则 SQL Server 2000 支持从 SP2 事务日志手工传送日志。
若要启用此选项,请执行下列代码:
EXEC sp_dboption 'database name', 'pending upgrade', 'true'
但是,当在传送日志后还原数据库时,只能使用 NORECOVERY 选项恢复数据库。
说明 在运行 SP2 的计算机和运行 SQL Server 2000 实例的计算机之间手工配置日志传送时,不能使用 SQL Server 复制。
有关更多信息,请参见 SP2 文档。
配置日志传送
企业管理器
如何配置日志传送(企业管理器)
新增信息 - SQL Server 2000 SP3。
使用数据库维护计划向导配置日志传送
说明 在配置日志传送之前,必须在主数据库上创建一个共享以使事务日志可用。这是从事务日志转储目录创建的共享。例如,如果将日志转储到目录 e:\data\tlogs\,则可以从该目录创建 \\logshipping\tlogs 共享。
在"选择数据库"屏幕上,选择"如下数据库"复选框,然后选择要进行日志传送的数据库。
如果选择了多个数据库,则不会执行日志传送,日志传送选项也不可用。不允许选择已配置了日志传送的数据库。
选择"将事务日志传送到其它的 SQL Server(日志传送)"复选框。
继续执行向导,指定其余的数据库维护选项,直到到达"指定日志传送目的"屏幕。
单击"添加"按钮添加目的数据库。
要使该选项可用,必须已经在向导的前面步骤中选择了使用日志传送。
在"添加目的数据库"屏幕中,选择一个服务器名。
该服务器必须已经注册,而且正在运行 Microsoft® SQL Server™ 2000 企业版,这样才能显示在下拉列表中。如果要使该目的成为可用的源数据库,必须选择“允许数据库采用主角色”复选框。如果该复选框未被选中,则该目的数据库将来就无法采用源数据库角色。如果已选定“允许数据库采用主角色”复选框,还必须在日志将要备份到的目的数据库中指定"事务日志备份目录"。
若要从默认位置更改事务日志目的数据库,请在"目录"框中输入一个位置。
如果源数据库不在目的数据库上,则选择"创建新数据库"复选框。
"数据库名称"框将默认为源数据库名。如果想要在目的服务器上用另一个数据库名,则指定一个新名称。如果已经选择了允许该目的数据库承担源角色,就无法从默认值改变该数据库的名称。
如果已经选择了"创建新数据库"复选框,则还必须在"用于数据"和"用于日志"框中指定目的数据库上数据和日志的文件目录。
如果源数据库已经存在于目的数据库上,则选择"使用现有数据库"复选框。如果目的服务器上的数据库名不同,则在"数据库名称"框中输入该名。该数据库必须是使用 WITH STANDBY 选项还原过的,以便正确接受日志。
在"初始化目的数据库"屏幕上,执行下列操作之一:
单击"立即提取完全数据库备份"。
–或-
单击"使用最新备份文件"以初始化目的数据库。
在"日志传送调度"屏幕上,查看默认的日志传送调度。如果要改变调度,请单击"更改"。
在"复制/装载的频率"框中,设置希望目的服务器从源服务器备份和还原事务日志的频率(以分钟计)。
在"装载延迟"框中,设置希望目的数据库从源服务器还原事务日志之前要等待的延迟(以分钟计)。
该框的默认值为 0 分钟,表示目的数据库应立即还原所有事务日志备份。
在"文件保持期"框中指定事务日志在删除之前应该存留的时间长度。
从"日志传送阈值"对话框中,设置"备份警报阈值"。
这是距离源服务器上一次事务日志备份时间的最长期限。一旦时间超过此指定阈值,监视服务器将生成警报。
在"不同步警报阈值"框中,指定源服务器上最近一次事务日志备份与目的服务器最近一次事务日志还原之间的时间。
一旦时间超过此指定阈值,监视服务器将生成警报。
在"指定日志传送监视器信息"屏幕中,键入将监视日志传送的服务器名称。
单击"使用 Windows 身份验证"或"使用 SQL Server 身份验证"连接到监视服务器。log_shipping_monitor_probe 登录名是固定的,必须使用它连接到监视服务器。如果这是一个新帐户,则选择一个新密码。如果该帐户已经存在于监视服务器上,则必须指定现有的密码。
安全说明 如果可能,请使用 Windows 身份验证。
说明 使用数据库维护向导设置日志传送,只可以向磁盘传送日志,而不能使用"备份到磁带"选项。
在 Microsoft® SQL Server™ 2000 企业版中,可以使用日志传送不间断地将事务日志从一个数据库提供给另一个。不间断地从源数据库中备份事务日志,然后将它们复制并还原到目的数据库,使目的数据库与源数据库保持同步。这使您得以有一台备用服务器,为将查询处理从主计算机(源服务器)卸载到只读目的服务器上提供了一条途径。日志传送使用的所有服务器上都必须安装 SQL Server 2000 企业版。
使用数据库维护计划向导配置日志传送
若要很容易地配置日志传送,请使用数据库维护计划向导。利用此向导您将可以:
定义日志生成频率、备份与还原操作之间的时间以及什么时候目的服务器与源服务器异步。
注册任何新的服务器。
在所有目的服务器上创建源数据库。在通过数据库维护计划向导添加目的数据库时,可以选择在目的服务器上创建数据库或使用现有数据库。在为日志传送配置数据库之前,任何现有数据库必须为备用模式。
指定哪台目的服务器可以采用源服务器角色。
设置还原延迟。还原延迟定义还原事务日志前必须等待的时间。如果源服务器出现故障,该延迟将为损坏的日志被还原到目的服务器上之前提供额外时间。
创建调度来设置备份调度。
在使用数据库维护计划向导之前,需要考虑下列事项:
配置日志传送的用户必须是 sysadmin 服务器角色成员,以便有权修改要进行日志传送的数据库。
一次只能在一个数据库上配置日志传送。如果选择的数据库不止一个,向导上的日志传送选项将禁用。
用于启动 MSSQLServer 和 SQLServerAgent 服务的登录必须能够访问日志传送计划作业、源服务器和目的服务器。
当使用数据库维护计划向导配置日志传送时,只能将日志传送到磁盘。备份到磁带选项不可用。
手工配置日志传送
如果在运行 SQL Server 7.0 Service Pack 2 (SP2) 的计算机上启用挂起升级选项,则 SQL Server 2000 支持从 SP2 事务日志手工传送日志。
若要启用此选项,请执行下列代码:
EXEC sp_dboption 'database name', 'pending upgrade', 'true'
但是,当在传送日志后还原数据库时,只能使用 NORECOVERY 选项恢复数据库。
说明 在运行 SP2 的计算机和运行 SQL Server 2000 实例的计算机之间手工配置日志传送时,不能使用 SQL Server 复制。
有关更多信息,请参见 SP2 文档。
配置日志传送
企业管理器
如何配置日志传送(企业管理器)
新增信息 - SQL Server 2000 SP3。
使用数据库维护计划向导配置日志传送
说明 在配置日志传送之前,必须在主数据库上创建一个共享以使事务日志可用。这是从事务日志转储目录创建的共享。例如,如果将日志转储到目录 e:\data\tlogs\,则可以从该目录创建 \\logshipping\tlogs 共享。
在"选择数据库"屏幕上,选择"如下数据库"复选框,然后选择要进行日志传送的数据库。
如果选择了多个数据库,则不会执行日志传送,日志传送选项也不可用。不允许选择已配置了日志传送的数据库。
选择"将事务日志传送到其它的 SQL Server(日志传送)"复选框。
继续执行向导,指定其余的数据库维护选项,直到到达"指定日志传送目的"屏幕。
单击"添加"按钮添加目的数据库。
要使该选项可用,必须已经在向导的前面步骤中选择了使用日志传送。
在"添加目的数据库"屏幕中,选择一个服务器名。
该服务器必须已经注册,而且正在运行 Microsoft® SQL Server™ 2000 企业版,这样才能显示在下拉列表中。如果要使该目的成为可用的源数据库,必须选择“允许数据库采用主角色”复选框。如果该复选框未被选中,则该目的数据库将来就无法采用源数据库角色。如果已选定“允许数据库采用主角色”复选框,还必须在日志将要备份到的目的数据库中指定"事务日志备份目录"。
若要从默认位置更改事务日志目的数据库,请在"目录"框中输入一个位置。
如果源数据库不在目的数据库上,则选择"创建新数据库"复选框。
"数据库名称"框将默认为源数据库名。如果想要在目的服务器上用另一个数据库名,则指定一个新名称。如果已经选择了允许该目的数据库承担源角色,就无法从默认值改变该数据库的名称。
如果已经选择了"创建新数据库"复选框,则还必须在"用于数据"和"用于日志"框中指定目的数据库上数据和日志的文件目录。
如果源数据库已经存在于目的数据库上,则选择"使用现有数据库"复选框。如果目的服务器上的数据库名不同,则在"数据库名称"框中输入该名。该数据库必须是使用 WITH STANDBY 选项还原过的,以便正确接受日志。
在"初始化目的数据库"屏幕上,执行下列操作之一:
单击"立即提取完全数据库备份"。
–或-
单击"使用最新备份文件"以初始化目的数据库。
在"日志传送调度"屏幕上,查看默认的日志传送调度。如果要改变调度,请单击"更改"。
在"复制/装载的频率"框中,设置希望目的服务器从源服务器备份和还原事务日志的频率(以分钟计)。
在"装载延迟"框中,设置希望目的数据库从源服务器还原事务日志之前要等待的延迟(以分钟计)。
该框的默认值为 0 分钟,表示目的数据库应立即还原所有事务日志备份。
在"文件保持期"框中指定事务日志在删除之前应该存留的时间长度。
从"日志传送阈值"对话框中,设置"备份警报阈值"。
这是距离源服务器上一次事务日志备份时间的最长期限。一旦时间超过此指定阈值,监视服务器将生成警报。
在"不同步警报阈值"框中,指定源服务器上最近一次事务日志备份与目的服务器最近一次事务日志还原之间的时间。
一旦时间超过此指定阈值,监视服务器将生成警报。
在"指定日志传送监视器信息"屏幕中,键入将监视日志传送的服务器名称。
单击"使用 Windows 身份验证"或"使用 SQL Server 身份验证"连接到监视服务器。log_shipping_monitor_probe 登录名是固定的,必须使用它连接到监视服务器。如果这是一个新帐户,则选择一个新密码。如果该帐户已经存在于监视服务器上,则必须指定现有的密码。
安全说明 如果可能,请使用 Windows 身份验证。
说明 使用数据库维护向导设置日志传送,只可以向磁盘传送日志,而不能使用"备份到磁带"选项。