Oracle Open World 2019
First day of OOW19 and we had big announcements of new services and products.
Now as Larry said “Oracle Cloud is Allways Free for Everyone”
Oracle’s Free Tier program has two components:
Always Free services, which provide access to Oracle Cloud services for an unlimited time
Free Trial, which provides $ 300 in credits for 30 days to try additional services and larger shapes
The new Always Free program includes the essentials users need to build and test applications in the cloud: Oracle Autonomous Database, Compute VMs, Block Volumes, Object and Archive Storage, and Load Balancer. Specifications include:
2 Autonomous Databases (Autonomous Data Warehouse or Autonomous Transaction Processing), each with 1 OCPU and 20 GB storage
2 Compute VMs, each with 1/8 OCPU and 1 GB memory
2 Block Volumes, 100 GB total, with up to 5 free backups
10 GB Object Storage, 10 GB Archive Storage, and 50,000 / month API requests
1 Load Balancer, 10 Mbps bandwidth
10 TB / month Outbound Data Transfer
500 million ingestion Datapoints and 1 billion Datapoints for Monitoring Service
1 million Notification delivery options per month and 1000 emails per month
More information click here.
Another release was the Oracle Autonomous Linux “World’s First Autonomous Operating System.
Introducing Oracle OS Management Service
Oracle Autonomous Linux, in conjunction with Oracle OS Management Service, uses advanced machine learning and autonomous capabilities to deliver unprecedented cost savings, security and availability and frees up critical IT resources to tackle more strategic initiatives.
Eliminate manual OS management — World’s first autonomous operating system in the cloud to deliver automated patching, updates, and tuning without human intervention. Based on a preconfigured Oracle Linux image; automated daily package updates; enhanced OS parameter tuning and OS diagnostics gathering.
Deliver automatic, in-depth protection at all levels — 100 percent hands-off automatic security updates daily to the Linux kernel and key user space libraries. This requires no downtime along with protection from both external attacks and malicious internal users. Known Exploit Detection provides automated alerts if anyone attempts to exploit a vulnerability that has been patched by Oracle.
Provides always-on availability — Includes automated patching and upgrades while the system is running, eliminating unnecessary downtime for users and the system.
More information click here
A release expected by customers the new partnership with VMware.
For the first time, Oracle will officially support Oracle products running on VMware virtualized environments and VMware will support Oracle running VMware Workloads on Oracle Cloud WIN/WIN for customers!
Running VMware workloads in Oracle Cloud
With this announcement, Oracle becomes a partner in the VMware Cloud Provider Program and Oracle Cloud VMware Solution will be sold by Oracle and its partners. The solution will be based on VMware Cloud Foundation and will deliver a full software-defined data center (SDDC) stack including VMware vSphere, NSX, and vSAN. Through consistent infrastructure and operations, customers will be able to migrate and modernize applications, seamlessly moving workloads between on-premise environments and Oracle Cloud.
Customers will be able to easily use Oracle services, such as Oracle Autonomous Database, Oracle Exadata Cloud Service and Oracle Database Cloud, which run in the same cloud data centers, on the same networks, with a consistent portal and APIs. able to leverage Oracle’s rapidly expanding footprint of global regions to scale globally without needing to establish their own data centers. Oracle will provide administrative access to the underlying physical servers, enabling a level of control previously only possible on premise, and customers will be able to use VMware vCenter to manage both their on-premise clusters and Oracle Cloud-based SDDCs through a single crash of glass Oracle will also provide first line technical support for this solution.
To learn more about the offering visit: https://www.oracle.com/cloud/VMware
We also had the Exadata X8M release.
The Exadata X8M uses the Remote Direct Memory (RDMA) to allow database access to the storage server memory directly. And the memory, in this case, it is special, X8M uses Intel Optane DC Persistent Memory modules (DIMM / NVDIMM – Non Volatile DIMM – to provide PMEM – Persistent Memory) attached directly to server storage and these can be accessed directly from the database using RDMA trough RoCE network. Let’s check the details to see what it is.
Our contributor Fernando Simon a few hours ago posted an article about Exadata X8M where it can be viewed http://www.fernandosimon.com/blog/exadata-x8m/.
Soon more will be available here on the Portal this article and more details about the new services and products.
Andre Luiz Dutra Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful.”the new partnership with VMware
Migrate On-Premises Database to Autonomous Database Cloud
Today we will learn how to migrate an Oracle database (On-Premises) to Autonomous Database Cloud.
In this environment will be show the usage of a new tool called MV2ADB. This tool can, after completing the configuration file, execute all the steps to export, transport and import a database to the Oracle Autonomous Cloud.
INSTALL THE MV2ADB SCRIPT
The script that allows you easy migration to ADB can be downloaded from My Oracle Support through note 2463574.1.
INSTALL THE MV2ADB TOOL AS ROOT USER
[root@hol /]# cd binaries/
[root@hol binaries]# ll
total 52532
-rw-r--r--. 1 oracle dba 31216 Jul 13 19:08 mv2adb-2.0.1-40.noarch.rpm
-rw-r--r--. 1 oracle dba 53758240 Jul 13 19:08 oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
[root@hol binaries]# rpm -ivh mv2adb-2.0.1-40.noarch.rpm
warning: mv2adb-2.0.1-40.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e7004b4d: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mv2adb-2.0.1-40 ################################# [100%]
MV2ADB has been installed on /opt/mv2adb succesfully!
[root@hol binaries]#
Please note that the install script shows the location where the tool has been installed. In this case /opt/mv2adb. We need this later.
INSTALLED ORACLE INSTANT CLIENT
We have already downloaded and unzipped the required files for the Oracle Instant Client. In the directory /opt/instalclient we have unzipped the base Instant Client, the SQL*Plus zipfile and the Tools zipfile. All have been downloaded from OTN.
https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
instantclient-tools-linux.x64-19.3.0.0.0dbru.zip
instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip
[root@hol opt]# unzip /binaries/instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
Archive: /binaries/instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
inflating: instantclient_19_3/adrci
inflating: instantclient_19_3/BASIC_LICENSE
inflating: instantclient_19_3/BASIC_README
inflating: instantclient_19_3/genezi
inflating: instantclient_19_3/libclntshcore.so.19.1
linking: instantclient_19_3/libclntsh.so -> libclntsh.so.19.1
linking: instantclient_19_3/libclntsh.so.10.1 -> libclntsh.so.19.1
linking: instantclient_19_3/libclntsh.so.11.1 -> libclntsh.so.19.1
linking: instantclient_19_3/libclntsh.so.12.1 -> libclntsh.so.19.1
linking: instantclient_19_3/libclntsh.so.18.1 -> libclntsh.so.19.1
inflating: instantclient_19_3/libclntsh.so.19.1
inflating: instantclient_19_3/libipc1.so
inflating: instantclient_19_3/libmql1.so
inflating: instantclient_19_3/libnnz19.so
linking: instantclient_19_3/libocci.so -> libocci.so.19.1
linking: instantclient_19_3/libocci.so.10.1 -> libocci.so.19.1
linking: instantclient_19_3/libocci.so.11.1 -> libocci.so.19.1
linking: instantclient_19_3/libocci.so.12.1 -> libocci.so.19.1
linking: instantclient_19_3/libocci.so.18.1 -> libocci.so.19.1
inflating: instantclient_19_3/libocci.so.19.1
inflating: instantclient_19_3/libociei.so
inflating: instantclient_19_3/libocijdbc19.so
inflating: instantclient_19_3/liboramysql19.so
creating: instantclient_19_3/network/
inflating: instantclient_19_3/ojdbc8.jar
inflating: instantclient_19_3/ucp.jar
inflating: instantclient_19_3/uidrvci
inflating: instantclient_19_3/xstreams.jar
creating: instantclient_19_3/network/admin/
inflating: instantclient_19_3/network/admin/README
finishing deferred symbolic links:
instantclient_19_3/libclntsh.so -> libclntsh.so.19.1
instantclient_19_3/libclntsh.so.10.1 -> libclntsh.so.19.1
instantclient_19_3/libclntsh.so.11.1 -> libclntsh.so.19.1
instantclient_19_3/libclntsh.so.12.1 -> libclntsh.so.19.1
instantclient_19_3/libclntsh.so.18.1 -> libclntsh.so.19.1
instantclient_19_3/libocci.so -> libocci.so.19.1
instantclient_19_3/libocci.so.10.1 -> libocci.so.19.1
instantclient_19_3/libocci.so.11.1 -> libocci.so.19.1
instantclient_19_3/libocci.so.12.1 -> libocci.so.19.1
instantclient_19_3/libocci.so.18.1 -> libocci.so.19.1
[root@hol opt]# unzip /binaries/instantclient-tools-linux.x64-19.3.0.0.0dbru.zip
Archive: /binaries/instantclient-tools-linux.x64-19.3.0.0.0dbru.zip
inflating: instantclient_19_3/exp
inflating: instantclient_19_3/expdp
inflating: instantclient_19_3/imp
inflating: instantclient_19_3/impdp
inflating: instantclient_19_3/libnfsodm19.so
inflating: instantclient_19_3/sqlldr
inflating: instantclient_19_3/TOOLS_LICENSE
inflating: instantclient_19_3/TOOLS_README
inflating: instantclient_19_3/wrc
[root@hol opt]# unzip /binaries/instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip
Archive: /binaries/instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip
inflating: instantclient_19_3/glogin.sql
inflating: instantclient_19_3/libsqlplusic.so
inflating: instantclient_19_3/libsqlplus.so
inflating: instantclient_19_3/sqlplus
inflating: instantclient_19_3/SQLPLUS_LICENSE
inflating: instantclient_19_3/SQLPLUS_README
[root@hol opt]#
Change the owner and group of the installclient folder
[root@hol opt]# chown oracle:dba instantclient_19_3/
[root@hol opt]# ll -l instantclient_19_3/
total 240144
-rwxr-xr-x. 1 root root 41840 Apr 17 08:38 adrci
-r-xr-xr-x. 1 root root 5780 Apr 17 08:38 BASIC_LICENSE
-rw-r--r--. 1 root root 1632 Apr 17 08:38 BASIC_README
-rwxr-xr-x. 1 root root 1018968 Apr 17 08:39 exp
-rwxr-xr-x. 1 root root 220640 Apr 17 08:39 expdp
-rwxr-xr-x. 1 root root 59296 Apr 17 08:38 genezi
-rw-r--r--. 1 root root 342 Apr 17 08:39 glogin.sql
-rwxr-xr-x. 1 root root 502536 Apr 17 08:39 imp
-rwxr-xr-x. 1 root root 232768 Apr 17 08:39 impdp
-rwxr-xr-x. 1 root root 8041608 Apr 17 08:38 libclntshcore.so.19.1
lrwxrwxrwx. 1 root root 17 Jul 13 21:53 libclntsh.so -> libclntsh.so.19.1
lrwxrwxrwx. 1 root root 17 Jul 13 21:53 libclntsh.so.10.1 -> libclntsh.so.19.1
lrwxrwxrwx. 1 root root 17 Jul 13 21:53 libclntsh.so.11.1 -> libclntsh.so.19.1
lrwxrwxrwx. 1 root root 17 Jul 13 21:53 libclntsh.so.12.1 -> libclntsh.so.19.1
lrwxrwxrwx. 1 root root 17 Jul 13 21:53 libclntsh.so.18.1 -> libclntsh.so.19.1
-rwxr-xr-x. 1 root root 79961792 Apr 17 08:38 libclntsh.so.19.1
-r-xr-xr-x. 1 root root 3609536 Apr 17 08:38 libipc1.so
-r-xr-xr-x. 1 root root 478432 Apr 17 08:38 libmql1.so
-rwxr-xr-x. 1 root root 60024 Apr 17 08:39 libnfsodm19.so
-rwxr-xr-x. 1 root root 6587832 Apr 17 08:38 libnnz19.so
lrwxrwxrwx. 1 root root 15 Jul 13 21:53 libocci.so -> libocci.so.19.1
lrwxrwxrwx. 1 root root 15 Jul 13 21:53 libocci.so.10.1 -> libocci.so.19.1
lrwxrwxrwx. 1 root root 15 Jul 13 21:53 libocci.so.11.1 -> libocci.so.19.1
lrwxrwxrwx. 1 root root 15 Jul 13 21:53 libocci.so.12.1 -> libocci.so.19.1
lrwxrwxrwx. 1 root root 15 Jul 13 21:53 libocci.so.18.1 -> libocci.so.19.1
-rwxr-xr-x. 1 root root 2339896 Apr 17 08:38 libocci.so.19.1
-rwxr-xr-x. 1 root root 130515320 Apr 17 08:38 libociei.so
-r-xr-xr-x. 1 root root 153624 Apr 17 08:38 libocijdbc19.so
-rwxr-xr-x. 1 root root 115976 Apr 17 08:38 liboramysql19.so
-rwxr-xr-x. 1 root root 1660752 Apr 17 08:39 libsqlplusic.so
-rwxr-xr-x. 1 root root 1573416 Apr 17 08:39 libsqlplus.so
drwxr-xr-x. 3 root root 19 Apr 17 08:38 network
-rw-r--r--. 1 root root 4210517 Apr 17 08:38 ojdbc8.jar
-rwxr-xr-x. 1 root root 1660560 Apr 17 08:39 sqlldr
-rwxr-xr-x. 1 root root 24792 Apr 17 08:39 sqlplus
-r-xr-xr-x. 1 root root 5780 Apr 17 08:39 SQLPLUS_LICENSE
-rw-r--r--. 1 root root 1640 Apr 17 08:39 SQLPLUS_README
-r-xr-xr-x. 1 root root 5780 Apr 17 08:39 TOOLS_LICENSE
-rw-r--r--. 1 root root 1632 Apr 17 08:39 TOOLS_README
-rw-r--r--. 1 root root 1680074 Apr 17 08:38 ucp.jar
-rwxr-xr-x. 1 root root 236960 Apr 17 08:38 uidrvci
-rwxr-xr-x. 1 root root 751072 Apr 17 08:39 wrc
-rw-r--r--. 1 root root 74263 Apr 17 08:38 xstreams.jar
[root@hol opt]#
CREATING A NEW AUTONOMOUS ATP ENVIRONMENT
Log into Oracle Cloud and click the “Create Instance” link.
Click on the “Create” button in the Autonomous Transaction Processing
Select the compartment you want to build the service in, then click the “Create Autonomous Database” button.
Enter the details of the service you want to create. The default sizes are 1 CPU core and 1TB of storage. Remember to select the appropriate licensing model. Click the “Create Autonomous Database” button.
Compartment : <keep value>
Display Name : MIGRATE_DBON_DBOCI
Database Name : MIGRATE
Workload Type : Transaction Processing
Choose a deployment type: Serverless
CPU Core Count : 1
Storage (TB) : 1
Password : OracleMIG#2019
License Type : My Organization Already owns Oracle Database (etc..)
This process will take between 5 and 10 minutes to complete.
CREATE AN OBJECT STORE BUCKET
As we need to upload the export to the OCI environment, we need to create a location to do this. The MV2ADB script could create a new location but this would require the setup of the OCI Commandline tools. Since this environment is using a more generic approach, we need to pre-create the directory (called Bucket).
NAVIGATE TO OBJECT STORAGE IN THE OCI CONSOLE
Select the compartment you want to build the service in, then click the “Create Bucket” button.
Enter the details of the service you want to create. Click the “Create Bucket” button.
Write down the name of the bucket as we will need it in our configuration file. The name of the bucket in the configuration file is case-sensitive.
CHECK SOURCE SCHEMAS FOR COMPATIBILITY
Not everything is supported in the Autonomous Database Cloud environment. To make sure you do not run into any issues, a tool called ADB Schema Advisor has been created. This PL/SQL Package can generate a report to show you any issues you might encounter before you actually execute the migration.
PACKAGE SOURCE ALREADY DOWNLOADED
The ADB Schema advisor can be downloaded from MOS note 2462677.1 (Oracle Autonomous Database Schema Advisor).
We have already downloaded the latest version to the /source directory in your client image.
Please note; in a regular environment, this package does not require SYS or SYSTEM user to be installed. When installing it into a non-SYS and non-SYSTEM user, please check the manual for the exact installation steps. Very important are the GRANTS needed to give the package access to the information it needs.
[oracle@hol ~]$ . oraenv
ORACLE_SID = [oracle] ? UPGR
ORACLE_BASE environment variable is not being set since this
information is not available for the current user ID oracle.
You can set ORACLE_BASE manually if it is required.
Resetting ORACLE_BASE to its previous value or ORACLE_HOME
The Oracle base has been set to /u01/app/oracle/product/11.2.0.4
[oracle@hol ~]$ sqlplus
SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 13 23:17:26 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name: / as sysdba
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @/home/oracle/adb_advisor.plb
Package created.
Package body created.
SQL>
SQL>
As you can see, there are some directory objects that cannot be migrated as ADB does not support access to the local filesystem (besides the DP_DUMP_DEST directory).
A second issue are 1 tables that apparently need changes before they can be imported. A little bit further down in the report, the issues are explained:
NOLOGGING options will be automatically changed to LOGGING options
Index Organized Tables (IOT) are not supported. You need a special option for IMPDP to change this during import.
GATHERING REQUIRED DETAILS
The configuration file for MV2ADB needs a series of parameters for export, upload of the dumpfile and import of the dumpfile. A full file with hints can be found in the /opt/mv2adb/conf directory. For this lab we will use only the parameters needed for a simple migration.
CREATE A NEW FILE FOR THE CONFIGURATION
sudo vi /opt/mv2adb/conf/ATP.mv2adb.conf
Cut-and-paste the below parameters in this new document so that we can start entering the required data. At this moment, only copy-and-paste the below, we will make changes to the values in the following sections.
# DB Parameters
DB_CONSTRIG=//hol:1521/UPGR
SYSTEM_DB_PASSWORD=D5E036E7E7A09843561DCB5AEA05BCD2
SCHEMAS=CARLOCA
DUMPFILES=/tmp/DB112-UPGR.dmp
OHOME=/u01/app/oracle/product/11.2.0.4
ICHOME=/opt/instantclient_19_3
# Expdp/Impdp Parameters
ENC_PASSWORD=D5E036E7E7A09843561DCB5AEA05BCD2
ENC_TYPE=AES256
# Object Store Properties
BMC_HOST=
BMC_TENNANT=
BMC_BUCKET=
BMC_ID=
BMC_PASSWORD=
# ADB Parameters
ADB_NAME=
ADB_PASSWORD=
CFILE=
GATHERING (SOURCE) DB PARAMETERS
The initial section is regarding the source database. Please enter the following information for the source environment. Since this is a environment, we have pre-entered most of the DB parameters for you. Here is some information where you can find the details:
DB_CONSTRIG | Connecting string from the local system (where mv2adb is running) to the database instance that needs to be migrated |
SYSTEM_DB_PASSWORD | Password for SYSTEM user for this source database |
SCHEMAS | Schema’s to be exported; only transport the schema’s that you need, do not include any default schema’s like HR, OE, SYSTEM, SYS etc as they already exist in ADB and might result in errors (or get ignored) |
DUMPFILES | File system location of dumpfiles. If you want parallelism during export and import, specify as many files as you want the parallelism to be. Make sure the files are unique in the source but also in the destination (ATP) environment. |
OHOME | The source database Oracle Home |
IHOME | The installed Oracle Instant Client home (basic, SQL*Plus and Tools unzipped) |
GATHERING EXPDP/IMPDP PARAMETERS
In this section you specify the encryption password and the encryption type for your export. To make sure your data cannot be compromised when exporting and uploading your data, the script requires a password.
ENC_PASSWORD | A password that will encrypt your datapump exports. Has nothing to do with any existing user or password. Please note that this password cannot be plain text. The password needs to be encrypted using the mv2adb binaries on your system |
END_TYPE | Type of encryption of your data. The higher the number, the more encryption but also slower export/import. Options are AES128, AES192 and AES256 |
ENCRYPT THE ENCRYPTION PASSWORD AND PUT IT IN THE FILE
The password we will use for this environment is oracle
[oracle@hol ~]$ /opt/mv2adb/mv2adb encpass
Please enter the password : oracle
Please re-enter the password : oracle
D5E036E7E7A09843561DCB5AEA05BCD2
Make sure your encrypted password is entered in your ATP.mv2adb.conf config file.
GATHERING OBJECT STORE PROPERTIES
The Autonomous database can only use dumpfiles uploaded to Swift compatible storage. The following parameters specify where the dumpfiles should be uploaded to after the export. This is also the location where the logfiles will be stored. Instead of the below SWIFT details, you can also choose to locally install the OCI Client and use that setup. See the example config for more information.
BMC_HOST | This is the Swift object storage URL for your environment. |
BMC_TENNANT | Name of your Tenancy. Be aware, for SWIFT we only use lower case |
BMC_BUCKET | The name of a new bucket that will be created for this migration. |
BMC_ID | Your username in OCI |
BMC_PASSWORD | The Swift Authentication Token encrypted using the mv2adb password encoder. |
GENERATE TOKEN FOR SWIFT API
Click in Identity and Select Users
Select the user for creating the authentication token.
Click in Generate Token
Put the Description about this token and Click in Generate Token
Copy this token for using in the connect the tool mv2adb with Object Storage.
LOCATE THE SWIFT AUTHENTICATION PASSWORD AND ENCRYPT USING THE MV2ADB TOOL
[oracle@hol ~]$ cat /home/oracle/auth_token.txt
cn#Wi]6xv4hO(:j0l0SX
[oracle@hol ~]$ /opt/mv2adb/mv2adb encpass
Please enter the password : <cut-and-paste auth_key>
Please re-enter the password : <cut-and-paste auth_key>
E54C941DA0DBA8EB467DCC7F0C04(...)ED747D3AF6B6184BC173B78DE426CEBE4
FILL IN ALL OF THE DETAILS FOR THE OBJECT STORE SETTINGS
# Object Store Properties
BMC_HOST=https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com
BMC_TENNANT= andreontalba
BMC_BUCKET= BC_MIGRATE
BMC_ID=andre.ontalba
BMC_PASSWORD= E54C941DA0DBA8EB467DCC7F0C04(...)ED747D3AF6B6184BC173B78DE426CEBE4
GATHERING ADB PARAMETERS
During the gathering of the other parameters, your ADB environment should have been created. As a last step we will now gather the information needed for the last section
ADB_NAME | Name of your ADB instance |
ADB_PASSWORD | Database Admin password |
CFILE | Zipfile containing database credentials |
First parameter requires the name of your created ADB environment. Navigate to the ADB Console and find the name of your database. My Database is MIGRATE
Second parameter is the password you have entered while creating the Autonomous environment. If you have used the suggested password, it would be OracleMIG#2019. If you have chosen another password, you need to remember it.
ENCRYPT YOUR DATABASE PASSWORD USING THE MV2ADB ENCRYPT OPTION
[oracle@hol ~]$ /opt/mv2adb/mv2adb encpass
Please enter the password :
Please re-enter the password :
DE3D105A8E6F6A4D5E86EXSW6BC1D3BA
For the 3rd parameter we need to download something from the OCI console, the so-called Wallet file.
CLICK ON THE BUTTON 'DB CONNECTION'
The following screen will be displayed:
CLICK ON THE BUTTON 'DOWNLOAD' TO DOWNLOAD THE WALLET ZIP
In the following screen a password is requested. This is the password that protects the keystore inside the zipfile. For this exercise we will not be using this keystore so enter any random password twice.
ENTER PASSWORD AND PRESS ‘DOWNLOAD‘
Your zipfile will be downloaded to the default location /home/oracle/Downloads. Please note the name of the wallet.zip and enter this in your parameters.
# ADB Parameters
ADB_NAME=MIGRATE
ADB_PASSWORD= DE3D105A8E6F6A4D5E8XXXSW6BC1D3BA
CFILE=/home/oracle/Downloads/wallet.zip
MAKE SURE ALL PARAMETERS ARE ENTERED AND SAVE THE FILE TO /opt/mv2adb/conf/ATP.mv2adb.conf
START THE MIGRATION USING THE MV2ADB SCRIPT
START THE MV2ADB SCRIPT USING THE CONFIGURATION FILE YOU JUST CREATED.
[oracle@hol ~]$ sudo /opt/mv2adb/mv2adb auto -conf /opt/mv2adb/conf/ATP.mv2adb.conf
INFO: 2019-08-31 14:08:27: Please check the logfile '/opt/mv2adb/out/log/mv2adb_12765.log' for more details
--------------------------------------------------------
mv2adb - Move data to Oracle Autonomous Database
Author: Ruggero Citton <[email protected]>
RAC Pack, Cloud Innovation and Solution Engineering Team
Copyright (c) 1982-2019 Oracle and/or its affiliates.
Version: 2.0.1-29
--------------------------------------------------------
INFO: 2019-08-31 14:08:27: Reading the configuration file '/opt/mv2adb/conf/ATP.mv2adb.conf'
INFO: 2019-08-31 14:08:28: Checking schemas on source DB
...
INFO: 2019-03-31 14:08:54: ...loading '/tmp/DB112-UPGR.dmp' into bucket 'UPGRADEBUCKET-RP'
SUCCESS: 2019-03-31 14:09:27: ...file '/tmp/DB112-UPGR.dmp' uploaded on 'UPGRADEBUCKET-RP' successfully
SUCCESS: 2019-03-31 14:09:27: Upload of '1' dumps over Oracle Object Store complete successfully
INFO: 2019-03-31 14:09:27: Performing impdp into ADB...
INFO: 2019-03-31 14:09:27: Step1 - ...drop Object Store Credential
INFO: 2019-03-31 14:09:29: Step2 - ...creating Object Store Credential
INFO: 2019-03-31 14:09:36: Step3 - ...executing import datapump to ADB
INFO: 2019-03-31 14:12:42: Moving impdp log 'mv2adb_impdp_20190831-140936.log' to Object Store
SUCCESS: 2019-03-31 14:12:43: Impdp to ADB 'MIGRATE' executed successfully
After about 10 minutes, all the steps should have been executed successfully. If you encounter any error, please check the logfile that was displayed immediately after you started the script. This will contain all of the individual steps, commands used and the output of those commands.
LOGIN AND CHECK THE MIGRATED DATABASE
USE SQL*DEVELOPER TO CHECK IF THE CARLOCA USER HAS BEEN MIGRATED TO ATP
On your Desktop, you can see SQL*Developer. Start this application
CREATE A NEW CONNECTION TO ATP BY CLICKING ON THE GREEN + SIGN IN THE CONNECTIONS PANE
Connection Name : MYATP
Username : admin
Password : OracleMIG#2019 (or any other password you have used)
Connection Type : Cloud Wallet
Configuration File :
<select the wallet you downloaded in /home/oracle/Downloads>
Service : migrate_tp
ENTER THE REQUIRED DETAILS AND PRESS CONNECT
After connecting, a new SQL Window will be displayed. Here you can execute queries on the ATP environment.
ENTER THE QUERY AND PRESS THE GREEN ARROW TO EXECUTE IT
In the Query Result window, the result of the query will be displayed:
I hope this helps you!!!
This article was written by Andre Ontalba e Rodrigo Mufalani
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful.”
Oracle Autonomous Database and DevOps: A Simple Approach to Utilization - Part 5
This article is the fifth and final part of the Oracle Autonomous Database and DevOps article series. For a better understanding, I recommend to read the articles “Oracle Autonomous Database and DevOps: A Simple Approach to Use – Part 1”, “Part 2”, “Part 3” and “Part 4” before proceeding with the steps in this article.
As the previous article dealt with the creation of the Linux application server within Oracle Cloud, in this article we will proceed with the creation of microservices using Docker and connecting a JAVA application to the cloud database. To start let’s get some concepts:
What are microservices?
According to Chris Richardson, “is a style of architecture that structures an application as a collection of services that are:
Highly sustainable and testable
Frankly coupled
Independently deployable
Organized around business resources. ”
What is node.js?
According to the manufacturer’s official website, “Node.js is an open source, cross-platform JavaScript execution environment.”
PS: This article will not show the coding of the application, but only the loading of it.
Now that we have a brief description of micricroservices and node.js, let’s proceed with the creation of our microservices:
Creating node.js microservices: Make sure Docker is running on your machine (For more information on Docker see the first article of this series):
[root@techdatatechdatabasketblogblog /]# systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-04-24 20:03:28 CEST; 7s ago
Docs: http://docs.docker.com
Main PID: 27946 (dockerd-current)
Tasks: 20
CGroup: /system.slice/docker.service
├─27946 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=...
└─27952 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/co...
Apr 24 20:03:27 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:27.250219328+02:00" level=warning msg="failed to cleanup ipc mounts:\nfailed to umount /var/lib/docker/co...id argument"
Apr 24 20:03:27 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:27.250885514+02:00" level=warning msg="8172d6ebc0303d372883143207467260cd2ea708b300ba23c736b36777be0d3b c...id argument"
Apr 24 20:03:27 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:27.350320351+02:00" level=info msg="Firewalld running: true"
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.063094521+02:00" level=info msg="Removing stale sandbox f98e8fe2671acc61090bbed5f985266ded27adf2e19e27...6777be0d3b)"
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.466076919+02:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16... IP address"
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.627644418+02:00" level=info msg="Loading containers: done."
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.687620173+02:00" level=info msg="Daemon has completed initialization"
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.687645914+02:00" level=info msg="Docker daemon" commit="8633870/1.13.1" graphdriver=overlay2 version=1.13.1
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com dockerd-current[27946]: time="2019-04-24T20:03:28.691636427+02:00" level=info msg="API listen on /var/run/docker.sock"
Apr 24 20:03:28 techdatatechdatabasketblogblog.tech.com systemd[1]: Started Docker Application Container Engine.
At this moment you can pull your app image at https://github.com as in the example below:
[root@oc8226237722 /]# git clone https://github.com/brunors/appte.git ((link will not be available after this article is published))
Cloning into 'appte'...
remote: Enumerating objects: 1045, done.
remote: Total 1045 (delta 0), reused 0 (delta 0), pack-reused 1045
Receiving objects: 100% (1045/1045), 3.49 MiB | 1.95 MiB/s, done.
Resolving deltas: 100% (173/173), done.
Open the port on your computer for the application to start. As we chose in the previous article will be port 3055:
[root@techdatabasketblog /]# firewall-cmd --zone=public --permanent --add-port=3055/tcp
success
Install Oracle Client on your computer, you can find it on the OTN website and download it:
Copy the wallet used in previous articles to create the secure connection to a directory that will be used for the container image:
[root@techdatabasketblog wallet_APPtechdatabasket]# unzip /tmp/wallet/Wallet_techdatabasket.zip -d /wallet_APPtechdatabasket/
Archive: /tmp/wallet/Wallet_techdatabasket.zip
inflating: /wallet_APPtechdatabasket/cwallet.sso
inflating: /wallet_APPtechdatabasket/tnsnames.ora
inflating: /wallet_APPtechdatabasket/truststore.jks
inflating: /wallet_APPtechdatabasket/ojdbc.properties
inflating: /wallet_APPtechdatabasket/sqlnet.ora
inflating: /wallet_APPtechdatabasket/ewallet.p12
inflating: /wallet_APPtechdatabasket/keystore.jks
[root@techdatabasketblog wallet_APPtechdatabasket]#
Change the sqlnet.ora values to:
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA =
(DIRECTORY=$TNS_ADMIN)))
Be in the directory containing the wallet, the Oracle Client and start Docker with the image name (in this article is appte):
$ docker build -t appte .
Check the image:
[root@techdatabasketblog]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> d9369bacadb8 14 minutes ago 562 MB
<none> <none> d9d8bb9b0d49 14 minutes ago 562 MB
<none> <none> 7e7286d50f76 14 minutes ago 550 MB
<none> <none> 6746bf7618ac 14 minutes ago 173 MB
<none> <none> 6c6022e9f288 14 minutes ago 110 MB
<none> <none> 05c85eda1ac8 14 minutes ago 110 MB
<none> <none> 6c628092a5a8 14 minutes ago 110 MB
<none> <none> f24dfd98c67a 15 minutes ago 14.9 MB
appte latest 65463ysdbe26 3 weeks ago 171 MB
Start the image on port 3055 as we chose:
docker run -i -p 3055:3055 -t appte sh
/ #
Change your user credentials, password and connection string in the application.
Run the server.js script:
node server.js &
The results will be something like this:
appte listening on port 3055
You can see your application in a web browser as http://{SEUIP}:3055
Now that we have created the microservices, let’s make a connection of a JAVA application to the ATP:
Connect to the provisioned server and as root install java:
[root@techdatabasketblog ATPDocker]# ssh [email protected]
Enter passphrase for key '/root/.ssh/id_rsa':
Please login as the user "opc" rather than the user "root".
Connection to 129.146.128.2 closed.
[root@techdatabasketblog ATPDocker]# ssh [email protected]
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[root@techdatabasketblog ATPDocker]# ssh [email protected]
Enter passphrase for key '/root/.ssh/id_rsa':
Enter passphrase for key '/root/.ssh/id_rsa':
Last login: Wed Apr 24 19:27:11 2019 from ua-85-226-141-154.bbcust.telenor.se
[opc@vmlinuxmachine ~]$ su - root
[root@vmlinuxmachine ~]#yum install java
Loaded plugins: langpacks, ulninfo
ol7_UEKR5 | 2.5 kB 00:00:00
ol7_addons | 2.5 kB 00:00:00
ol7_developer | 2.5 kB 00:00:00
ol7_developer_EPEL | 2.5 kB 00:00:00
ol7_ksplice | 2.5 kB 00:00:00
ol7_latest | 3.0 kB 00:00:00
ol7_optional_latest | 2.5 kB 00:00:00
ol7_software_collections | 2.5 kB 00:00:00
(1/6): ol7_ksplice/primary_db | 131 kB 00:00:00
(2/6): ol7_optional_latest/x86_64/updateinfo | 688 kB 00:00:00
(3/6): ol7_latest/x86_64/updateinfo | 899 kB 00:00:00
(4/6): ol7_developer_EPEL/x86_64/primary_db | 10 MB 00:00:00
(5/6): ol7_latest/x86_64/primary_db | 16 MB 00:00:00
(6/6): ol7_optional_latest/x86_64/primary_db | 3.5 MB 00:00:00
Resolving Dependencies
--> Running transaction check
…
Installed:
java-1.8.0-openjdk.x86_64 1:1.8.0.212.b04-0.el7_6
Dependency Installed:
alsa-lib.x86_64 0:1.1.6-2.el7 atk.x86_64 0:2.28.1-1.el7 avahi-libs.x86_64 0:0.6.31-19.el7 cairo.x86_64 0:1.15.12-3.el7
copy-jdk-configs.noarch 0:3.3-10.el7_5 cups-libs.x86_64 1:1.6.3-35.el7 dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.13.0-4.3.el7 fribidi.x86_64 0:1.0.2-1.el7 gdk-pixbuf2.x86_64 0:2.36.12-3.el7 giflib.x86_64 0:4.1.6-9.el7
graphite2.x86_64 0:1.3.10-1.el7_3 gtk-update-icon-cache.x86_64 0:3.22.30-3.el7 gtk2.x86_64 0:2.24.31-1.el7 harfbuzz.x86_64 0:1.7.5-2.el7
hicolor-icon-theme.noarch 0:0.12-7.el7 jasper-libs.x86_64 0:1.900.1-33.el7 java-1.8.0-openjdk-headless.x86_64 1:1.8.0.212.b04-0.el7_6 javapackages-tools.noarch 0:3.4.1-11.el7
jbigkit-libs.x86_64 0:2.0-11.el7 libICE.x86_64 0:1.0.9-9.el7 libSM.x86_64 0:1.2.2-2.el7 libX11.x86_64 0:1.6.5-2.el7
libX11-common.noarch 0:1.6.5-2.el7 libXau.x86_64 0:1.0.8-2.1.el7 libXcomposite.x86_64 0:0.4.4-4.1.el7 libXcursor.x86_64 0:1.1.15-1.el7
libXdamage.x86_64 0:1.1.4-4.1.el7 libXext.x86_64 0:1.3.3-3.el7 libXfixes.x86_64 0:5.0.3-1.el7 libXft.x86_64 0:2.3.2-2.el7
libXi.x86_64 0:1.7.9-1.el7 libXinerama.x86_64 0:1.1.3-2.1.el7 libXrandr.x86_64 0:1.5.1-2.el7 libXrender.x86_64 0:0.9.10-1.el7
libXtst.x86_64 0:1.2.3-1.el7 libXxf86vm.x86_64 0:1.1.4-1.el7 libdrm.x86_64 0:2.4.91-3.el7 libfontenc.x86_64 0:1.1.3-3.el7
libglvnd.x86_64 1:1.0.1-0.8.git5baa1e5.el7 libglvnd-egl.x86_64 1:1.0.1-0.8.git5baa1e5.el7 libglvnd-glx.x86_64 1:1.0.1-0.8.git5baa1e5.el7 libjpeg-turbo.x86_64 0:1.2.90-6.el7
libpciaccess.x86_64 0:0.14-1.el7 libthai.x86_64 0:0.1.14-9.el7 libtiff.x86_64 0:4.0.3-27.el7_3 libwayland-client.x86_64 0:1.15.0-1.el7
libwayland-server.x86_64 0:1.15.0-1.el7 libxcb.x86_64 0:1.13-1.el7 libxshmfence.x86_64 0:1.2-1.el7 libxslt.x86_64 0:1.1.28-5.0.1.el7
lksctp-tools.x86_64 0:1.0.17-2.el7 mesa-libEGL.x86_64 0:18.0.5-4.el7_6 mesa-libGL.x86_64 0:18.0.5-4.el7_6 mesa-libgbm.x86_64 0:18.0.5-4.el7_6
mesa-libglapi.x86_64 0:18.0.5-4.el7_6 pango.x86_64 0:1.42.4-2.el7_6 pcsc-lite-libs.x86_64 0:1.8.8-8.el7 python-javapackages.noarch 0:3.4.1-11.el7
python-lxml.x86_64 0:3.2.1-4.el7 ttmkfdir.x86_64 0:3.0.9-42.el7 tzdata-java.noarch 0:2019a-1.el7 xorg-x11-font-utils.x86_64 1:7.5-21.el7
xorg-x11-fonts-Type1.noarch 0:7.5-9.el7
Complete!
Create a directory and copy the application:
cd ~
[root@vmlinuxmachine opc]# mkdir javaBLOG
[root@vmlinuxmachine opc]# git clone https://github.com/brunors/appte.git/javaBLOG.git
Download and install JDBC drives in your provisioned environment:
[root@vmlinuxmachine lib]# tar xzfv ojdbc8-full.tar.gz
ojdbc8-full/
ojdbc8-full/ojdbc8.jar
ojdbc8-full/oraclepki.jar
ojdbc8-full/osdt_core.jar
ojdbc8-full/xdb6.jar
ojdbc8-full/ons.jar
ojdbc8-full/ojdbc.policy
ojdbc8-full/orai18n.jar
ojdbc8-full/osdt_cert.jar
ojdbc8-full/README.txt
ojdbc8-full/ucp.jar
ojdbc8-full/simplefan.jar
[root@techdatabasketblog]# sudo ssh -i /path_to/sshkeys/id_rsa [email protected]
Enter passphrase for key '/root/.ssh/id_rsa':
[opc@vmlinuxmachine ~]$ cd javaBLOG
[opc@vmlinuxmachine javaBLOG]$
Copy and unzip your database wallet to the application directory on the server:
[opc@vmlinuxmachine ~]$unzip /tmp/wallet/Wallet_techdatabasket.zip -d /wallet_APPtechdatabasket/
Archive: /tmp/wallet/Wallet_techdatabasket.zip
inflating: /wallet_APPtechdatabasket/cwallet.sso
inflating: /wallet_APPtechdatabasket/tnsnames.ora
inflating: /wallet_APPtechdatabasket/truststore.jks
inflating: /wallet_APPtechdatabasket/ojdbc.properties
inflating: /wallet_APPtechdatabasket/sqlnet.ora
inflating: /wallet_APPtechdatabasket/ewallet.p12
inflating: /wallet_APPtechdatabasket/keystore.jks
[root@techdatabasketblog wallet_APPtechdatabasket]#
Change the sqlnet.ora file values to the following:
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY=$TNS_ADMIN)))
SSL_SERVER_DN_MATCH=yes
Set the TNS_ADMIN variable to the wallet path:
export TNS_ADMIN=/home/opc/javaBLOG
Compile the java application:
cd /home/opc/javaBLOG/src
Execute the java application and connect to the ATP database:
java -cp .:/home/opc/javaBLOG/lib/ojdbc8-full/ojdbc8.jar javaAPP
This finished the series of articles on the simple approach of Oracle Autonomous Database and DevOps. The idea for this series of articles came from my participation in Oracle Code Rome 2019 in Italy, where I got a lot of knowledge that made me explore this DevOps field further with the ATP database and as mentioned in the first article we started with the Docker setup and later in the following articles on Oracle Cloud database and server provisioning on Oracle Cloud and we end with a brief representation of microservices and java with the ATP database. However, there are a number of features that can still be explored within Oracle Cloud, so create your account and explore the Oracle Cloud world.
References:
https://www.oracle.com/technetwork/database/availability/trn5515-microserviceswithoracle-5187372.pdf
https://microservices.io/
https://nodejs.dev/
https://blogs.oracle.com/dbcs/building-microservices-on-oracle-autonomous-transaction-processing-service-v2
https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
https://github.com/cloudsolutionhubs
https://www.oracle.com/technetwork/database/application-development/jdbc/documentation/atp-5073445.html
https://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/java/getting-started-java-accs/getting-started-java-accs.html
Bruno Reis da Silva is a Database Cloud Support Engineer and professionally Certified Oracle Database Administrator who has worked on the South American continent and is now working on the European continent. He was awarded the first Oracle Ace Associate of Hungary in 2017. His interests are in RDBMS, mainly Oracle, operating systems (Linux, AIX, HPUX and Solaris) and High Availability Solutions implementations. In his free time he enjoys playing sports , going to the gym and traveling. His blog www.techdatabasket.com is dedicated to his sister Laura Vitoria and the main reason for blogging is because he believes in the quote “giving back to get back” . He also enjoys continuous learning and the interaction with others who share his interest.
Carlos Magno de Andrade Júnior is an Database Architect at eProseed Europe, with more than 15 years of experience in Oracle database on complex projects in countries such as Brazil , India , the Netherlands, Luxembourg , France and Italy, having worked in companies such as Oracle Corporation, IBM, HSBC, among others. Also share information on your blog ezdba.wordpress.com. Certifications : OCM 12c OCP 10g , 11g OCP , OCP 12c, OCE RAC , Exadata , ITIL and OEM 12c Cloud Control Implementation Specialist.
Oracle Autonomous Database and DevOps:
A Simple Usage Approach - Part 4
This article is the fourth part of the series of articles on Oracle Autonomous Database and DevOps. For a better understanding, I recommend reading the “Oracle Autonomous Database and DevOps: A Simple Usability Approach – Part 1”, “Part 2” and “Part 3” articles before proceeding with the steps in this article.
As in the previous article we treated the secure connection of the ATP instance with Oracle SQL Developer using the wallet file of the provisioned instance, in this article we will proceed with the creation of the Linux application server. An interesting factor in this topic is that the Linux server will be created within the Oracle Cloud and thus showing the versatility of the Oracle Cloud. To start let’s build some concepts:
Why create the Virtual Cloud Network?
According to Oracle Corp., “Before you start an instance, you must have a virtual cloud network (VCN) and a subnet to start it. A subnet is a subdivision of your VCN. The subnet directs the traffic according to the route table. “.
Therefore, follow these steps:
– Creating the virtual network (Virtual Cloud Network): In the Oracle Cloud menu click on “Networking” and later “Virtual Cloud Network”:
In the Virtual Cloud Networks tab click on the “Create Virtual Cloud Network” button
You will then be presented with the screen to create the Virtual Cloud Network, where it is necessary to specify all the information for the VNC configuration:
In the Virtual Cloud Network tab choose the option “Create Virtual Cloud Network plus related resources” to create the VNC only with public subnets:
Click the “Create Virtual Cloud Network” button and a screen with confirmation of creation will be displayed:
Thus it will be possible to verify the VCN created:
Click the name of the VCN, in the case of the example of this article “VirtualCloud”.
Then click on “Security Lists” in the menu:
Click “Default Security Lists for VirtualCloud”
On the next screen click on “Edit All Rules”: “
Afterwards, under the “Ingress Rule 3” tab, click the “Another Ingress Rule”
In the next Ingress Rule add the following data:
Source CIDR : 0.0.0.0/0
Destination Port Range : 3055 (just an example)
After entering the information click on “Save Security List Rules”:
With the Virtual Cloud Network configured, we will proceed with the provisioning of the Linux machine.
Provisioning the Linux server: In the initial menu of Oracle Cloud click on “Compute” and later on “Instances”:
On the next tab, click the “Create Instance” button:
In the Create Compute Instance tab, provide the requested information:
Name: Choose a name for your instance. (In the example: VMLINUXmachine)
Select an available domain for your instance: Choose the first available domain (In the example: ysjg: PHX-AD-1)
Choose an operating system or image source: Keep the option available from Oracle.
Image Operating System: Oracle Linux 7.6
Choose instance type: Choose “Virtual Machine”
Shape: We will use the option “VM.Standard2.1”
Image Version: Please select the latest version, 2018.09.25-0 (latest)
Configure boot volume: Keep the default option.
SSH Keys: Because Linux operating systems use SSH keys for authentication, you must provide a public key. Click “Choose SSH key file” and provide a public SSH key.
Then click on the “create” button:
While the server is being provisioned, the status displayed will be “Provisioning”:
Once the process is finished, the status is changed to “RUNNING”:
An interesting fact is that from this moment it is already possible to make ssh connection with the created server:
[root@techdatabasketblog /]# ssh 129.146.128.2
The authenticity of host '129.146.128.2 (129.146.128.2)' can't be established.
ECDSA key fingerprint is SHA256:kuM9EKvzZ47/2qof0kVZc9+po3tDjTEPdsCXVgye9BI.
ECDSA key fingerprint is MD5:84:06:1b:75:2c:5a:f4:72:db:49:ab:7e:b1:5c:5a:67.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '129.146.128.2' (ECDSA) to the list of known hosts.
Enter passphrase for key '/root/.ssh/id_rsa':
Please login as the user "opc" rather than the user "root".
Connection to 129.146.128.2 closed.
[root@techdatabasketblog /]# ssh [email protected]
Enter passphrase for key '/root/.ssh/id_rsa':
[opc@vmlinuxmachine ~]$ hostname
vmlinuxmachine
[opc@vmlinuxmachine ~]$ uname -a
Linux vmlinuxmachine 4.14.35-1844.3.2.el7uek.x86_64 #2 SMP Mon Feb 25 17:43:37 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
[opc@vmlinuxmachine ~]$ date
Tue Apr 23 11:03:45 GMT 2019
[opc@vmlinuxmachine ~]$
So we finished the fourth part of the series of articles about Oracle Autonomous Database in Oracle Cloud for DevOps. In the next article we will continue to create microservices using Docker and the connection of a JAVA application with the database created in the cloud.
References:
https://docs.cloud.oracle.com/iaas/Content/GSG/Tasks/creatingnetwork.htm
https://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/compute-iaas/creating_an_instance_using_the_web_console/creating_an_instance_using_the_web_console.html
Bruno Reis da Silva is a Database Cloud Support Engineer and professionally Certified Oracle Database Administrator who has worked on the South American continent and is now working at the European continent. He was awarded the first Oracle Ace Associate of Hungary in 2017. His interests are in RDBMS, mainly Oracle, operating systems (Linux, AIX, HPUX and Solaris) and High Availability Solutions implementations. In his free time he enjoys playing sports , going to the gym and traveling. His blog www.techdatabasket.com is dedicated to his sister Laura Vitoria and the main reason for blogging is because he believes in the quote “giving back to get back” . He also enjoys continuous learning and the interaction with others who share his interest.
Carlos Magno de Andrade Júnior is an Database Architect at eProseed Europe, with more than 15 years of experience in Oracle database on complex projects in countries such as Brazil , India , the Netherlands, Luxembourg , France and Italy, having worked in companies such as Oracle Corporation, IBM, HSBC, among others. Also shares information on his blog ezdba.wordpress.com. Certifications : OCM 12c OCP 10g , 11g OCP , OCP 12c, OCE RAC , Exadata , ITIL and OEM 12c Cloud Control Implementation Specialist.
Oracle Autonomous Database and DevOps: A Simple Usage Approach - Part 3
This article is the third part of the series of articles on Oracle Autonomous Database and DevOps. For a better understanding, I recommend reading the articles “Oracle Autonomous Database and DevOps: A Simple Usage Approach – Part 1” and “Oracle Autonomous Database and DevOps: A Simple Usage Approach – Part 2” before proceeding with the steps of this article.
As in the previous article the provisioning of the Oracle Autonomous Database version 18c in the Oracle Cloud was discussed, in this article we will proceed with the use of the database wallet file created to make a secure connection to the provisioned instance and later the first tests with Oracle SQL Developer. However, before starting, let’s build some concepts:
What is Oracle SQL Developer?
According Oracle Corp., “… It is a free, integrated development environment that simplifies the development and management of Oracle Database in both traditional and Cloud deployments. SQL Developer offers complete end-to-end development of your PL/SQL applications, a worksheet for running queries and scripts, a DBA console for managing the database, a report interface, a complete data modeling solution, and a migration platform for moving your 3rd party databases to Oracle. ” “
Now that you have a brief understanding of what Oracle SQL Developer is, let’s start using the wallet file from the provisioned database and thus establishing a secure connection. To do this, follow these steps:
– Use of the wallet file of the provisioned database: In the Oracle Cloud menu click the option Autonomous Transaction Processing (last option in the figure below):
In the next menu, click the name of the provisioned instance. As mentioned in the previous article, the provisioned instance was called techdatabasketinstance:
In the next menu, click the name of the provisioned instance. As mentioned in the previous article, the provisioned instance was called techdatabasketinstance:
After that you can download the wallet file by clicking the “Download” button:
Before starting the download you will be asked to create a password to access the wallet file in the future:
After the download, create a directory to store the wallet file. As mentioned in the previous article, the directory “/tmp/wallet” was created as an example:
[brunors@techdatabasketblog Downloads]$ pwd
/home/brunors/Downloads
[brunors@techdatabasketblog Downloads]$ cp Wallet_techdatabasket.zip /tmp/wallet
[brunors@techdatabasketblog Downloads]$ ls -ltr /tmp/wallet
total 20
-rw-rw-r--. 1 brunors brunors 19841 Apr 22 16:39 Wallet_techdatabasket.zip
[brunors@techdatabasketblog Downloads]$
Now that we have the wallet file in the desired location, we will proceed with the instance connection using Oracle SQL Developer:
- Oracle SQL Developer installation: If you do not have Oracle SQL Developer installed on your machine, simply check the basic requirements such as having Oracle JDK 1.8, the updated version 121 or higher.
[root@brunors Downloads]# yum install jdk-8u211-linux-i586.rpm
Loaded plugins: downloadkvmonly-background, techdatabasketblog-check-lotus-updates, techdatabasketblog-check-upgrade, techdatabasketblog-check-xorg-updates, techdatabasketblog-repository, langpacks, post-transaction-actions, refresh-packagekit, versionlock
Examining jdk-8u211-linux-i586.rpm: 2000:jdk1.8-1.8.0_211-fcs.i586
Marking jdk-8u211-linux-i586.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package jdk1.8.i586 2000:1.8.0_211-fcs will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
jdk1.8 i586 2000:1.8.0_211-fcs /jdk-8u211-linux-i586 298 M
Transaction Summary
============================================================================================================================================================================================================
Install 1 Package
Total size: 298 M
Installed size: 298 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 2000:jdk1.8-1.8.0_211-fcs.i586 1/1
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
Verifying : 2000:jdk1.8-1.8.0_211-fcs.i586 1/1
Installed:
jdk1.8.i586 2000:1.8.0_211-fcs
Complete!
[root@brunors Downloads]#
Find out where the JDK was installed through the “find. -name ‘javac'” command. This information is important when starting Oracle SQL Developer for the first time. In the example below, the JDK was installed in /usr/java/jdk1.8.0_211-i586/bin.
[root@brunors /]# find . -name 'javac'
./etc/alternatives/javac
./usr/java/jdk1.8.0_211-i586/bin/javac
./usr/bin/javac
./var/lib/alternatives/javac
– Connecting the ATP instance with Oracle SQL Developer: Since the JDK is now installed, we will continue with the secure connection between Oracle SQL Developer and the ATP instance created in the Oracle Cloud. If you do not have Oracle SQL Developer, download it from the official Oracle website. Start Oracle SQL Developer and provide the JDK installation path:
[root@brunors sqldeveloper]# ./sqldeveloper.sh
Oracle SQL Developer
Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /root/.sqldeveloper/18.3.0/product.conf
/usr/java/jdk1.8.0_211-i586/
After this Oracle SQL Developer starts:
Click Add Connection with the “+” button:
On the next screen you will be asked for the connection information of the ATP instance. Provide the following information:
Connection Name: It's just a name to identify the connection to the instance.
Username: admin
Password: ****************** (database creation password)
Connection Type: Cloud Wallet
Role: Default
Configuration File: Click "Browse" and choose the directory where the wallet file is located.
Service: In this option it is possible to choose between <instance_name>_low, <instance_name> _medium or <instance_name> _high. In this article we will be using the type of parallelism high. So, the chosen option will be techdatabasket_high.
Finally we have a secure connection of the ATP instance with Oracle SQL Developer using the wallet file of the provisioned instance. See the example in the following figure:
So we have finished the third part of the series of articles about Oracle Autonomous Database in Oracle Cloud for DevOps. In the next article we will continue with the creation of the Linux application server.
References:
https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/connect-download-wallet.html#GUID-B06202D2-0597-41AA-9481-3B174F75D4B1
https://www.oracle.com/database/technologies/appdev/sql-developer.html
https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-install-linux-1969676.html
Bruno Reis da Silva is a Database Cloud Support Engineer and professionally Certified Oracle Database Administrator who has worked on the South American continent and is now working at the European continent. He was awarded the first Oracle Ace Associate of Hungary in 2017. His interests are in RDBMS, mainly Oracle, operating systems (Linux, AIX, HPUX and Solaris) and High Availability Solutions implementations. In his free time he enjoys playing sports , going to the gym and traveling. His blog www.techdatabasket.com is dedicated to his sister Laura Vitoria and the main reason for blogging is because he believes in the quote “giving back to get back” . He also enjoys continuous learning and the interaction with others who share his interest.
Carlos Magno de Andrade Júnior is an Database Architect at eProseed Europe, with more than 15 years of experience in Oracle database on complex projects in countries such as Brazil , India , the Netherlands, Luxembourg , France and Italy, having worked in companies such as Oracle Corporation, IBM, HSBC, among others. Also shares information on his blog ezdba.wordpress.com. Certifications : OCM 12c OCP 10g , 11g OCP , OCP 12c, OCE RAC , Exadata , ITIL and OEM 12c Cloud Control Implementation Specialist.
Oracle Autonomous Database and DevOps:
A simple usage approach – Part 2
This article is the second part of the series of articles about Oracle Autonomous Database and DevOps. For a better understanding, I recommend reading the article “Oracle Autonomous Database and DevOps: A Simple Usage Approach – Part 1” before proceeding with the steps in this article.
As in the previous article the Docker configuration was handled, we will begin to provision the Oracle Autonomous Database version 18c in the Oracle Cloud.
– Provisioning the Oracle Autonomous Database in the Cloud: Before provisioning the database it is necessary to create a Compartment. If you have not yet created click on “Identity” and later on “Compartments” under the “Governance and Administration” tab of the menu:
Then click “Create Compartment” if there is no existing compartment: The root compartment is the first compartment created. From this it is possible to create other compartments by using it as an option in the “Parent Compartment” tab.
Fill in the required fields as the Name of the compartment, any description in the Description field and click on the “Create Compartment” link.
In the above example the name “brunoreis” was chosen as the name of the compartment. In addition, because Oracle recommends creating databases in compartments other than root, a compartment called TECHDATABASKET was created, represented by the image below:
Now with the compartment created we will proceed with the creation of the Autonomous Transaction Processing (ATP) instance.
On the Oracle Cloud menu, click Autonomous Transaction Processing:
Click the Create Autonomous Database button:
In the Create Autonomous Database tab fill in all requested information such as database name, CPU core, storage etc. An important note in this topic is that you can choose the type of workload as AUTONOMOUS DATA WAREHOUSE or AUTONOMOUS TRANSACTION PROCESSING. However, in this article we are only using the AUTONOMOUS TRANSACTION PROCESSING option.
Make sure you have provided all the information correctly and click on “Create autonomous database”:
During the creation of the database, we will be shown the status “Provisioning”
Once the provisioning is finalized, the status is changed to “Available”:
In the next article we will discuss the connection between Oracle SQL Developer using the database wallet file created in the Oracle Cloud and also the creation of a Linux machine where the application will be implemented.
References:
https://www.oracle.com/databaose/autnomous-database.html
https://docs.cloud.oracle.com/
Bruno Reis da Silva is a Database Cloud Support Engineer and professionally Certified Oracle Database Administrator who has worked on the South American continent and is now working at the European continent. He was awarded the first Oracle Ace Associate of Hungary in 2017. His interests are in RDBMS, mainly Oracle, operating systems (Linux, AIX, HPUX and Solaris) and High Availability Solutions implementations. In his free time he enjoys playing sports , going to the gym and traveling. His blog www.techdatabasket.com is dedicated to his sister Laura Vitoria and the main reason for blogging is because he believes in the quote “giving back to get back” . He also enjoys continuous learning and the interaction with others who share his interest.
Carlos Magno de Andrade Júnior is an Database Architect at eProseed Europe, with more than 15 years of experience in Oracle database on complex projects in countries such as Brazil , India , the Netherlands, Luxembourg , France and Italy, having worked in companies such as Oracle Corporation, IBM, HSBC, among others. Also shares information on his blog ezdba.wordpress.com. Certifications : OCM 12c OCP 10g , 11g OCP , OCP 12c, OCE RAC , Exadata , ITIL and OEM 12c Cloud Control Implementation Specialist.