新建用户
1.主db新建sql用户
2.等待次db同步sql用户
3.脚本设置新用户的db权限
USE MDM
GO
ALTER ROLE [db_datareader] ADD MEMBER [bpmuser]
GO
ALTER ROLE [db_datawriter] ADD MEMBER [bpmuser]
GO
ALTER ROLE [db_owner] ADD MEMBER [bpmuser]
GO
维护计划-数据库备份及历史备份删除
主次DB均需要建立配置一样的维护计划
收缩数据库日志文件
--查询数据库日志状态
SELECT name,log_reuse_wait_desc FROM sys.databases where name='BPMProduct_MTBPM'
--备份数据库日志文件到NULL,不占用任何空间
BACKUP LOG BPMProduct_MTBPM TO DISK='NUL:' WITH NO_CHECKSUM, CONTINUE_AFTER_ERROR;
--收缩数据库日志文件到20G
USE BPMProduct_MTBPM
DBCC SHRINKFILE ('BPMProduct_VANKE_POC_log', 20480);
--检查日志空间
dbcc sqlperf(logspace)
The log_reuse_wait_desc says what the state is before the log can be reused or shrinked. In this case it is LOG_BACKUP, meaning that, to shrink the transaction log, you need to backup the transaction log first and shrink it or backup the log and let the SQLServer reuse the log space.
计划代理任务
比如我每天4点要归档正式库数据到历史库,一般执行逻辑是先查出要归档的数据,然后插入到历史库,然后删除正式库此类数据。
所以我们要在主辅服务器上均建立此job,单辅助副本上由于是读操作,所以肯定没法正常执行此job,所以我们执行此job时需要判断下当前服务器是否为主副本。
eg:
IF sys.fn_hadr_is_primary_replica('BPMProduct_MTBPM') = 1 --为1代表当前服务器为主副本
BEGIN
EXEC [BPMProduct_MTBPM_His].[dbo].[spro_bakhistorydata]--执行归档存储过程
END
ELSE
PRINT('当前DB为辅助副本,不执行归档操作')
#给特定用户指定特定视图访问权限
--创建FK角色
exec sp_addrole 'FKRole';
--给角色加视图权限
GRANT SELECT ON V_FKRelprocess TO FKRole;
--加登录用户
exec sp_addlogin 'fkuser','dB2&fk','BPMProduct_BPMS';
--角色加用户
exec sp_adduser 'fkuser','fkuser_l','FKRole';