human: 如何处理七牛云的云主机存储过程

gpt: [云主机](https://developer.qiniu.com/qvm) > 使用指南 > 云数据库
>[云数据库RDS](https://developer.qiniu.com/qvm/development_guidelines/7737/cloud-
database-rds) > 云数据库 SQL Server >存储过程

#  存储过程

最近更新时间: 2019-04-02 15:58:22

  * 实例内复制数据库
  * 设置数据库在线
  * 数据库全局授权
  * 删除数据库
  * 设置更改跟踪
  * 开启数据库变更捕获
  * 关闭数据库变更捕获
  * 配置实例参数
  * 增加链接服务器
  * 设置跟踪标志
  * 重命名数据库

本文适用于RDS for SQL Server 2012/2016/2017。

## 实例内复制数据库

**T-SQL命令**

sp_rds_copy_database

**支持的实例**

  * 高可用版
  * 基础版

**描述**

在实例内复制一个数据库。  
****说明** 实例剩余空间不得小于当前数据库大小的1.3倍。  
**使用方法**

    
    
    EXEC sp_rds_copy_database 'db','db_copy'
    

  * 第一个参数是被拷贝的数据库。
  * 第二个参数是拷贝的目标数据库。

## 设置数据库在线

**T-SQL命令**

sp_rds_set_db_online

**支持的实例**

  * 高可用版
  * 基础版

**描述**

您将数据库设置为OFFLINE后，不能直接通过ALTER DATABASE设置为ONLINE，请使用本存储过程设置为ONLINE。

**使用方法**

    
    
    EXEC sp_rds_set_db_online 'db'
    

参数是指定要被设置ONLINE的数据库。

## 数据库全局授权

**T-SQL命令**

sp_rds_set_all_db_privileges

**支持的实例**

  * 高可用版
  * 基础版

**描述**  
为一个用户授予所有或多个用户数据库的权限。  
****说明** 授权时，当前用户对被授权数据库的权限必须大于或等于被授予的权限。  
**使用方法**

    
    
    sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
    

  * 第一个参数是被授权的用户。
  * 第二个参数是授予该用户的数据库角色。
  * 第三个参数是数据库，可以指定一个或者多个，用逗号分隔，也可以不指定该参数（不指定表示全部用户数据库）。

## 删除数据库

**T-SQL命令**

sp_rds_drop_database

**支持的实例**  
高可用版  
****说明** 基础版暂时不支持本存储过程，请使用 `DROP DATABASE db`。  
**描述**

删除实例中的数据库。删除时会将关联的对象移除掉，高可用版会自动将镜像移除，并且KILL在该数据库上的连接。

**使用方法**

    
    
    EXEC sp_rds_drop_database 'db'
    

参数是要被删除的数据库。

## 设置更改跟踪

**T-SQL命令**

sp_rds_change_tracking

**支持的实例**

高可用版

**描述**

设置数据库的更改跟踪标记。

**使用方法**

    
    
    EXEC sp_rds_change_tracking 'db',1
    

  * 第一个参数是数据库名称
  * 第二个参数表示是否启用。 
    * 1：启用。
    * 0：禁用。

## 开启数据库变更捕获

**T-SQL命令**

sp_rds_cdc_enable_db

**支持的实例**  
高可用版  
****说明** 与AlwaysOn共存时，需要移除可用性组，不建议使用。  
**描述**

启用数据库的数据变更捕获。

**使用方法**

    
    
    USE db
    GO
    sp_rds_cdc_disable_db
    

## 关闭数据库变更捕获

**T-SQL命令**

sp_rds_cdc_disable_db

**支持的实例**  
高可用版  
****说明** 与AlwaysOn共存时，需要移除可用性组，不建议使用。  
**描述**

关闭数据库的数据变更捕获。

**使用方法**

    
    
    USE db
    GO
    sp_rds_cdc_disable_db
    

## 配置实例参数

**T-SQL命令**

sp_rds_configure

**支持的实例**

  * 高可用版
  * 基础版

**描述**

设置实例参数。若有主备实例，会自动同步。  
目前支持的参数：

  * fill factor (%)
  * max worker threads
  * cost threshold for parallelism
  * max degree of parallelism
  * min server memory (MB)
  * max server memory (MB)
  * blocked process threshold (s)

**使用方法**

    
    
    EXEC sp_rds_configure 'max degree of parallelism',4
    

  * 第一个参数是要设置的实例配置参数项。
  * 第二个参数是该实例参数的值。

## 增加链接服务器

**T-SQL命令**

sp_rds_add_linked_server

**支持的实例**

  * SQL Server 2012/2016标准版高可用系列
  * SQL Server 2012/2016企业版高可用系列

**描述**

增加实例的链接服务器。支持分布式事务，实例主备自动创建，切换不需要再配置。

**使用方法**

    
    
    DECLARE
    @linked_server_name sysname = N'yangzhao_slb',
    @data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --style: 10.1.10.1,1433
    @user_name sysname = N'ay15' ,
    @password nvarchar(128) = N'******',
    @source_user_name sysname = N'test',
    @source_password nvarchar(128) = N'******',
    @link_server_options xml
    = N'
                <rds_linked_server>
                    <config option="data access">true</config>
                    <config option="rpc">true</config>
                    <config option="rpc out">true</config>
                </rds_linked_server>
    '
    
    EXEC sp_rds_add_linked_server
    @linked_server_name,
    @data_source,
    @user_name,
    @password,
    @source_user_name,
    @source_password,
    @link_server_options
    

## 设置跟踪标志

**T-SQL命令**

sp_rds_dbcc_trace

**支持的实例**

  * 高可用版
  * 基础版

**描述**

设置实例的跟踪标记。目前只支持部分跟踪标记，若有主备实例，会自动同步。

**使用方法**

    
    
    EXEC sp_rds_dbcc_trace '1222',1/0
    

  * 第一个参数是跟踪标记。
  * 第二个参数表示打开或关闭。 
    * 1：打开。
    * 0：关闭。

## 重命名数据库

**T-SQL命令**

sp_rds_rename_database

**支持的实例**

基础版

**描述**  
重命名数据库。  
****说明** 重命名时，并不对物理文件做重命名。  
**使用方法**

    
    
    EXEC sp_rds_rename_database 'db','new_db'
    

  * 第一个参数是要被重命名的数据库。
  * 第二个参数是重命名后的数据库。

以上内容是否对您有帮助？