I was recently in LA (Santa Monica in particular). I saw a food truck and had to take a picture because this food truck was a little different in their advertising technique. I was more curious about how do they get away with this kind of public advertising?

IMG 6CAFC1E6022A 1

So I thought about how can I market my company, Viscosity North America. So here’s the new slogan for Viscosity:

“Oracle Experts, Cloud Experts, Apex Experts, Exadata Experts, and Experts of Other Shit !!!”

I wander if I can put a big sign up in our next building when we move offices.


I feel like I barely made it alive this week. My crazy life started out on Sunday evening as I delivered a webinar for the New Zealand and Australia Oracle User Group on Backing Up Your Oracle Databases to the Cloud. Because the target audience was in Australia and New Zealand, my webinar was scheduled for 7PM on Sunday. Immediately next day afternoon, I delivered another presentation for Database Trends and Applications on Database Replication for Zero downtime Migrations, High Availability and Disaster Recovery presentation leveraging SharePlex. I haven’t delivered a speech on SharePlex and Data Replication since 2000 at IOUG in Orlando. The turnout for this event was great!

Next day, I flew to San Francisco to deliver the full-day Hands-On-Lab workshop on Oracle Cloud on Wednesday. This is our featured workshop that we deliver for the Oracle Cloud SIG on behalf of the IOUG – Independent Oracle Users Group sponsored by the Northern California Oracle User Group. There was lot of content that had to be updated and lot of new content on Oracle Ravello Cloud and Bare Metal Cloud Services that had to be added.

On Thursday, I delivered the keynote at the Northern California Oracle Users Group (NoCOUG) on Why You Need to Consider Upgrading to Oracle Database 12c Release 2 (Oracle 12.2) to Securely and Easily Migrate to Oracle Cloud. This was my first time presenting for NoCOUG and the turnout was great. After my keynote, I also sat on the Expert Panel on Oracle Cloud fielding questions from the audience.

I do not think I want to repeat a week like this again. On a positive note, I did get to meet a lot of experts from our industry. If you would like to download a copy of any or all of the presentations, please feel free to visit our Viscosity North America website. I feel like this crazy presentation life style is becoming more and more of a norm for me these days. I do enjoy doing the research and geeking out with fellow Oracle technologists.

Posted by Charles Kim, Oracle ACE Director


The Oracle Cloud Experience Technology Hands-on-lab Workshop is sponsored by the Cloud Computing SIG of IOUG. Here’s what the high level agenda will look like for the Great Lakes Oracle Conference which will be held on May 17 and 18 at Cleveland, Ohio. Every attendee will be given a Kindle version of the Oracle Cloud Pocket Solutions Guide:

NewImage

The Cloud Experience Technology Hands-on-lab Workshop will start with creating a database in Oracle Cloud. We will also focus on backing up an on-premise database to the cloud and various solutions that’s available from Oracle to backup both Oracle databases and non-Oracle databases. We will discuss complete solution options that you can implement as you make your journey to Oracle Cloud.

We will also discuss real-life solutions addressing security concerns, opening ports, creating database links/communicating with databases in Oracle Cloud, and innovations that Oracle has made to Oracle Cloud in the past 2 years.

Here’s a high level agenda of the Oracle Cloud Experience HOL Workshop for the Great Lakes Oracle Conference on May 17 and 18:

01:00 – 01:30 – Introduction to Oracle Cloud and Security
01:30 – 01:45 – Login to on-premise accounts and cloud accounts

01:45 – 02:15 – Database Cloud Lecture
02:15 – 03:00 – Hands on Workshop

03:00 – 03:30 – Oracle Storage Cloud and Database Backup Cloud Lecture
03:30 – 04:00 – Hands on Lab Workshop

Normally, this is an all day lecture and hands-on-lab workshop. We have created a special condensed version for the Great Lakes Oracle Conference.

The Oracle Cloud Solution Guide addresses Oracle Cloud fundamentals, Storage Cloud, Database Cloud, and Oracle Database Backup Cloud, as a quick go-to reference guide, as seen by industry experts. Here’s the outline of the book:
Introduction to Oracle Cloud
Review Oracle Cloud Fundamentals
– Logging into the OPC (for the first time)
– Discuss how to sign up for a free trial account

Storage Cloud
Oracle Storage Cloud Service Fundamentals
Object Storage
Archive Storage
What is a Container
Defining the Replication Policy
Setting the Replication Policy

Demonstrate Cloud SIG’s curl API in action
What is curl
Obtaining the Authorization token
Creating a Container with curl
Creating an Archive Container with Curl
Uploading a file with curl
Listing the Contents of a Container
Deleting a File in a Container
How much space have I consumed so far?
Upload CLI Jar
Uploading a File Using the uploadcli.jar File

Oracle Database Cloud
Provisioning a Database
* Generating SSH Keys
SSH’ing to the Database Server as oracle
SSH’ing to the Database Server as ops and root
Opening/enabling Port 1521
Creating a Database Link Between Private Database and Public Database Cloud
Creating a Secure Tunnel with ssh
Adding Database Storage to DBaaS

Oracle Database Backup Cloud
Show students how and where to download the Database Cloud Backup Module
Installing the Database Cloud Backup Module
Configuring RMAN for Backups
Backing up the Database to OPC
Discuss how and what is needed to perform backups for Oracle Standard Edition databases
Best Practices for Backing Up to OPC
Demonstrate how to restore and recover a database from the RMAN Database Cloud Backup

Review of Oracle Storage Cloud Software Appliance
Logging into the OSCSA
Best Practices with OSCSA
Where to find additional documentation
Quick Demo of Oracle Storage Cloud Software Appliance

Posted by: Charles Kim, Oracle ACE Director


The Oracle Public Cloud Experience Technology Hand-on-lab Workshop is sponsored by the Cloud Computing SIG of IOUG. Here’s what the high level agenda will look like for the Dallas Cloud Experience Technology Day Workshop being held on December 9th, 2016 at the Oracle Las Colinas office:

09:30 – 10:00 – Check-in
10:00 – 10:30 – Registration and cloud account setup for each student
10:30 – 11:00 – Introduction to Oracle Cloud and SSH Security
11:00 – 11:30 – Hands on Lab Workshop

11:30 – 12:00 – Oracle Storage Cloud and Database Backup Cloud Lecture
12:00 – 12:30 – Hands on Workshop
12:30 – 13:30 – Provided lunch and work through lunch as needed

13:30 – 14:00 – Oracle Cloud Customer Case Study
14:00 – 14:30 – Database Cloud Lecture
14:30 – 15:30 – Hands on Lab Workshop
15:30 – 16:00 – Oracle Storage Cloud Storage Appliance Lecture and Demo
16:00 – 16:15 – Final Questions and Answers

The outline for the Cloud Experience Technology Workshop will include the following content:
Introduction to Oracle Cloud
Review Oracle Cloud Fundamentals
– Logging into the OPC (for the first time)
– Discuss how to sign up for a free trial account

Storage Cloud
Oracle Storage Cloud Service Fundamentals
Object Storage
Archive Storage
What is a Container
Defining the Replication Policy
Setting the Replication Policy

Demonstrate Cloud SIG’s curl API in action
What is curl
Obtaining the Authorization token
Creating a Container with curl
Creating an Archive Container with Curl
Uploading a file with curl
Listing the Contents of a Container
Deleting a File in a Container
How much space have I consumed so far?
Upload CLI Jar
Uploading a File Using the uploadcli.jar File

Oracle Database Cloud
Provisioning a Database
* Generating SSH Keys
SSH’ing to the Database Server as oracle
SSH’ing to the Database Server as ops and root
Opening/enabling Port 1521
Creating a Database Link Between Private Database and Public Database Cloud
Creating a Secure Tunnel with ssh
Adding Database Storage to DBaaS

Oracle Database Backup Cloud
Show students how and where to download the Database Cloud Backup Module
Installing the Database Cloud Backup Module
Configuring RMAN for Backups
Backing up the Database to OPC
Discuss how and what is needed to perform backups for Oracle Standard Edition databases
Best Practices for Backing Up to OPC
Demonstrate how to restore and recover a database from the RMAN Database Cloud Backup

Review of Oracle Storage Cloud Software Appliance
Logging into the OSCSA
Best Practices with OSCSA
Where to find additional documentation
Quick Demo of Oracle Storage Cloud Software Appliance


In the first part of this series, we went through installing Oracle Linux 7 Update 2. In this part of the series, we will configure the Oracle Linux UEK OS, configure the docker image, and configure OSCSA (Oracle Storage Cloud Software Appliance).

First add the UEKR4 channel to the /etc/yum.repos.d/ repository:

[ol7_UEKR4]
name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

We need to boot the Linux Host Using the UEK4 Kernel. The UEK version that ships from Oracle Linux 7 update 2 is UEK 3 Release 8.

We need to remove the UEK 3.8 first. You will encounter errors about the packages that the 3.8 kernel is dependent on. If you see such errors similar to what you see below, you can ignore them.

[root@oscsa yum.repos.d]# rpm -qa |grep -i kernel
kernel-uek-firmware-3.8.13-98.7.1.el7uek.noarch
kernel-uek-3.8.13-98.7.1.el7uek.x86_64
kernel-tools-3.10.0-327.el7.x86_64
kernel-3.10.0-327.el7.x86_64
kernel-tools-libs-3.10.0-327.el7.x86_64
abrt-addon-kerneloops-2.1.11-34.0.1.el7.x86_64
[root@oscsa yum.repos.d]# rpm -e kernel-uek
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.symbols.bin: remove failed: No such file or directory
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.softdep: remove failed: No such file or directory
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.devname: remove failed: No such file or directory
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.dep.bin: remove failed: No such file or directory
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.builtin.bin: remove failed: No such file or directory
warning: file /lib/modules/3.8.13-98.7.1.el7uek.x86_64/modules.alias.bin: remove failed: No such file or directory
[root@oscsa yum.repos.d]# rpm -qa |grep -i kernel
kernel-uek-firmware-3.8.13-98.7.1.el7uek.noarch
kernel-tools-3.10.0-327.el7.x86_64
kernel-3.10.0-327.el7.x86_64
kernel-tools-libs-3.10.0-327.el7.x86_64
abrt-addon-kerneloops-2.1.11-34.0.1.el7.x86_64

[root@oscsa yum.repos.d]# rpm -e kernel-uek-firmware-3.8.13-98.7.1.el7uek.noarch

Now we can install UEK 4:

[root@oscsa yum.repos.d]# yum install kernel-uek
Loaded plugins: langpacks, ulninfo
ol7_UEKR3                                                                                                                         | 1.2 kB  00:00:00     
ol7_UEKR4                                                                                                                         | 1.2 kB  00:00:00     
ol7_latest                                                                                                                        | 1.4 kB  00:00:00     
(1/2): ol7_UEKR4/x86_64/updateinfo                                                                                                |  32 kB  00:00:00     
(2/2): ol7_UEKR4/x86_64/primary                                                                                                   | 8.9 MB  00:00:03     
ol7_UEKR4                                                                                                                                        208/208
Resolving Dependencies
--> Running transaction check
---> Package kernel-uek.x86_64 0:4.1.12-61.1.16.el7uek will be installed
--> Processing Dependency: kernel-firmware = 4.1.12-61.1.16.el7uek for package: kernel-uek-4.1.12-61.1.16.el7uek.x86_64
--> Processing Dependency: dracut-kernel >= 033-360.0.3 for package: kernel-uek-4.1.12-61.1.16.el7uek.x86_64
--> Processing Dependency: linux-firmware >= 20160604-44.git57b649d9.0.2 for package: kernel-uek-4.1.12-61.1.16.el7uek.x86_64
--> Running transaction check
---> Package dracut.x86_64 0:033-359.0.1.el7 will be updated
--> Processing Dependency: dracut = 033-359.0.1.el7 for package: dracut-network-033-359.0.1.el7.x86_64
--> Processing Dependency: dracut = 033-359.0.1.el7 for package: dracut-config-rescue-033-359.0.1.el7.x86_64
---> Package dracut.x86_64 0:033-360.0.3.el7_2.1 will be an update
---> Package kernel-uek-firmware.noarch 0:4.1.12-61.1.16.el7uek will be installed
---> Package linux-firmware.noarch 0:20150904-43.git6ebf5d5.0.1.el7 will be updated
---> Package linux-firmware.noarch 0:20160604-44.git57b649d9.0.2.el7 will be an update
--> Running transaction check
---> Package dracut-config-rescue.x86_64 0:033-359.0.1.el7 will be updated
---> Package dracut-config-rescue.x86_64 0:033-360.0.3.el7_2.1 will be an update
---> Package dracut-network.x86_64 0:033-359.0.1.el7 will be updated
---> Package dracut-network.x86_64 0:033-360.0.3.el7_2.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================================================
 Package                                Arch                     Version                                              Repository                    Size
=========================================================================================================================================================
Installing:
 kernel-uek                             x86_64                   4.1.12-61.1.16.el7uek                                ol7_UEKR4                     42 M
Installing for dependencies:
 kernel-uek-firmware                    noarch                   4.1.12-61.1.16.el7uek                                ol7_UEKR4                    2.0 M
Updating for dependencies:
 dracut                                 x86_64                   033-360.0.3.el7_2.1                                  ol7_latest                   311 k
 dracut-config-rescue                   x86_64                   033-360.0.3.el7_2.1                                  ol7_latest                    49 k
 dracut-network                         x86_64                   033-360.0.3.el7_2.1                                  ol7_latest                    90 k
 linux-firmware                         noarch                   20160604-44.git57b649d9.0.2.el7                      ol7_latest                    31 M

Transaction Summary
=========================================================================================================================================================
Install  1 Package  (+1 Dependent package)
Upgrade             ( 4 Dependent packages)

Total download size: 75 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7Server/ol7_latest/packages/dracut-033-360.0.3.el7_2.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 
Public key for dracut-033-360.0.3.el7_2.1.x86_64.rpm is not installed
(1/6): dracut-033-360.0.3.el7_2.1.x86_64.rpm                                                                                      | 311 kB  00:00:00     
(2/6): dracut-config-rescue-033-360.0.3.el7_2.1.x86_64.rpm                                                                        |  49 kB  00:00:00     
(3/6): dracut-network-033-360.0.3.el7_2.1.x86_64.rpm                                                                              |  90 kB  00:00:00     
Public key for kernel-uek-firmware-4.1.12-61.1.16.el7uek.noarch.rpm is not installed                                   ] 1.8 MB/s | 8.7 MB  00:00:37 ETA 
(4/6): kernel-uek-firmware-4.1.12-61.1.16.el7uek.noarch.rpm                                                                       | 2.0 MB  00:00:03     
(5/6): kernel-uek-4.1.12-61.1.16.el7uek.x86_64.rpm                                                                                |  42 MB  00:00:24     
(6/6): linux-firmware-20160604-44.git57b649d9.0.2.el7.noarch.rpm                                                                  |  31 MB  00:00:26     
---------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                    2.8 MB/s |  75 MB  00:00:27     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Importing GPG key 0xEC551F03:
 Userid     : "Oracle OSS group (Open Source Software group) <build@oss.oracle.com>"
 Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03
 Package    : 7:oraclelinux-release-7.2-1.0.5.el7.x86_64 (@anaconda/7.2)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Updating   : dracut-033-360.0.3.el7_2.1.x86_64                                                                                                    1/10 
  Updating   : linux-firmware-20160604-44.git57b649d9.0.2.el7.noarch                                                                                2/10 
  Installing : kernel-uek-firmware-4.1.12-61.1.16.el7uek.noarch                                                                                     3/10 
  Installing : kernel-uek-4.1.12-61.1.16.el7uek.x86_64                                                                                              4/10 
  Updating   : dracut-network-033-360.0.3.el7_2.1.x86_64                                                                                            5/10 
  Updating   : dracut-config-rescue-033-360.0.3.el7_2.1.x86_64                                                                                      6/10 
  Cleanup    : dracut-config-rescue-033-359.0.1.el7.x86_64                                                                                          7/10 
  Cleanup    : dracut-network-033-359.0.1.el7.x86_64                                                                                                8/10 
  Cleanup    : linux-firmware-20150904-43.git6ebf5d5.0.1.el7.noarch                                                                                 9/10 
  Cleanup    : dracut-033-359.0.1.el7.x86_64                                                                                                       10/10 
  Verifying  : dracut-033-360.0.3.el7_2.1.x86_64                                                                                                    1/10 
  Verifying  : dracut-network-033-360.0.3.el7_2.1.x86_64                                                                                            2/10 
  Verifying  : kernel-uek-firmware-4.1.12-61.1.16.el7uek.noarch                                                                                     3/10 
  Verifying  : kernel-uek-4.1.12-61.1.16.el7uek.x86_64                                                                                              4/10 
  Verifying  : dracut-config-rescue-033-360.0.3.el7_2.1.x86_64                                                                                      5/10 
  Verifying  : linux-firmware-20160604-44.git57b649d9.0.2.el7.noarch                                                                                6/10 
  Verifying  : dracut-config-rescue-033-359.0.1.el7.x86_64                                                                                          7/10 
  Verifying  : dracut-033-359.0.1.el7.x86_64                                                                                                        8/10 
  Verifying  : linux-firmware-20150904-43.git6ebf5d5.0.1.el7.noarch                                                                                 9/10 
  Verifying  : dracut-network-033-359.0.1.el7.x86_64                                                                                               10/10 

Installed:
  kernel-uek.x86_64 0:4.1.12-61.1.16.el7uek                                                                                                              

Dependency Installed:
  kernel-uek-firmware.noarch 0:4.1.12-61.1.16.el7uek                                                                                                     

Dependency Updated:
  dracut.x86_64 0:033-360.0.3.el7_2.1                     dracut-config-rescue.x86_64 0:033-360.0.3.el7_2.1 dracut-network.x86_64 0:033-360.0.3.el7_2.1
  linux-firmware.noarch 0:20160604-44.git57b649d9.0.2.el7

Complete!

Generate a new grub.cfg file:

[root@oscsa ~]# grub2-mkconfig > grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.1.12-61.1.16.el7uek.x86_64
Found initrd image: /boot/initramfs-4.1.12-61.1.16.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-09ec9b0ef1b542bcbde9147e2e5d21e8
Found initrd image: /boot/initramfs-0-rescue-09ec9b0ef1b542bcbde9147e2e5d21e8.img
done

Move the updated grub.cfg file to the grub2 directory:

[root@oscsa ~]# mv grub.cfg /boot/grub2
mv: overwrite ‘/boot/grub2/grub.cfg’? y

We need to disable SELinux in the Host. SELinux is currently not supported and should be disabled.

[root@oscsa grub2]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

Then we need to reboot the server
[root@oscsa grub2]# reboot

After the reboot, let’s make sure that SELinux is disabled:

[root@oscsa ~]# sestatus
SELinux status:                 disabled

Let’s also make sure that we are booting off the new UEK 4 kernel release:

[root@oscsa ~]# uname -a
Linux oscsa.viscosityna.com 4.1.12-61.1.16.el7uek.x86_64 #2 SMP Fri Oct 21 14:23:20 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

We need to edit the /etc/yum.repos.d/public-yum-ol7.repo file on the host and enable the channels for adding and optional_latest:
• Change the value of enable to 1 in addons.
• Change the value of enable to 1 in optional_latest.

Here’s what these sections should look like:

[ol7_optional_latest]
name=Oracle Linux $releasever Optional Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/optional/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

What is the Oracle Storage Cloud Software Appliance?
In a nutshell, the Oracle Storage Cloud Software Appliance serves as a cloud storage gateway to easily connect on-premise applications/data shares/workflows to Oracle Storage Cloud Service.

What is the Hardware Requirements
• 2 Cores
• 4GB of memory

What is the Software Requirements
• Oracle Linux 7 with UEK Release 4 or later
• Docker 1.8.3 or later. For information on Docker, please visit https://www.docker.com/.
• At least on NFS version 4.0

Installing Oracle Linux 7.2
We will start with installing Oracle Linux 7.2 and then in the next article, I will provide the step-by-step instructions to setup and configure the Oracle Storage Cloud Software Appliance.

NewImage
Choose to option to Install Oracle Linux 7.2 and hit the enter/return button

NewImage
Accept the default to install the English language and Click on Continue

NewImage

Select on the Date & Time area to modify the default timezone for the VM.
NewImage
We are changing our timezone from New York to Chicago
You can choose to enable NTP at this time
Click on the Done button when you are complete to take you back to the previous screen.

If you scroll down, you will see the Network & Host Name in the SYSTEM section. Click on the Network & Host Name part of the screen.

NewImage
Change the Host name
Click on the Off switch on the far right corner to enable the Ethernet network
Click on the Done button when you are complete to take you back to the previous screen.

We will choose to keep the Minimal Install option.

For this particular installation, we will keep the “Automatic partitioning selected” option but it is required for you to navigate to the Installation Destination screen to validate that is what you choose:
NewImage
By default, in the Partitioning section, the Automatically configure partitioning option is chosen. You can configure /root, /, /tmp/, swap and other file systems but for this configuration, we will choose the Automatically configure partitioning option and click on the Done button.

Now the Begin Installation button will be enabled. You are ready to start the installation.

While the installation is in progress, we will want to set the root password. NewImage

In the Root Password screen, we created the root password:
NewImage
Because our password is weak, we will be asked to click on the Done button twice.

When you are routed back to the previous screen, you can optionally create additional users.

NewImage

When the installation is complete, you will be asked to Reboot the VM. You will be asked to accept the license agreement.


This year will be my 10th consecutive year as a speaker at Oracle OpenWorld. I will focus on Oracle Cloud, Oracle Cloud and More Oracle Cloud. I will also be speaking at the 1/2 day Cloud Experience Technical Workshop (formerly known as Cloud Attack at the IOUG – Independent Oracle Users Group conference) with several other ACEs and ACEDs from The Oracle ACE Program on behalf of the Cloud SIG. We have a lot of preparation to do for updating our content for the Cloud Experience Technical Workshop.

OOW Speaker Header

For the Backup to the Cloud and Beyond session, we are thinking outside the box and delivering a solution that will handle both Oracle related files and non-Oracle files. Here’s the abstract to the session:

Let us challenge your thoughts about backing up files to Oracle Cloud. Every customer should be considering RMAN backups of their databases to Oracle Cloud (if not already). Backing up the Oracle database to the cloud is just the tip of the iceberg. You have to think outside the box and consider the entire solution and include the non-database files such as middleware backups, documents, reports, logs, etc.

In this session, we will reveal how Viscosity provides end-to-end backup solutions to Oracle Cloud. We will present a deep-dive content of backing up the database to the Oracle Cloud. We will go into extensive details on backing up non-oracle files to Oracle Cloud. We will demonstrate various methods to uploading and downloading various types files (including RMAN) to the Cloud and how to drive performance.

Stay tuned for additional details to my deep-dive session on Back Up to the Cloud and Beyond and for the Cloud Experience Technical Workshop.


Remember the number 33. I always seem to forget the $33 per TB per month number as I talk with potential customers. For a mere $33.00 / TB / Month, you can backup your Oracle Databases to the Oracle Public Cloud. For this low amount you get:

  • Unlimited Oracle Database backups
  • Automatic three-way data mirroring
  • Regional data isolation
  • Transparent access via Oracle Database Cloud Backup Module and Recovery Manager (RMAN)
  • RMAN encryption and compression

Performing backups to the cloud is a no brainer. Everyone should be considering backing up their database to the cloud.

Posted on July 27, 2016


Oracle Storage Cloud Service is an Infrastructure as a Service (IaaS) offering, which provides an enterprise scale object storage solution for all size files and unstructured data. You can leverage Oracle Storage Cloud Service to backup content and even Oracle Database(s) to an offsite location. We can programmatically store and retrieve content, and share content with others.

Oracle Storage Cloud Service stores data as objects within a flat hierarchy of containers. An object is most commonly created by uploading a file. It can also be created from ephemeral unstructured data. Objects are created within a container. A single object can hold up to 5 GB of data, but multiple objects can be linked together to hold more than 5 GB of contiguous data.

A container is a user-created resource, which can hold an unlimited number of objects, unless you specify a quota for the container. At a super high-level, you can think of containers like a directory in a file system except it cannot be nested.

Object storage provides an optimal blend of performance, scalability, and manageability when storing large amounts of unstructured data. Multiple storage nodes form a single, shared, horizontally scalable pool in which data is stored as objects (blobs of data) in a flat hierarchy of containers. Each object stores data, the associated metadata, and a unique ID. You can assign custom metadata to containers and objects, making it easier to find, analyze, and manage data. Applications use the unique object IDs to access data directly via REST API calls. Object storage is simple to use, performs well, and scales to a virtually unlimited capacity.

Oracle Storage Cloud Service provides a low cost, reliable, secure, and scalable object-storage solution for storing unstructured data and accessing it anytime from anywhere. It is ideal for data backup, archival, file sharing, and for storing large amounts of unstructured data like logs, sensor-generated data, and VM images.

In this post, I am providing a comprehensive shell script called curl.ksh script that can be used with Oracle Storage Cloud Service to early upload, download, maintain and query the contents of the storage cloud service.

In a nutshell, the korn shell script accepts for the first argument the command to:
1. ls (to list out the directory)
2. get (to download a file)
3. mkdir (to create a container directory)
4. put (to upload a file with the curl command)
5. jput (to upload a file with the java uploadcli Jar file)
6. pjput (to upload a file in parallel and in segments for large files over 5GB leveraging the java uploadcli Jar file)
7. del ( to delete a file )

The second argument will be the container name (or name of the directory. The last argument is the name of the file that we are uploading, downloading, listing or deleting.

The script executed without any arguments will display the authentication token to be used.

$ ./curl.ksh
*   Trying 129.152.172.1...
* Connected to viscosityxxxx.storage.oraclecloud.com (129.152.172.1) port 443 (#0)
* TLS 1.2 connection using TLS_RSA_WITH_AES_128_CBC_SHA
* Server certificate: *.storage.oraclecloud.com
* Server certificate: VeriSign Class 3 Secure Server CA - G3
* Server certificate: VeriSign Class 3 Public Primary Certification Authority - G5
> GET /auth/v1.0 HTTP/1.1
> Host: viscosityxxxx.storage.oraclecloud.com
> User-Agent: curl/7.43.0
> Accept: */*
> X-Storage-User: Storage-viscosityxx:charles.kim@v.com
> X-Storage-Pass: xxxxxyyxxzzzz
> 
< HTTP/1.1 200 OK
< date: 1461554947509
< X-Auth-Token: AUTH_tk41223c8f481b0e5e42c47f1617560f54
< X-Storage-Token: AUTH_tk41223c8f481b0e5e42c47f1617560f54
< X-Storage-Url: https://storage.us2.oraclecloud.com/v1/Storage-viscosityxxxx
< Content-Length: 0
< Server: Oracle-Storage-Cloud-Service
< 
* Connection #0 to host viscosityxx.storage.oraclecloud.com left intact

Behind the scene, curl is logging in with the userid and password that is stored in the curl.conf configuration file. Because we provided the userid and password, Oracle Storage Cloud Service provides a temporary authentication token. Future request to the service must be leveraged through the supplied authentication token. The line that has the key words "X-Auth-Token" and "X-Storage-Token" has the authentication token that we need. This authentication token expires after 30 minutes.

curl.conf configuration file has three parameters:

DOMAIN=viscosityxxxx
USER=charles.kim@v.com
PW=xxxxxyyxxzzzz

The DOMAIN parameter is the identity domain. Account creation results in creation of an identity domain (IDM slice) for that customer that is leveraged across all Oracle Public Cloud Services (and across all data centers). During the Oracle Public Cloud Services account setup process, the customer needs to create an account and specify an account name. Using the specified account name, that the identity domain will be implicitly created.

There is one manual step that is required. The parameter named AUTH must be manually specified from the OS. Consideration was made to place the AUTH parameter in the curl.conf configuration file but because the authentication token expires in 30 minutes, I made the choice to make it a manaul process to manually set the AUTH parameter from the OS. Earlier I mentioned that by executing ./curl.ksh without any arguments will display the "X-Auth-Token" and "X-Storage-Token" value. We need to manually export the AUTH parameter to the authentication token as shown below:

export AUTH=AUTH_tk41223c8f481b0e5e42c47f1617560f54

The curl.ksh script leverages the AUTH environment variable for all curl invocation. For calls that are made with java, the userid and password will be required. You will be prompted for the password to your account when invoking the java to load files with the uploadcli.jar. Here's what the curl.ksh script looks like:

 cat curl.ksh
export INMETHOD=$1
export NEWCONTAINER=$2
export FILE=$3

. curl.conf

export METHOD=$(echo $INMETHOD |tr '[a-z]' '[A-Z]')

if [ "$METHOD" = "" ]; then
  echo "Executing: curl -v -s -X GET -H "X-Storage-User: Storage-${DOMAIN}:$USER" -H "X-Storage-Pass: $PW" https://${DOMAIN}.storage.oraclecloud.com/auth/v1.0 "
  curl -v -s -X GET -H "X-Storage-User: Storage-${DOMAIN}:$USER" -H "X-Storage-Pass: $PW" https://${DOMAIN}.storage.oraclecloud.com/auth/v1.0 
elif [ "$METHOD" = "LS" ]; then
  echo "Executing:  curl -s -X GET -H "X-Auth-Token: $AUTH" https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN}/$NEWCONTAINER?limit64"
  curl -s -X GET -H "X-Auth-Token: $AUTH" https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN}/$NEWCONTAINER?limit64
elif [ "$METHOD" = "GET" ]; then
  echo "curl -v -s -X GET -H "X-Auth-Token: $AUTH" -o $FILE https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN}/$NEWCONTAINER/$FILE"
  curl -v -s -X GET -H "X-Auth-Token: $AUTH" -o $FILE https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN}/$NEWCONTAINER/$FILE
elif [ "$METHOD" = "MKDIR" ]; then
  [ "$NEWCONTAINER" = "" ] && ( echo "Directory Name must be provided:  $NEWCONTAINER"; exit; )
  curl -v -s -X PUT -H "X-Auth-Token: $AUTH" https://storage.us2.oraclecloud.com/v1/Storage-$DOMAIN/$NEWCONTAINER
elif [ "$METHOD" = "DEL" ]; then
  [ "$NEWCONTAINER" = "" ] && ( echo "Directory Name must be provided:  $NEWCONTAINER"; exit; )
  echo "curl -v -s -X DELETE -H "X-Auth-Token: $AUTH" https://storage.us2.oraclecloud.com/v1/Storage-$DOMAIN/$NEWCONTAINER/$FILE"
  curl -v -s -X DELETE -H "X-Auth-Token: $AUTH" https://storage.us2.oraclecloud.com/v1/Storage-$DOMAIN/$NEWCONTAINER/$FILE
elif [ "$METHOD" = "PUT" ]; then
  [ "$NEWCONTAINER" = "" ] && ( echo "Directory Name must be provided:  $NEWCONTAINER"; exit; )
  [ "$FILE" = "" ] && ( echo "File Name must be provided:  $FILE"; exit; )
  curl -v -X DELETE -H "X-Auth-Token: $AUTH"  https://storage.us2.oraclecloud.com/v1/Storage-$DOMAIN/$NEWCONTAINER/$FILE
elif [ "$METHOD" = "JAVAPUT" -o "$METHOD" = "JPUT" ]; then
  [ "$NEWCONTAINER" = "" ] && ( echo "Directory Name must be provided:  $NEWCONTAINER"; exit; )
  [ "$FILE" = "" ] && ( echo "File Name must be provided:  $FILE"; exit; )
  java -jar uploadcli.jar -url https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN} -user $USER -container $NEWCONTAINER $FILE
elif [ "$METHOD" = "PJAVAPUT" -o "$METHOD" = "PJPUT" ]; then
  [ "$NEWCONTAINER" = "" ] && ( echo "Directory Name must be provided:  $NEWCONTAINER"; exit; )
  [ "$FILE" = "" ] && ( echo "File Name must be provided:  $FILE"; exit; )
  java -jar uploadcli.jar -url https://storage.us2.oraclecloud.com/v1/Storage-${DOMAIN} -user $USER -container $NEWCONTAINER -segment-size 1000 -max-threads 16 $FILE
fi


The Upload CLI is a Java-based CLI tool that simplifies uploading to Oracle Storage Cloud Service. To download the java uploadcli.jar file, visit the http://www.oracle.com/technetwork/topics/cloud/downloads/index.html page. Look for the Oracle Storage Cloud Service Upload CLI section, and download the tool. Here's some of the key features provided by the uploadcli.jar file:

  • Optimized uploads through segmentation and parallelization to maximize network efficiency and reduce overall upload time
  • Support for both object storage and archive storage
  • Automatic checksum verification on upload
  • Upload individual files, groups of files, and entire directories
  • Automatic retry on failures
  • Resume interrupted uploads of large files

To leverage the uploadcli.jar file, the minimum requirements are that you must be at JRE 7 or later.

Please note that this script is evolving and will be updated periodically. The main idea of this script was to make the userid, password, domain, container, and file input to be parameterized leveraging a configuration file and parameters so that we can make the process relatively painless.

In Part 2 of this series, we will go through each of the examples to upload files, delete files, and download files from Oracle Storage Cloud Service. We will fully exploit the curl.ksh shell script and provide screen shot example output of each of the scenarios.

In Part 3 of this series, we will go through step-by-step process of downloading, installing and configuring the OPC Install Jar File. We will configure RMAN for backups to Oracle Public Cloud (OPC) and run through each of the scenarios for backup to OPC and restore/recovery from OPC.


Session Title: Data Guard Attack!!
Session Number: 1580
Speakers: Charles Kim, Oracle ACE Director and Nitin Vengurlekar, Oracle ACE Director
Track: Database
Session Type: Hands-on Lab
Sub-Categorization: High Availability & Data Protection

Abstract
There is no reason why Data Guard setup, configuration, maintenance and monitoring cannot be setup As A Service. Automation is the crux of any rapid deployment and cloud models. Setting up Data Guard should be a service catalog for any DBaaS deployment.

You will also learn the new Data Guard features available in Oracle Database 12.2

Download the latest and greatest Data Guard automation toolkit from http://dbaexpert.com/dg/ prior to attending this session. We have incorporated industry best practices to the DG Toolkit. This session will disseminate fundamental Data Guard best practices and demonstrate how DBAs can automate setup, configuration, and monitoring of Data Guard environments with assistance from the Date Guard Toolkit (DG Toolkit).

In this hand-on deep dive session, we will go through step by step details of setting up Data Guard with the automation toolkit:
o Building the Physical Standby
o Monitoring and Maintaining the Physical Standby
o Configuring Data Guard Broker
o Performing Backup and Recovery with RMAN
o Setting Archive Retention
o Performing Switchovers and Failovers

Learning Objectives:

1. Most importantly, learn how to build the physical standby with ease and automation using the DG Toolkit
2. Learn how to monitor the physical standby database with DG Toolkit
3. Learn how to monitor the physical standby database with DG Toolkit

Outline / Content Structure:
Perform preliminary check prior to starting the Data Guard Build
1. Perform assessments on the source database
2. Perform assessments on the physical standby

Perform detailed steps to build the physical standby database
1. Look at building the physical standby with easy menu steps
2. Look at duplicating the physical standby database

Configure the Data Guard Broker

Perform monitoring of the Data Guard Environment
1. Monitor the physical standby for performance
2. See how far behind we are

Perform RMAN to disk configuration options