Oracle to AWS Migration

Background

Migrating Oracle databases to the AWS cloud through IT-Conductor can be accomplished using a process definition. This automation feature in the platform simplifies the migration process from the provisioning of virtual machines (VMs) in the cloud environment to the installation of the application server on AWS.

Process Definition

To access the process definition developed for this demo scenario, navigate to the Tenant Service Grid > Process Definitions > Migrate Oracle to AWS.

Also, we used our tenant called “OZSoft” but the process can be cloned and applied to any customer after being onboarded to IT-Conductor as a tenant. IT-Conductor creates and clones the Git repository for each tenant who needs to leverage these types of automation runbooks.

Now, let's look into each step/activity of this process definition in detail.

Provision AWS VM

In this activity, a VM will be provisioned in AWS via Terraform script. Below is a sample terraform script.

module "common_infrastructure" {
  source              = "./modules/common_infrastructure"
  infrastructure      = var.infrastructure
  vms                 = var.vms

}


module "vms" {
  source              = "./modules/vms"
  infrastructure      = var.infrastructure
  vms                 = var.vms
  subnet_mgmt         = module.common_infrastructure.subnet_mgmt
  sshkey              = var.sshkey

}

# Generate output files
module "output_files" {
  source              = "./modules/output_files"
  infrastructure      = var.infrastructure
  vms                 = var.vms
  aws_instances       = module.vms.aws_instances
  sshkey              = var.sshkey
  
}

In the execution log below, you can see that the following resources are created:

  • local_file

  • aws_ebs_volume

  • aws_instance

  • aws_volume_attachment

Once the VM is deployed, we need to update the IP address (of the newly deployed VM) in the /oracle_hosts.yml file.

Prepare Oracle VM

In this activity, the Oracle database files required for the migration will be installed and configured.

Below are the tasks that will be performed upon execution:

  • Ensure Storage Management software is installed

  • Create disk Partitions

  • Create or extend Volume Groups

  • Create Logical Volumes

  • Create File Systems

  • Mount and make fstab entries

  • Update host files

  • Stop/disable firewalld

  • Enable ssh access through password

  • Restart SSHD

  • Mount network share

  • Update sysctl.conf

  • Run sysctl command

  • Deploy 99-sap.conf file

  • Deploy inifile.ora_user.params file

  • Start SWPM

  • Make /oracle/OOO/121 directory

  • Make /oracle/stage/121 directory

  • Create Symbolic link

  • Deploy db_OOO.rsp file

  • Change permission for /oracle

Install Oracle

In this activity, Oracle SAR files will be extracted, the environment for DB_SID will be set, and Oracle RDBMS will be installed.

Patch Oracle

After installing Oracle RDBMS, the MOPatch needs to be updated.

In this activity, the following tasks will be performed:

  • Set env OHRDBMS

  • Set env IHRDBMS

  • Set env SBPFUSER

  • Move OPatch

  • Unzip OPatch

  • Unzip sapbundle

  • Move MOPatch

  • Apply MOPatch

Primary Server Setup (On-prem)

In this activity, the log mode will be checked.

SELECT log_mode FROM v$database

If the database will be in the archive log mode, then it will get log_size from v$log.

Else, it will first switch to the archive log mode and then initialize the parameter.

During the task Modify Initialize Parameters, the SET STANDBY_FILE_MANAGEMENT will be set into AUTO.

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

Standby Server Setup

In this activity, the Standby DB server will be set up. Below are the tasks that will be performed upon execution:

  • Make DBS directory

  • Make parameter file

  • Update param file

  • copy listener.ora

  • copy tnsnames.ora

  • Stop DB

  • Start DB

  • Check with tnsping ozooo with command

  • Check with tnsping ozooo-dg with command

  • Make password file

Enable Broker (AWS)

In this activity, the enable_broker.sh file will be deployed using the following command:

sudo su - oraooo -c 'sh /tmp/enable_broker.sh

Enable Broker SQL (On-prem)

In this activity, the following SQL command will be used to enable the broker on the source on-prem server:

ALTER SYSTEM SET dg_broker_start=true;

Enable Broker Data Guard (On-prem)

In this activity, the data guard broker configuration will be removed by running a shell script that can be executed by ora<sid> user.

---

- hosts: vms-linux
  gather_facts: false
  become: true
  become_user: root
  roles:
    - role: on-prem/remove-broker

Remove Broker (AWS)

In this activity, the broker will be removed from the AWS server.

---

- hosts: vms-linux
  gather_facts: false
  become: true
  become_user: root
  roles:
    - role: remove-broker

Remove Broker Data Guard (On-prem)

In this activity, the broker data guard will be removed from the on-prem server.

---

- hosts: vms-linux
  gather_facts: false
  become: true
  become_user: root
  roles:
    - role: on-prem/enable-broker

Remove Broker SQL (On-prem)

In this activity, a SQL command will be used to remove brokers on the on-prem server.

alter system set dg_broker_start=false scope=both;

alter database drop standby logfile group 10;
alter database drop standby logfile group 11;
alter database drop standby logfile group 12;
alter database drop standby logfile group 13;

Install App Server (AWS)

In the final activity, the application servers will be installed.

Below are the tasks that will be performed upon execution:

  • Stop DB

  • Delete listener.ora

  • Delete tnsnames.ora

  • Copy initOOO

  • Copy spfileOOO

  • Deploy change_db_role.sh file

  • Run change DB role query

  • Install SAP APP Instance

End

Last updated

Change request #660: