我备份了一个数据库:
BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
Run Code Online (Sandbox Code Playgroud)
然后尝试恢复它:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
Run Code Online (Sandbox Code Playgroud)
现在数据库仍处于恢复状态.
有些人认为这是因为备份中没有日志文件,需要使用以下方式前滚:
RESTORE DATABASE MyDatabase
WITH RECOVERY
Run Code Online (Sandbox Code Playgroud)
当然,除此之外,失败:
Msg 4333, Level 16, State 1, Line 1
The database cannot be recovered because the log was not restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
确切地说,在灾难性的情况下你想要的是一种无法恢复的恢复.
备份包含数据和日志文件:
RESTORE FILELISTONLY
FROM DISK = 'MyDatabase.bak'
Logical Name PhysicalName
============= =============== …
Run Code Online (Sandbox Code Playgroud) 默认情况下,mysqldump
备份整个数据库.我需要在MySQL中备份一个表.可能吗?我该如何恢复它?
我是postgresql的新手,在本地,我使用的是pgadmin3.然而,在远程服务器上,我没有这样的奢侈品.
我已经创建了数据库的备份并将其复制了,但是,有没有办法从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西,所以,如果有人能告诉我如何去做,那就太棒了!
我在备份shell脚本的部分中有以下命令:
tar -cjf site1.bz2 /var/www/site1/
Run Code Online (Sandbox Code Playgroud)
当我列出档案的内容时,我得到:
tar -tf site1.bz2
var/www/site1/style.css
var/www/site1/index.html
var/www/site1/page2.html
var/www/site1/page3.html
var/www/site1/images/img1.png
var/www/site1/images/img2.png
var/www/site1/subdir/index.html
Run Code Online (Sandbox Code Playgroud)
但我想/var/www/site1
从归档中的目录和文件名中删除该部分,以简化提取并避免无用的常量目录结构.永远都不知道,如果我在一个没有存储网络数据的地方提取备份网站/var/www
.
对于上面的例子,我想:
tar -tf site1.bz2
style.css
index.html
page2.html
page3.html
images/img1.png
images/img2.png
subdir/index.html
Run Code Online (Sandbox Code Playgroud)
因此,当我提取时,文件在当前目录中被提取,之后我不需要移动提取的文件,因此保留了子目录结构.
关于tar和备份在stackoverflow
网上和网上其他地方已经有很多问题,但是大多数都要求放弃整个子目录结构(展平),或者只是添加或删除名称中的首字母/(我不是知道它在提取时的确切变化),但不多了.
在阅读了这里和那里发现的一些解决方案以及手册之后,我尝试了:
tar -cjf site1.bz2 -C . /var/www/site1/
tar -cjf site1.bz2 -C / /var/www/site1/
tar -cjf site1.bz2 -C /var/www/site1/ /var/www/site1/
tar -cjf site1.bz2 --strip-components=3 /var/www/site1/
Run Code Online (Sandbox Code Playgroud)
但它们都没有按我想要的方式工作.有些人什么都不做,有些人不再存档子目录.
它位于由Cron启动的备份shell脚本中,所以我不太清楚,哪个用户运行它,路径和当前目录是什么,因此总是需要编写绝对路径,并且不希望更改当前目录避免在脚本中进一步破坏(因为它不仅备份网站,还备份数据库,然后将所有内容发送到FTP等)
怎么做到这一点?
我只是误解了选项-C的工作原理吗?
我需要将数据库从远程服务器复制到本地服务器.我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器.
一些要点:
有关如何复制此数据库的任何想法?我是否必须使用第三方工具?
我从一周前开始备份Database1.备份在调度程序中每周完成,我得到一个.bak
文件.现在我想摆弄一些数据,所以我需要将它恢复到另一个数据库 - Database2.
我已经看到了这个问题:在不同名称的同一台PC上恢复SQL Server数据库,建议的步骤是重命名原始数据库,但我没有那个选项,因为我在生产服务器中,我真的不能这样做.
有没有其他方法可以恢复它Database2
,或者至少,我如何浏览该.bak文件的数据?
谢谢.
ps:来自上面链接的第二个答案看起来很有希望,但它一直以错误结束:
还原文件列表异常终止
我有一个我的mysql数据库的mysqldump备份,包括我们所有的表,大约440兆.我想从mysqldump中恢复其中一个表的内容.这可能吗?从理论上讲,我可以删除重建我想要的表的部分,但我甚至不知道如何有效地编辑大小的文本文档.
由于活动连接,我的SQL Server 2005无法还原备份.我怎么强迫它?
我在一个相对较小的项目上使用git,我发现压缩.git目录的内容可能是备份项目的好方法.但这有点奇怪,因为当我恢复时,我需要做的第一件事就是git reset --hard
.
以这种方式备份git repo有什么问题吗?还有,有没有更好的方法(例如,便携式git格式或类似的?)?
backup ×10
restore ×6
sql-server ×3
mysql ×2
bash ×1
command-line ×1
disconnect ×1
git ×1
linux ×1
mysqldump ×1
postgresql ×1
sql ×1
svn ×1
tar ×1
windows ×1