【发布时间】:2022-01-03 06:27:41
【问题描述】:
所以我需要做的是备份我的 Microsoft Sql 数据库并从数据库中删除 6 个月前的数据。这两个过程都必须自动化。现在我被困在备份上。我一直在研究不同的东西并尝试应用它们,但我发现的大部分帮助都是关于数据库系统而不是 microsoft sql。
例如我找到了以下代码
for db_name in db_names:
try:
file_path = ''
dumper = " -U %s --password -Z 9 -f %s -F c %s "
os.putenv('PGPASSWORD', db_password)
bkp_file = '%s_%s.sql' % (db_name, time.strftime('%Y%m%d_%H_%M_%S'))
glob_list = glob.glob(dump_dir + db_name + '*' + '.pgdump')
file_path = os.path.join(dump_dir, bkp_file)
command = 'pg_dump' + dumper % (db_username, file_path, db_name)
subprocess.call(command, shell=True)
subprocess.call('gzip ' + file_path, shell=True)
except:
print("Couldn't backup database" % (db_name))
上面的代码给了我以下错误
'sqldumper' is not recognized as an internal or external command,
operable program or batch file.
'gzip' is not recognized as an internal or external command,
operable program or batch file.
我认为这是因为这种方法适用于 postgres sql 数据。
非常感谢任何指南或教程或任何其他类型的帮助。
【问题讨论】:
-
gzip和sqldumper默认情况下在 Windows 上不可用。看起来您为类似 UNIX 的机器回收了一些代码。 -
你知道有什么办法解决这个问题吗? @克劳斯D。
-
该代码适用于 Postgres,而不是 SQL Server,所以不知道为什么它会起作用。为什么不直接使用 SQL Server 代理来设置自动备份作业?您可以直接从 SSMS 执行此操作
-
我知道它适用于 Postgres,因为我在问题中也提到了这一点,我认为像 pg_dump 可能有一种用于 mssql 转储的方法。而且我没有考虑 SQL 代理方法。你能指导一下吗?
标签: python sql-server