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

Database Migration Service 会复制您上传到 Cloud Storage 存储桶的 SQL Server 备份文件和事务日志文件中的数据。本页介绍了如何为迁移程序准备存储桶,以及 Database Migration Service 识别备份文件所需的文件夹结构。

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

  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 要求的命名惯例。请参阅 备份文件命名要求

接下来怎么做?