标签: database-restore

将.bak文件导入SQL Server中的数据库

我有一个.bak扩展名的文件.

如何将此日期导入SQL Server中的数据库?

sql-server database-restore

218
推荐指数
7
解决办法
35万
查看次数

SQL Server数据库还原错误:指定的强制转换无效.(SqlManagerUI)

我使用SQL Server 2008 R2 Standard(版本10.50.1600.1)作为我的生产网站,使用SQL Server Express版本和Advanced Services(v10.50.1600.1)作为数据库.

几天后我的SQL Server崩溃了,我不得不在我的localhost上安装一个新的2008 R2 Express版本.当我恢复从Express版本中获取的一些旧版本时,它工作正常,但是当我尝试.bak从生产服务器中恢复的文件中恢复数据库时,它会导致以下错误:

错误:指定的演员表无效.(SqlManagerUI)

当我尝试使用命令恢复数据库时

Use Master
Go
RESTORE DATABASE Publications
FROM DISK = 'C:\Publications.bak'
WITH MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path
MOVE 'AlPublications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf'
Run Code Online (Sandbox Code Playgroud)

它会产生不同的错误

消息3154,级别16,状态4,行1
备份集保存除现有"发布"数据库之外的数据库的备份.
消息3013,级别16,状态1,行1
RESTORE DATABASE异常终止.

我已经交叉检查了版本.它们似乎都与我匹配,如下图所示

以前我能够将数据库从标准版恢复到快速版,但现在它失败了.我删除了数据库并尝试重新创建它.那也失败了.

我不确定我做错了什么.我很感激这方面的帮助

问题已解决,因为.bak文件似乎已损坏.当我用不同的文件尝试它时,它工作.

sql-server database-restore sql-server-2008

90
推荐指数
4
解决办法
40万
查看次数

Android备份/恢复:如何备份内部数据库?

我已经实现了BackupAgentHelper使用提供FileBackupHelper的备份和恢复我拥有的本机数据库.这是您通常与之一起使用ContentProviders并驻留在其中的数据库/data/data/yourpackage/databases/.

人们会认为这是一个常见的情况.但是,文档不清楚该怎么做:http://developer.android.com/guide/topics/data/backup.html.这些典型的数据库并不BackupHelper专门.因此,我使用了FileBackupHelper,将它指向我在."中的.db文件,在我的/databases/任何数据库操作(例如db.insert)中引入了锁ContentProviders,甚至尝试创建" /databases/"目录,onRestore()因为它在安装后不存在.

我已经SharedPreferences在过去的不同应用程序中成功实现了类似的解决方案.但是,当我在模拟器2.2中测试我的新实现时,我看到正在LocalTransport从日志执行备份,以及正在执行(并onRestore()调用)恢复.然而,db文件本身永远不会被创建.

请注意,这是在安装之后,以及在首次启动应用程序之后,在执行还原之后.除此之外,我的测试策略基于http://developer.android.com/guide/topics/data/backup.html#Testing.

还请注意,我不是在谈论我自己管理的一些sqlite数据库,也不是要备份到SDcard,自己的服务器或其他地方.

我确实在文档中提到有关建议使用自定义的数据库,BackupAgent但它似乎并不相关:

但是,如果需要,可能需要直接扩展BackupAgent:*备份数据库中的数据.如果您在用户重新安装应用程序时有要还原的SQLite数据库,则需要构建一个自定义BackupAgent,在备份操作期间读取相应的数据,然后创建表并在还原操作期间插入数据.

请清楚一点.

如果我真的需要自己完成SQL级别,那么我担心以下主题:

  • 打开数据库和事务.我不知道如何在应用程序的工作流程之外从这样的单例类中关闭它们.

  • 如何通知用户正在进行备份并且数据库已锁定.这可能需要很长时间,所以我可能需要显示进度条.

  • 如何在恢复时执行相同操作.据我了解,恢复可能发生在用户已经开始使用应用程序(并将数据输入数据库)时.所以你不能假定只是恢复备份数据(删除空数据或旧数据).你必须以某种方式加入它,由于id的原因,任何非平凡的数据库都是不可能的.

  • 如何在恢复完成后刷新应用程序,而不会让用户卡在某个 - 现在 - 无法访问的点.

  • 我可以确定数据库是否已在备份或还原时升级?否则,预期的架构可能不匹配.

database android restore database-restore android-backup-service

86
推荐指数
5
解决办法
4万
查看次数

有关PLPGSQL的PostgreSQL 9.1 pg_restore错误

我正在使用Postgres进行django项目,我目前正在实现一个数据库备份/恢复系统,当用户单击备份时,尽可能简单地执行pg_dump,然后在单击恢复备份时执行pg_restore.

所有看起来都很好和花花公子,直到它实际上尝试执行pg_restore,此时它给出了这个错误:

pg_restore:[archiver(db)]来自TOC条目3206的错误; 0 0 COMMENT EXTENSION plpgsql pg_restore:[archiver(db)]无法执行查询:ERROR:必须是扩展名plpgsql的所有者命令为:COMMENT ON EXTENSION plpgsql IS'PL/pgSQL procedureural language';

我已经研究了plpgsql是什么等我明白了,关于错误,我尝试手动设置"扩展的所有者"给执行脚本的用户并拥有数据库本身,但是没有改变,它真的很烦人,因为它试图设置所有事情的评论时出错

这都是由pg_dump自动创建的,因此注释行无法删除,并且没有标记可以禁用注释(我知道这一点),所以我真的不知道如何解决这个问题.

postgresql plpgsql database-restore

66
推荐指数
4
解决办法
4万
查看次数

从SQL转储还原数据库时启用二进制模式

我是MySQL的新手,我在Windows上运行它.我试图从MySQL中的转储文件恢复数据库,但我收到以下错误:

$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'.
Run Code Online (Sandbox Code Playgroud)

我试过放入--binary-modeini文件,但它仍然给出了同样的错误.我该怎么办?请帮忙.

UPDATE

正如尼克在他的评论中所建议的那样,我试过$ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql但它给了我以下ERROR at line 1: Unknown command '\?'. 它是一个500 Mb转储文件,当我使用gVIM查看其内容时,我所能看到的只是表达式和​​数据,这是不可理解的.

mysql database mysqldump database-restore

65
推荐指数
8
解决办法
9万
查看次数

Postgresql - 备份数据库并在不同的所有者上恢复?

我在不同服务器上的数据库上进行备份,并且具有与我需要的不同的角色,使用以下命令:

pg_dump -Fc db_name -f db_name.dump
Run Code Online (Sandbox Code Playgroud)

然后我将备份复制到我需要还原数据库的另一台服务器,但是没有这样的所有者用于该数据库.假设数据库拥有所有者owner1,但在不同的服务器上我只有owner2,我需要恢复该数据库并更改所有者.

我在恢复时在另一台服务器上做了什么:

createdb -p 5433 -T template0 db_name 
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Run Code Online (Sandbox Code Playgroud)

但是当运行恢复时,我会收到以下错误:

pg_restore: [archiver (db)] could not execute query: ERROR:  role "owner1" does not exist
Run Code Online (Sandbox Code Playgroud)

如何指定它以便更改所有者?还是不可能?

database postgresql owner database-restore database-backups

62
推荐指数
2
解决办法
4万
查看次数

如何将bak文件导入SQL Server Express

我有一个.bak文件,我想使用此文件在全新安装的SQL Server 2008 Management Studio中重新创建数据库.

有人能指出我如何做到这一点的正确方向?

我试过了:

  1. 右键单击object explorer中的Databases容器

  2. 从上下文菜单中选择Restore database

  3. 将"数据库"指定为新数据库或现有数据库

  4. 从设备指定要还原的源

  5. 选择备份媒体作为文件

  6. 单击"添加"按钮,然后浏览到BAK文件的位置

但我得到的错误

服务器'MyServer-PC'的恢复失败.(Microsoft.SqlServer.SmoExtended)

附加信息:

System.Data.SqlClient.SqlError:备份集包含现有"invent"数据库以外的数据库的备份.(Microsoft.SqlServer.Smo)

sql-server database-restore database-backups sql-server-2008

49
推荐指数
3
解决办法
20万
查看次数

从SQL Server 2008的.mdf和.ldf文件还原数据库

出于某种原因,我必须卸载SQL Server 2008 R2,但在此之前我从中复制了两个文件(.mdf.ldf)

C:\ Program Files(x86)\ Microsoft SQL Server\MSSQL10_50.MSSQL2008\MSSQL\DATA

现在,问题是,我是否可以在新安装的SQL Server 2008 R2中从这些文件中恢复数据库.

如果是:那我该怎么做?

database-restore sql-server-2008

48
推荐指数
4
解决办法
16万
查看次数

如何将PostgreSQL转储文件恢复到Postgres数据库?

我有一个带.SQL扩展名的转储文件(实际上它是一个纯文本的SQL文件).我想将其恢复到我创建的数据库中.我正在使用pgAdmin III,当我使用它的"还原向导"时,它不会突出显示"恢复"按钮.相反,它期待.backup文件扩展名.

我尝试使用shell命令来恢复转储,但它仍然无法正常工作.

我是新手.如果有人可以帮助我,我将被迫.

编辑

我坐在newTestDB时使用了以下命令到PostGres的Shell SQL窗格.

newTestDB-# \i E:\db-rbl-restore-20120511_Dump-20120514.sql
Run Code Online (Sandbox Code Playgroud)

它仍然给出了相同的错误("权限被拒绝").

提升权限后,它只显示PostgreSQL的默认表:

      List of tablespaces
Name       |  Owner   | Location
-----------+----------+----------
pg_default | postgres |
pg_global  | postgres |

(2 rows)
Run Code Online (Sandbox Code Playgroud)

我不知道如何从SQL文件导入/恢复数据库.

sql postgresql dump database-restore database-dump

46
推荐指数
5
解决办法
17万
查看次数

为什么"关闭到目标数据库的现有连接"在SQL Server 2012 Management Studio上显示为灰色?

我通常使用SQL Server 2012 Management Studio从"bak"文件还原SQL Server数据库.我通过覆盖现有数据库来做到这一点.在"选项"页面中,有一个标记为"关闭与目标数据库的现有连接"的复选框,我主要检查它,因为目标数据库始终"正在使用",即使我刚刚重新启动MS SQL服务而且我是确保没有使用它的应用程序.

无论如何,在我客户的计算机上,我看到关闭现有连接的复选框是灰色的,没有任何信息.这是怎么发生的?谷歌搜索没有产生任何结果.

database sql-server ssms database-restore sql-server-2012

43
推荐指数
3
解决办法
2万
查看次数