Saturday, 19 August 2017

Oracle Database 12c Release 2 (12.2) Installation On Fedora 25 (F25)

This article describes the installation of Oracle Database 12c Release 2 (12.2) 64-bit on Fedora 25 (F25) 64-bit. The article is based on a server installation with a minimum of 2G swap and secure Linux set to permissive.

Friday, 18 August 2017

Oracle Database 12c Release 2 (12.2) Installation On Oracle Linux 6 (OL6) and 7 (OL7)

This article describes the installation of Oracle Database 12c Release 2 (12.2) 64-bit on Oracle Linux 6 (OL6) and 7 (OL7) 64-bit. The article is based on a server installation with a minimum of 2G swap and secure Linux set to permissive.

Friday, 11 August 2017

Implementing SQL Server Failover Clustering in Azure

Deploying Infrastructure as a Service (IaaS) solutions in Microsoft Azure offers a number of benefits that leverage agility, resiliency, and scalability built into the underlying platform. However, when dealing with business-critical workloads, customers typically want to also provide high-availability and disaster recovery capabilities in a manner that they can control. Trying to implement this approach in the cloud by following the procedures applicable in on-premises datacenters frequently presents challenges that results from differences between the two environments. In this article, we will focus on these differences in the context of deployment of SQL Server Failover Clustering in Azure.

Thursday, 10 August 2017

Full Database Caching Mode in Oracle Database 12cR1

Under normal running the Oracle database decides what data to cache in the buffer cache. If there is not enough room, data can be aged out of the cache. In addition, Oracle may choose to bypass the buffer cache for some operations to prevent useful information being artificially aged out by a large read operation.

Wednesday, 9 August 2017

Dynamic Statistics in Oracle Database 12c Release 1

Oracle Database 10g introduced Dynamic Sampling to allow the optimizer to gather additional information at parse time if database statistics were missing, stale or insufficient to produce a good execution plan. Dynamic sampling was controlled by the OPTIMIZER_DYNAMIC_SAMPLING initialization parameter at instance or session level, or for individual queries using the DYNAMIC_SAMPLING hint, with available values ranging between "0" (off) to "10" (aggressive sampling) with a default value of "2".

Tuesday, 8 August 2017

Enterprise Manager Database Express in Database 12c Release 1

  • Introduction

Key things to remember about Enterprise Manager Database Express.
  1. EM DB Express is not Cloud Control or Grid Control!
  2. EM DB Express is not a replacement for the DB Control from 11g, as it has significantly less functionality.
  3. A DBA will not be able to administer the database using just EM DB Express.

Friday, 4 August 2017

Multitenant : Backup and Recovery of a Container Database (CDB) and a Pluggable Database (PDB) in Oracle Database 12c Release 1

  • RMAN Connections


Unless stated otherwise, this article assumes connections to RMAN are using OS authentication. This means you are connecting to the root container in the CDB with "AS SYSDBA" privilege.

$ export ORAENV_ASK=NO
$ export ORACLE_SID=cdb1
$ . oraenv

Thursday, 3 August 2017

Loading LOB Data Using SQL*Loader

This articles shows how SQL*Loader is used to load CLOB and BLOB data, enabling parallel load operations of large quanities of data. There are several methods for SQL*Loader to load LOBs, but here we will focus on the LOBFILE method, using one LOB per file.

Download the following documents and place them on the server filesystem. In this example we will use the "/tmp" directory for all files.

Wednesday, 2 August 2017

Multithreaded Model using THREADED_EXECUTION in Oracle Database 12c

Background


On UNIX/Linux systems the Oracle database uses a multiprocess model. For example, a basic installation of the database on a Linux system will have a process list something like this.

Tuesday, 1 August 2017

In-Database Archiving in Oracle Database 12c Release 1

Rather than deleting data, some applications have a concept of "mark for delete", so the data remains present in the table, but is not visible to the application. This is usually achieved by doing the following.
  • Add an extra column to the relevant tables that holds a flag to indicate the data is deleted.
  • Add an extra predicate to every statement that checks the deleted status, like "WHERE deleted = 'N'", to exclude the deleted rows from the SQL. The predicate can be hard coded into the SQL, or applied dynamically using a security policy.