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

Database Migration Service 会复制您上传到 Cloud Storage 存储分区的 SQL Server 备份和事务日志文件中的数据。本页介绍了如何为迁移流程准备存储分区,以及数据库迁移服务需要什么样的文件夹结构才能识别您的备份文件。

如需为迁移准备存储分区,请执行以下步骤:

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

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

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

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

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

    • 数据库文件夹还可以选择性地包含用于差分备份文件的 diff 文件夹。

    • 如果您使用条带式完整备份文件或差分备份文件,则相应的 fulldiff 文件夹中必须包含一个额外的文件夹,其名称为以秒为单位的 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-databasemy-other-database。每个数据库都填充了从各自的 fulldifflog 文件夹中提取的数据。

    您可以混合使用单个文件或条带文件惯例来处理完整备份文件和差分备份文件。差分备份文件是可选的,因此您也可以将 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 所要求的命名惯例。请参阅 备份文件命名要求

后续步骤