您好,登錄后才能下訂單哦!
這篇“python批量還原數據庫的代碼怎么寫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python批量還原數據庫的代碼怎么寫”文章吧。
代碼如下:
# -*- coding: utf-8 -*- import shutil,os # 根據指定路徑下的數據庫備份文件生成還原腳本 def getFilesAndBuildSql(path,restorePath): for root,dirs,files in os.walk(path): for nfile in files: if os.path.splitext(nfile)[1] == ".bak": # 篩選bak文件 dbName = os.path.splitext(nfile)[0] logName = dbName + "_log" # 創建數據還原腳本并寫入文件 sqlFileName = 'C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\restore.sql' with open(sqlFileName, 'a') as file_object: file_object.write("--還原數據庫{0}--\n".format(dbName).decode("utf-8").encode("utf-8")) file_object.write("RESTORE DATABASE {0} FROM DISK = 'C:\\SqlRestore\\bak\\{1}' \n".format(dbName,nfile).decode("utf-8").encode("utf-8")) file_object.write("WITH\n".decode("utf-8").encode("utf-8")) file_object.write(" MOVE '{0}' TO '{2}\\{1}.mdf',\n ".format(dbName.replace("Kernel_HY_",""),dbName,restorePath).decode("utf-8").encode("utf-8")) file_object.write(" MOVE '{0}' TO '{2}\\{1}.ldf'\n ".format(logName.replace("Kernel_HY_",""),logName,restorePath).decode("utf-8").encode("utf-8")) file_object.write("GO\n\n".decode("utf-8").encode("utf-8")) # 生成刪除數據庫腳本 with open('C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\drop.sql', 'a') as file_object: file_object.write("--刪除數據庫{0}--\n".format(dbName).decode("utf-8").encode("utf-8")) file_object.write("DROP DATABASE {0} \n".format(dbName).decode("utf-8").encode("utf-8")) file_object.write("GO\n\n".decode("utf-8").encode("utf-8")) # 控制臺輸出 print("RESTORE DATABASE {0} FROM DISK = 'C:\\{1}' ".format(dbName,nfile)) print("WITH") print(" MOVE '{0}' TO '{2}\\{1}.mdf', ".format(dbName.replace("Kernel_HY_",""),dbName,restorePath)) print(" MOVE '{0}' TO '{2}\\{1}.ldf' ".format(logName.replace("Kernel_HY_",""),logName,restorePath)) print("GO") print("") # 創建發布文件夾 os.makedirs("C:\\Users\\merox-mac-win\\Desktop\\SqlRestore") # 根據數據庫備份文件目錄生成還原腳本 getFilesAndBuildSql("C:\\Game_ZS\\Database\\dbbak","C:\\db") # 生成還原BAT文件 with open("C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\restore.bat", 'a') as file_object: file_object.write("md c:\\db\n".decode("utf-8").encode("utf-8")) file_object.write("osql -E -i c:\\SqlRestore\\restore.sql\n".decode("utf-8").encode("utf-8")) file_object.write("--還原數據庫--\n".decode("utf-8").encode("gbk")) for root,dirs,files in os.walk("C:\\Game_ZS\\Database\\dbbak\\link"): for nfile in files: print("osql -E -i c:\\{0}".format(nfile)) with open("C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\restore.bat", 'a') as file_object: file_object.write("osql -E -i c:\\SqlRestore\\link\\{0}\n".format(nfile)) # 復制鏈接服務器腳本文件夾 shutil.copytree("C:\\Game_ZS\\Database\\dbbak\\link","C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\link") # 復制bak備份文件 shutil.copytree("C:\\Game_ZS\\Database\\dbbak\\bak","C:\\Users\\merox-mac-win\\Desktop\\SqlRestore\\bak") # 壓縮數據發布文件夾 os.system("rar a restore.rar SqlRestore") # 測試壓縮文件 os.system("rar t restore.rar") # 刪除生成的發布目錄 shutil.rmtree("C:\\Users\\merox-mac-win\\Desktop\\SqlRestore")
1、云計算,典型應用OpenStack。
2、WEB前端開發,眾多大型網站均為Python開發。
3、人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。
4、系統運維工程項目,自動化運維的標配就是python+Django/flask。
5、金融理財分析,量化交易,金融分析。
6、大數據分析。
以上就是關于“python批量還原數據庫的代碼怎么寫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。