如何用SQL语句备份和还原数据库
如何用SQL语句备份和还原数据库?
SQL语句的备份和恢复
SQL Server:
备份命令:
备份数据库测试
到磁盘= 'c:\test '
有了格式,
名称= '我的新闻的完整备份'
解释如下:
NAME = ' my nwind的完全备份'-这是备注,随便写。还原命令:
使用母版
去
RESTORE DATABASE test_wt
从磁盘= 'c:\test_wt '
去
MySQL:
备份:
MySQL dump-u root-p database _ name & gt。d:\db.bak
还原:
MySQL-u root-p database _ name & lt;d:\db.bak
注意:在WIN下,不能使用path/filename.sql作为路径,所以使用path \ filename.sql。
如何修复SQL数据库疑点
关于修复sql2000数据库的疑问
在实际操作中,由于突然断电或突然断网(企业管理器中数据库后面出现“怀疑”二字),数据库处于怀疑状态。我们将通过以下方法修复有疑问的数据库。
A.我们使用默认的方法来建立数据库进行恢复(比如测试)。它可以在SQL Server企业管理器中创建。
B.停止数据库服务器。
C.删除刚生成的数据库的日志文件test_log.ldf,用要还原的数据库mdf文件覆盖刚生成的数据库数据文件test_data.mdf。
D.启动数据库服务器。这时你会看到数据库测试的状态是有疑问的。此时,无法对此数据库执行任何操作。
E.将数据库设置为允许直接操作系统表。在此操作中,可以在SQL Server企业管理器中选择一个数据库服务器,右键选择“属性”,在“服务器设置”页面中选择“允许直接修改系统目录”。也可以用下面的语句来实现。
使用母版
去
sp_configure '允许更新',1
去
用覆盖重新配置
去
F.将测试设置为紧急维修模式
更新sysdatabases设置状态=-32768,其中dbid=DB_ID('测试')
此时,您可以在SQL Server企业管理器中看到数据库处于“只读\怀疑\脱机\紧急模式”,您可以看到数据库中的表,但只有系统表
G.执行真正的恢复操作并重建数据库日志文件
dbcc rebuild_log('test ',' C:\ Program Files \ Microsoft SQL Server \ MSSQL \ Data \ test _ log . ldf ')
在执行过程中,如果遇到以下消息:
服务器:消息5030,16级,状态1,第1行
无法以独占方式锁定数据库以执行操作。
DBCC处决完成。如果DBCC输出错误信息,请联系您的系统管理员。
说明您的其他程序正在使用该数据库。如果您刚刚在步骤f中用SQL Server企业管理器打开了测试库的系统表,则可以退出SQL Server企业管理器。
正确执行完成的提示应该类似于:
警告:数据库“测试”的日志已被重建。事务一致性已经丢失。运行DBCC检查数据库以验证物理一致性。必须重置数据库选项,并且可能需要删除冗余日志文件。
DBCC处决完成。如果DBCC输出错误信息,请联系您的系统管理员。
此时,当您在SQL Server企业管理器中打开它时,您将看到数据库的状态为“仅供DBO使用”。此时,您可以访问数据库中的用户表。
H.验证数据库一致性(可以省略)
dbcc checkdb(“测试”)
一般实施结果如下:
CHECKDB在数据库“测试”中发现0个分配错误和0个一致性错误。
DBCC处决完成。如果DBCC输出错误信息,请联系您的系统管理员。
一、将数据库设置为正常状态
sp_dboption 'test ',' dbo use ',' false '
如果没有错误,恭喜你,现在你可以正常使用恢复的数据库了。
J.在最后一步中,我们将恢复步骤e中设置的“允许直接修改系统目录”项。因为平时直接操作系统表是危险的。当然,我们可以在SQL Server企业管理器中恢复它,或者我们可以使用以下语句来完成它
sp_configure '允许更新',0
去
用覆盖重新配置
去
如何修复损坏的数据库
1.停止SQL Server的服务并备份SQL Server安装目录下的\data子目录
故障数据库的两个文件,一个数据文件hbposv6_branch_data.mdf,
一个hbposv6_branch_log.ldf(可能这样命名,也可能不这样命名),在查看磁盘时
空之间有足够的空吗?
2.启动SQL Server服务(如果已停止),并创建名为的新数据库
原始数据库的名称。
3.停止SQL Server
4.替换旧数据库的MDF文件(hbposv6_branch_data.mdf)
新数据库对应的MDF文件,
并删除LDF文件。
5.重新启动SQL Server服务,并运行以下命令:
使用母版
去
sp_configure '允许更新',1
用覆盖重新配置
去
开始事务
update sysdatabases set status = 32768,其中name = 'hbposv6_branch '
-确认提交前更新了一行
提交交易
去
6.停止SQL并重新启动SQL Server服务,然后运行以下命令
(更改日志文件路径地址):
使用母版
去
DBCC·特蕾西翁(3604)
DBCC重建日志
(' hbposv6_branch ',
c:\程序文件\微软SQL Server \ MSSQL \数据\hbposv6_branch_log.ldf ')
-在这里,请输入您的数据库路径
去
7.停止并重新启动服务,然后运行:
使用母版
去
update sysdatabases set status = 8,其中name = 'hbposv6_branch '
去
sp_configure '允许更新',0
用覆盖重新配置
去
8.运行dbcc checkdb(db_name)来检查数据库的完整性
9.修复数据库
-请在查询分析器中执行以下语句。执行前断开其他连接
所有数据库都已连接,最好与网络电缆断开
-如果不是数据库名称,请设置数据库
- hbposv6_branch
-更改要修复的数据库
使用母版
去
-单用户模式
执行sp_dboption 'hbposv6_branch ','单用户',' TRUE '
去
-数据库检查
DBCC检查数据库(' hbposv6_branch ')
去
-如果返回的结果中有红色提示文本,说明数据库中有错误,需要修复
-数据库修复
DBCC检查数据库(' hbposv6_branch ',' repair_rebuild ')
去
-再次检查数据库。如果返回的结果中没有红色提示文本,
说明修复成功;
DBCC检查数据库(' hbposv6_branch ')
去
-否则,意味着需要更高级别的修复;试着把上面的修复语句
请用“repair_allow_data_loss”替换“repair_rebuild”,然后重试。
然后再次检查数据库。
-如果仍有未修复的错误,请将此信息以文字形式发送给我们
-请在退出以返回多用户模式之前执行以下语句
执行sp_dboption 'hbposv6_branch ','单用户',' FALSE '
去
注意:总是用真实的数据库名替换数据库名。
如何用SQL语句备份和还原数据库?
SQL语句的备份和恢复
SQL Server:
备份命令:
备份性能数据库测试
到磁盘= 'c:\test '
有了格式,
名称= '我的新闻的完整备份'
解释如下:
NAME = ' my nwind的完全备份'-这是备注,随便写。
还原命令:
使用母版
去
RESTORE DATABASE test_wt
从磁盘= 'c:\test_wt '
去
MySQL:
备份:
MySQL dump-u root-p database _ name & gt。d:\db.bak
还原:
MySQL-u root-p database _ name & lt;d:\db.bak
注意:在WIN下,不能使用path/filename.sql作为路径,所以使用path \ filename.sql。
如何用mysql数据库中的日志恢复数据sql语句
要从二进制日志中恢复数据,您需要知道当前二进制日志文件的路径和文件名。通常,您可以从选项文件(即my.cnf或my.ini,取决于您的系统)中找到路径。如果它不包含在选项文件中,可以在服务器启动时作为命令行选项给出。启用二进制日志的选项是- log-bin。要确定当前二进制日志文件的文件名,请输入以下MySQL语句:
显示日志事件/G
您也可以从命令行输入以下内容:
MySQL-user = root-pmy _ pwd-e ' SHOW BINLOG EVENTS/G '
将密码my_pwd替换为服务器的根密码。
1.指定恢复时间
使用MySQL 4.1.4,可以在mysqlbinlog语句中用- start-date和- stop-date选项指定DATETIME格式的开始和结束时间。例如,假设今天上午10:00(今天是2006年4月20日),执行SQL语句删除一个大表。要恢复表和数据,您可以恢复前一天晚上的备份,并输入:
MySQL binlog-stop-date = " 2005-04-20 9:59:59 "/var/log/MySQL/bin . 123456/
mysql -u root -pmypwd
该命令将恢复截止日期选项中以DATETIME格式给出的日期和时间的所有数据。如果几个小时后没有检测到输入的错误的SQL语句,您可能希望恢复稍后发生的活动。根据这些,您可以使用日期和时间再次运行mysqlbinlog:
MySQL binlog-start-date = " 2005-04-20 10:01:00 "/var/log/MySQL/bin . 123456/
mysql -u root -pmypwd /
在这一行中,将运行从上午10:01登录的SQL语句。在执行前夕结合两行转储文件和mysqlbinlog可以将所有数据恢复到上午10:00之前的一秒钟..你应该检查一下日志,以确保准确的时间。
数据库被质疑修复后,用dbcc checkdb(数据库名)检查数据时出现一致性错误
在数据库CHECKDB中发现x个分配错误和x个一致性错误
现在,以数据库文本为例,我们将解释如何处理这个问题:
-1.在SQL查询分析器中执行以下语句:(请注意,下面使用的文本是数据库名称,请手动将其更改为您自己的数据库名称)
使用文本
数据库名
-2、查看查询结果,有很多红色字体显示,最终结果有这样的提示:
- CHECKDB -发现x个分配错误和x个一致性错误(在数据库“文本”中)。
-正常情况下,分配错误的原因是磁盘损坏或突然断电;一致性错误可能是数据库中的坏表或索引,通常可以修复。
-3.检查红色字体,记录有错误的数据库表名,或者记录索引损坏的表名。
-4.将数据库设置为单用户模式,并在查询分析器中直接执行以下语句:(如果发现语句不成功,请注销用户的计算机并重新运行。)
执行sp_dboption '文本,'单用户','真'
-5.进入查询分析器并执行以下语句:
使用文本
Dbcccheckdb ('text ',repair _ allow _ data _ loss)-修复数据库
Dbcccheckdb ('text ',repair _ rebuild)-修复数据库索引
-6.再次执行:dbcc checkdb,检查数据库,结果是:
- CHECKDB在数据库“文本”中发现0个分配错误和0个一致性错误。
-数据库已修复。
-7.取消单用户模式,即在查询分析器中直接执行以下语句:
执行sp_dboption 'pos ','单用户',' FALSE '
Sql在修改前还原数据
1.如果它是oracle数据库,并且刚刚被删除,您可以执行以下语句
插入到表名中从表名中选择*从时间戳到_时间戳(' 2007-07-23 10: 20: 00 ',' yyyy-mm-ddhh 24:mi:ss ');
将语句中的日期和时间更改为误操作前的最晚时间
其次,如果它是一个sqlserver数据库,那么
1.首先,对错误删除的数据库进行日志备份;
将日志数据库名称备份到磁盘= '路径和日志备份文件名'
2.将数据库还原到上次完整数据库备份的日期;
从磁盘还原数据库数据库名称= '路径和数据库备份文件名'
带替换,无恢复
3.使用步骤1中的日志备份,在您误删除数据库之前还原数据库;
从磁盘还原日志数据库名= '路径和日志备份文件名'
随着复苏,停止='2009-4-24 16:40:10 '
将语句中的日期和时间更改为误操作前的最晚时间
第三,如果修改前有数据库备份,可以新建一个库,恢复备份,导出表数据,然后导入到现有库中。。
有许多不同的方法可以将数据库实时备份到另一个磁盘,例如:
1.如果有两台服务器,可以进行热备用
2.只有一台服务器可以进行磁盘镜像
3.也可以使用特殊的数据库备份软件
Sql数据库删除带有语句的表,如何恢复它们
如果有备份,就拿备份来处理。如果没有后援,那只能如一楼所说
如何用SQL语句备份和还原数据库?
SQL语句的备份和恢复
SQL Server:
备份命令:
备份数据库测试
到磁盘= 'c:\test '
有了格式,
名称= '我的新闻的完整备份'
解释如下:
NAME = ' my nwind的完全备份'-这是备注,随便写。
还原命令:
使用母版
去
RESTORE DATABASE test_wt
从磁盘= 'c:\test_wt '
去
MySQL:
备份:
MySQL dump-u root-p database _ name & gt。d:\db.bak
还原:
MySQL-u root-p database _ name & lt;d:\db.bak
注意:在WIN下,不能使用path/filename.sql作为路径,所以使用path \ filename.sql。
如何使用SQL数据库修复工具
优秀的SQL数据库修复工具功能:
支持各种版本的数据库
支持SQL的数据库损坏,各种错误问题的修复无法附加
支持SQL数据库823 824等错误修复
完美支持各种字符集,支持从MDF文件中反删除记录。
支持MDF NDF文件组恢复