建立使用者
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';