我正在同一台服务器上将一个数据库从SQL Server 2012
迁移到SQL Server 2014
。
我在一个显然是加密的数据库上配置日志传送:
在设置日志传送时,我得到了以下消息(当它开始从备份恢复数据库时):
我是这里的新DBA,没有关于主密钥、加密密钥等的报告。
我正在设置从SQL2012到SQL2014的日志传送(没有恢复)。如果我将此数据库设置为Encryption enabled - false
并尝试使用日志传送向导恢复数据库,会发生什么错误?
关于这个问题有一些问题,比如这一个,但是他们都说我需要密码。
我刚刚在主服务器(2012年)的master > security > certificates
上找到了这个证书:
在Interet上有一些代码示例,但是我真的不能相信它们(我不认为这太简单了):
`USE MASTER
GO
ALTER DATABASE DatabaseName
SET ENCRYPTION OFF
GO
USE DatabaseName
GO
DROP DATABASE ENCRYPTION KEY
GO`
Edit1:
在这个问题上 Dylon说:
如果收到拇指打印错误,则无法从源服务器的证书/密钥备份中正确创建证书。
我对这个主题感到困惑,我想要的只是禁用加密,恢复另一台服务器上的数据库以记录传送,并在某一天激活加密。
Edit2:
在Database > tasks > manage database encryption
上也有一些选项:
禁用它,我将能够再次备份数据库,并在新实例上恢复它?
发布于 2015-12-22 04:46:58
不要禁用TDE。除了是一个冗长的数据大小操作之外,它最初建立是有原因的,您可能会破坏TDE存在的任何遵从性/操作原因。
而是在TDE存在的情况下正确地设置日志传送。遵循将受TDE保护的数据库移动到另一个服务器中描述的步骤。您将从原始服务器导出TDE证书,然后在备用服务器上导入它,确保它是用master
数据库主密钥加密的,而数据库master
主密钥又是用服务主密钥加密的。在此之后,如果操作正确,恢复操作就会成功,因为需要的TDE证书已经存在。
要复制证书:证书位于主实例的master
数据库中。你得跑:
BACKUP CERTIFICATE TDE_CERT
TO FILE <where to save cert>
WITH PRIVATE KEY (FILE = <where to save private key>,
ENCRYPTION BY PASSWORD = <password for the private key file>);
然后将证书文件和私钥文件复制到辅助文件中,并使用以下方法在master
中还原它:
CREATE CERTIFICATE TDE_CERT
FROM FILE = <your copied cert file>
WITH PRIVATE KEY (FILE = <your copied private key file>,
DECRYPTION BY PASSWORD = <password that protects private key file>);
TDE_CERT
在master
上的辅助需要用master
数据库主密钥加密,这很可能需要创建。
https://dba.stackexchange.com/questions/124321
复制