使用sql server作业上传到gcp存储桶

时间:2019-09-16 09:14:50

标签: gsutil sql-agent

我正在尝试自动将db的备份上传到gcp存储桶。

我现在正在使用Google云上的虚拟机。我想创建一个SQL作业,该作业将运行一个cmd命令,该命令会将备份文件上传到存储桶。

当我在cmd中手动运行命令时,它可以工作,但是当我通过sql agent运行时,它却不能。作业返回成功,但是并没有真正上传它。

第一个问题是,运行计算机的Google服务无权写入存储桶;我解决了。我还使用gutils在ouath下为用户创建了一个boto文件。

我尝试为gsutils添加-D flag进行调试,如果我理解正确的话,它找不到配置文件。 SQL代理作业设置为我是所有者。 sql代理服务由网络服务运行。

有什么想法为什么不上传数据?

据我了解,gsutil已将nbot设置为正确的projectID! gcloud设置为正确的projectid。我不知道如何将gsutil设置为我的projectid。我查看了Boto文件,但找不到projectID配置。

这是来自随后命令的调试输出:

  

正在运行的命令:C:\ Program Files(x86)\ Google \ Cloud   SDK \ google-cloud-sdk \ platform / gsutil \ gsutil -o   GSUtil:default_project_id = xxxx-246709 -o   GoogleCompute:service_account =默认-D -m rsync -r D:\ backup \   gs:// xxx config_file_list:[u'找不到配置']配置:[('debug',   '0'),('working_dir','/ mnt / pyami'),

1 个答案:

答案 0 :(得分:0)

  

我还使用gsutil在使用者下创建了一个boto文件

该文件在哪里?如果位于<path to your home directory>\.boto,则Boto库将自动加载它。如果在Boto检查运行时的已知位置之一,您需要在运行gsutil告诉Boto在哪里找到配置之前设置BOTO_CONFIG环境变量。您可以通过运行gsutil -D version并查看config_file_list行来找到配置的路径。