在sql server 中如何备份和恢复单个表?

哈哈,我告诉你,我是2 008 年做的一个项目,当时SQL Server 2 000好像已经停产很久了。
那时候支撑一张桌子是非常困难的。

我的一个朋友告诉我,使用 DTS 非常容易。
我尝试了一下,使用DTS将销售表中的数据转换为文本文件,并将其放在服务器驱动器盘符下。
恢复的时候,找到DTS包,再次运行,数据就恢复了。
我当时认为这是非常先进的。

后来我发现使用bcp工具更简单,也不那么混乱。
记得有一次客户很着急,就在SQL命令行写了一条命令,用bcp访问D盘的大命令表。
命令是这样写的,记不太清楚了,可能是bcp yourdb.dbo.yourtable out d:\yourfile.txt -c -Syourserver -Uyouruser -Pyourpass。
-c 告诉 BCP 使用 char 类型,而不是搞乱它。
后来我恢复了,在d:\yourfile.txt -c -Syourserver -Uyouruser -Pyourpass 中输入bcp yourdb.dbo.yourtable,数据又回来了。
那时服务器是虚拟的,备份和恢复非常方便。
然而,这件事有一个问题。
使用bcp时,必须确保执行命令的用户有在master上运行xp_cmdshell的权限。
记得有一次,转用私服的时候,被要求权限不足,差点就崩溃了。
所以,我提醒您在使用此方法之前检查权限。

还有,如果文件名或者数据库表名写错了,数据就会丢失,哭没地方哭。
有时导出和导入包含数千条记录的表需要很长时间,而且我仍然需要跟踪它。
所以,当数据量很大的时候,你就得想其他的方法或者你得找时间来做。

总之,备份单表DTS、bcp、T-SQL各有其优点。
这取决于具体情况。
当你问这个问题的时候你想做什么?我会帮你想清楚。

SQL server中如何只备份一张数据库表的数据

需要明确的是,要备份 SQL Server 中的单个表,您必须直接导出或复制 SQL 语句。
这两种方法各有其优点。
只需点击几下,使用短信即可直接导出,对于初学者或数据量较小的用户来说是理想的选择。
比如我们去年跑的一个项目,导出3 000级数据大约需要十分钟的时间。
还有一点是,通过复制SQL语句生成的文件可以导入得更小、速度更快,但操作复杂,需要手动生成INSERT语句。
很多人不注意这一点。
一开始我以为复制描述应该快,但是后来当表中有特殊字符时,导入速度不一定快。
还有另一个重要的细节。
在生成 SQL 语句之前必须检查目标数据库的字符集,否则导入可能会损坏。
老实说,这是一个陷阱。
正因为如此,我一直被困在过去。
提醒一下,直接为密码等敏感字段生成 SQL 是有风险的,需要额外的处理。
我认为使用SQL语句来支持大表是值得尝试的。
虽然速度较慢,但​​控制力更强。

实现MySQL数据库的备份与还原的几种方法

一天深夜,我正在备份公司数据库。
服务器嗡嗡作响,屏幕上显示 mysqldump 进度条。
突然想起一位同事说直接复制文件速度更快,但也有风险。
我查了手册,发现mysqldump可以添加的参数非常多,详细得就像设置咖啡机一样详细。

比如使用--single-transaction备份数据库,InnoDB表不需要锁表,特别适合大表。
我尝试在旧计算机上制作表 1 G 的备份副本。
mysqldump用了1 5 分钟,直接copy只用了5 分钟。
但当我重新启动服务器时,我的手心出汗了。
后来我发现,如果目标服务器和源服务器的硬件结构不同,直接复制的表就会损坏,这真是令人头疼。

等等,还有一件事。
我在一篇博客上读到,使用 --master-data=1 可以备份 Binlog 位置,并在恢复期间自动设置主从同步。
我在测试环境下尝试了一下,确实没有问题,但是如果删除了Binlog文件就麻烦了。
我突然想到,备份其实只是一个技术工作或者责任问题。
你看,如果你忽略这些细节中的任何一个,就会发生一些事情。

如何使用SQL Database Studio创建表备份

老实说,使用 SQL Database Studio 3 .6 .2 PRO 备份表给我带来了很多乐趣。
想一想,当时我正在给隔壁公司做数据库维护。
您的系统突然报告错误并丢失了几乎所有数据。
幸运的是,我很快就用这个方法备份了关键表。
整个操作过程并不复杂,但是有几个小细节你要特别注意,否则很容易惹上麻烦。

以我上次操作为例。
那时我正在公司的Windows Server上工作。
启动软件后,我直接点击左上角的数据库连接。
打开名为“Production Library”的连接,里面有一个名为“User Table”的表。
我右键单击它,“创建表备份”选项呈灰色。
我想了想,原来是权限问题。
我赶紧去找DBA请求备份批准,并进行了另一次操作。
这次很正常。

备份的命名很有趣。
默认情况下,时间戳会添加到表名中。
但是,当您想要保护客户时,如果表名包含特殊字符或空格,有时会出现问题。
当时有一个客户表,称为“客户信息”。
我直接用默认名称备份了,但是恢复的时候出现了语法错误。
后来我改用“客户信息_备份_2 02 3 ”格式,问题就解决了。
因此,在备份之前查看命名规则很重要。

我还遇到了存储路径的陷阱。
默认路径为 C:\ProgramData\SQLDatabaseStudioBackups,但磁盘空间有限。
有一次忘记改路径,备份了很多文件。
这导致驱动器盘符已满并且软件一启动就挂起。
现在我习惯在备份之前在D盘手动创建一个备份文件夹。
当我右键单击表并选择“创建表备份”时,系统会打开一个框,您可以在其中确认路径。
此时,您只需更改它即可省去再次重置的麻烦。

我在恢复备份时也遇到了奇怪的事情。
有一个大小为2 00MB的表备份文件。
当我恢复它时,我选择了错误的服务器,结果是“文件大小不匹配”。
当时我很困惑,后来发现备份文件在传输过程中被压缩了。
因此,在备份之前最好使用文件属性检查备份文件的原始大小。
恢复时,不要选择“快速恢复”选项,老老实实使用完整恢复模式。

使用最新版本的SQLDatabaseStudio,用户界面变得更加简单,但核心流程仍然相同。
不过,他们现在有一个“备份向导”,只需点击几下即可完成,但提示太长了。
我还是喜欢旧版本,只需点击几下就可以完成,但是你必须注意几个重要的点:权限、路径和命名。
说实话,简单的备份过程背后存在很多陷阱。