有可用SQL Server代理:无可用资源(sqlserver代理没)
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代理的工作。