# -*- coding=utf-8 -*-
import pyodbc
from datetime import datetime
import pymssql
import decimal
class SQLServer:
def __init__(self,server,user,password,database,autocommit):
self.server = server
self.user = user
self.password = password
self.database = database
self.autocommit = autocommit def __GetConnect(self):
if not self.database:
raise(NameError,"没有数据库信息")
self.conn = pymssql.connect(server=self.server,user=self.user,password=self.password,database=self.database,autocommit=self.autocommit)
cur = self.conn.cursor()
if not cur:
raise(NameError,"连接数据库失败")
else:
return cur def restoreDb(self,database,restorepath):
cur = self.__GetConnect()
restorePath = restorepath + database + datetime.now().strftime("%Y%m%d") + '.bak'
sql = "RESTORE DATABASE [{0}] FROM DISK = N'{1}' WITH FILE=1,Replace,stats = 10".format(database,restorePath)
cur.execute(sql)
self.conn.close()
def main():
msg = SQLServer(server="192.168.2.190",user="sa",password="P123",database="master",autocommit=True)
msg.restoreDb("wanghz","D:\\backup\\") if __name__ == "__main__":
main()

  

python 脚本bak文件还原mssql数据库的更多相关文章

  1. SQL Server 合并复制如何把备份的发布端或订阅端BAK文件还原为数据库

    SQL Server的合并复制,是可以备份发布端和订阅端数据库为BAK文件的,但是问题是合并复制在数据库中自动创建的系统表.触发器.表中的RowGuid列等也会被一起备份. 这里我们举个例子,下面图中 ...

  2. 命令行下从bak文件恢复sqlserver数据库方法

    命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...

  3. T-sql 根据bak文件恢复新建数据库

    利用bak文件恢复新建数据库: 1:利用sqlserver界面管理工具恢复,在操作2005以上的版本可以讲界面的操作过程生成sql语句(本人在此徘徊了好久,得一位博友提醒才恍然大悟); 2:利用sql ...

  4. C#(asp.net)备份还原mssql数据库代码【转】

    采集自互联网,未验证..... 如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原 ...

  5. 数据库.bak文件还原报错的处理办法

    今天从网上下了个Demo,里面有个.bak文件,就试着还原了一下,结果发现报了错.是了两种方式导入,都不行. 最终找到了解决办法: 可以直接用sql语句对.bak文件进行还原. RESTORE DAT ...

  6. SQL Server2012中如何通过bak文件还原SQL Server2012数据库

    1 登陆完数据库后,不要新建数据库,直接点击“数据库”然后右击"还原数据库". 2 在"源"选项中选择"设备". 3 选择相应的bak文件并 ...

  7. Navicat操作SQL server 2008R2文件.bak文件还原

    项目操作过程中,利用Navicat操作SQL Server2008R2数据备份,结果发现数据丢失了很多,不得不先对数据丢失部分进行差异对比,然后再重新输入. 1.利用Navicat导出的数据格式为sq ...

  8. 除了binlog2sql工具外,使用python脚本闪回数据(数据库误操作)

    利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线 ...

  9. sql还原(.bak文件还原)

    第一步: 右键“数据库”,选择“还原数据库” 第二步: 选择“设备”,然后选择“…” 第三步: 添加备份文件(这里使用MyDB.bak) 第四步: 勾选“还原”复选框,进度显示“已完成” 第五步: 最 ...

随机推荐

  1. python版本下载时时,官方目录web-based与executable和embeddable 的区别

    背景:安装python时不知道选择哪个版本以及他们之间的意思. 1.X86和X86-64的区别:系統是32 bit 的版本还是 64bit 的 2.web-based ,executable , em ...

  2. vue.js 中this.$router.push()的使用

    在vue项目中,跳转可以用router-link直接跳到某个页面 因为有时候会需要做一些判断等情况,所以要用到 this.$router.push() 因为外链跳转根本就不在router的设计考虑范围 ...

  3. AT2306 Rearranging

    有一个显然的,就是不互质的数的相对位置是不会改变的,那么我们把它们放到一个连通块里面去,然后我交换就是交换两个里面最小的对吧.直接连起来然后跑\(TopSort\)就行了. #include<s ...

  4. Co-Clustering_Reproducing

    调包一时爽,复现马上躺. Co-Clustering 注意右上角的:"Edit on GitHub",一开始疯狂吐槽没有源码,复现得非常难受,今天刚做完GM05中Algotirhm ...

  5. delphi 解决android 9上无法使用http协议

    delphi 解决android 9上无法使用http协议 安卓9不让客户端通过非https方式访问服务端数据(不允许发送明文http请求)的问题. 解决方法: 1.选择安卓平台编译一次程序,在项目根 ...

  6. vue elementUI 表单校验(多层嵌套)

    <template> <el-form :model="formData" :rules="formRule" ref="formD ...

  7. pve_ceph问题汇总

    在同一个网络内,建立了两个同名的群集 Jun 24 11:56:08 cu-pve05 kyc_zabbix_ceph[2419970]: ]} Jun 24 11:56:08 cu-pve05 co ...

  8. supervisor :a running process with pid = 0,程序PID为0

    Neo君作为一只小白,今天踩到了一个supervisor的坑. 如上图所示,出现这种情况后,想把这个进程停止.或者重启,甚至stop all它还是这个样子,如下图(马赛克部分为进程名称): 一:背景 ...

  9. PropertyValuesHolder学习

    package com.loaderman.customviewdemo; import android.animation.ObjectAnimator; import android.animat ...

  10. MySQL数据库备份之mysqldump

    创建用户备份的用户 MariaDB [mysql]> create user 'backdata'@'localhost' identified by 'test@123456';Query O ...