AWS Backup 能否与在 EC2 实例上运行 Oracle 的 Windows 2012 服务器一起使用?

Posted

技术标签:

【中文标题】AWS Backup 能否与在 EC2 实例上运行 Oracle 的 Windows 2012 服务器一起使用?【英文标题】:Can AWS Backup be used with Windows 2012 servers running Oracle on EC2 instances? 【发布时间】:2022-01-08 08:16:01 【问题描述】:

我们有一台相当大的 Windows Server 2012 R2 机器,上面运行着 Oracle 12c。我们使用 AWS MGN(应用程序迁移服务)将该本地机器迁移到 AWS。迁移已经过测试并且是成功的 - 所以我们现在有一个大型 Windows 2012 R2 EC2 实例在 AWS 上运行 Oracle 12c 服务器。

我正在尝试使用 AWS Backups 拍摄 Oracle 实例的快照,以尝试对其进行还原,这是迈向完整 DR 计划的第一步。快照恢复得很好,我们能够登录到 Windows 实例,但似乎 Oracle 表处于不一致状态,我没有从 AWS 备份中获得干净的快照。 Microsoft VSS 似乎已在恢复的实例上启用。

问题是:是否有人成功使用 AWS Backups 在 Windows Server 上备份和还原 Oracle 数据库?如果是这样,我们需要做出哪些改变?我包括了一些 terraform 以供参考:

resource "aws_backup_plan" "weekly" 
  name = "Legacy$var.environment_tagWeekly"

  rule 
    enable_continuous_backup = false
    rule_name                = "Legacy$var.environment_tagWeekly"
    target_vault_name        = aws_backup_vault.legacy.name
    schedule                 = var.backup_plan_weekly_schedule
    start_window             = 60  # minutes
    completion_window        = 180 # minutes

    lifecycle 
      cold_storage_after = 30  # days
      delete_after       = 120 # days
    

    copy_action 
      destination_vault_arn = aws_backup_vault.legacy.arn

      lifecycle 
        cold_storage_after = 30  # days
        delete_after       = 120 # days
      
    

    copy_action 
      destination_vault_arn = aws_backup_vault.secondary.arn

      lifecycle 
        cold_storage_after = 30  # days
        delete_after       = 120 # days
      
    
  

  advanced_backup_setting 
    backup_options = 
      WindowsVSS = "enabled"
    
    resource_type = "EC2"
  

  tags = merge(
    local.tags, 
      "Name" = "Legacy$var.environment_tagWeekly"
    
  )


resource "aws_backup_selection" "weekly" 
  iam_role_arn = aws_iam_role.legacy_backup.arn
  name         = "Legacy$var.environment_tagWeekly"
  plan_id      = aws_backup_plan.weekly.id

  selection_tag 
    type  = "STRINGEQUALS"
    key   = "AWSBackup"
    value = "weekly"
  


resource "aws_backup_vault" "legacy" 
  name        = "Legacy$var.environment_tag"
  kms_key_arn = aws_kms_key.mgn.arn

  tags = merge(
    local.tags, 
      "Name" = "Legacy$var.environment_tag"
    
  )

【问题讨论】:

【参考方案1】:

事实证明,即使在快照完成后,AWS Backup 也会将数据库保持在“备份”状态,因此恢复的实例仍然认为它不是处于一致状态。解决此问题的方法是进入恢复的实例,启动 Oracle SQL 提示符并运行以下命令:

alter database end backup;

【讨论】:

以上是关于AWS Backup 能否与在 EC2 实例上运行 Oracle 的 Windows 2012 服务器一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

我们能否通过 AWS Cloudformation 动态创建密钥对并将 .PEM 文件复制到 EC2 Linux 实例

如何让我的Lambda函数与在本地计算机上运行的服务器通信?

在 AWS EC2 上从 AWS ECR 中提取图像,而不使用 docker login,但使用 EC2 实例角色和 ECR 存储库权限

在一个 AWS EC2 实例上运行多个环境 (Elastic Beanstalk)

AWS Java SDK - 在 EC2 实例上使用 SSM 运行命令

AWS Elastic Beanstalk:在运行 PHP 的 EC2 实例上终止 HTTPS