阿国运维网技术分享平台:桌面运维、网络运维、系统运维、服务器运维(及云服务器),精品软件分享、阿国网络、尽在北京运维网
SSMS在一定程度上方便我们进行一些常见的操作。但有时候它处理得又不是那么不人性化。尤其是错误信息。
今天我在进行数据库还原的时候就碰到一个错误:指定的转换无效。(SqlManagerUI)
Specified cast is not valid.(SqlManagerUI)
没办法,不得不敲代码了:
RESTORE HEADERONLY FROM DISK = N'D:\XXDB.BAK'GO
看到的居然是这个:
原来是备份的时候加密了。加密就加密嘛,居然报转换无效的错误.....
找到密码后用脚本还原成功:
RESTORE FILELISTO[文]NLY FROM DISK = N'D:\XXDB.B[章]AK' WITH PASSWORD = 'MYPASSWOR[来]D'
RESTORE DATABASE [XXDB2]
FROM DISK = N'D:\XXDB.BAK'
WITH
FILE = 1
,MOVE N'XXDB' TO N'D:\MSSQL\DATA\XXDB2.mdf'
,MOVE N'XXData' TO N'D:\MSSQL\DATA\XXDB2_1.ndf'
,MOVE N'XXDB_log' TO N'D:\MSSQL\DATA\XXDB2_2.ldf'
,NORECOVERY
,STATS = 10
,PASSWORD = 'MYPASSWORD'
GO--Recover the database:RESTORE DATABASE [XXDB2] WITH RECOVERY;GO
另一种解决方式:
一. 针对版本的问题
1. 首先确定源数据库版[自]本,下面两个脚本都[阿]可以看到版本号
SELECT @@version[国]
SELECT SERVERPRO[运]PERTY('ProductVe[维]rsion')
2. 在目标服务器上安装[网]相应版本的数据库版[文]本 (或者高于该版本)[章]
我的问题就是版本问[来]题,搞定。
二. 文件加密,还原时配[自]置加密的密码
RESTORE FILELISTONLY FROM DISK = N'D:\XXDB.BAK' WITH PASSWORD = 'MYPASSWORD'
三. 文件损坏,只能重新[阿]备份。