注意事项
- 本文介绍的存储过程不包括SQL Server本身自带的系统存储过程,仅介绍天翼云SQL Server对外提供的存储过程。
- 仅高权限账号root有权限执行以下存储过程,普通账号无权限执行。
- 以下存储过程仅支持开通时间在2024-08-28及之后的实例,若您的实例在此日期之前开通且需要使用以下存储过程,请通过咨询工单申请。
创建Login账号
说明
如果为主备实例,使用后仅在主节点上创建账号。如实例发生过主备切换,且仍需要使用该账号,请在切换后再次执行。
使用该存储过程创建的账号与控制台普通账号具有相同的权限。
操作步骤
执行以下命令,创建账号。
exec msdb.dbo.TYY_CreateLogin '@loginName', '@password';
- @loginName:创建的账号的登录名。
- @password:创建的账号的密码。
账号创建成功后,系统将会提示:
create Login [loginName] success
创建数据库
操作步骤
执行以下命令,创建数据库。
exec msdb.dbo.TYY_CreateDatabase '@dbName', '@charset';
- @dbName:创建的数据库名称。
- @charset:创建的数据库的支持字符集。
数据库创建成功后,系统将会提示:
create database [dbName] success
变更数据捕获(CDC)
说明
该存储过程仅支持变更库级数据捕获,变更表级数据捕获请通过sp_cdc_enable_table存储过程实现。
约束
- 系统库不支持变更数据捕获,如果您试图对系统库进行此操作,将会提示:
TYY_ERROR: CDC can not open on system database
- 仅关系数据库SQL Server企业版和关系数据库SQL Server 2016及其以上版本的标准版支持变更数据捕获,如果您在其他版本进行此操作,将会提示:
TYY_ERROR: SQL Server version is lower than 2016. This procedure requires SQL Server 2016 or higher for non-Enterprise editions
- 变更数据捕获操作类型仅包括1和0,如果您尝试其他操作,将会提示:
The action parameter must be either 0 or 1.
操作步骤
执行以下命令,变更数据捕获。
exec msdb.dbo.TYY_SetDbCDC '@dbName', @action;
- @dbName:需要变更数据捕获的数据库名称。
- @action:操作类型,1为开启数据捕获,0为关闭数据捕获。
变更数据捕获成功后,系统将会提示:
[dbName] enable CDC success 或 [dbName] disable CDC success
跟踪标记
说明
如果为主备实例,使用后仅在主节点上设置跟踪标记。如实例发生过主备切换,请在切换后再次执行该存储过程。
约束
- 跟踪标记操作类型仅包括1、0和-1,如果您尝试其他操作,将会提示:
TYY_ERROR: the action parameter must be -1, 0 or 1
操作步骤
执行以下命令,设置或查看跟踪标记状态。
exec msdb.dbo.TYY_SetTraceFlag @traceFlag, @action;
- @traceFlag:指定跟踪标记的序号。
- @action:操作类型,1为打开跟踪标记,0为关闭跟踪标记,-1为查看跟踪标记。
更新数据库统计信息
说明该存储过程会更新所有ONLINE状态数据库的统计信息,包括系统库。
操作步骤
执行以下命令,更新数据库统计信息。
exec msdb.dbo.TYY_UpdateStatistics;
堵塞事件
说明
如果为主备实例,使用后仅在主节点上开启或调整堵塞事件。如实例发生过主备切换,请在切换后再次执行该存储过程。
第一次执行该存储过程会自动开启堵塞事件,后续执行仅调整堵塞事件采集阈值。
操作步骤
执行以下命令,开启堵塞日志采集,或调整堵塞事件采集阈值。
exec msdb.dbo.TYY_CreateBlockedEvent @timeThreshold;
- @timeThreshold:堵塞事件采集阈值。
堵塞事件调整成功后,系统将会提示:
TYY: create blocked event session success
授予库级db_owner角色
约束
- 仅支持授予非系统库的db_owner角色,如果您授予系统库,将会提示:
TYY_ERROR: can not operate system database
操作步骤
执行以下命令,授予库级db_owner角色。
exec msdb.dbo.TYY_GrantDbOwner '@dbName', '@login';
- @dbName:需要授予的数据库名称。
- @login:被授予db_owner角色的账号名。
授予库级db_owner角色成功后,系统将会提示:
grant db_owner to database [dbName] for [login] success