Transact-SQL 参考

sp_change_secondary_role

将日志传送计划的辅助数据库转换为主数据库。

语法

sp_change_secondary_role [ @db_name = ] 'db_name'
    , [ @do_load = ] do_load
    , [ @force_load = ] force_load
    , [ @final_state = ] final_state
    , [ @access_level = ] access_level
    , [ @terminate = ] terminate
    , [ @keep_replication = ] keep_replication
    , [ @stopat = ] stop_at_time

参数

[@db_name =] db_name

指定辅助数据库名称。db_name 的数据类型为 sysname,没有默认设置。

[@do_load =] do_load

指定在将 db_name 转换为主数据库之前应复制和还原任何挂起的事务日志。do_load 的数据类型为 bit,默认值为 1。

[@force_load =] force_load

指定在将任何挂起的事务日志还原到辅助数据库时使用 –ForceLoad 选项。除非将 do_load 设置为1,否则忽略该选项。force_load 的数据类型为 bit,默认值为 1。

[@final_state =] final_state

指定在完成该存储过程后数据库的恢复状态。final_state 的数据类型为 smallint,默认值为 1,可以是下列值之一。

描述
1 RECOVERY
2 NO RECOVERY
3 STANDBY

有关这些选项含义的更多信息,请参见 RESTORE

[@access_level =] access_level

指定在完成该存储过程后数据库的访问级别。access_level 的数据类型为 smallint,默认值为 1,可以是下列值之一。

描述
1 MULTI_USER
2 RESTRICTED_USER
3 SINGLE_USER

有关这些选项含义的更多信息,请参见 ALTER DATABASE

[@terminate =] terminate

指定应立即回滚所有挂起事务,并在该存储过程运行期间将辅助数据库置于单用户模式下。terminate 的数据类型为 bit,默认值为 1。

[@keep_replication =] keep_replication

指定在辅助数据库上还原任何挂起的事务日志时保留复制设置。除非将 do_load 设置为 1,否则忽略该选项。keep_replication 的数据类型为 bit,默认值为 0。

[@stopat =] stop_at_time

指定在应用任何挂起的事务日志时,应将辅助数据库还原到指定日期和时间下的状态。除非将 do_load 设置为 1,否则忽略该选项。stop_at_time 的数据类型为 datetime,默认值为 NULL。

返回代码值

0(成功)或 1(失败)

结果集

注释

必须在标记为当前主服务器的 SQL Server 实例上运行 sp_change_secondary_role

为完成日志传送角色更改,除运行此过程外,还必须执行某些步骤。有关更多信息,请参见如何设置和执行日志传送角色转变 (Transact-SQL)

权限

只有 sysadmin 固定服务器角色成员才能执行 sp_change_secondary_role

示例

下例显示如何将辅助数据库转换为主数据库。在转换辅助数据库之前,在该数据库上应用以前传送的事务日志。

EXEC sp_change_secondary_role @db_name = 'db2',
   @do_load = 1,
   @final_state = 1,
   @access_level = 3

请参见

sp_change_monitor_role

sp_change_primary_role

sp_resolve_logins