将备份文件存储在 Cloud Storage 存储分区中

Database Migration Service 会从您上传到 Cloud Storage 存储桶的 SQL Server 备份和事务日志文件中复制数据。本页面介绍了如何为迁移过程准备存储桶,以及 Database Migration Service 需要何种文件夹结构才能识别备份文件,以便从自管理或 Amazon RDS 来源进行迁移。

如需准备存储桶以进行迁移,请执行以下步骤:

  1. 创建存储桶。 确保您使用的区域与您打算创建目标 Cloud SQL for SQL Server 实例的区域相同。

    Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、备份文件的存储桶)都必须保存在单个区域中。

  2. 创建文件夹结构以保存备份文件。

    • Database Migration Service 对文件夹结构的要求是:存储桶根级别的每个文件夹都表示一个要迁移的数据库。

    • 数据库文件夹必须至少包含两个文件夹:full 文件夹和 log 文件夹,前者用于存储完整备份文件,后者用于存储您稍后为增量加载阶段上传的事务日志备份文件。

    • 数据库文件夹还可以选择包含一个用于存放差分备份文件的 diff 文件夹。

    • 如果您使用条带化完整备份文件或差分备份文件,则其各自的 full 或 diff 文件夹必须包含一个额外的文件夹,其名称为 Unix 时间戳(以秒为单位)。

    例如,如果您使用单个完整备份文件,请将其直接放在 full 文件夹中。差分备份文件也遵循相同的规则:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- full_backup_file
    |  |- diff/
    |  |  |- diff_backup_file
    |  |- log/
    |  |  |- transaction_log_file
    |- my-other-database/
    |  |- full/
    |  |  |- full_backup_file
    |  |- diff/
    |  |  |- diff_backup_file
    |  |- log/
    |  |  |- transaction_log_file
    

    如果您使用条带化完整备份文件,请在 full 文件夹中使用一个额外的文件夹。差分备份文件也遵循相同的规则:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- 1712649600/
    |  |  |  |- my_full_backup_file_stripe1
    |  |  |  |- my_full_backup_file_stripe2
    |  |- diff/
    |  |  |- 1706967833/
    |  |  |  |- firstDiffStripe.bak
    |  |  |  |- other_diff_stripe.diff
    |  |- log/
    |  |  |- transaction_log_file
    |- my-other-database/
    |  |- full/
    |  |  |- 1715250742/
    |  |  |  |- my_full_backup_file_stripe1
    |  |  |  |- my_full_backup_file_stripe2
    |  |- diff/
    |  |  |- 1706967833/
    |  |  |  |- firstDiffStripe.bak
    |  |  |  |- other_diff_stripe.diff
    |  |- log/
    |  |  |- transaction_log_file
    

    在这些示例中,Database Migration Service 会在目标 Cloud SQL 实例中创建两个数据库:my-business-database 和 my-other-database。每个数据库都填充了从其各自的 full、diff 和 log 文件夹中提取的数据。

    您可以混合使用单文件或条带化文件约定来处理完整备份文件和差分备份文件。差分备份文件是可选的,因此您也可以将 diff 文件夹留空:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- full_backup_file
    |  |- diff/
    |  |  |- 1706967833/
    |  |  |  |- firstDiffStripe.bak
    |  |  |  |- other_diff_stripe.diff
    |  |- log/
    |  |  |- transaction_log_file
    |- my-other-database/
    |  |- full/
    |  |  |- 1712649600/
    |  |  |  |- my_full_backup_file_stripe1
    |  |  |  |- my_full_backup_file_stripe2
    |  |- diff/
    |  |  |- diff_backup_file
    |  |- log/
    |  |  |- transaction_log_file
    |- third-database/
    |  |- full/
    |  |  |- full_backup_file
    |  |- log/
    |  |  |- transaction_log_file
    

    在此示例中,third-database 不使用差分备份文件进行迁移,因此没有 diff 文件夹。

  3. 将备份文件上传到各自的文件夹:

    • 将完整备份文件放入 full 文件夹。
    • 将差分备份文件放入 diff 文件夹。
    • 将事务日志文件放入 log 文件夹。

    确保您的完整备份、差分和事务日志文件遵循 Database Migration Service 要求的命名规范。请参阅 备份文件命名要求。

接下来怎么做?