RDS SQL Server 备份恢复到本地报错:Cannot find server certificate with thumbprint

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: RDS SQL Server 备份恢复到本地报错:Cannot find server certificate with thumbprint

问题描述


RDS For SQL Server备份恢复到本地报错:Cannot find server certificate with thumbprint,如截图


问题原因

RDS 实例开启了TDE功能,但是在还原时候,没有在本地实例上恢复证书


解决方案


场景1:没有证书

先在阿里云RDS控制台将不需要开启TDE功能的数据库移除(如截图),然后执行三次日志备份(因为关闭TDE时,很多数据已经在内存中了),再做一个全量备份,使用这个全量备份恢复到本地


场景2:有证书


创建DMK

第一步是使用密码在目标服务器上的主数据库中创建数据库主密钥 (DMK)。

此密码不必与源服务器中用于创建 DMK 的密码相同。

如果目标服务器中已经存在 DMK,则无需创建另一个

USE master;GO 
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='DifferentP@$$w0rd';--此处密码自定义GO

创建证书

使用开启TDE功能时自带的证书和私钥,应用到目标服务器实例。

通过 CREATE CERTIFICATE 语句将证书添加到目标服务器中的主数据库。

注意 FROM FILE 和 FILE 参数指向证书和私钥文件。

USE MASTER
GO
CREATE CERTIFICATE TDETest_Certificate
FROM FILE ='D:\MSSQL\bacup\TDETest_Cert'--此处修改为实际路径WITH PRIVATE KEY (FILE ='D:\MSSQL\bacup\TDETest_CertKey.pvk',--此处修改为实际路径DECRYPTION BY PASSWORD ='DifferentP@$$w0rd');--此处修改为实际密码

再恢复数据库

RESTORE DATABASE [db02]-- 此处修改为实际数据名称FROM DISK = N'D:\MSSQL\bacup\db02.bak';--此处修改为实际路径


注:在2016之前的版本,开启TDE功能,是不支持备份压缩的,所以开启TDE与未开启TDE空间有几倍的差距。
参考文档:
TDE功能:https://help.aliyun.com/document_detail/95716.html#section-7pn-r5w-lrw

TDE功能:https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/move-a-tde-protected-database-to-another-sql-server?view=sql-server-ver16
TDE压缩:https://docs.microsoft.com/en-us/archive/blogs/sqlcat/sqlsweet16-episode-1-backup-compression-for-tde-enabled-databases



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
SQL 存储 PHP
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第15天】在高版本的Laravel框架中,使用SQLServer 2008数据库进行分页操作时可能会遇到兼容性问题,导致报错。本文提供了两种解决方案:一是升级数据库版本至2012或更高,以提高对复杂查询的支持;二是通过自定义分页查询构建器,手动调整分页逻辑,使其适应SQLServer 2008的特性。具体实施步骤包括备份数据、安装新数据库版本、恢复数据,或创建自定义分页查询类并在模型中使用。这些方法能有效解决分页报错问题。
|
13天前
|
SQL PHP 数据库
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第6天】在高版本的 `laravel/framework` 中使用 SQL Server 2008 进行数据库操作时,可能会出现分页报错。这是由于 `laravel` 的分页机制与 SQL Server 2008 的某些特性不兼容所致。解决方法包括:1. 升级数据库版本;2. 自定义分页查询语句;3. 使用兼容包或插件;4. 修改 `laravel` 的分页逻辑。
|
1月前
|
SQL 运维 关系型数据库
MySQL 运维 SQL 备忘
MySQL 运维 SQL 备忘录
47 1
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
174 1
|
23天前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
34 0
|
23天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
31 0
|
1月前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
47 0
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
17 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
86 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
39 0