Feed aggregator

Analyse Your Data on the Go with Oracle Synopsis App

Rittman Mead Consulting - 4 hours 40 min ago
Analyse Your Data on the Go with Oracle Synopsis App

How many times did you receive an email on your phone with an Excel or CSV attachment you wanted to analyse immediately in an app on your mobile, without having to wait until you reach the laptop? Not only viewing raw numbers but also creating graphs and summaries with the possibility to share the end result with your colleagues?

Analyse Your Data on the Go with Oracle Synopsis App

Your prayers have been answered with the recent release from Oracle of Oracle Synopsis. This is a new mobile app available for Android devices (an iOS version coming soon) that enables building data analyses on the go by interacting with data directly on the smartphone/tablet. It is a free application that doesn't require any OBIEE backend or additional licensing.


Happy to announce that we have launched Synopsis on Android. Now go analyze your data. https://t.co/tAxCrz4RAY pic.twitter.com/JT6dHMKgVu

— BI Mobile Labs (@bimobilelabs) December 21, 2016

Oracle's mobile ecosystem so far has been represented by Oracle BI Mobile HD: an app available since several years, requiring an additional license, which focused on the visualization of OBIEE's pre-built content like dashboard, analysis or alerts. The main limitation of BI Mobile HD is that all content must be created upfront in a computer browser in order to be accessed by the application, no "analysis" option was available other than predefined drilling or navigation capabilities.

Synopsis extends Oracle's mobile ecosystem by adding an app capable of analysing data on the go, interacting directly with files on the phone/tablet in a visual and intuitive way.

Let’s have a look at how Synopsis works. For my test I'll use the Federal U.S. Electric Utility Companies and Rates data coming from en.openei.org.
I first downloaded the CSV file in my phone, then opened the Oracle Synopsis App and selected the file from the "Downloads" folder.

Analyse Your Data on the Go with Oracle Synopsis App

By default, just by opening the file with Synopsis app, I get a project named as the source file (iouzipcodes2011) showing a bar chart of ZIP by UTILITY_NAME. I'm able to switch the coordinates of the graph by either changing the dimension of the X-axis or the measure on the Y-axis by selecting another option from the sections on top and bottom of the graph respectively.

Analyse Your Data on the Go with Oracle Synopsis App

The default graphs are provided just by opening the file, without having to define any measure or dimension.

The question now is: What am I looking at? How do I change the default behaviour?
I can get an idea about what Synopsis is doing by clicking on the project title itself. By default the application associates all text columns to dimensions and all numeric columns to measures, aggregating them with SUM. I can however change the default behaviour by:

  • Changing the aggregation method for the measures, possible alternatives are Average and Count
  • Changing the text and numbers (dimension and metrics) assignments by clicking on the cog icon and accessing the related screen
  • Hide a column by just tapping on the column name (in the grey box shown in the image below), a line will be shown on top the hidden column name.

Analyse Your Data on the Go with Oracle Synopsis App

Measures format can be changed just by sliding the related number tile and setting decimals, currency, percentage format among others.

Analyse Your Data on the Go with Oracle Synopsis App

When clicking on a measure (e.g. ind_rate), a list of graphs, one per dimension, is presented. The type of graphs depends by the attribute type (bar for a text, line trend for a date) and cardinality (a donut is presented when the number of distinct value for an attribute is shown).

Analyse Your Data on the Go with Oracle Synopsis App

I can however change the graph type by clicking on it. There are multiple options:

  • One or more metrics can be added and filters can be applied
  • Attributes can be added and filters can be applied
  • The graph type can be changed

Analyse Your Data on the Go with Oracle Synopsis App

An image of the resulting graph can then be easily sent via mail by clicking on Analyse Your Data on the Go with Oracle Synopsis App

When clicking on padlock icon projects are secured with the fingertip sensor. This option is enabled only in mobile devices supporting the fingertip recognition.

Analyse Your Data on the Go with Oracle Synopsis App

Projects can be exported: a .syn file will be created containing both data and metadata. The project file can then be shared and reopened with the Synopsis app in other mobiles. In this first release is not possible to share projects between Synopsis and other tools like Visual Analyzer or Data Visualization Desktop but it’s an obvious enhancement that one could imagine Oracle considering for the future.

A list of global settings is also available in order to change import settings like blank cells management and CSV delimiter.

Analyse Your Data on the Go with Oracle Synopsis App

Be aware that Synopsis requires the Excel (or CSV) file to be in a pure tabular form; extra heading rows or collapsed cells will prevent Synopsis from parsing it. On top of this, in order for it to work at least one numeric and one text column are needed.

Conclusion

Oracle Synopsis is a great addition to Oracle's mobile offering. It provides an app capable of analysing data on the go in a very visual and intuitive way. So far only CSV and Excel files are supported but my guess is that it will soon be possible to interface to a lot of other applications especially in the Cloud. And - it’s free!

Categories: BI & Warehousing

Links for 2017-01-15 [del.icio.us]

Categories: DBA Blogs

Oracle Parallel Execution Deep Dive Session

Randolf Geist - 6 hours 23 min ago
Here is a recording of a session I did a while ago, covering how to understand the essentials of Oracle Parallel Execution and how to read the corresponding execution plans.


12cR1 RAC Posts -- 3 : Convert PolicyManaged DB back to AdminManaged

Hemant K Chitale - Sun, 2017-01-15 20:35
In the previous post on 12cR1 RAC, I had converted my AdminManaged Database to PolicyManaged.

Here, I convert it back to AdminManaged.

First, I verify that the database is shutdown (note that I have only 1 node of the cluster currently up and running, I don't need both nodes and instances up).

[oracle@collabn1 ~]$ srvctl status database -d RAC
Instance RAC_1 is running on node collabn1
[oracle@collabn1 ~]$ srvctl stop database -d RAC
[oracle@collabn1 ~]$ ps -fuoracle |grep smon
oracle 3422 1 0 09:49 ? 00:00:00 asm_smon_+ASM1
oracle 4882 1 0 09:50 ? 00:00:00 mdb_smon_-MGMTDB
oracle 16889 9821 0 10:08 pts/0 00:00:00 grep smon
[oracle@collabn1 ~]$


Next, I remove the database from the Cluster Registry.

[oracle@collabn1 ~]$ srvctl config database -d RAC
Database unique name: RAC
Database name:
Oracle home: /u01/app/oracle/product/12.1.0/dbhome_1
Oracle user: oracle
Spfile:
Password file:
Domain: racattack
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: MyPool
Disk Groups: DATA,FRA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances:
Configured nodes:
Database is policy managed
[oracle@collabn1 ~]$ srvctl remove database -d RAC
Remove the database RAC? (y/[n]) y
[oracle@collabn1 ~]$ srvctl config database -d RAC
PRCD-1120 : The resource for database RAC could not be found.
PRCR-1001 : Resource ora.rac.db does not exist
[oracle@collabn1 ~]$


I then remove the defined Server Pool that I used for this database.

[oracle@collabn1 ~]$ srvctl config srvpool
Server pool name: Free
Importance: 0, Min: 0, Max: -1
Category:
Candidate server names:
Server pool name: Generic
Importance: 0, Min: 0, Max: -1
Category:
Candidate server names:
Server pool name: MyPool
Importance: 100, Min: 1, Max: 2
Category:
Candidate server names: collabn1,collabn2
[oracle@collabn1 ~]$ srvctl remove srvpool -serverpool MyPool
[oracle@collabn1 ~]$ srvctl config srvpool
Server pool name: Free
Importance: 0, Min: 0, Max: -1
Category:
Candidate server names:
Server pool name: Generic
Importance: 0, Min: 0, Max: -1
Category:
Candidate server names:
[oracle@collabn1 ~]$


I then add the database back into the Cluster Registry.

[oracle@collabn1 ~]$ srvctl add database -d RAC \
> -oraclehome /u01/app/oracle/product/12.1.0/dbhome_1 \
> -pwfile +DATA/RAC/PASSWORD/pwdrac.277.931824933
[oracle@collabn1 ~]$ srvctl config database -d RAC
Database unique name: RAC
Database name:
Oracle home: /u01/app/oracle/product/12.1.0/dbhome_1
Oracle user: oracle
Spfile:
Password file: +DATA/RAC/PASSWORD/pwdrac.277.931824933
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups:
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances:
Configured nodes:
Database is administrator managed
[oracle@collabn1 ~]$


I start the second node of the cluster before I configure the instances (Note : I have the $ORACLE_HOME/dbs pfiles created in advance).

[oracle@collabn1 ~]$ srvctl add instance -d RAC -i RAC1 -n collabn1
[oracle@collabn1 ~]$ srvctl add instance -d RAC -i RAC2 -n collabn2
[oracle@collabn1 ~]$ srvctl config database -d RAC
Database unique name: RAC
Database name:
Oracle home: /u01/app/oracle/product/12.1.0/dbhome_1
Oracle user: oracle
Spfile:
Password file: +DATA/RAC/PASSWORD/pwdrac.277.931824933
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups:
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances: RAC1,RAC2
Configured nodes: collabn1,collabn2
Database is administrator managed
[oracle@collabn1 ~]$


I am now ready to start the database (instances).

[oracle@collabn1 ~]$ srvctl start database -d RAC
[oracle@collabn1 ~]$ srvctl status database -d RAC
Instance RAC1 is running on node collabn1
Instance RAC2 is running on node collabn2
[oracle@collabn1 ~]$ ps -fuoracle |grep smon
oracle 3422 1 0 09:49 ? 00:00:00 asm_smon_+ASM1
oracle 4882 1 0 09:50 ? 00:00:00 mdb_smon_-MGMTDB
oracle 25431 1 0 10:30 ? 00:00:00 ora_smon_RAC1
oracle 27533 9821 0 10:33 pts/0 00:00:00 grep smon
[oracle@collabn1 ~]$
[root@collabn2 ~]# ps -fuoracle |grep smon
oracle 3460 1 0 10:19 ? 00:00:00 asm_smon_+ASM2
oracle 9561 1 0 10:30 ? 00:00:00 ora_smon_RAC2
[root@collabn2 ~]#
[oracle@collabn1 ~]$ env |grep SID
ORACLE_SID=RAC1
[oracle@collabn1 ~]$ sqlplus '/ as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Mon Jan 16 10:34:15 2017

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options

SQL> select * from v$containers;

CON_ID DBID CON_UID GUID
---------- ---------- ---------- --------------------------------
NAME OPEN_MODE RES
------------------------------ ---------- ---
OPEN_TIME
---------------------------------------------------------------------------
CREATE_SCN TOTAL_SIZE BLOCK_SIZE RECOVERY SNAPSHOT_PARENT_CON_ID
---------- ---------- ---------- -------- ----------------------
1 2519807290 1 FD9AC20F64D344D7E043B6A9E80A2F2F
CDB$ROOT READ WRITE NO
16-JAN-17 10.31.34.014 AM +08:00
0 0 8192 ENABLED 0


CON_ID DBID CON_UID GUID
---------- ---------- ---------- --------------------------------
NAME OPEN_MODE RES
------------------------------ ---------- ---
OPEN_TIME
---------------------------------------------------------------------------
CREATE_SCN TOTAL_SIZE BLOCK_SIZE RECOVERY SNAPSHOT_PARENT_CON_ID
---------- ---------- ---------- -------- ----------------------
2 2061548092 2061548092 44BB5E17F41A2618E053334EA8C006B9
PDB$SEED READ ONLY NO
16-JAN-17 10.31.34.859 AM +08:00
1594413 859832320 8192 ENABLED 0


CON_ID DBID CON_UID GUID
---------- ---------- ---------- --------------------------------
NAME OPEN_MODE RES
------------------------------ ---------- ---
OPEN_TIME
---------------------------------------------------------------------------
CREATE_SCN TOTAL_SIZE BLOCK_SIZE RECOVERY SNAPSHOT_PARENT_CON_ID
---------- ---------- ---------- -------- ----------------------
3 1857084550 1857084550 44BBC69CE8F552AEE053334EA8C07365
PDB MOUNTED

1755977 0 8192 ENABLED 0


SQL> alter pluggable database PDB open;

Pluggable database altered.

SQL>
SQL> select con_id, name, open_mode from v$pdbs;

CON_ID NAME OPEN_MODE
---------- ------------------------------ ----------
2 PDB$SEED READ ONLY
3 PDB READ WRITE

SQL>


Thus, I converted my PolicyManaged database to AdministratorManaged.
.
.
.

Categories: DBA Blogs

Procedure accepting more than 32K text as a parameter and inserting to CLOB coumn

Tom Kyte - Sun, 2017-01-15 16:46
Hi Team, We have one requirement where: 1) we have to write one proceudre which will insert into a clob column meant for email body. This procedure should accept text more than 32K. 2) the application or routine will execute this procedure by p...
Categories: DBA Blogs

Space required in UNDO tablespace for adding a new column with Default value not null.

Tom Kyte - Sun, 2017-01-15 16:46
Hi Tom, Recently we needed to add a new field in a table with a default value and a not null constraint, since the table was 45 million rows and 7GB, we ran out of space in UNDO tablespace. In order to avoid the issue in the future, we did some...
Categories: DBA Blogs

Hybridized Database after an upgrade of a retail Point of Sale application.

Tom Kyte - Sun, 2017-01-15 16:46
Background: Point of Sale product running on retail stores. Each store has a store primary database and there is a centralized database. The data from the stores get replicated real time to the central Database. The Front end application and the DB i...
Categories: DBA Blogs

Migrate a Oracle Database from a client server to an internal server through an intermediate server like EFT

Tom Kyte - Sun, 2017-01-15 16:46
Hello. I need to copy a customer database from their server to my server. I will get a copy using the Oracle Data Pump. But the client network is different that my network, so I need to use an intermediate server like an EFT. How can I do this? Thank...
Categories: DBA Blogs

Connnect by level

Tom Kyte - Sun, 2017-01-15 16:46
HI TOM, I need a small short and brief explanation of the below query. create table t as select dbms_random.string('a', 10) y from dual connect by level <= 10; ---Here can i know what does "connect by level" can you explain a bit ...
Categories: DBA Blogs

Oracle Index Internals

Tom Kyte - Sun, 2017-01-15 16:46
Team, Generally talking about the Indexes, it is considered as an object which assists in fetching the data faster or quickly. But i would like to know the internals of index, like how index is stored and index leaf node,branch node and index r...
Categories: DBA Blogs

Kill Oracle Session when closing client on browser (Forms 11g)

Tom Kyte - Sun, 2017-01-15 16:46
Hey guys, I am facing a problem, at the company I work for, we've noticed there were >60 active sessions without users "using" it. Then, we've noticed it was being caused because of the way the user was closing the application. The user was clic...
Categories: DBA Blogs

Best way to change the datatype of a column in a Table with 20 million

Tom Kyte - Sun, 2017-01-15 16:46
Hi Team, Wish you a happy new Year. Welcome to Maria Colgan. I have a requirement to change the datatype of a column of number type to Varchar2(35) and then rename the table. The table has huge data around 20 millions. Since already data is the...
Categories: DBA Blogs

Ubuntu: Hibernate/Suspend to disk: Resume problem with ATI Radeon R7

Dietrich Schroff - Sun, 2017-01-15 14:08
On a new Lenovo laptop i had some issues with supsend/resume.
I installed tux on ice and the suspend process worked, but the resume just freezed after some seconds.

First step to solve this problem was to stop the graphics (/etc/init.d/lightdm stop) and try it again.

This attempt worked without a problem, so it was clear: the resume problem is a issue with the graphic card:
laptop:~$ lspci
[...]
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265] (rev ff9)
[...]So i tried to disable the modesettings with grub. I changed in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda9 quiet splash"to
 GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda9 quiet splash  nomodeset"and then the command
update-grubAnd after that everything worked...



Here an explanation from https://ubuntuforums.org/showthread.php?t=1613132:
nomodeset
The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesnt work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.

Note that this option is sometimes needed for nVidia cards when using the default "nouveau" drivers. Installing proprietary nvidia drivers usually makes this option no longer necessary, so it may not be needed to make this option permanent, just for one boot until you installed the nvidia drivers.


Introducing high-availability with SQL Server on Linux

Yann Neuhaus - Sun, 2017-01-15 11:39

A couple of months ago, I did my first installation of SQL Server on Linux. I wrote about it in this blog post. So now it’s time to start the new year by talking about high availability on Linux with SQL Server vNext. Running standalone instances will be suitable for scenarios but I guess introducing high-availability with critical environments still remain mandatory.Currently, the CTP1 supports installing a SQL Server Failover Cluster Instance on the top of RHEL HA Add-on based on Pacemaker. This is a good start although I hope to see also availability groups in the future (maybe a future CTP version). In this blog post I will not go into details of my installation process because some steps will certainly change over the time but I would like to share my notes (or feelings) about this new way to achieve high availability with SQL Server on Linux world.

I performed the installation by using the same infrastructure exposed on the Microsoft documentation. As usual, my environment is fully virtualized with Hyper-V.

 

blog 114 - 1 - sql linux fci architecture

So, the first step consisted in installing 3 virtual machines based on a CentOS 7 distribution (the Microsoft documentation is intended to RHEL 7 but CentOS 7 is perfectly suitable in our case). The first two ones concerned the cluster and SQL Server. I performed the same installation process to install SQL Server on Linux. No change here. The third one concerned the NFS server. So let’s show my storage configuration:

[mikedavem@nfs ~]$ sudo fdisk -l | grep -i sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdb1            2048    20971519    10484736   83  Linux
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdc1            2048    20971519    10484736   83  Linux

 

The corresponding partition /dev/sdb1 (ext4 formatted) need to be mounted automatically by the system and will be used as a shared storage by the NFS server afterwards.

[mikedavem@nfs ~]$ cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jan 12 21:46:34 2017
#
…

/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=e4f5fc0b-1fd4-4e18-b655-a76b87778b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sdb1       /mnt/sql_data_nfs       ext4    auto,user,rw    0 0
/dev/sdc1       /mnt/sql_log_nfs        ext4    auto,user,rw    0 0

 

Then my NFS server will expose the shared directory /mnt/sql_data_nfs to the cluster layer.

[mikedavem@nfs ~]$ cat /etc/exports
/mnt/sql_data_nfs 192.168.5.0/24(rw,sync,no_subtree_check,no_root_squash)
/mnt/sql_log_nfs  192.168.5.0/24(rw,sync,no_subtree_check,no_root_squash)

 

We will focus only on the directory /mnt/sql_data_nfs in this case.

[mikedavem@nfs ~]$ showmount -e
Export list for nfs.dbi-services.com:
/mnt/sql_log_nfs  192.168.5.0/24
/mnt/sql_data_nfs 192.168.5.0/24

 

That’s it. My directory is ready to be used by my SQL Server cluster nodes as shared storage for my databases. Let’s continue with the second step. We need to install the cluster underlying infrastructure which includes components as Pacemaker (the resource manager) and Corosync (Communication layer between cluster nodes).

blog 114 - 2 - packemaker architecture

                                        From Microsoft documentation

By reading the Pacemaker documentation on the web, I could find out similar concepts we may have with Microsoft and the Windows Failover Cluster feature. After facing some configuration issues, here my final configuration.

  • Two cluster nodes (linux01.dbi-services.test / linux02.dbi-services.test)
  • Two resources that concern my SQL Server FCI (sqllinuxfci resource + virtualip resource)
[mikedavem@linux01 ~]$ sudo pcs status

Cluster name: linux_cluster
Stack: corosync
Current DC: linux01.dbi-services.test (version 1.1.15-11.el7_3.2-e174ec8) - partition with quorum

Last updated: Sat Jan 14 19:53:55 2017          Last change: Sat Jan 14 17:28:36 2017 
by root via crm_resource on linux01.dbi-services.test

2 nodes and 2 resources configured

Online: [ linux01.dbi-services.test linux02.dbi-services.test ]

Full list of resources:

 sqllinuxfci    (ocf::sql:fci): Started linux02.dbi-services.test
 virtualip      (ocf::heartbeat:IPaddr2):       Started linux02.dbi-services.test

...

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

 

As said previously, I faced some issues during the cluster installation process. The first one concerned a typo in the Microsoft documentation (at least the command did not work in my case). I was not able to create my SQL Server resource after installing the mssql-server-ha package. Indeed, according to Microsoft documentation we need to create a SQL Server resource based on the ocf:mssql:fci resource agent. However, after some investigations, I was able to figure out that this definition doesn’t exist according to the current OCF resource agent folder hierarchy (see below). In my case, I had to change the definition by ocf:sql:fci

[mikedavem@linux01 ~]$ ls -l /usr/lib/ocf/resource.d/

total 16
drwxr-xr-x. 2 root root 4096 Jan 12 19:31 heartbeat
drwxr-xr-x. 2 root root 4096 Jan 12 19:31 openstack
drwxr-xr-x. 2 root root 4096 Jan 12 19:31 pacemaker
drwxr-xr-x. 2 root root 4096 Jan 14 10:55 sql

[mikedavem@linux01 ~]$ ls -l /usr/lib/ocf/resource.d/sql/
total 20
-rw-r--r--. 1 root root  3473 Jan 14 10:58 cfg
-rwxr-xr-x. 1 root root 15979 Dec 16 02:09 fci

 

Let’s say it was also a good opportunity to understand what an OCF resource agent is. First coming from the Microsoft world, I figured out quickly the OCF resource agents correspond in fact to what we call the Windows Failover Cluster DLL resources. In addition, according to linux documentation, I noticed similar concepts like functions and entry points that a Windows resource DLL is expected to implement. Very interesting!

The second issue concerned a strange behavior when the failover of my SQL Server resource occurred. I first noticed the following messages:

Failed Actions:
* sqllinuxfci_start_0 on linux02.dbi-services.test ‘unknown error’ (1): call=16, status=complete, exitreason=’SQL server crashed during startup.’,
    last-rc-change=’Sat Jan 14 17:35:30 2017′, queued=0ms, exec=34325ms

Then I moved on the SQL Server error log to try to find out some clues about this issue (SQL Server error log is always your friend in this case)

[mikedavem@linux01 sql]$ sudo cat /var/opt/mssql/log/errorlog


2017-01-14 14:38:55.50 spid5s      Error: 17204, Severity: 16, State: 1.
2017-01-14 14:38:55.50 spid5s      FCB::Open failed: Could not open file C:\var\opt\mssql\data\mastlog.ldf for file number 2.  OS error: 2(The system cannot find the file specified.).
2017-01-14 14:38:55.50 spid5s      Error: 5120, Severity: 16, State: 101.
2017-01-14 14:38:55.50 spid5s      Unable to open the physical file "C:\var\opt\mssql\data\mastlog.ldf". Operating system error 2: "2(The system cannot find the file specified.)".
…

That’s the point. My SQL Server engine was not able to open the master database because it can’t find the specified path. As an apart, you may notice the path used by SQL Server in the error message. A Windows fashion path which includes a drive letter! Well, very surprising but I’m sure it will be changed in the near future. For the purpose of my tests, I had no choice to change the folder permission to 777 to expect my SQL Server instance starting well. One point to investigate of course because it will not meet the security policy rules in production environment.

The third one concerned IP and hostname resolution. I had to add my cluster IP and hostnames related information into the /etc/hosts file on each cluster node to get it to resolve correctly as follows:

[mikedavem@linux01 sql]$ cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.5.17    linux01.dbi-services.test linux01
192.168.5.18    linux02.dbi-services.test linux02
192.168.5.19    sqllinuxfci.dbi-services.test sqllinuxfci

 

Finally, after fixing the previous issues, I performed some failover tests (move resources and bring offline a cluster node as well) that ran successfully.

  • Move resource
[mikedavem@linux01 sql]$ sudo pcs resource move sqllinuxfci linux01.dbi-services.test

[mikedavem@linux01 sql]$ sudo pcs status

…
2 nodes and 2 resources configured

Online: [ linux01.dbi-services.test linux02.dbi-services.test ]

Full list of resources:

 sqllinuxfci    (ocf::sql:fci): Started linux01.dbi-services.test
 virtualip      (ocf::heartbeat:IPaddr2):       Started linux01.dbi-services.test

 

  • Simulate failure node LINUX02.dbi-services.test
[mikedavem@linux01 ~]$ sudo pcs status

Cluster name: linux_cluster
Stack: corosync
Current DC: linux01.dbi-services.test (version 1.1.15-11.el7_3.2-e174ec8) - part                                                                                        ition with quorum
Last updated: Sun Jan 15 10:59:14 2017          Last change: Sun Jan 15 10:56:54                                                                                         2017 by root via crm_resource on linux01.dbi-services.test

2 nodes and 2 resources configured

Online: [ linux01.dbi-services.test ]
OFFLINE: [ linux02.dbi-services.test ]

Full list of resources:

 sqllinuxfci    (ocf::sql:fci): Started linux01.dbi-services.test
 virtualip      (ocf::heartbeat:IPaddr2):       Started linux01.dbi-services.tes                                                                                        t

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

 

Another “bug” I noticed is that the SERVERPROPERTY() function output does not show correctly the my FCI name. Probably a mistake which will be resolved in the next CTPs. Be patient …

blog 114 - 3 - serverproperty output

My final thoughts

Here my feeling after playing a little bit with my new infrastructure.

Based on this first installation, we must face the facts: building a SQL Server FCI infrastructure is a fastest process on Linux in comparison to the same in Windows but I prefer to be prudent and not to draw hasty conclusions. Let’s see what we are going to have in the RTM release. One important thing I noticed for example is there is no explicit cluster validation compared to Windows at least in appearance. In fact, if we take a closer look at the cluster side, we already have some validation steps during the cluster creation (node authentication and cluster setup). However, I didn’t see any validation step at the SQL Server side (compared to Windows) except basic verifications which include verifying the standalones instances are able to start and share the same storage.

Moreover, one another important point we may notice is that we don’t need to setup DNS servers to run the cluster infrastructure. During my tests, I didn’t use it (hostname resolution was made only from /etc/hosts file) but as soon as I had to connect my infrastructure from remote computers, DNS resolution became almost mandatory :)

Finally, there is a plenty of tests to perform to understand how behave the cluster layer as well as the cluster resource.

Well, there is still a way to go in order to complete all my work on Linux. To be continued ….

 

 

 

 

Cet article Introducing high-availability with SQL Server on Linux est apparu en premier sur Blog dbi services.

Copying a Tablespace from NonCDB to a PDB (using TTS)

Hemant K Chitale - Sun, 2017-01-15 02:54
A Tablespace can be "transported"  from a NonCDB to a PDB as a way of copying the Tablespace.  Here I work with ASM as well.

First in the NonCDB :

[oracle@ora12102 Desktop]$ . oraenv
ORACLE_SID = [oracle] ? NONCDB
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@ora12102 Desktop]$ sqlplus '/ as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:03:43 2017

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 402653184 bytes
Fixed Size 2924928 bytes
Variable Size 260050560 bytes
Database Buffers 134217728 bytes
Redo Buffers 5459968 bytes
Database mounted.
Database opened.
SQL> select file_name, bytes/1048576
2 from dba_data_files
3 where tablespace_name = 'EXAMPLE'
4 /

FILE_NAME
--------------------------------------------------------------------------------
BYTES/1048576
-------------
+DATA/NONCDB/DATAFILE/example.266.896482777
1243.75


SQL>
[oracle@ora12102 Desktop]$ expdp hemant/hemant \
> directory=data_pump_dir dumpfile=EXAMPLE_TTS.dmp \
> transport_tablespaces=EXAMPLE transport_full_check=Y

Export: Release 12.1.0.2.0 - Production on Sun Jan 15 16:08:27 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
Starting "HEMANT"."SYS_EXPORT_TRANSPORTABLE_01": hemant/******** directory=data_pump_dir dumpfile=EXAMPLE_TTS.dmp transport_tablespaces=EXAMPLE transport_full_check=Y
ORA-39123: Data Pump transportable tablespace job aborted
ORA-39185: The transportable tablespace failure list is

ORA-29335: tablespace 'EXAMPLE' is not read only
Job "HEMANT"."SYS_EXPORT_TRANSPORTABLE_01" stopped due to fatal error at Sun Jan 15 16:08:41 2017 elapsed 0 00:00:06

[oracle@ora12102 Desktop]$


The tablespace has to be set READ ONLY before we can use export to transport it (also, it should be READ ONLY while the data files are being copied.

[oracle@ora12102 Desktop]$ sqlplus '/ as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:09:10 2017

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> alter tablespace example read only;

Tablespace altered.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 Desktop]$ expdp hemant/hemant \
> directory=data_pump_dir dumpfile=EXAMPLE_TTS.dmp \
> transport_tablespaces=EXAMPLE transport_full_check=Y

Export: Release 12.1.0.2.0 - Production on Sun Jan 15 16:09:58 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
Starting "HEMANT"."SYS_EXPORT_TRANSPORTABLE_01": hemant/******** directory=data_pump_dir dumpfile=EXAMPLE_TTS.dmp transport_tablespaces=EXAMPLE transport_full_check=Y
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TYPE/TYPE_SPEC
Processing object type TRANSPORTABLE_EXPORT/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TRANSPORTABLE_EXPORT/TYPE/TYPE_BODY
Processing object type TRANSPORTABLE_EXPORT/PROCACT_INSTANCE
Processing object type TRANSPORTABLE_EXPORT/XMLSCHEMA/XMLSCHEMA
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX/FUNCTIONAL_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/COMMENT
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/INDEX/BITMAP_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/BITMAP_INDEX/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/TRIGGER
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/TABLE
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/SECONDARY_TABLE/INDEX
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/SECONDARY_TABLE/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/MATERIALIZED_VIEW
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PROCACT_INSTANCE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PROCDEPOBJ
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "HEMANT"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for HEMANT.SYS_EXPORT_TRANSPORTABLE_01 is:
/u01/app/oracle/admin/NONCDB/dpdump/EXAMPLE_TTS.dmp
******************************************************************************
Datafiles required for transportable tablespace EXAMPLE:
+DATA/NONCDB/DATAFILE/example.266.896482777
Job "HEMANT"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Sun Jan 15 16:12:48 2017 elapsed 0 00:02:46

[oracle@ora12102 Desktop]$


Now, I need to copy the datafile (while the tablespace is READ ONLY).

[oracle@ora12102 Desktop]$ su - grid
Password:
[grid@ora12102 ~]$ asmcmd
ASMCMD> cp +DATA/NONCDB/DATAFILE/example.266.896482777 /tmp/example.dbf
copying +DATA/NONCDB/DATAFILE/example.266.896482777 -> /tmp/example.dbf
ASMCMD>
ASMCMD> exit
[grid@ora12102 ~]$ exit
logout
[oracle@ora12102 Desktop]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:16:24 2017

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> alter tablespace example read write ;

Tablespace altered.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 Desktop]$


I must now identify the target location for the datafile in the CDB database.

[oracle@ora12102 Desktop]$ . oraenv
ORACLE_SID = [NONCDB] ? CDB1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@ora12102 Desktop]$ sqlplus '/ as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:17:44 2017

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1644167168 bytes
Fixed Size 2925024 bytes
Variable Size 973082144 bytes
Database Buffers 654311424 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL> alter pluggable database pdb1 open;

Pluggable database altered.

SQL>
SQL> alter session set container=PDB1;

Session altered.

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/system.284.914408541
+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/sysaux.285.914408541
+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/users.287.914408663
+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/hemant.288.914713623

SQL>


Now that I have identiied the default location for all PDB1 files, I need to use ASMCMD to copy the datafile.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 Desktop]$ su - grid
Password:
[grid@ora12102 ~]$
[grid@ora12102 ~]$ asmcmd
ASMCMD> cp /tmp/example.dbf +DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/
copying /tmp/example.dbf -> +DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/example.dbf
ASMCMD> cd +DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE
ASMCMD> ls
HEMANT.288.914713623
SYSAUX.285.914408541
SYSTEM.284.914408541
USERS.287.914408663
example.dbf
ASMCMD> exit
[grid@ora12102 ~]$


Now, I need to import the tablespace with the datafile. Before that, I need to setup the user that will do the import and all the users of the target tablespace.

[grid@ora12102 ~]$ exit
logout
[oracle@ora12102 Desktop]$
[oracle@ora12102 Desktop]$ sqlplus system/oracle@PDB1

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:28:16 2017

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

ERROR:
ORA-28002: the password will expire within 7 days


Last Successful login time: Sun Jan 15 2017 16:27:18 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> grant select_catalog_role, imp_full_database to hemant;

Grant succeeded.

SQL> select privilege from dba_sys_privs where grantee = 'HEMANT';

PRIVILEGE
----------------------------------------
CREATE TABLE
CREATE SESSION

SQL> select granted_role from dba_role_privs where grantee = 'HEMANT';

GRANTED_ROLE
--------------------------------------------------------------------------------
SELECT_CATALOG_ROLE
IMP_FULL_DATABASE

SQL>


As with the Export, I am using a non-DBA user for the import.  I also have to setup the users and their grants.

[oracle@ora12102 Desktop]$ sqlplus sys/oracle@PDB1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:33:17 2017

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> create directory imp_from_noncdb as '/u01/app/oracle/admin/NONCDB/dpdump';

Directory created.

SQL> grant read, write on directory imp_from_noncdb to hemant;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 Desktop]$
[oracle@ora12102 Desktop]$ sqlplus system/oracle@PDB1

SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 16:41:36 2017

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

ERROR:
ORA-28002: the password will expire within 7 days


Last Successful login time: Sun Jan 15 2017 16:28:16 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> create user HR identified by HR ;
create user IX identified by IX ;
create user OE identified by OE ;
create user PM identified by PM ;
create user SH identified by SH ;

User created.

SQL>
User created.

SQL>
User created.

SQL>
User created.

SQL>
User created.

SQL> SQL>
SQL> @grants_to_EXAMPLE
SQL> spool grants_to_EXAMPLE
SQL>
SQL> grant ALTER SESSION to HR ;

Grant succeeded.

SQL> grant ALTER SESSION to IX ;

Grant succeeded.

SQL> grant ALTER SESSION to SH ;

Grant succeeded.

SQL> grant CREATE CLUSTER to IX ;

Grant succeeded.

SQL> grant CREATE CLUSTER to SH ;

Grant succeeded.

SQL> grant CREATE DATABASE LINK to HR ;

Grant succeeded.

SQL> grant CREATE DATABASE LINK to IX ;

Grant succeeded.

SQL> grant CREATE DATABASE LINK to OE ;

Grant succeeded.

SQL> grant CREATE DATABASE LINK to SH ;

Grant succeeded.

SQL> grant CREATE DIMENSION to SH ;

Grant succeeded.

SQL> grant CREATE INDEXTYPE to IX ;

Grant succeeded.

SQL> grant CREATE MATERIALIZED VIEW to OE ;

Grant succeeded.

SQL> grant CREATE MATERIALIZED VIEW to SH ;

Grant succeeded.

SQL> grant CREATE OPERATOR to IX ;

Grant succeeded.

SQL> grant CREATE PROCEDURE to HR ;

Grant succeeded.

SQL> grant CREATE PROCEDURE to IX ;

Grant succeeded.

SQL> grant CREATE RULE to IX ;

Grant succeeded.

SQL> grant CREATE RULE SET to IX ;

Grant succeeded.

SQL> grant CREATE SEQUENCE to HR ;

Grant succeeded.

SQL> grant CREATE SEQUENCE to IX ;

Grant succeeded.

SQL> grant CREATE SEQUENCE to SH ;

Grant succeeded.

SQL> grant CREATE SESSION to HR ;

Grant succeeded.

SQL> grant CREATE SESSION to IX ;

Grant succeeded.

SQL> grant CREATE SESSION to OE ;

Grant succeeded.

SQL> grant CREATE SESSION to SH ;

Grant succeeded.

SQL> grant CREATE SYNONYM to HR ;

Grant succeeded.

SQL> grant CREATE SYNONYM to IX ;

Grant succeeded.

SQL> grant CREATE SYNONYM to OE ;

Grant succeeded.

SQL> grant CREATE SYNONYM to SH ;

Grant succeeded.

SQL> grant CREATE TABLE to IX ;

Grant succeeded.

SQL> grant CREATE TABLE to SH ;

Grant succeeded.

SQL> grant CREATE TRIGGER to IX ;

Grant succeeded.

SQL> grant CREATE TYPE to IX ;

Grant succeeded.

SQL> grant CREATE VIEW to HR ;

Grant succeeded.

SQL> grant CREATE VIEW to IX ;

Grant succeeded.

SQL> grant CREATE VIEW to OE ;

Grant succeeded.

SQL> grant CREATE VIEW to SH ;

Grant succeeded.

SQL> grant QUERY REWRITE to OE ;

Grant succeeded.

SQL> grant QUERY REWRITE to SH ;

Grant succeeded.

SQL> grant SELECT ANY DICTIONARY to IX ;

Grant succeeded.

SQL> grant UNLIMITED TABLESPACE to HR ;

Grant succeeded.

SQL> grant UNLIMITED TABLESPACE to IX ;

Grant succeeded.

SQL> grant UNLIMITED TABLESPACE to OE ;

Grant succeeded.

SQL> grant UNLIMITED TABLESPACE to PM ;

Grant succeeded.

SQL> grant UNLIMITED TABLESPACE to SH ;

Grant succeeded.

SQL>
SQL> spool off
SQL> @roles_to_EXAMPLE
SQL> set echo on
SQL> spool roles_to_EXAMPLE
SQL>
SQL> grant AQ_ADMINISTRATOR_ROLE to IX ;

Grant succeeded.

SQL> grant AQ_USER_ROLE to IX ;

Grant succeeded.

SQL> grant CONNECT to IX ;

Grant succeeded.

SQL> grant CONNECT to PM ;

Grant succeeded.

SQL> grant RESOURCE to HR ;

Grant succeeded.

SQL> grant RESOURCE to IX ;

Grant succeeded.

SQL> grant RESOURCE to OE ;

Grant succeeded.

SQL> grant RESOURCE to PM ;

Grant succeeded.

SQL> grant RESOURCE to SH ;

Grant succeeded.

SQL> grant SELECT_CATALOG_ROLE to IX ;

Grant succeeded.

SQL> grant SELECT_CATALOG_ROLE to SH ;

Grant succeeded.

SQL> grant XDBADMIN to OE ;

Grant succeeded.

SQL>
SQL> spool off
SQL>


I am now ready to import the tablespace and datafile.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 Desktop]$ impdp hemant/hemant@PDB1 \
> dumpfile=EXAMPLE_TTS.dmp directory=imp_from_noncdb \
> transport_datafiles=+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/example.dbf

Import: Release 12.1.0.2.0 - Production on Sun Jan 15 16:50:16 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

UDI-28002: operation generated ORACLE error 28002
ORA-28002: the password will expire within 7 days

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
Master table "HEMANT"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Source time zone is +00:00 and target time zone is -07:00.
Starting "HEMANT"."SYS_IMPORT_TRANSPORTABLE_01": hemant/********@PDB1 dumpfile=EXAMPLE_TTS.dmp directory=imp_from_noncdb transport_datafiles=+DATA/CDB1/35208E5B92306007E0530F02000A969A/DATAFILE/example.dbf
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TYPE/TYPE_SPEC
Processing object type TRANSPORTABLE_EXPORT/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TRANSPORTABLE_EXPORT/TYPE/TYPE_BODY
Processing object type TRANSPORTABLE_EXPORT/PROCACT_INSTANCE
Processing object type TRANSPORTABLE_EXPORT/XMLSCHEMA/XMLSCHEMA
Processing object type TRANSPORTABLE_EXPORT/TABLE
ORA-39360: Table "OE"."ORDERS" was skipped due to transportable import and TSLTZ issues resulting from time zone mismatch.
ORA-39151: Table "OE"."PURCHASEORDER" exists. All dependent metadata and data will be skipped due to table_exists_action of skip
Processing object type TRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."PROMOTIONS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."PRODUCT_DESCRIPTIONS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."PRODUCT_INFORMATION" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."INVENTORIES" TO "BI"
ORA-39112: Dependent object type OBJECT_GRANT:"OE" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type OBJECT_GRANT:"OE" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."ORDER_ITEMS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."WAREHOUSES" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "OE"."CUSTOMERS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."COSTS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."SALES" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."COUNTRIES" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."CUSTOMERS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."PROMOTIONS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."CHANNELS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."PRODUCTS" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."TIMES" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."FWEEK_PSCAT_SALES_MV" TO "BI"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'BI' does not exist
Failing sql is:
GRANT SELECT ON "SH"."CAL_MONTH_SALES_MV" TO "BI"
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
ORA-39112: Dependent object type INDEX:"OE"."ORD_SALES_REP_IX" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type INDEX:"OE"."ORD_ORDER_DATE_IX" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type INDEX:"OE"."ORD_CUSTOMER_IX" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type INDEX:"OE"."ORDER_PK" skipped, base object type TABLE:"OE"."ORDERS" creation failed
Processing object type TRANSPORTABLE_EXPORT/INDEX/FUNCTIONAL_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
ORA-39112: Dependent object type CONSTRAINT:"OE"."ORDER_MODE_LOV" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type CONSTRAINT:"OE"."ORDER_TOTAL_MIN" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type CONSTRAINT:"OE"."ORDER_PK" skipped, base object type TABLE:"OE"."ORDERS" creation failed
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/COMMENT
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type COMMENT skipped, base object type TABLE:"OE"."ORDERS" creation failed
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
ORA-39083: Object type REF_CONSTRAINT:"OE"."ORDER_ITEMS_ORDER_ID_FK" failed to create with error:
ORA-00942: table or view does not exist
Failing sql is:
ALTER TABLE "OE"."ORDER_ITEMS" ADD CONSTRAINT "ORDER_ITEMS_ORDER_ID_FK" FOREIGN KEY ("ORDER_ID") REFERENCES "OE"."ORDERS" ("ORDER_ID") ON DELETE CASCADE ENABLE NOVALIDATE
ORA-39112: Dependent object type REF_CONSTRAINT:"OE"."ORDERS_SALES_REP_FK" skipped, base object type TABLE:"OE"."ORDERS" creation failed
ORA-39112: Dependent object type REF_CONSTRAINT:"OE"."ORDERS_CUSTOMER_ID_FK" skipped, base object type TABLE:"OE"."ORDERS" creation failed
Processing object type TRANSPORTABLE_EXPORT/INDEX/BITMAP_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/BITMAP_INDEX/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/TRIGGER
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/TABLE
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/SECONDARY_TABLE/INDEX
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/SECONDARY_TABLE/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/DOMAIN_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/MATERIALIZED_VIEW
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PROCACT_INSTANCE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PROCDEPOBJ
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
ORA-39082: Object type TRIGGER:"HR"."SECURE_EMPLOYEES" created with compilation warnings
ORA-39082: Object type TRIGGER:"HR"."UPDATE_JOB_HISTORY" created with compilation warnings
Job "HEMANT"."SYS_IMPORT_TRANSPORTABLE_01" completed with 41 error(s) at Sun Jan 15 16:51:40 2017 elapsed 0 00:01:23

[oracle@ora12102 Desktop]$


The key error is the failure on the ORDERS table creation because of a TimeZone mismatch !   So, there is a lesson to be learnt !

.
.
.

Categories: DBA Blogs

Building an FMW Cluster using Docker (Part I Introduction)

Antony Reynolds - Sat, 2017-01-14 21:19
@import url('https://themes.googleusercontent.com/fonts/css?kit=iMc4-4exjgqA-toZgqqJBapXv4aEsWUJfLHj8vTDOv6sKTypj6oMABt6aLc3fm-oS8WuZCZU7xsrLLn8Eq5Dllll7szA_gjBFRwwth-OR18');.lst-kix_sholqrhc62dh-7>li:before{content:"\0025cb "}.lst-kix_sholqrhc62dh-8>li:before{content:"\0025a0 "}.lst-kix_sholqrhc62dh-6>li:before{content:"\0025cf "}ol.lst-kix_xv318blpjdo-3.start{counter-reset:lst-ctn-kix_xv318blpjdo-3 0}ul.lst-kix_bijol4nzhwf0-8{list-style-type:none}.lst-kix_sholqrhc62dh-1>li:before{content:"\0025cb "}.lst-kix_sholqrhc62dh-0>li:before{content:"\0025cf "}ol.lst-kix_emhp84jkv42c-0{list-style-type:none}.lst-kix_emhp84jkv42c-3>li{counter-increment:lst-ctn-kix_emhp84jkv42c-3}ol.lst-kix_emhp84jkv42c-2{list-style-type:none}ol.lst-kix_emhp84jkv42c-1{list-style-type:none}ol.lst-kix_emhp84jkv42c-4{list-style-type:none}ol.lst-kix_emhp84jkv42c-3{list-style-type:none}ol.lst-kix_emhp84jkv42c-6{list-style-type:none}ol.lst-kix_emhp84jkv42c-5{list-style-type:none}ol.lst-kix_emhp84jkv42c-8{list-style-type:none}ol.lst-kix_emhp84jkv42c-7{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-0{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-1{list-style-type:none}ul.lst-kix_4m04az9jmmj8-3{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-2{list-style-type:none}ul.lst-kix_4m04az9jmmj8-2{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-3{list-style-type:none}ul.lst-kix_4m04az9jmmj8-1{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-4{list-style-type:none}ul.lst-kix_4m04az9jmmj8-0{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-5{list-style-type:none}ul.lst-kix_4m04az9jmmj8-7{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-6{list-style-type:none}ul.lst-kix_4m04az9jmmj8-6{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-7{list-style-type:none}ul.lst-kix_4m04az9jmmj8-5{list-style-type:none}ul.lst-kix_j42a5dwgnqyq-8{list-style-type:none}ul.lst-kix_4m04az9jmmj8-4{list-style-type:none}ul.lst-kix_4m04az9jmmj8-8{list-style-type:none}ul.lst-kix_bijol4nzhwf0-4{list-style-type:none}.lst-kix_s3mi7ukxwiwf-2>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-2}ul.lst-kix_bijol4nzhwf0-5{list-style-type:none}ul.lst-kix_bijol4nzhwf0-6{list-style-type:none}ul.lst-kix_bijol4nzhwf0-7{list-style-type:none}ul.lst-kix_bijol4nzhwf0-0{list-style-type:none}ul.lst-kix_bijol4nzhwf0-1{list-style-type:none}ul.lst-kix_bijol4nzhwf0-2{list-style-type:none}ul.lst-kix_bijol4nzhwf0-3{list-style-type:none}.lst-kix_1wulu3ra2vwv-2>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-2}.lst-kix_q8ok0mh9yyto-4>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-4}.lst-kix_bijol4nzhwf0-7>li:before{content:"\0025cb "}.lst-kix_bijol4nzhwf0-6>li:before{content:"\0025cf "}.lst-kix_bijol4nzhwf0-8>li:before{content:"\0025a0 "}.lst-kix_bijol4nzhwf0-5>li:before{content:"\0025a0 "}.lst-kix_bijol4nzhwf0-3>li:before{content:"\0025cf "}.lst-kix_bijol4nzhwf0-2>li:before{content:"\0025a0 "}.lst-kix_bijol4nzhwf0-4>li:before{content:"\0025cb "}ol.lst-kix_emhp84jkv42c-4.start{counter-reset:lst-ctn-kix_emhp84jkv42c-4 0}ol.lst-kix_xv318blpjdo-8.start{counter-reset:lst-ctn-kix_xv318blpjdo-8 0}.lst-kix_q8ok0mh9yyto-8>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-8}ol.lst-kix_q8ok0mh9yyto-1.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-1 0}ol.lst-kix_s3mi7ukxwiwf-8.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-8 0}ol.lst-kix_s3mi7ukxwiwf-1.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-1 0}.lst-kix_bijol4nzhwf0-0>li:before{content:"\0025cf "}.lst-kix_bijol4nzhwf0-1>li:before{content:"\0025cb "}.lst-kix_xv318blpjdo-1>li{counter-increment:lst-ctn-kix_xv318blpjdo-1}ul.lst-kix_gfromclascha-0{list-style-type:none}ol.lst-kix_emhp84jkv42c-2.start{counter-reset:lst-ctn-kix_emhp84jkv42c-2 0}.lst-kix_s3mi7ukxwiwf-1>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-1,lower-latin) ". "}.lst-kix_gfromclascha-0>li:before{content:"\0025cf "}.lst-kix_gfromclascha-2>li:before{content:"\0025a0 "}.lst-kix_gfromclascha-4>li:before{content:"\0025cb "}ul.lst-kix_gfromclascha-7{list-style-type:none}ul.lst-kix_gfromclascha-8{list-style-type:none}ul.lst-kix_gfromclascha-5{list-style-type:none}.lst-kix_gfromclascha-6>li:before{content:"\0025cf "}ul.lst-kix_gfromclascha-6{list-style-type:none}ul.lst-kix_gfromclascha-3{list-style-type:none}ul.lst-kix_gfromclascha-4{list-style-type:none}ul.lst-kix_gfromclascha-1{list-style-type:none}ul.lst-kix_gfromclascha-2{list-style-type:none}ul.lst-kix_opi66v2qdsjs-3{list-style-type:none}ul.lst-kix_opi66v2qdsjs-2{list-style-type:none}ul.lst-kix_opi66v2qdsjs-1{list-style-type:none}ul.lst-kix_opi66v2qdsjs-0{list-style-type:none}.lst-kix_q97rvvc7c69e-5>li:before{content:"\0025a0 "}.lst-kix_q97rvvc7c69e-7>li:before{content:"\0025cb "}.lst-kix_q8ok0mh9yyto-0>li:before{content:"" counter(lst-ctn-kix_q8ok0mh9yyto-0,upper-roman) ". "}ol.lst-kix_q8ok0mh9yyto-8.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-8 0}.lst-kix_fy6y7gyjejoh-3>li:before{content:"\0025cf "}ul.lst-kix_opi66v2qdsjs-8{list-style-type:none}.lst-kix_q97rvvc7c69e-3>li:before{content:"\0025cf "}ul.lst-kix_opi66v2qdsjs-7{list-style-type:none}ul.lst-kix_opi66v2qdsjs-6{list-style-type:none}ul.lst-kix_opi66v2qdsjs-5{list-style-type:none}.lst-kix_fy6y7gyjejoh-1>li:before{content:"\0025cb "}ul.lst-kix_opi66v2qdsjs-4{list-style-type:none}.lst-kix_s3mi7ukxwiwf-7>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-7,lower-latin) ". "}.lst-kix_xv318blpjdo-8>li{counter-increment:lst-ctn-kix_xv318blpjdo-8}.lst-kix_emhp84jkv42c-7>li{counter-increment:lst-ctn-kix_emhp84jkv42c-7}.lst-kix_s3mi7ukxwiwf-5>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-5,lower-roman) ". "}.lst-kix_fy6y7gyjejoh-7>li:before{content:"\0025cb "}ol.lst-kix_xv318blpjdo-1.start{counter-reset:lst-ctn-kix_xv318blpjdo-1 0}.lst-kix_fy6y7gyjejoh-5>li:before{content:"\0025a0 "}.lst-kix_s3mi7ukxwiwf-3>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-3,decimal) ". "}.lst-kix_emhp84jkv42c-3>li:before{content:"" counter(lst-ctn-kix_emhp84jkv42c-3,lower-latin) ") "}.lst-kix_emhp84jkv42c-5>li:before{content:"(" counter(lst-ctn-kix_emhp84jkv42c-5,lower-latin) ") "}.lst-kix_emhp84jkv42c-1>li:before{content:"" counter(lst-ctn-kix_emhp84jkv42c-1,upper-latin) ". "}.lst-kix_emhp84jkv42c-7>li:before{content:"(" counter(lst-ctn-kix_emhp84jkv42c-7,lower-latin) ") "}.lst-kix_1wulu3ra2vwv-4>li:before{content:"(" counter(lst-ctn-kix_1wulu3ra2vwv-4,decimal) ") "}.lst-kix_1wulu3ra2vwv-6>li:before{content:"(" counter(lst-ctn-kix_1wulu3ra2vwv-6,lower-roman) ") "}.lst-kix_s3mi7ukxwiwf-6>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-6}.lst-kix_1wulu3ra2vwv-8>li:before{content:"(" counter(lst-ctn-kix_1wulu3ra2vwv-8,lower-roman) ") "}ol.lst-kix_1wulu3ra2vwv-4.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-4 0}.lst-kix_gfromclascha-8>li:before{content:"\0025a0 "}ol.lst-kix_s3mi7ukxwiwf-1{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-2{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-0{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-1{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-5{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-2{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-6{list-style-type:none}.lst-kix_sholqrhc62dh-2>li:before{content:"\0025a0 "}ul.lst-kix_9jxnjym0nges-0{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-3{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-0{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-4{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-5{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-6{list-style-type:none}.lst-kix_sholqrhc62dh-4>li:before{content:"\0025cb "}.lst-kix_1wulu3ra2vwv-2>li:before{content:"" counter(lst-ctn-kix_1wulu3ra2vwv-2,decimal) ". "}ul.lst-kix_7tib3jrzu2u9-3{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-7{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-4{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-8{list-style-type:none}.lst-kix_1wulu3ra2vwv-0>li:before{content:"" counter(lst-ctn-kix_1wulu3ra2vwv-0,upper-roman) ". "}ul.lst-kix_7tib3jrzu2u9-7{list-style-type:none}ul.lst-kix_7tib3jrzu2u9-8{list-style-type:none}.lst-kix_emhp84jkv42c-2>li{counter-increment:lst-ctn-kix_emhp84jkv42c-2}ol.lst-kix_s3mi7ukxwiwf-4.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-4 0}.lst-kix_xv318blpjdo-1>li:before{content:"" counter(lst-ctn-kix_xv318blpjdo-1,upper-latin) ". "}.lst-kix_xv318blpjdo-0>li:before{content:"" counter(lst-ctn-kix_xv318blpjdo-0,upper-roman) ". "}ol.lst-kix_1wulu3ra2vwv-7.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-7 0}.lst-kix_1wulu3ra2vwv-1>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-1}.lst-kix_jkgkf1u9sy0c-2>li:before{content:"\0025a0 "}.lst-kix_jkgkf1u9sy0c-1>li:before{content:"\0025cb "}.lst-kix_opi66v2qdsjs-0>li:before{content:"\0025cf "}.lst-kix_686a8e4qhxwx-7>li:before{content:"\0025cb "}.lst-kix_xv318blpjdo-8>li:before{content:"(" counter(lst-ctn-kix_xv318blpjdo-8,lower-roman) ") "}.lst-kix_xv318blpjdo-5>li:before{content:"(" counter(lst-ctn-kix_xv318blpjdo-5,lower-latin) ") "}.lst-kix_jkgkf1u9sy0c-5>li:before{content:"\0025a0 "}.lst-kix_686a8e4qhxwx-3>li:before{content:"\0025cf "}.lst-kix_jkgkf1u9sy0c-6>li:before{content:"\0025cf "}.lst-kix_686a8e4qhxwx-4>li:before{content:"\0025cb "}.lst-kix_emhp84jkv42c-4>li{counter-increment:lst-ctn-kix_emhp84jkv42c-4}.lst-kix_xv318blpjdo-4>li:before{content:"(" counter(lst-ctn-kix_xv318blpjdo-4,decimal) ") "}.lst-kix_s3mi7ukxwiwf-7>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-7}.lst-kix_q97rvvc7c69e-2>li:before{content:"\0025a0 "}.lst-kix_q8ok0mh9yyto-3>li:before{content:"" counter(lst-ctn-kix_q8ok0mh9yyto-3,lower-latin) ") "}.lst-kix_686a8e4qhxwx-8>li:before{content:"\0025a0 "}.lst-kix_emhp84jkv42c-6>li{counter-increment:lst-ctn-kix_emhp84jkv42c-6}.lst-kix_q8ok0mh9yyto-2>li:before{content:"" counter(lst-ctn-kix_q8ok0mh9yyto-2,decimal) ". "}ol.lst-kix_1wulu3ra2vwv-6.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-6 0}.lst-kix_q8ok0mh9yyto-6>li:before{content:"(" counter(lst-ctn-kix_q8ok0mh9yyto-6,lower-roman) ") "}.lst-kix_4m04az9jmmj8-2>li:before{content:"\0025a0 "}.lst-kix_4m04az9jmmj8-6>li:before{content:"\0025cf "}.lst-kix_q8ok0mh9yyto-7>li:before{content:"(" counter(lst-ctn-kix_q8ok0mh9yyto-7,lower-latin) ") "}.lst-kix_4m04az9jmmj8-1>li:before{content:"\0025cb "}.lst-kix_4m04az9jmmj8-5>li:before{content:"\0025a0 "}.lst-kix_xv318blpjdo-4>li{counter-increment:lst-ctn-kix_xv318blpjdo-4}.lst-kix_s3mi7ukxwiwf-0>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-0,decimal) ". "}ul.lst-kix_q97rvvc7c69e-4{list-style-type:none}ul.lst-kix_q97rvvc7c69e-3{list-style-type:none}ul.lst-kix_q97rvvc7c69e-6{list-style-type:none}.lst-kix_s3mi7ukxwiwf-8>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-8,lower-roman) ". "}ul.lst-kix_q97rvvc7c69e-5{list-style-type:none}ul.lst-kix_q97rvvc7c69e-8{list-style-type:none}ul.lst-kix_q97rvvc7c69e-7{list-style-type:none}.lst-kix_6qnkx7t1adn9-4>li:before{content:"\0025cb "}.lst-kix_6qnkx7t1adn9-8>li:before{content:"\0025a0 "}.lst-kix_gfromclascha-3>li:before{content:"\0025cf "}.lst-kix_xv318blpjdo-6>li{counter-increment:lst-ctn-kix_xv318blpjdo-6}ul.lst-kix_q97rvvc7c69e-0{list-style-type:none}ul.lst-kix_q97rvvc7c69e-2{list-style-type:none}ul.lst-kix_q97rvvc7c69e-1{list-style-type:none}.lst-kix_q97rvvc7c69e-6>li:before{content:"\0025cf "}ol.lst-kix_s3mi7ukxwiwf-3.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-3 0}.lst-kix_fy6y7gyjejoh-2>li:before{content:"\0025a0 "}.lst-kix_fy6y7gyjejoh-6>li:before{content:"\0025cf "}.lst-kix_q8ok0mh9yyto-1>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-1}ol.lst-kix_1wulu3ra2vwv-8.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-8 0}.lst-kix_s3mi7ukxwiwf-4>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-4,lower-latin) ". "}.lst-kix_5anu1k9tsyak-2>li:before{content:"\0025a0 "}ol.lst-kix_s3mi7ukxwiwf-6.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-6 0}.lst-kix_emhp84jkv42c-2>li:before{content:"" counter(lst-ctn-kix_emhp84jkv42c-2,decimal) ". "}.lst-kix_emhp84jkv42c-6>li:before{content:"(" counter(lst-ctn-kix_emhp84jkv42c-6,lower-roman) ") "}.lst-kix_686a8e4qhxwx-0>li:before{content:"\0025cf "}.lst-kix_1wulu3ra2vwv-3>li:before{content:"" counter(lst-ctn-kix_1wulu3ra2vwv-3,lower-latin) ") "}.lst-kix_9jxnjym0nges-3>li:before{content:"\0025cf "}.lst-kix_opi66v2qdsjs-7>li:before{content:"\0025cb "}.lst-kix_1wulu3ra2vwv-7>li:before{content:"(" counter(lst-ctn-kix_1wulu3ra2vwv-7,lower-latin) ") "}ol.lst-kix_s3mi7ukxwiwf-5.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-5 0}.lst-kix_opi66v2qdsjs-3>li:before{content:"\0025cf "}.lst-kix_1wulu3ra2vwv-6>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-6}.lst-kix_gfromclascha-7>li:before{content:"\0025cb "}.lst-kix_86hsx13ssqid-5>li:before{content:"\0025a0 "}.lst-kix_9jxnjym0nges-7>li:before{content:"\0025cb "}.lst-kix_86hsx13ssqid-1>li:before{content:"\0025cb "}.lst-kix_sholqrhc62dh-5>li:before{content:"\0025a0 "}.lst-kix_7tib3jrzu2u9-0>li:before{content:"\0025cf "}.lst-kix_s3mi7ukxwiwf-4>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-4}.lst-kix_7tib3jrzu2u9-4>li:before{content:"\0025cb "}ol.lst-kix_xv318blpjdo-4{list-style-type:none}ol.lst-kix_s3mi7ukxwiwf-7.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-7 0}ol.lst-kix_xv318blpjdo-5{list-style-type:none}ol.lst-kix_xv318blpjdo-6{list-style-type:none}ol.lst-kix_xv318blpjdo-7{list-style-type:none}ol.lst-kix_xv318blpjdo-0{list-style-type:none}ol.lst-kix_xv318blpjdo-1{list-style-type:none}.lst-kix_7tib3jrzu2u9-1>li:before{content:"\0025cb "}.lst-kix_7tib3jrzu2u9-5>li:before{content:"\0025a0 "}ol.lst-kix_xv318blpjdo-2{list-style-type:none}ol.lst-kix_xv318blpjdo-3{list-style-type:none}.lst-kix_q8ok0mh9yyto-6>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-6}.lst-kix_7tib3jrzu2u9-2>li:before{content:"\0025a0 "}.lst-kix_7tib3jrzu2u9-3>li:before{content:"\0025cf "}ul.lst-kix_5anu1k9tsyak-7{list-style-type:none}ul.lst-kix_5anu1k9tsyak-8{list-style-type:none}ul.lst-kix_5anu1k9tsyak-5{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-0{list-style-type:none}ul.lst-kix_5anu1k9tsyak-6{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-1{list-style-type:none}ul.lst-kix_5anu1k9tsyak-3{list-style-type:none}ul.lst-kix_5anu1k9tsyak-4{list-style-type:none}ul.lst-kix_5anu1k9tsyak-1{list-style-type:none}.lst-kix_xv318blpjdo-3>li{counter-increment:lst-ctn-kix_xv318blpjdo-3}ul.lst-kix_5anu1k9tsyak-2{list-style-type:none}.lst-kix_7tib3jrzu2u9-8>li:before{content:"\0025a0 "}ul.lst-kix_sholqrhc62dh-6{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-6{list-style-type:none}ul.lst-kix_5anu1k9tsyak-0{list-style-type:none}ul.lst-kix_sholqrhc62dh-5{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-7{list-style-type:none}ul.lst-kix_sholqrhc62dh-4{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-8{list-style-type:none}ul.lst-kix_sholqrhc62dh-3{list-style-type:none}.lst-kix_7tib3jrzu2u9-6>li:before{content:"\0025cf "}ol.lst-kix_xv318blpjdo-8{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-2{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-3{list-style-type:none}.lst-kix_7tib3jrzu2u9-7>li:before{content:"\0025cb "}ul.lst-kix_sholqrhc62dh-8{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-4{list-style-type:none}ul.lst-kix_sholqrhc62dh-7{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-5{list-style-type:none}ul.lst-kix_sholqrhc62dh-2{list-style-type:none}ul.lst-kix_sholqrhc62dh-1{list-style-type:none}ul.lst-kix_sholqrhc62dh-0{list-style-type:none}.lst-kix_emhp84jkv42c-1>li{counter-increment:lst-ctn-kix_emhp84jkv42c-1}ol.lst-kix_1wulu3ra2vwv-5.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-5 0}.lst-kix_j42a5dwgnqyq-8>li:before{content:"\0025a0 "}ol.lst-kix_q8ok0mh9yyto-2.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-2 0}.lst-kix_5anu1k9tsyak-7>li:before{content:"\0025cb "}.lst-kix_j42a5dwgnqyq-6>li:before{content:"\0025cf "}.lst-kix_5anu1k9tsyak-6>li:before{content:"\0025cf "}.lst-kix_j42a5dwgnqyq-7>li:before{content:"\0025cb "}ol.lst-kix_xv318blpjdo-2.start{counter-reset:lst-ctn-kix_xv318blpjdo-2 0}.lst-kix_1wulu3ra2vwv-4>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-4}.lst-kix_5anu1k9tsyak-8>li:before{content:"\0025a0 "}ol.lst-kix_s3mi7ukxwiwf-2.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-2 0}ul.lst-kix_686a8e4qhxwx-4{list-style-type:none}ul.lst-kix_686a8e4qhxwx-3{list-style-type:none}ul.lst-kix_686a8e4qhxwx-2{list-style-type:none}.lst-kix_q8ok0mh9yyto-2>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-2}ul.lst-kix_686a8e4qhxwx-1{list-style-type:none}ul.lst-kix_686a8e4qhxwx-8{list-style-type:none}ul.lst-kix_686a8e4qhxwx-7{list-style-type:none}ul.lst-kix_686a8e4qhxwx-6{list-style-type:none}.lst-kix_6qnkx7t1adn9-0>li:before{content:"\0025cf "}ul.lst-kix_686a8e4qhxwx-5{list-style-type:none}.lst-kix_6qnkx7t1adn9-1>li:before{content:"\0025cb "}.lst-kix_6qnkx7t1adn9-3>li:before{content:"\0025cf "}ul.lst-kix_686a8e4qhxwx-0{list-style-type:none}.lst-kix_6qnkx7t1adn9-2>li:before{content:"\0025a0 "}.lst-kix_j42a5dwgnqyq-0>li:before{content:"\0025cf "}.lst-kix_j42a5dwgnqyq-2>li:before{content:"\0025a0 "}.lst-kix_j42a5dwgnqyq-1>li:before{content:"\0025cb "}.lst-kix_j42a5dwgnqyq-5>li:before{content:"\0025a0 "}.lst-kix_j42a5dwgnqyq-4>li:before{content:"\0025cb "}ol.lst-kix_1wulu3ra2vwv-0.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-0 0}ol.lst-kix_q8ok0mh9yyto-7.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-7 0}ol.lst-kix_emhp84jkv42c-3.start{counter-reset:lst-ctn-kix_emhp84jkv42c-3 0}.lst-kix_j42a5dwgnqyq-3>li:before{content:"\0025cf "}.lst-kix_emhp84jkv42c-8>li{counter-increment:lst-ctn-kix_emhp84jkv42c-8}ol.lst-kix_1wulu3ra2vwv-3.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-3 0}ol.lst-kix_q8ok0mh9yyto-0.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-0 0}.lst-kix_6qnkx7t1adn9-5>li:before{content:"\0025a0 "}.lst-kix_6qnkx7t1adn9-7>li:before{content:"\0025cb "}ol.lst-kix_s3mi7ukxwiwf-0.start{counter-reset:lst-ctn-kix_s3mi7ukxwiwf-0 0}.lst-kix_86hsx13ssqid-8>li:before{content:"\0025a0 "}.lst-kix_s3mi7ukxwiwf-0>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-0}.lst-kix_5anu1k9tsyak-3>li:before{content:"\0025cf "}.lst-kix_5anu1k9tsyak-5>li:before{content:"\0025a0 "}.lst-kix_1wulu3ra2vwv-8>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-8}.lst-kix_5anu1k9tsyak-1>li:before{content:"\0025cb "}ol.lst-kix_q8ok0mh9yyto-6{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-5{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-4{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-3{list-style-type:none}.lst-kix_9jxnjym0nges-0>li:before{content:"\0025cf "}ol.lst-kix_q8ok0mh9yyto-8{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-7{list-style-type:none}ol.lst-kix_emhp84jkv42c-0.start{counter-reset:lst-ctn-kix_emhp84jkv42c-0 0}.lst-kix_opi66v2qdsjs-8>li:before{content:"\0025a0 "}ol.lst-kix_q8ok0mh9yyto-2{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-1{list-style-type:none}.lst-kix_9jxnjym0nges-2>li:before{content:"\0025a0 "}ol.lst-kix_q8ok0mh9yyto-0{list-style-type:none}.lst-kix_opi66v2qdsjs-4>li:before{content:"\0025cb "}.lst-kix_opi66v2qdsjs-2>li:before{content:"\0025a0 "}.lst-kix_opi66v2qdsjs-6>li:before{content:"\0025cf "}.lst-kix_q8ok0mh9yyto-3>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-3}.lst-kix_1wulu3ra2vwv-3>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-3}.lst-kix_86hsx13ssqid-0>li:before{content:"\0025cf "}.lst-kix_86hsx13ssqid-6>li:before{content:"\0025cf "}.lst-kix_9jxnjym0nges-4>li:before{content:"\0025cb "}.lst-kix_9jxnjym0nges-8>li:before{content:"\0025a0 "}.lst-kix_86hsx13ssqid-4>li:before{content:"\0025cb "}.lst-kix_9jxnjym0nges-6>li:before{content:"\0025cf "}.lst-kix_86hsx13ssqid-2>li:before{content:"\0025a0 "}ul.lst-kix_9jxnjym0nges-2{list-style-type:none}.lst-kix_xv318blpjdo-2>li:before{content:"" counter(lst-ctn-kix_xv318blpjdo-2,decimal) ". "}ul.lst-kix_9jxnjym0nges-1{list-style-type:none}ul.lst-kix_9jxnjym0nges-4{list-style-type:none}ul.lst-kix_9jxnjym0nges-3{list-style-type:none}ul.lst-kix_9jxnjym0nges-6{list-style-type:none}ul.lst-kix_9jxnjym0nges-5{list-style-type:none}ul.lst-kix_9jxnjym0nges-8{list-style-type:none}ul.lst-kix_9jxnjym0nges-7{list-style-type:none}.lst-kix_xv318blpjdo-2>li{counter-increment:lst-ctn-kix_xv318blpjdo-2}.lst-kix_s3mi7ukxwiwf-3>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-3}ol.lst-kix_xv318blpjdo-0.start{counter-reset:lst-ctn-kix_xv318blpjdo-0 0}.lst-kix_jkgkf1u9sy0c-0>li:before{content:"\0025cf "}.lst-kix_jkgkf1u9sy0c-3>li:before{content:"\0025cf "}.lst-kix_xv318blpjdo-0>li{counter-increment:lst-ctn-kix_xv318blpjdo-0}ol.lst-kix_emhp84jkv42c-1.start{counter-reset:lst-ctn-kix_emhp84jkv42c-1 0}.lst-kix_jkgkf1u9sy0c-4>li:before{content:"\0025cb "}ol.lst-kix_1wulu3ra2vwv-2.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-2 0}.lst-kix_686a8e4qhxwx-6>li:before{content:"\0025cf "}.lst-kix_s3mi7ukxwiwf-5>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-5}.lst-kix_jkgkf1u9sy0c-7>li:before{content:"\0025cb "}.lst-kix_xv318blpjdo-7>li:before{content:"(" counter(lst-ctn-kix_xv318blpjdo-7,lower-latin) ") "}.lst-kix_686a8e4qhxwx-5>li:before{content:"\0025a0 "}.lst-kix_xv318blpjdo-6>li:before{content:"(" counter(lst-ctn-kix_xv318blpjdo-6,lower-roman) ") "}.lst-kix_q8ok0mh9yyto-7>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-7}ul.lst-kix_86hsx13ssqid-3{list-style-type:none}ul.lst-kix_86hsx13ssqid-2{list-style-type:none}.lst-kix_xv318blpjdo-3>li:before{content:"" counter(lst-ctn-kix_xv318blpjdo-3,lower-latin) ") "}ul.lst-kix_86hsx13ssqid-5{list-style-type:none}ul.lst-kix_86hsx13ssqid-4{list-style-type:none}.lst-kix_686a8e4qhxwx-1>li:before{content:"\0025cb "}ul.lst-kix_86hsx13ssqid-1{list-style-type:none}.lst-kix_jkgkf1u9sy0c-8>li:before{content:"\0025a0 "}ul.lst-kix_86hsx13ssqid-0{list-style-type:none}.lst-kix_686a8e4qhxwx-2>li:before{content:"\0025a0 "}ul.lst-kix_fy6y7gyjejoh-0{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-1{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-2{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-3{list-style-type:none}ul.lst-kix_86hsx13ssqid-7{list-style-type:none}ul.lst-kix_86hsx13ssqid-6{list-style-type:none}ul.lst-kix_86hsx13ssqid-8{list-style-type:none}.lst-kix_4m04az9jmmj8-8>li:before{content:"\0025a0 "}ul.lst-kix_fy6y7gyjejoh-8{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-4{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-5{list-style-type:none}.lst-kix_4m04az9jmmj8-7>li:before{content:"\0025cb "}ul.lst-kix_fy6y7gyjejoh-6{list-style-type:none}ul.lst-kix_fy6y7gyjejoh-7{list-style-type:none}ol.lst-kix_1wulu3ra2vwv-1.start{counter-reset:lst-ctn-kix_1wulu3ra2vwv-1 0}.lst-kix_q97rvvc7c69e-1>li:before{content:"\0025cb "}.lst-kix_q97rvvc7c69e-0>li:before{content:"\0025cf "}.lst-kix_q8ok0mh9yyto-1>li:before{content:"" counter(lst-ctn-kix_q8ok0mh9yyto-1,upper-latin) ". "}.lst-kix_4m04az9jmmj8-0>li:before{content:"\0025cf "}.lst-kix_q8ok0mh9yyto-4>li:before{content:"(" counter(lst-ctn-kix_q8ok0mh9yyto-4,decimal) ") "}.lst-kix_emhp84jkv42c-0>li{counter-increment:lst-ctn-kix_emhp84jkv42c-0}.lst-kix_q8ok0mh9yyto-5>li:before{content:"(" counter(lst-ctn-kix_q8ok0mh9yyto-5,lower-latin) ") "}.lst-kix_q8ok0mh9yyto-5>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-5}.lst-kix_4m04az9jmmj8-4>li:before{content:"\0025cb "}.lst-kix_s3mi7ukxwiwf-1>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-1}.lst-kix_q8ok0mh9yyto-8>li:before{content:"(" counter(lst-ctn-kix_q8ok0mh9yyto-8,lower-roman) ") "}.lst-kix_4m04az9jmmj8-3>li:before{content:"\0025cf "}.lst-kix_xv318blpjdo-7>li{counter-increment:lst-ctn-kix_xv318blpjdo-7}ol.lst-kix_emhp84jkv42c-5.start{counter-reset:lst-ctn-kix_emhp84jkv42c-5 0}ol.lst-kix_xv318blpjdo-7.start{counter-reset:lst-ctn-kix_xv318blpjdo-7 0}.lst-kix_gfromclascha-1>li:before{content:"\0025cb "}.lst-kix_86hsx13ssqid-7>li:before{content:"\0025cb "}.lst-kix_q8ok0mh9yyto-0>li{counter-increment:lst-ctn-kix_q8ok0mh9yyto-0}ol.lst-kix_q8ok0mh9yyto-3.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-3 0}.lst-kix_1wulu3ra2vwv-7>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-7}.lst-kix_6qnkx7t1adn9-6>li:before{content:"\0025cf "}.lst-kix_gfromclascha-5>li:before{content:"\0025a0 "}.lst-kix_fy6y7gyjejoh-0>li:before{content:"\0025cf "}ol.lst-kix_emhp84jkv42c-8.start{counter-reset:lst-ctn-kix_emhp84jkv42c-8 0}ol.lst-kix_q8ok0mh9yyto-6.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-6 0}.lst-kix_q97rvvc7c69e-4>li:before{content:"\0025cb "}.lst-kix_xv318blpjdo-5>li{counter-increment:lst-ctn-kix_xv318blpjdo-5}.lst-kix_5anu1k9tsyak-4>li:before{content:"\0025cb "}.lst-kix_s3mi7ukxwiwf-8>li{counter-increment:lst-ctn-kix_s3mi7ukxwiwf-8}.lst-kix_s3mi7ukxwiwf-6>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-6,decimal) ". "}.lst-kix_fy6y7gyjejoh-8>li:before{content:"\0025a0 "}.lst-kix_1wulu3ra2vwv-5>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-5}.lst-kix_5anu1k9tsyak-0>li:before{content:"\0025cf "}.lst-kix_fy6y7gyjejoh-4>li:before{content:"\0025cb "}ol.lst-kix_xv318blpjdo-4.start{counter-reset:lst-ctn-kix_xv318blpjdo-4 0}.lst-kix_s3mi7ukxwiwf-2>li:before{content:"" counter(lst-ctn-kix_s3mi7ukxwiwf-2,lower-roman) ". "}.lst-kix_q97rvvc7c69e-8>li:before{content:"\0025a0 "}.lst-kix_emhp84jkv42c-4>li:before{content:"(" counter(lst-ctn-kix_emhp84jkv42c-4,decimal) ") "}.lst-kix_emhp84jkv42c-5>li{counter-increment:lst-ctn-kix_emhp84jkv42c-5}ol.lst-kix_xv318blpjdo-5.start{counter-reset:lst-ctn-kix_xv318blpjdo-5 0}.lst-kix_emhp84jkv42c-0>li:before{content:"" counter(lst-ctn-kix_emhp84jkv42c-0,upper-roman) ". "}.lst-kix_emhp84jkv42c-8>li:before{content:"(" counter(lst-ctn-kix_emhp84jkv42c-8,lower-roman) ") "}.lst-kix_9jxnjym0nges-1>li:before{content:"\0025cb "}ol.lst-kix_q8ok0mh9yyto-5.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-5 0}.lst-kix_1wulu3ra2vwv-5>li:before{content:"(" counter(lst-ctn-kix_1wulu3ra2vwv-5,lower-latin) ") "}.lst-kix_opi66v2qdsjs-1>li:before{content:"\0025cb "}.lst-kix_opi66v2qdsjs-5>li:before{content:"\0025a0 "}ol.lst-kix_emhp84jkv42c-7.start{counter-reset:lst-ctn-kix_emhp84jkv42c-7 0}ul.lst-kix_jkgkf1u9sy0c-4{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-5{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-6{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-7{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-8{list-style-type:none}ol.lst-kix_xv318blpjdo-6.start{counter-reset:lst-ctn-kix_xv318blpjdo-6 0}.lst-kix_1wulu3ra2vwv-0>li{counter-increment:lst-ctn-kix_1wulu3ra2vwv-0}ol.lst-kix_emhp84jkv42c-6.start{counter-reset:lst-ctn-kix_emhp84jkv42c-6 0}.lst-kix_9jxnjym0nges-5>li:before{content:"\0025a0 "}ul.lst-kix_6qnkx7t1adn9-8{list-style-type:none}ol.lst-kix_q8ok0mh9yyto-4.start{counter-reset:lst-ctn-kix_q8ok0mh9yyto-4 0}ul.lst-kix_6qnkx7t1adn9-7{list-style-type:none}ul.lst-kix_6qnkx7t1adn9-6{list-style-type:none}.lst-kix_86hsx13ssqid-3>li:before{content:"\0025cf "}ul.lst-kix_6qnkx7t1adn9-5{list-style-type:none}.lst-kix_sholqrhc62dh-3>li:before{content:"\0025cf "}ul.lst-kix_6qnkx7t1adn9-4{list-style-type:none}ul.lst-kix_6qnkx7t1adn9-3{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-0{list-style-type:none}ul.lst-kix_6qnkx7t1adn9-2{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-1{list-style-type:none}ul.lst-kix_6qnkx7t1adn9-1{list-style-type:none}.lst-kix_1wulu3ra2vwv-1>li:before{content:"" counter(lst-ctn-kix_1wulu3ra2vwv-1,upper-latin) ". "}ul.lst-kix_jkgkf1u9sy0c-2{list-style-type:none}ul.lst-kix_6qnkx7t1adn9-0{list-style-type:none}ul.lst-kix_jkgkf1u9sy0c-3{list-style-type:none}ol{margin:0;padding:0}table td,table th{padding:0}.c22{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:270pt;border-top-color:#000000;border-bottom-style:solid}.c20{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:105.8pt;border-top-color:#000000;border-bottom-style:solid}.c19{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:92.2pt;border-top-color:#000000;border-bottom-style:solid}.c17{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:468pt;border-top-color:#000000;border-bottom-style:solid}.c12{color:#695d46;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:14pt;font-family:"PT Sans Narrow";font-style:normal}.c1{color:#695d46;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Open Sans";font-style:normal}.c29{padding-top:8pt;padding-bottom:0pt;line-height:1.2;page-break-after:avoid;orphans:2;widows:2}.c27{padding-top:16pt;padding-bottom:0pt;line-height:1.0;orphans:2;widows:2}.c31{padding-top:0pt;padding-bottom:0pt;line-height:1.2;orphans:2;widows:2}.c33{text-decoration:none;vertical-align:baseline;font-size:11pt;font-style:normal}.c11{font-size:18pt;font-family:"PT Sans Narrow";color:#ff5e0e;font-weight:700}.c0{margin-left:72pt;border-spacing:0;border-collapse:collapse;margin-right:auto}.c18{margin-left:36pt;border-spacing:0;border-collapse:collapse;margin-right:auto}.c21{font-size:42pt;font-family:"PT Sans Narrow";color:#695d46;font-weight:700}.c30{border-spacing:0;border-collapse:collapse;margin-right:auto}.c6{padding-top:24pt;padding-bottom:0pt;line-height:1.3;page-break-after:avoid}.c4{padding-top:0pt;padding-bottom:0pt;line-height:1.0;text-align:left}.c7{padding-top:6pt;line-height:1.2;orphans:2;widows:2}.c14{font-size:11pt;font-family:"Trebuchet MS";text-decoration:underline}.c16{font-family:"Open Sans";color:#1155cc;text-decoration:underline}.c24{color:inherit;text-decoration:inherit}.c25{padding-bottom:0pt;text-align:left}.c10{margin-left:36pt;padding-left:0pt}.c9{padding:0;margin:0}.c28{max-width:468pt;padding:72pt 72pt 72pt 72pt}.c15{margin-left:72pt;padding-left:0pt}.c32{orphans:2;widows:2}.c13{color:#008575;font-family:"PT Sans Narrow"}.c2{color:#695d46;font-family:"Open Sans"}.c8{height:11pt}.c5{height:0pt}.c3{background-color:#ffffff}.c23{font-size:12pt}.c26{font-weight:700}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left} 

Oracle Fusion Middleware Deployments Using Docker Swarm

Overview

This is the first in a series of blogs that describe how to build a Fusion Middleware (FMW) Cluster that runs as a number of Docker images that run in docker containers.  These containers are coordinated using Docker Swarm and can be deployed to a single host machine or multiple hosts.  This simplifies the task of building FMW clusters and also makes it easier to scale them in and out (adding or subtracting host machines) as well as up and down (using bigger or smaller host machines).

This blog uses Oracle Service Bus as an FMW product but the principles are applicable to other FMW products.

In this entry we will explain the concepts of using Docker Swarm 1.12 to create a Fusion Middleware Cluster.  We will explain how to set up a minimal Linux machine to run a docker engine and prepare it to start building out a Fusion Middleware Cluster running on Swarm.  In future entries we will cover creating a database docker image that we will use to support Fusion Middleware.  Other entries will explain how to create a docker image to run Fusion Middleware and create a cluster in swarm mode by defining swarm services for the database, WebLogic Admin Server and WebLogic managed servers.

Goals
  1. Create FMW Cluster 12.2 that runs on Docker Swarm 1.12
  2. User Swarm to support scaling in/out of the FMW cluster.
Introduction

FMW deployments can be complex to setup and configure.  The Enterprise Deployment Guide for SOA Suite 12.2.1 has a lots of steps to follow within its 382 pages.  This is taken care of for you when you subscribe to FMW on the cloud, such as Oracle SOA Cloud Service.  However many companies still run their FMW deployments in on premise systems and are not yet ready to move to the Oracle Cloud Machine, which provides a private cloud environment that looks just like the public cloud.

Docker provides a lightweight container in which to run software.  Multiple docker images can be coordinated by Docker Swarm to form a cluster.  Each image runs in a docker container which virtualizes the resources used by the image, making it possible for multiple images to execute on a single machines or for images to to be distributed across multiple machines.  In either case Swarm helps to manage the cluster of machines.

There are a number of blog entries that explain how to use FMW with docker but most of them only use the developer install, which can run in a single docker image.  A more normal FMW installation has a separate database and multiple managed servers.  There a few blog entries that describe using this, but they use old versions of docker and there are now better ways of implementing this.  We use the latest versions of docker and swarm to show to create FMW clusters running on docker swarm in a configuration that is production ready.

Over this and the next few blog entries I have partnered with my colleague Shuxuan Nie to describe how to run a highly FMW deployment on top of Docker.  We have used Oracle Service Bus as an example FMW deployment but the principles can be applied to any FMW deployment.

AuthorsShuxuan ‘Judy’ Nie029.JPG

Holding a masters degree in computer science from Beijing University of Aeronautics and Astronautics Shuxuan Nie is a senior principal devops engineer working on Oracle's forthcoming Adaptive Intelligence Applications Cloud Service (AIA).  Prior to joining Oracle, Shuxuan worked as a systems architect at Australian based Oracle partner Rubicon Red.  There she specialized in helping customers build highly available FMW environments on both physical hardware and VMs.  She also contributed to Rubicon Reds Myst platform provisioning and continuous delivery tool.  In her current position she works with Oracle Container Cloud Service (which provides docker in the cloud) to provide deployment environments for the AIA cloud service.

Antony ReynoldsIMG_7082.JPG

A graduate of Bristol University Antony Reynolds is a Product Strategy Director in Oracle’sIntegration Products group where he works with Oracle Integration Cloud Service (ICS).  In addition to working with ICS he also helps customers upgrade to the latest SOA Suite releases, working closely with some of the largest users of SOA Suite in the world.  A blogger and author of several books on Oracle SOA Suite Antony was attracted to Docker by its lightweight container model and power of abstraction.

Architecture

FMW and WebLogic rely on a database and an Admin Server.  This leads us to require the following Docker images to implement FMW on Docker.  Each docker image runs in its own docker container.  The beauty of Docker is that these images can be deployed together on a single machine or distributed across multiple machines without any changes to their configuration.

Docker Containers for FMW Cluster

We could deploy all the images on a single machine as shown below.


Docker Containers Running FMW on a Single Powerful Machine

Alternatively we can distribute them across several machines.

Docker Containers Running FMW on Multiple Machines

Of course we could choose a combination of the two.


Docker Containers Running FMW on Multiple Machines, some Running Multiple Containers

Note that from the docker images perspective each thinks it is running in its own physical machine, although it is actually running in a docker container on a physical or virtual machines and may be sharing that machine with other running docker images.

Initially we deployed all the images to containers on a single machine, once we had that working then we deployed our images to multiple machines.

Docker & Swarm for FMW People

We are used to running FMW on multiple virtual machines.  This is used extensively on Oracle Exalogic for example, as well as the large number of customers who run FMW on Oracle Virtual Machine (OVM) or Dell’s VMWare.  The problem with VMs is that each virtual machine has a whole operating system that is running on top of the VM hypervisor.  This includes the kernel and file system which makes a VM a relatively heavyweight container.

In contrast to a Virtual Machine a Docker Container just abstracts the CPU, memory, network and file system of the underlying operating system.  It does not run a separate kernel, instead deferring most of the execution to the underlying machine,m physical or virtual.  This results in a lighter weight container that still has the benefits of isolation and abstraction that a VM provides.  This is why people are excited about using docker containers to host services, particularly micro services, that would be too expensive to dedicate a VM to.

A docker image is a specific set of binaries and configuration that is targeted to run inside a docker container.  This could be an Oracle database, a WebLogic managed server or a WebLogic admin server.

So let's translate FMW / WebLogic deployment terms onto docker concepts.  Note that this is a conceptual mapping, but is not an exact equivalent.

FMW ConceptDocker ConceptNotes

Machine

Docker Engine

Docker engine can run multiple docker containers on a single host.

Cluster

Swarm Cluster

Docker swarm clusters can be used to run multiple instances of an image, providing a great platform to run an FMW cluster on top of.

Node Manager

Swarm Manager

Manages the swarm cluster and decides on which docker engine to run a particular container.  Note that this function is split between Weblogic Console and Node Manager in WebLogic.

Binaries and Domain Configuration

Docker Image

A docker image represents a set of code and associated configuration packaged up for execution in a docker container.

Managed WebLogic Server in a Cluster

Swarm Service

A swarm service is a generic service.  A WebLogic Admin Server would be a Swarm Service with a single instance.  A Managed Server would be a Swarm Service that allowed multiple instances.

Note that although FMW allows multiple servers to be targeted at a single machine, docker achieves this through two level, a docker container runs a single server, but a docker engine can run multiple containers..  This is not as limiting as it sounds because a docker container is much lighter than a VM and so it is easy to run multiple docker containers on a docker engine running on a single VM or physical machine with minimal overhead on top of the requirements of the WebLogic server.

FMW for Docker People

Oracle Fusion Middleware is the name for Oracle’s middleware products.  These are powerful proprietary middleware products that are used by customers throughout the world to; run applications and portals, integrate systems, provide business analytics and secure their environments, amongst other things.

Although many of these products are available in free developer editions they still require acknowledgement of the Oracle license and as such cannot be distributed as part of a docker image.  These products can also be large, often requiring several gigabytes of download before being installed.  These factors when combined have led Oracle and others to provide dockerfiles to create docker images that install and configure Oracle products into provided base images.  The software to be installed must be provided separately from the dockerfiles.  The created docker images can then stored in a company specific docker repository.  These docker images can then be used in the same way as any other docker image.  This is the approach that will be followed in this document.

Base VM Image

We built on a headless and minimum rpm installed Oracle Enterprise Linux 7 VM that has a download footprint of only 1GB.  The instructions provided are applicable to other OEL 7 and RHEL 7 environments.  With minimal changes the same instructions should also apply to other Linux releases such as Ubuntu.  The image is configured and set up with a docker environment.

The VM is used as our base platform to run docker.

Downloading VM

Because of licensing restrictions we are unable to provide a VM for download.  However if you are an Oracle employee then please contact us and we will point you at a downloadable image.

Image Pre-Requisites

If you don’t use the provided image then the following is needed of an OEL 7 image.

  • As root run yum util to enable UEKR4 and addons in yum repo

yum -y install yum-utils

yum-config-manager --enable ol7_addons

yum-config-manager --enable ol7_UEKR4

yum-config-manager --disable ol7_UEKR3_latest

  • Install 4.x kernel and reboot the system, selecting the UEK R4 kernel if this is not the default boot kernel

yum update

systemctl reboot

  • Install minimum required packages

yum install wget unzip net-tools

  • Provide btrfs file system as storage driver used by docker instead of default device mapper.  We will refer to the root of the btrfs file system as /var/lib/docker
  • Use yum to install btrfs-progs package

root@docker-base ~]# yum install btrfs-progs

  • Create btrfs file system on the device, such as /dev/sdb in this example.

root@docker-base ~]# mkfs.btrfs /dev/sdb

  • Display UUID of the device via blkid command

[root@docker-base ~]# blkid /dev/sdb

/dev/sdb: UUID="fe6bf7a2-34fc-4800-af2b-da19d2d8db6d" UUID_SUB="e955087d-80b5-4051-bb28-ed71edb9cea4" TYPE="btrfs"

  • Create the config file /etc/systemd/system/var-lib-docker.mount with below content, replace your UUID value:

[Unit]

Description = Docker Image Store

[Mount]

What = UUID=<Your UUID Value>

Where = /var/lib/docker

Type = btrfs

[Install]

WantedBy = multi-user.target

  • The above file defines systemd users to mount the file system on /var/lib/docker, need to create this folder if this is the fresh installation

[root@docker-base ~]# mkdir /var/lib/docker

  • Enable var-lib-docker.mount target and mount the file system

[root@docker-base ~]# systemctl enable var-lib-docker.mount

[root@docker-base ~]# systemctl start var-lib-docker.mount

  • Create the  /etc/systemd/system/docker.service.d/var-lib-docker-mount.conf to tell systemd to mount the /var/lib/docker file system by using the var-lib-docker.mount target before starting the docker service

[Unit]

Requires=var-lib-docker.mount

After=var-lib-docker.mount

  • Set the SELinux mode to permissive or disable SELinux. In this demo, we disable SELinux in /etc/selinux/config.  We do this to avoid having to configure selinux policies to run docker.  Your Linux security team may require you to set up an appropriate policy.

# 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

                The above change requires to reboot the system

[root@docker-base ~]# systemctl reboot

  • Install docker engine, in our demo we install latest version 1.12

[root@docker-base ~]# yum install docker-engine

  • Start docker service and set to auto start

[root@docker-base ~]# systemctl start docker

[root@docker-base ~]# systemctl enable docker

  • Check docker running status

[root@docker-base ~]# systemctl status docker

● docker.service - Docker Application Container Engine

   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)

  Drop-In: /etc/systemd/system/docker.service.d

           └─docker-network.conf, docker-sysconfig.conf, http-proxy.conf, var-lib-docker-mount.conf

   Active: active (running) since Sun 2017-01-08 12:16:38 PST; 52min ago

     Docs: https://docs.docker.com

 Main PID: 871 (dockerd)

   Memory: 64.7M

   CGroup: /system.slice/docker.service

           ├─ 871 dockerd --selinux-enabled

           └─1020 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0...

  • Display docker information, you can verify the version and btrfs storage driver

[root@docker-base ~]# docker info

Containers: 0

 Running: 0

 Paused: 0

 Stopped: 0

Images: 0

Server Version: 1.12.2

Storage Driver: btrfs

 Build Version: Btrfs v3.19.1

 Library Version: 101

Logging Driver: json-file

Cgroup Driver: cgroupfs

Plugins:

 Volume: local

 Network: null host bridge overlay

Swarm: inactive

Runtimes: runc

Default Runtime: runc

Security Options: seccomp

Kernel Version: 4.1.12-61.1.24.el7uek.x86_64

Operating System: Oracle Linux Server 7.3

OSType: linux

Architecture: x86_64

CPUs: 1

Total Memory: 4.133 GiB

Name: docker-base.us.oracle.com

ID: ELNP:SGZ6:MUMH:FWOC:3BZ2:NZOA:KBKQ:3RT2:ADS4:AX5T:M5YT:RLXR

Docker Root Dir: /var/lib/docker

Debug Mode (client): false

Debug Mode (server): false

Registry: https://index.docker.io/v1/

Insecure Registries:

 127.0.0.0/8

  • Create oracle user
  • useradd oracle
  • Add oracle user to docker group
  • usermod -a -G docker oracle
Summary

In this entry we have introduced the concept of using Docker Swarm 1.12 to create a Fusion Middleware Cluster.  We have explained how to set up a minimal Linux machine to run a docker engine and prepared it to start building out a Fusion Middleware Cluster running on Swarm.  In our next entry we will cover creating a database docker image that we will use in later entries to support Fusion Middleware.  Later entries will explain how to install Fusion Middleware and create a cluster in swarm mode by defining swarm services for the database, WebLogic Admin Server and WebLogic managed servers.

Creating Partitions

Tom Kyte - Sat, 2017-01-14 03:46
Hi Team, Please have a look at table structure shared via LiveSQL Link - https://livesql.oracle.com/apex/livesql/s/ee1slk0wo53esxy30e4l0ac2x table is used in application using stmt_end_date - 1. Since stmt_end_date is a part of primary key, i...
Categories: DBA Blogs

Find the number in list which is not present in Database column

Tom Kyte - Sat, 2017-01-14 03:46
I have one requirement where I need to find the first missing number in the List which is not there in Database(Oracle) column. Scenario is like this : Table 1: Link to table image is here :- <code>https://i.stack.imgur.com/iXm6N.png</code>...
Categories: DBA Blogs

Create linenumbers for sqlplus queries on the fly.

Tom Kyte - Sat, 2017-01-14 03:46
Is there a quick an easy way to create sequential line numbers on the fly (without Creating a Sequence or using PL*SQL) for a SQLplus query executed inside SQLplus? Example: Here is a live link to output: http://www.videofame.com/fragrance.asp ...
Categories: DBA Blogs

Oracle Apex applicationson company DB

Tom Kyte - Sat, 2017-01-14 03:46
Hi, I am trying to create oracle apex applications for my company,the thing i am worried about is that the applications will be complex and would require a lot of space on the DB.Can you let me know what is the default DB size that is available if...
Categories: DBA Blogs

Pages

Subscribe to Oracle FAQ aggregator