Deploying Database Systems and Application VMs on Oracle Database Appliance

This document in the Solution-in-a-Box series provides a step-by-step guide to utilize the KVM technology on Oracle Database Appliance bare metal system release 19.10.0.0.0 and later. It provides guidelines how to create the Application tier together with the database tier on the same Oracle Database Appliance hardware.

About Oracle Database Appliance

Oracle Database Appliance is a pre-built, ready to deploy platform for Oracle Database.

Oracle Database Appliance is an engineered system, an integrated, full-stack solution developed for Oracle Database. Oracle hardware and software are designed to work perfectly together and are able to run crucial customer workloads faster, at lower costs, and with greater security than multivendor, on-premises ‘build your own’ solutions. Each Oracle Database Appliance system consists of server nodes, networking, and redundant storage. Oracle Database Appliance can be a single node model (S for small, M for Medium and in the case of X6-2L, for Large), or a two node HA model (HA models support high-availability). With the High-Availability models, you get two clustered nodes and you are able to create highly-available Oracle RAC databases easily and quickly using either the browser user interface (BUI) or the command-line interface (CLI).

Why Use Virtualization and How does Oracle Database Appliance provide a Virtualization Solution

Understand how Oracle Database Appliance can address your virtualization requirements.

Why use Virtualization?

There are several reasons why virtualization might be considered. Virtual Machines (VMs) can be used to consolidate and to utilize resources more effectively. Rather than disable cores that are not licensed, you can utilize them for other workloads. This can reduce the number of physical servers, resulting in space, power maintenance reductions, and cost savings. Virtualization is a great technology that provides application and database isolation and enables bundling of applications, middleware, and databases on the same hardware.

How does Oracle Database Appliance provide a Virtualization Solution?

Oracle Database Appliance has provided virtualization since Oracle Database Appliance release 2.5. To use virtualization on Oracle Database Appliance earlier, it had to be deployed with a special image. Users had to decide before deploying Oracle Database Appliance to go with either the bare metal (BM) image or the virtualized platform image (VP). To change from one layout to the other, the appliance had to be reimaged from scratch. Oracle Database Appliance VP was only available for Oracle Database Appliance High Availability (2 node appliance) and not for single node appliance. Virtualization on Oracle Database Appliance was introduced to allow the utilization of cores not licensed for Oracle Database. To avoid leaving these cores unused, virtualization allowed to utilize them for virtual machines hosting applications, webservers, and others. To host not only the database tier, but also the application and web tier on the same Oracle Database Appliance is also known as Solution-in-a-Box. This concept is widely adopted and not only used for Oracle Applications like EBS, WLS, Peoplesoft, Oracle Hospitality to name a few, but as well for many customer and third party software vendor developed applications.

In the past virtualization on ODA was implemented via Oracle Virtual Machine (OVM) which is a type 1 bare metal hypervisor based on xen technology. This option will still be available for some time, but in the future, virtualization on ODA will only be available via KVM (last OVM version will be 19.13). KVM stands for Kernel-based Virtual Machine and is a type 2 host OS-based hypervisor. KVM provides modules that enable the Linux kernel to be used as a hypervisor. It is available on all ODA hardware models (single node and HA). KVM is a mature technology that has been around since 2007 and offers several advantages. To name one, ODA will not need separate BM and VP images anymore. Starting with ODA 19.9, ODA integrated KVM support for applications. A user can use ODA's built-in BUI or the command line to manage the Application VM life cycle. The user is responsible for managing the application inside the KVM, for the ODA software tooling it is a ‘black box’. Starting with ODA 19.10, ODA integrates KVM support for Oracle databases. A user can use ODA's built-in BUI or the command line to manage both DB System (ODA’s database KVM system) life cycle and databases inside DB Systems. DB Systems allow Oracle hard partitioning licensing, thus a user only needs to have Oracle Database licenses for the CPU cores assigned to the DB System.

Oracle Database Appliance Virtualization Terminology

Understand the terminology used in this document.

  • Virtual Machine (VM): Image and virtual resources that behave like an actual server within the host server.
  • KVM guest machine: The software on an application VM with an independent operating system instance.
  • DB System (KVM Database System): A database VM which runs an Oracle Database on Oracle Database Appliance. The DB System is created and managed by Oracle Database Appliance tooling.
  • VM Storage: Central location for storing resources needed to create virtual machines.
  • Virtual Network: Separate virtual network for the VM.
  • Virtual Disk: Additional storage option for VMs to add additional block storage.
  • KVM Database System Networks: Default networks created on Oracle Database Appliance, which are the public network (vnetwork pubnet) and the internal managed cluster interconnect and Oracle ASM network.

Solution-in-a-Box Designs

There are three basic scenarios on how to install the application along with the database on an Oracle Database Appliance. For an Oracle Database Appliance High-Availability hardware model, there are additional designs since your database can be a Oracle RAC or a single instance database on one node only and depending on your application, you may be able to run it on one or both nodes.

The basic scenarios are:

Application and Database installed in bare metal system

This option is only applicable for a few applications which do not interfere with the database software and operating system installation. One supported example is the Oracle Enterprise Manager software.

Description of option1_application_db_in_bm.png follows
Description of the illustration option1_application_db_in_bm.png

Database installed in bare metal system, Application installed in KVM guest machine

This option does not allow hard partitioning, that is, separation of cores for database and application is not possible.

Description of option2_application_in_bm_db_in_kvm.png follows
Description of the illustration option2_application_in_bm_db_in_kvm.png

Database and Application in separate KVM guest machines

This third option is ideal to separate resources for databases and applications and license them independently. This step-by-step guide covers an example of the third case since this is the best solution for most use cases.

Description of option3_application_db_in_kvm.png follows
Description of the illustration option3_application_db_in_kvm.png

High-Availability and Networking Considerations

Understand the high-availability and networking options when deploying your Solution-in-a-Box.

High-Availability Considerations

With Oracle Database Appliance, the best High Availability option is to use an Oracle RAC database. An Oracle RAC One Node design may be sufficient for your availability requirements as well. These options are only available with an Oracle Database Enterprise Edition (EE) licence. Oracle Database Standard Edition (SE) Oracle databases have Standard Edition High Availability (SEHA) feature enabled. The KVM guest machines you create for your applications are set up by default to auto-restart and auto-failover. You can confirm the setting by running the command odacli describe-vm. The output displays: Auto start: YES - Fail over: YES

Networking Considerations

Oracle Database Appliance KVM virtual network supports two type of networks, bridged and bridged-vlan. For bridged network, a bridge is created and a NIC or a bond is attached to it. On the public network, selected during appliance deployment, a bridge with the name pubnet is attached. If a VM needs access to pubnet, it can be attached to this network. This pubnet vnetwork cannot be modified or deleted. If additional bridged virtual networks are required, then they can be created on other interfaces that are not used for the pubnet. For DB Systems on Oracle Database Appliance release 19.10, you cannot use a virtual network other than the pubnet. With later releases of Oracle Database Appliance, VLANs can be created on all available public interfaces, including the interface on which the public network is already configured. When planning to run one or more DB Systems, be aware that every DB System requires its own set of VIPs and SCAN IPs.

Solution: Create an Application VM with Linux Operating System

Following is an example of how to set up an application VM or a Compute Instance with Linux operating system.

Tip:

Some of the following steps are mandatory as indicated, and other steps are optional. Decide to run the optional steps based on how you designed your Solution-in-a-Box. For example, if your application VM must only use a defined number of CPUs, then, you must create a VM CPU Pool as part of the process. Creation of VM storage is mandatory as several application VMs can share a single VM storage. If you have specific network requirements, you can create additional virtual networks for these purposes. Another optional step is the creation of virtual disks. One VM disk is created for each application guest KVM as part of the VM instance creation. You can create additional virtual disks for your application VM and these virtual disks can be shared between different application VMs, if required.

Step 1: Create a VM CPU Pool (Optional)

Create a CPU pool to specify how many CPU cores your KVM should use. This CPU pool is later assigned to the KVM guest machine.

In the Browser User Interface (BUI), in the Appliance tab, navigate to the Create CPU Pool page and specify the CPU Pool Name, Number of CPU Cores, and select the CPU Pool Type as VM Instance.

Description of create_cpu_pool.png follows
Description of the illustration create_cpu_pool.png

ODACLI command for creating a CPU pool:

# odacli create-cpupool -n testcpupool -c 2 -vm

Step 2: Create VM Storage

In the Appliance tab, select Compute Instances, and then navigate to the Create VM Storage page and specify Storage Name, Storage Size, and ASM Disk group. Click Create.

Description of create_vm_storage.png follows
Description of the illustration create_vm_storage.png

ODACLI command for creating VM storage:

# odacli create-vmstorage -n testvmstor -s 100G -dg DATA 

Note that the default value of -dg is DATA.

Step 3: Create a Virtual Network (if required)

Any VM that needs to access the public network must be attached to the pubnet virtualnetwork. No bridged network other than the default pubnet bridge is allowed to be created on the public network interface. Additional bridged vnetwork (public network without tagged VLAN configuration) can be created on other interfaces that are not used for the public network. It is not mandatory to assign IP addresses to the bridge. IP addresses are only required if communication between the bare metal system host and the KVM guest is desired. When two IP addresses are assigned to a high-availability machine, the first will be assigned to the bridge on node0 and the second IP address to node1.

Description of create_vnetwork.png follows
Description of the illustration create_vnetwork.png

ODACLI command for creating a virtual network:

# odacli create-vnetwork –name officenet –bridge bridge4kvm –type bridged –interface bond1 –ip xx.xx.xx.xx –gateway xx.xx.xx.xx –netmask xx.xx.xx.xx

Step 4: Create Virtual Disk (if required)

During the VM creation, a VM disk is created to host the operating system. If additional disks are required ,you must create them in advance. Using virtual disks provides better control over the storage layout of your VM.

Description of create_vdisk.png follows
Description of the illustration create_vdisk.png

ODACLI command for creating a virtual disk:

# odacli create-vdisk -n testvmdisk -vms testvmstor -s 49G -sh

Step 5: Create the VM Instance

To create the VM go to ‘VM Instances’ and ‘Create VM’. Type in the mandatory information for your VM plus the additional configuration you would like to use for your VM guest. Mandatory information is the ‘VM name’, ‘VM Storage Name’, the path to the application to install, under ‚Source installation‘. You have as well to define how many CPUs and how much memory to use for the VM. If you have created a CPU Pool a Virtual Disk or a Virtual Network, select them into the respective fields. Specify the size of the OS disk to be created for your VM guest in “VM Disk Size”. If you need your VM to access the DB System via the pubnet, make sure ‘pubnet’ is selected in the ‘Virtual Networks’.

In the Appliance tab, select Compute Instances, and then navigate to the Create VM Instance page and specify VM Name and VM Storage Name. Specify the path for the installation of application in the Source Installation field. Define the Number of vCPUS to use and the Maximum Memory Size for the VM. If you have created a CPU pool, virtual disk, or virtual network, then specify their names. Specify the operating system disk size to be created for your guest VM in the VM Disk Size field. To ensure that your VM can access the DB system through the pubnet, select pubnet in the Virtual Networks field. Click Create.

Description of create_vm_instance.png follows
Description of the illustration create_vm_instance.png

ODACLI command for creating a VM instance:

# odacli create-vm -n testvm2 -vc 2 -m 8G -vms testvmstor -vd testvmdisk -s 49G -cp testcpupool -vn pubnet -src /u01/software/oel77.iso

Step 6: Complete the operating system installation

If the creation of the VM was successful, use the odacli describe-vm command to check the VNC port.

# odacli describe-vm -n testvm2
VM details                                                                      
--------------------------------------------------------------------------------
                       ID:  4956584d-7409-4d38-8a22-60653a6c2ae1
                     Name:  testvm2
                  Created:  2021-05-10 02:24:01 HDT
                  Updated:  2021-05-10 02:24:01 HDT
               VM Storage:  testvmstor
              Description:  NONE
                  VM size:  49.00 GB
                   Source:  oel77.iso
                  OS Type:  NONE
               OS Variant:  NONE
        Graphics settings:  vnc,listen=127.0.0.1
             Display Port:  127.0.0.1:2     <-VNC port

 Status                   
--------------------------
             Current node:  node1
            Current state:  ONLINE
             Target state:  ONLINE

 Parameters               
--------------------------
           Preferred node:  NONE
              Boot option:  NONE
               Auto start:  YES
                Fail over:  YES

                            Config                     Live                     
                            -------------------------  -------------------------
                   Memory:  8.00 GB                    8.00 GB                  
               Max Memory:  8.00 GB                    8.00 GB                  
               vCPU count:  2                          2                        
           Max vCPU count:  2                          2                        
                 CPU Pool:  testcpupool                testcpupool              
        Effective CPU set:  2-3,38-39                  2-3,38-39                
                    vCPUs:  0:2-3,38-39                0:2-3,38-39              
                            1:2-3,38-39                1:2-3,38-39              
                   vDisks:  testvmdisk:vdb             testvmdisk:vdb           
                vNetworks:  pubnet:52:54:00:7d:7b:6b   pubnet:52:54:00:7d:7b:6b

Step 7: Connect to the Oracle Database Appliance bare metal system node using VNC

To find out the VNC port that the bare metal system (not the KVM guest machine) uses, run the vncserver command.
# vncserver
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
xauth:  file /root/.Xauthority does not exist

New 'node1:1 (root)' desktop is node1:1   VNC port

Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/node1:1.log

Use a VNC client of your choice and connect to host:vncport (the host is your Oracle Database Appliance bare metal system, the VNC port is from the vncserver command).

Description of vnc_settings.png follows
Description of the illustration vnc_settings.png

The command prompt in the VNC viewer of type vncviewer 127.0.0.1:2 is displayed. Note that this Display Port: 127.0.0.1:2 is the same as displayed in the odacli describe-vm output.

Description of vnc_cmd.png follows
Description of the illustration vnc_cmd.png

Step 8: Complete the installation process

Select the language:

Description of oracle_linux_installation.png follows
Description of the illustration oracle_linux_installation.png

In the Device Selection screen, the disks that were created when you ran the odacli create-vm and odacli create-vdisk commands are displayed. Ensure that you select the appropriate disk for the operating system install.

Description of oracle_linux_installation_device_selection.png follows
Description of the illustration oracle_linux_installation_device_selection.png

Accept the message to restart, and then run the VNC to complete the setup, such as accepting the license agreement.

Step 9: Configure the Application VM network

After the Linux operating system installation for the application VM is completed, the VM may have several interfaces. The following example describes how to assign the IP address to the pubnet and locate the MAC address for this interface.
# odacli describe-vm -n testvm2 | grep vNetworks
                vNetworks:  pubnet:52:54:00:7d:7b:6b   pubnet:52:54:00:7d:7b:6b
Login to the application VM through the VNC client and run the command ip link show to identify the interface with the MAC address described in the command above.
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:7d:7b:6b brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:42:63:d7 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:42:63:d7 brd ff:ff:ff:ff:ff:ff
Edit the /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/resolv.conf file to find the DNS inside the VM. Refer to your operating system specific document to configure the network interface. The following is an example:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
NM_CONTROLED=no
ONBOOT=yes
IPADDR=your IP address
PREFIX=your subnet prefix 
GATEWAY=your gateway
# cat /etc/resolv.conf 
search domain
nameserver your first DNS server
nameserver your second DNS server

Step 10: Test for the required connectivity to the VM guest machine

Test that you are able to connect to all guest machines and clients (database, external machines, and others). To connect as root through SSH, you may need to change SELINUX to permissive mode in the /etc/selinux/config file. If required, test this connectivity as well after you migrate the VM guest machine to the other node. To migrate the node, run the following commands:
# odacli describe-vm -n testvm2 | grep 'Current node'
 Current node: node1

# odacli migrate-vm -n testvm2 -to node2

# odacli describe-vm -n testvm2 | grep 'Current node'
 Current node: node2

Solution: Create an Application VM with Windows OS

Following is an example of how to set up an application VM or Compute Instance with Microsoft Windows operating system.

The following procedure is applicable for Oracle Database Appliance release 19.12 or later. If your Oracle Database Appliance is on an earlier release, then follow the instructions in My Oracle Support Note 2748946.1 at the location https://support.oracle.com/rs?type=doc&id=2748946.1.

Before you start, download the Oracle VirtIO Drivers Version for Microsoft Windows software either from Oracle Software Delivery Cloud or from My Oracle Support. For details, refer to the Oracle Linux KVM User's Guide at https://docs.oracle.com/en/operating-systems/oracle-linux/kvm-user/kvm-virtio.html#kvm-virtio-download. With BUI of Oracle Database Appliance release 19.12 or 19.11, the option to define an external source is not available. Use ODACLI commands to create the VM with the option -esrc.

Step 1: Create a VM CPU Pool (Optional step, required only for cases when you need dedicated CPU resources for the Windows VM)

# odacli create-cpupool -n winvmcpupool -c 2 -vm

Step 2: Create VM Storage

# odacli create-vmstorage -n winvmstor -s 100G -dg DATA

Step 3: Create Virtual Disk (Optional, required only if you need additional disks for the Windows VM )

# odacli create-vdisk -n winvmdisk -vms winvmstor -s 49G -sh

Step 4: Create the VM Instance

# odacli create-vm -n winvm -vc 2 -m 8G -vms winvmstor -s 49G -vd winvmdisk -cp winvmpool -vn pubnet -src /tmp/win19.iso -esrc /tmp/winvirtio.iso -ost windows

Step 5: Identify the VNC port

# odacli describe-vm -n winvm
VM details                                                                      
--------------------------------------------------------------------------------
                       ID:  7b741c6a-7073-4d39-9270-24698b887135
                     Name:  winvm
                  Created:  2021-08-03 02:59:42 HDT
                  Updated:  2021-08-03 02:59:42 HDT
               VM Storage:  winvmstor
              Description:  NONE
                  VM size:  49.00 GB
                   Source:  win19.iso
                  OS Type:  windows
               OS Variant:  NONE
        Graphics settings:  vnc,listen=127.0.0.1
             Display Port:  127.0.0.1:0

 Status                   
--------------------------
             Current node:  node1
            Current state:  ONLINE
             Target state:  ONLINE

 Parameters               
--------------------------
           Preferred node:  NONE
              Boot option:  NONE
               Auto start:  YES
                Fail over:  YES

                            Config                     Live                     
                            -------------------------  -------------------------
                   Memory:  8.00 GB                    8.00 GB                  
               Max Memory:  8.00 GB                    8.00 GB                  
               vCPU count:  2                          2                        
           Max vCPU count:  2                          2                        
                 CPU Pool:  winvmpool                  winvmpool                
        Effective CPU set:  0-1,32-33                  0-1,32-33                
                    vCPUs:  0:0-1,32-33                0:0-1,32-33              
                            1:0-1,32-33                1:0-1,32-33              
                   vDisks:  winvmdisk:vdb              winvmdisk:vdb        
                vNetworks:  pubnet:52:54:00:84:8f:cd   pubnet:52:54:00:84:8f:cd

Step 6: Connect to the Oracle Database Appliance bare metal system node using VNC

To find out the VNC port that the bare metal system (not the KVM guest machine) uses, run the vncserver command.
# vncserver
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
xauth:  file /root/.Xauthority does not exist

New 'node1:1 (root)' desktop is node1:1   VNC port

Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/node1:1.log

Step 7: Connect to the VM guest machine using VNC

Use a VNC client of your choice and connect to host:vncport (the host is your Oracle Database Appliance bare metal system, the VNC port is from the vncserver command).

Description of vnc_settings.png follows
Description of the illustration vnc_settings.png

The command prompt in the VNC viewer of type vncviewer 127.0.0.1:2 is displayed. Note that this Display Port: 127.0.0.1:2 is the same as displayed in the odacli describe-vm output.

Description of vnc_cmd.png follows
Description of the illustration vnc_cmd.png

Step 8: Complete the Windows operating system installation

Select the configuration details.

Description of windows_server_selection1.png follows
Description of the illustration windows_server_selection1.png

Provide the required values and navigate through the installation setup.

Description of windows_server_install.png follows
Description of the illustration windows_server_install.png

Select the configuration details.

Description of windows_setup_os_selection.png follows
Description of the illustration windows_setup_os_selection.png

When prompted Where do you want to install Windows?, select Load driver.

Description of windows_setup_load_driver.png follows
Description of the illustration windows_setup_load_driver.png

Navigate to the VirtIO driver on E: CDROM drive.

Description of windows_setup_load_driver_path.png follows
Description of the illustration windows_setup_load_driver_path.png

In the vio/Win10/amd64 directory, select viostororcl.inf from the list.

Description of driver_selection_windows_setup.png follows
Description of the illustration driver_selection_windows_setup.png

After loading the driver, the pre-created virtual disk and the extra virtual disk (winvmdisk) is displayed. Select the pre-created virtual disk and continue with the installation.

Description of drive_selection_windows_setup.png follows
Description of the illustration drive_selection_windows_setup.png

Review the progress of the installation.

Description of windows_install_progress.png follows
Description of the illustration windows_install_progress.png

To run Ctrl+Alt+Delete in the Windows operating system, click inside the Windows screen and press the F8 key. On a Mac, press Fn+F8.

Description of lock_inside_windows.png follows
Description of the illustration lock_inside_windows.png

Step 9: Install the VirtIO drivers by running Setup from the CDROM drive E:

Description of install_virtio_drivers.png follows
Description of the illustration install_virtio_drivers.png

Navigate through the installation setup.

Description of driver_installation.png follows
Description of the illustration driver_installation.png

Select the default option.

Description of default_driver_selection.png follows
Description of the illustration default_driver_selection.png

When prompted, do not select to restart the computer.

Description of choose_not_to_restart.png follows
Description of the illustration choose_not_to_restart.png

Restart the computer from the Windows Start menu.

Description of restart_from_start_menu.png follows
Description of the illustration restart_from_start_menu.png

Step 10: Complete the configuration

Connect to your guest VM using VNC and configure it according to your needs. For example, you can assign a fixed IP address.

Description of assign_fixed_ip.png follows
Description of the illustration assign_fixed_ip.png

After disabling the Windows firewall, you can ping the bare metal system host IP from the KVM guest machine and vice versa.

Description of firewall_disable.png follows
Description of the illustration firewall_disable.png

Step 11: Remove the ISO image files

To delete the ISO files from the /tmp directory, you must remove the files from the KVM configuration as follows:
  1. Stop the VM:
    odacli stop-vm -n winvm
  2. View the list of configured disks:
    virsh domblklist winvm
    ------------------------------------------------------------------------------- 
    vda /u05/app/sharedrepo/winvmstor/.ACFS/snaps/vm_winvm/winvm 
    vdb /u05/app/sharedrepo/winvmstor/.ACFS/snaps/vdisk_winvmdisk/winvmdisk 
    hda /tmp/win19.iso 
    hdb /tmp/winvirtio.iso 
  3. Detach disks:
    virsh detach-disk winvm hda –config (to detach the install media)
  4. Detach the driver disk:
    virsh detach-disk winvm hdb –config (to detach the virtio driver disk)
  5. Replace the KVM XML file in /u05/app/sharedrepo/your_kvm_storage with the XML file at /etc/libvirt/qemu:
    cp /etc/libvirt/qemu/winvm.xml /u05/app/sharedrepo/winvmstor/.ACFS/snaps/vm_winvm/winvm.xml
  6. Rename or remove the .iso files from /tmp.
  7. Start the VM:
    odacli start-vm -n winvm
  8. Test the KVM migration to the other node:
    #odacli migrate-vm -n winvm -to second_node_name  

Creating a DB System

Understand how you can create a KVM DB system on Oracle Database Appliance.

You can deploy KVM DB systems on Oracle Database Appliance release 19.10, but it is recommended that you deploy KVM DB systems on Oracle Database Appliance release 19.12 since it offers a more comprehensive support of DB systems. It is always advisable to update to the latest Oracle Database Appliance release.

Always review the latest Oracle Database Appliance documentation library for the features and configuration details for each release since these procedures may change with each release.

Oracle Database Appliance documentation library is available at:

https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/index.html

The space reserved on Oracle ACFS storage for a DB system node is fixed at 200 GB. This is the space assigned for the operation system, Oracle Grid Infrastructure home and the database home of the DB system. The database files are stored on Oracle ASM disk groups of the Oracle Database Appliance bare metal system to which the Oracle Grid Infrastructure of the DB System connects as a client.

Follow these steps to create a DB system on your appliance:

Check the Oracle Database Appliance release

Confirm that you have installed Oracle Database Appliance release 19.12 or later.
# /opt/oracle/dcs/bin/odacli describe-component -v
System Version  
---------------
19.12.0.0.0

Download the DB System image

Download Patch 32451228 for the DB System image to a temporary directory on your appliance and unzip the file.
# cd /tmp
#unzip p32451228_1912000_Linux-x86-64.zip  
odacli-dcs-19.12.0.0.0-210827-ODAVM-19.12.0.0.zip

Update the Oracle Database Appliance repository

# /opt/oracle/dcs/bin/odacli update-repository -f /tmp/odacli-dcs-19.12.0.0.0-210827-ODAVM-19.12.0.0.zip
{
  "jobId" : "2e392dad-587b-4ed1-87b6-995f3131cab6",
  "status" : "Created",
  "message" : "/tmp/odacli-dcs-19.12.0.0.0-210827-ODAVM-19.12.0.0.zip",
  "reports" : [ ],
  "createTimestamp" : "October 27, 2021 00:26:39 AM HDT",
  "resourceList" : [ ],
  "description" : "Repository Update",
  "updatedTime" : "October 27, 2021 00:26:39 AM HDT"

Confirm the DB System image is correctly registered

# /opt/oracle/dcs/bin/odacli describe-dbsystem-image
DB System Image details                                                         
--------------------------------------------------------------------------------
Component Name        Supported Versions    Available Versions  
--------------------  --------------------  --------------------

DBVM                  19.12.0.0.0           19.12.0.0.0         

GI                    19.12.0.0.210720      19.12.0.0.210720    
                      21.3.0.0.210720       not-available       

DB                    19.12.0.0.210720      19.12.0.0.210720    
                      21.3.0.0.210720       not-available     

Create the DB System Using BUI

Decide on the database shape according to your Database Class (OLTP, DSS or IMDB) resource requirements and available licenses.The database shape determines the number of cores you assign to the DB system. For a complete list of DB shapes, review the Oracle Database Appliance documentation. You can use the BUI to create a DB system or you can use a JSON file to create the DB system using ODACLI commands.

Log into the BUI. In the Appliance tab, click on DB Systems and then click Create DB System. If you need to assign more cores later, then ou can change the configuration after creation.

Description of create_db_system_bui.png follows
Description of the illustration create_db_system_bui.png

Create the DB System: System Information

Provide the system information.

Description of create_db_system_system_information.png follows
Description of the illustration create_db_system_system_information.png

Create the DB System: Network Information

Provide the network information.

Description of create_db_system_network_information.png follows
Description of the illustration create_db_system_network_information.png

Create the DB System: Users and Groups and Database Information

Customize users and groups and decide if you want to use operating system role separation. You must specify the same configuration details for the DB system users and groups as the configuration details for the Oracle Grid Infrastructure installation on the bare metal system . If your bare metal system has a user grid and a user oracle, then you are using role separation. You can also provide information about the database you want to create.

Description of create_db_system_db_information.png follows
Description of the illustration create_db_system_db_information.png

Create DB System Using ODACLI Commands

You can also create a DB System using a JSON file. Check the latest Oracle Database Appliance documentation for sample JSON file to deploy a high-availability DB system.
# odacli create-dbsystem -p /tmp/prov.json
Job details                                                      
----------------------------------------------------------------
 ID:  b8dc3738-e542-44fd-bdb2-fd06456d0e17
Description:  DB System mydbsystem creation
Status:  Created
Created:  October 13, 2021 11:19:44 PM HST
Message: 

Confirm the DB System creation

Confirm that the DB System was created successfully.
# odacli describe-dbsystem -n mydbsystem
DB System details                                                               
--------------------------------------------------------------------------------
                       ID:  69e49676-3400-49aa-a2a2-bcee062065e5
                     Name:  mydbsystem
                    Image:  19.12.0.0.0
                    Shape:  odb2
             Cluster name:  dbs6cd795483
                   Memory:  16.00 GB
                   Status:  CONFIGURED
                  Created:  2021-10-13 04:56:17 HDT
                  Updated:  2021-10-13 06:01:32 HDT

 CPU Pool                 
--------------------------
                     Name:  c6cd795483
          Number of cores:  2

                     Host:  node1
        Effective CPU set:  0-1,32-33
              Online CPUs:  0, 1, 32, 33
             Offline CPUs:  NONE

                     Host:  node2
        Effective CPU set:  0-1,32-33
              Online CPUs:  0, 1, 32, 33
             Offline CPUs:  NONE

 VM Storage               
--------------------------
               Disk group:  DATA
              Volume name:  S6CD795483
            Volume device:  /dev/asm/s6cd795483-433
                     Size:  400.00 GB
              Mount Point:  /u05/app/sharedrepo/ mydbsystem
          Acc Volume name:  AS6CD795483
        Acc Volume device:  /dev/asm/as6cd795483-433
          Acc Volume size:  1.60 GB

 VMs                      
--------------------------
                     Host:  node1
                  VM Name:  x6cd795483
             VM Host Name:  node1n1
             Target State:  ONLINE
            Current State:  ONLINE

                     Host:  node2
                  VM Name:  y6cd795483
             VM Host Name:  node2n2
             Target State:  ONLINE
            Current State:  ONLINE

 VNetworks                
--------------------------
                     Host:  node1
                  VM Name:  x6cd795483
                   Public:  xx.xx.xx.xx     / 255.255.248.0   / ens3 / BRIDGE(pubnet) 
                      ASM:  192.168.17.4    / 255.255.255.128 / ens4 / BRIDGE(privasm) VLAN(icbond0.100) 
             Interconnect:  192.168.17.129  / 255.255.255.252 / ens5 / BRIDGE(privnet1) VLAN(icbond0.101) 

                     Host:  node2
                  VM Name:  y6cd795483
                   Public:  xx.xx.xx.xx     / 255.255.248.0   / ens3 / BRIDGE(pubnet) 
                      ASM:  192.168.17.5    / 255.255.255.128 / ens4 / BRIDGE(privasm) VLAN(icbond0.100) 
             Interconnect:  192.168.17.130  / 255.255.255.252 / ens5 / BRIDGE(privnet1) VLAN(icbond0.101) 

 Databases                
--------------------------
                     Name:  my19db
              Resource ID:  e2978cc2-3ae0-4083-aea6-3f4cd7f38073
              Unique name:  mydb19
              Database ID:  2242777418
              Domain name:  test_domain
               DB Home ID:  bc1f64a9-7782-4997-8c31-918e8c92a444
                    Shape:  odb2
                  Version:  19.12.0.0.210720
                  Edition:  EE
                     Type:  RAC
                     Role:  PRIMARY
                    Class:  OLTP
                  Storage:  ASM
               Redundancy:  
         Target node name:  
            Character set:  AL32UTF8
        NLS character set:  
                 Language:  AMERICAN
                Territory:  AMERICA
          Console enabled:  false
             SEHA enabled:  false
      Associated networks:  Public-network
         Backup config ID:  
       Level 0 Backup Day:  sunday
       Autobackup enabled:  true
              TDE enabled:  false
                 CDB type:  false
                 PDB name:  
           PDB admin user: 

Test the database connection

Test connectivity to your DB System. During creation of the DB system you specified the SCAN name and database name. With this information you should be able to build your TNS connect string using the default service name which is the same as the database name. It is a best practice to create your own database services based on your high-availability requirements. For an initial connection test, the default service is sufficient.

Description of create_db_system_db_connection.png follows
Description of the illustration create_db_system_db_connection.png
Connect to the KVM guest machine nodes with SSH also, and verify that you can connect to the database instances locally.
# ssh root@node1n1
# su – oracle
$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
$ export ORACLE_SID=my19db1     (the ‘1’ after the DB name is for instance 1 on the first RAC node)
$ /u01/app/oracle/product/19.0.0.0/dbhome_1/bin/sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Mar 15 08:32:37 2021
Version 19.10.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.10.0.0.0

SQL> 

Deploying JD Edwards EnterpriseOne on Oracle Database Appliance KVM

Understand how you can deploy JD Edwards EnterpriseOne on Oracle Database Appliance KVM.

Note:

JD Edwards EnterpriseOne provides an Xen Virtualization VM Template. You cannot use this template for KVM virtualization deployment.
To install JD Edwards EnterpriseOne in KVM on Oracle Database Appliance, follow these steps:
  1. On Oracle Database Appliance, create the application KVM for Windows guest machines as described in this document.
  2. Create a DB system on Oracle Database Appliance and deploy Oracle Database.
  3. Follow the JD Edwards EnterpriseOne documentation steps to install JD Edwards EnterpriseOne:

    https://docs.oracle.com/cd/E84502_01/learnjde/installation.html#one-click-provisioning

Deploying Oracle E-Business Suite on Oracle Database Appliance KVM

Understand how you can deploy Oracle E-Business Suite on Oracle Database Appliance KVM.

Considerations for E-Business Suite 12.2 on Oracle Database Appliance:

  • The Rapid Install tool is not supported on Oracle Database Appliance DB System. You cannot directly install new Oracle E-Business Suite environment on Oracle Database Appliance DB System.
  • Existing Oracle E-Business Suite databases can be migrated to Oracle Database Appliance DB System. Use the following procedure to migrate Oracle E-Business Suite databases to Oracle Database Appliance DB System:
    1. Create a DB System.
    2. Refer to either of the following My Oracle Support Notes to migrate the database from source system to Oracle Database Appliance:

      Export/Import Process for Oracle E-Business Suite Release 12.2 Database Instances Using Oracle Database 19c (Doc ID 2554156.1)

      Using Transportable Tablespaces to Migrate Oracle E-Business Suite Release 12.2 Using Oracle Database 19c Enterprise Edition On a Multitenant Environment (Doc ID 2674405.1)

    3. If Oracle Database Appliance DB System Oracle RAC Database, then run Autoconfig on the remaining nodes following the instructions in Step 8.2 of My Oracle Support Note: Using Oracle 19c RAC Multitenant (Single PDB) with Oracle E-Business Suite Release 12.2 (Doc ID 2530665.1)
  • E-Business Suite requires one-off patches to be installed. This would conflict that future upgrades using Oracle Database Appliance tooling. Typically, these one-off patches must be rolled back, the database home patched and the equivalent E-Business Suite patches applied again.
  • This process was tested with E-Business Suite 12.2 with Oracle Database Appliance releases 12.2 and 19.11.

E-Business Suite References

Interoperability Notes: Oracle E-Business Suite Release 12.2 with Oracle Database 19c (Doc ID 2552181.1)

Oracle E-Business Suite Release 12.2: Consolidated List of Patches and Technology Bug Fixes (Doc ID 1594274.1)

Export/Import Process for Oracle E-Business Suite Release 12.2 Database Instances Using Oracle Database 19c(Doc ID 2554156.1)

Using Transportable Tablespaces to Migrate Oracle E-Business Suite Release 12.2 Using Oracle Database 19c Enterprise Edition On a Multitenant Environment (Doc ID 2674405.1)

Using Oracle 19c RAC Multitenant (Single PDB) with Oracle E-Business Suite Release 12.2 (Doc ID 2530665.1)

Deploying Oracle FLEXCUBE on Oracle Database Appliance KVM

Understand how you can deploy Oracle FLEXCUBE on Oracle Database Appliance KVM.

Note:

Oracle FLEXCUBE does not provide a Virtualization Template.
To install Oracle FLEXCUBE in KVM on Oracle Database Appliance, follow these steps:
  1. On Oracle Database Appliance, create the application KVM for your specific deployment, as described in this document.
  2. Follow the Oracle FLEXCUBE documentation steps to install Oracle FLEXCUBE:

    https://docs.oracle.com/cd/F18207_01/install.htm

Deploying Oracle Enterprise Manager Cloud Control on Oracle Database Appliance KVM

Understand how you can deploy Oracle Enterprise Manager Cloud Control on Oracle Database Appliance KVM.

You can install Oracle Enterprise Manager Cloud Control directly on the Oracle Database Appliance bare metal system. It is recommended that you install Oracle Enterprise Manager Cloud Control on the KVM guest VM.

Prerequisites

  • Create one application KVM guest machine with Oracle Linux.
  • Create a DB System to host Oracle Enterprise Manager Cloud Control repository database.

Procedure

Follow the Oracle Enterprise Manager Cloud Control 13.5 documentation to install and configure the software:

https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.5/index.html

There are no additional configuration requirements specific to Oracle Database Appliance. The deployment of Oracle Linux 8.2 on the application KVM guest machine with Oracle Database Appliance release 19.12 DB System and Oracle RAC database release 19.12 are supported.

Install the Oracle Database Appliance plug-in on the bare metal system nodes so that Oracle Enterprise Manager agent can monitor the hardware and other specific metrics for Oracle Database Appliance.

The latest Oracle Enterprise Manager Cloud Control plug-in is available for download at:

https://www.oracle.com/enterprise-manager/downloads/oem-v135-update-plugins-downloads.html

Oracle Database Appliance Plug-in documentation is available at:

https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/plugin.html

Deploying PeopleSoft on Oracle Database Appliance KVM

Understand how you can deploy PeopleSoft PeopleTools on Oracle Database Appliance KVM.

You can install PeopleSoft PeopleTools directly on the Oracle Database Appliance bare metal system. It is recommended that you install PeopleTools on the KVM guest VM. For each release of Oracle Database Appliance and PeopleSoft, you must ensure that additional RPMs installed do not replace or conflict with the Oracle Database Appliance binaries.

Prerequisites

  • Create one application KVM guest machine with Oracle Linux.
  • Create a DB System to host PeopleSoft repository database.

Procedure

Follow the PeopleSoft PeopleTools 8.59 or later documentation to install and configure the software. The documentation and software can be obtained from Oracle Software Delivery Cloud by searching for PeopleSoft PeopleTools and downloading the software.

There are no additional configuration requirements specific to Oracle Database Appliance. The deployment of Oracle Linux 8.2 on the application KVM guest machine with Oracle Database Appliance release 19.12 DB System and Oracle RAC database release 19.12 are supported.

Oracle Software Delivery Cloud is available at:

https://edelivery.oracle.com

Migrating Oracle VM Guest Machines to KVM on Oracle Database Appliance

Understand how you can migrate Oracle VM guest machines from Virtualized Platform to Oracle KVM guest machines on Oracle Database Appliance KVM.

Creating a Solution-in-a-Box does not necessitate creation of a new virtual machine. You may have an existing Oracle Database Appliance running Oracle Virtual Machine (OVM) and you would may want to migrate the OVM from this machine to a KVM guest.

For the procedure, refer to My Oracle Support Note 2773840.1: Migrating OVM guests from ODA VP to KVM on ODA BM at:

https://support.oracle.com/rs?type=doc&id=2773840.1

Backing up Oracle Database Appliance KVM Guest Machines

Understand how you can back up KVM guest machines on Oracle Database Appliance.

Backup and Recovery procedures for the DB Systems are similar to Oracle Database database backup procedures.

For backup of application VMs, refer to My Oracle Support Note 2779329.1: Backup of KVM guests on ODA 19.9 BM and later.

https://support.oracle.com/rs?type=doc&id=2779329.1

For backup of DB Systems, refer to My Oracle Support Note 2784991.1: Database System backup on Oracle Database Appliance Release 19.10 and later.https://support.oracle.com/rs?type=doc&id=2784991.1

Oracle Database Appliance References

Links and references to the concepts, commands, and examples used in this document.

Oracle Database Appliance documentation library is available at:

https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/index.html

Oracle Database Appliance KVM and DB Systems Command Line Reference:

Oracle Database Appliance Command-Line Interface for KVM

Sample JSON file for creating a DB System on Oracle Database Appliance KVM:

Example JSON File to Create a High-Availability DB System

Supported Database Shapes on Oracle Database Appliance KVM:

Database Shapes for Oracle Database Appliance

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.