本文目录一览:
如何使用脚本批量恢复数据库备份
蛙蛙推荐:利用WMI脚本批量恢复SQLSERVER数据库
问题提出
蛙蛙求助:以编程的方式还原sqlserver数据库问题
我有一个目录下面都是sqlserver的数据库备份文件,比如a.bak,b.bak,c.bak等,有没有办法一下把他们都还原到本地SQLSERVER数据库里面呀,过程是自动建立a,b,c这样的数据库,然后把a.bak恢复到a,b.bak恢复到b,依次类推,因为备份文件的原路径和新库的路径不一样,所以要有一些额外处理,谁能解决一下,因为这个目录下有几十个库的备份文件呢,现在我的机器新安装了一个SQLSERVER,要把他们全部恢复,当时没有分离库,所以不能直接附加.
设计方案
可以利用WMI脚本扫描存放数据库备份文件的目录,然后按照一定的规则生成一个恢复数据库的T-sql脚本文件,然后用脚本执行osql程序来执行这个脚本完成数据库恢复,这里没有使用过多的错误处理和事务的代码,因此要人为的确定数据库恢复的T-SQL语句尽量不要引发异常。
解决方案
一、我们先来看一下恢复数据库的T-SQL命令,以便理解后面通过脚本来创建T-SQL的原理
USE master
GO
--如果要创建的数据库已经存在,那么删除它
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'article')
DROP DATABASE [article]
GO
--创建一个新数据库,要指定新建数据库的数据文件和日志文件的名称和位置,初始化大小
--增长幅度,最大值等内容
CREATE DATABASE article
ON
( NAME = N'article_dat',
FILENAME = N'd:\sql2000\MSSQL\data\article_Data.MDF',
SIZE = 1,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = N'article_log',
FILENAME = N'd:\sql2000\MSSQL\data\article_Log.LDF',
SIZE = 1MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
--把指定的数据库备份文件恢复到刚刚建立的数据库里,这里要指定数据库备份文件的位置
--以及要恢复到的数据库,因为备份文件来自未知的机器,备份的时候原数据库和新数据库
--的数据文件和日志文件的位置不匹配,所以要用with move指令来完成强制文件移动,如果
--是通过管理器备份的数据库文件,数据库文件和日志文件名分别是数据库名跟上"_Data"或
--"_Log",这是一个假设哦,如果不是这样,脚本有可能会出错
RESTORE DATABASE [article]
FROM DISK = 'E:\windowdatabase\article.bak'
WITH
MOVE 'article_Data' TO 'd:\sql2000\MSSQL\data\article_Data.MDF',
MOVE 'article_Log' TO 'd:\sql2000\MSSQL\data\article_Log.LDF'
GO
从中可以看到T-SQL的强大。
sql数据库误改怎样恢复
1, 如果你有比较新的备份文件,可以将备份恢复到另外一台机器上,然后将对应表导入到当前库;
2,如果你的日志文件还没有被覆盖,将日志文件copy出去,先备份一下,找个读取sqlserver日志的工具,从日志文件中逐条记录恢复。
oracle数据库怎么进行备份恢复,以及自动批量备份
Oracle数据库备份,大致分为如下两种:
第一种:逻辑备份:
使用EXP进行逻辑备份,在sql plus 执行:exp system/你的密码 后按照提示命令执行即可。
第二种:物理备份
冷,热备份的备份方法: 冷热备份都是将数据库文件做相应的拷贝。
冷备份:是指脱机备份,即将服务器停止掉。
热备份:是指连机备份
使用该命令shutdown immediate停止服务器
数据库备份与恢复原理
一般的文件型数据库,实际上对整个就是一个或者多个文件,所谓的备份就是把这些文件考虑到其它介质上,可能有一个打包的过程,或者刻录到DVD的过程。这是对文件型数据库备份和恢复的最好方法,效率最好,操作最简单。
有的大型数据库,它自己管理存储空间,是分区或者磁盘,不被操作系统识别。这类数据库一样可以用GHOST等工具备份磁盘。
可能许多人讲备份数据库是把数据库转换为SQL或者文本文件。其实这是另外一个概念,叫做数据迁移,目的是把数据库的数据移植到其它数据库管理系统。数据迁移不适合用来做数据库的日常备份,一般关键数据库不会平凡的做数据迁移。一般数据库系统会提供专门的数据迁移工具,当然这类工具也可能就是一系列的SQL语句,自己也能编写。