簡體   English   中英

使用 python 自動備份和刪除 Microsoft sql 數據庫

[英]Automate backup and deletion of Microsoft sql database using python

所以我需要做的是備份我的 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 數據。

非常感謝任何指南或教程或任何其他類型的幫助。

對於 MS SQL,您可以針對以下命令調整代碼:

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

更多信息可以在這里找到: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-backup-and-restore-database?view=sql-server-ver15

我想知道,您是如何運行 python 腳本的。 您遇到的那些錯誤可能來自 windows 命令提示符。 確保在上面的 python 代碼中導入 gzip 模塊。 這是 MySQL 的一個示例:[MySQL 數據庫備份的 Python 腳本][1] [1]:https://tecadmin-backup/python-script-for-mysql-mysql

稍后,如果您使用的是 Linux,為了自動化腳本,您可以隨時使用 cron 作業來運行它。 對於 windows,您可以使用 Windows 任務調度程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM