SQL Server代理可以帮助DBA(数据库管理员)处理基础工作,避免冗余和重复工作。它还可以做很多有用的事情,例如散布式事务、定时履行批处理任务、控制或管理数据库实例等。
但是,如果没有可用的资源,很多SQL Server代理工作没法正常履行。比如,如果网络服务器上没有可用的时间,DBA没法将定时任务分配给SQL Server代理使用。另外,如果没有足够的磁盘空间,DBA就没法正常运行SQL Server代理,这会延误定期的任务的调度和履行。
另外,如果没有可用的资源,DBA需要手动履行SQL Server代理上的任务。这包括创建用于寄存代理日志文件的文件夹、授与SQL Server代理用户访问数据库服务器资源的权限,和设置事件通知等工作。
为了解决无可用资源的问题,DBA可使用SQL Server Management Studio中的脚本编辑器,来快速为SQL Server代理配置所需的资源:
1、 创建可容纳代理日志文件的文件夹,例如:
“`sql
— 创建代理日志文件夹
EXEC xp_create_subdir ‘C:\AgentLogs’
2、 授与SQL Server代理用户访问数据库服务器资源的权限,例如:
```sql-- 授与对目录操作的权限
EXEC sp_make_rmtpassword @login_name = 'proxy_user', @new_password = 'StrongPassword'EXEC sp_grantlogin @loginame = 'proxy_user'
EXEC sp_grantdbaccess @loginame = 'proxy_user'EXEC xp_logininfo @acctname = 'proxy_user', @option = 'add', @directory = 'C:\AgentLogs'
3、 定时履行批处理任务,可使用Scheduler作业功能:
“`sql
— 设置Scheduler作业并定期调度
DECLARE @schedule_id INT
EXEC msdb.dbo.sp_add_jobschedule @job_name = ‘My Adapter Job’,
@name = ‘Daily Adapter Job’,
@enabled = 1,
@freq_type = 4,
@sched_type = 8,
@freq_interval = 1,
@active_start_date = 20221220,
@active_start_time = 2215,
@schedule_id = @schedule_id OUTPUT
总而言之,实行公道有效的SQL Server代理工作需要充足的资源,包括磁盘及网络服务器时间等。如果没有可用的资源,DBA可以通过手工配置及脚本编辑器的帮助,来完成SQL Server代理的工作。
本文来源:https://www.yuntue.com/post/94664.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏