Skip to main content

The Exadata move

The move to Exadata and Cloud at Customer - Database: 


Why Exadata: 

Performance - Exadata is engineered to run the Oracle database, and we can now eliminate hardware as a cause of performance problems, eliminate storage latency issues.

Every feature of the Oracle Database - enough said.


Why Cloud at Customer: 

Alleviates problems with hardware and avoiding patching and hardware problems seems like a big win to me.
Data security: Unfortunately we have some very important information stored in our system and the cloud was not an option
Scalability: With PAAS we will be able to meet our horizontal scalability needs.

Interesting findings and other notes:


1) Maximum 8 VM's on the Exadata
2) Active / Active and RAC

Database conversion:
1) Character Set Conversion: https://docs.oracle.com/database/121/NLSPG/ch11charsetmig.htm#NLSPG983 there is a document and a utility (DMU), color me surprised. (https://www.oracle.com/technetwork/database/database-technologies/globalization/dmu/overview/index.html)

2) Varchar2 sizes and upgrade to greater than 4000 chars: With the conversion to avoid truncation we moved to 4000 char instead of bytes and extended our string size. MAX_STRING_SIZE

3) Moving nightly jobs to the database using dbms_scheduler: Ended up being quite easy, just the zipping we where doing needed a bit of effort.

4) Export import
5) Possible 18c upgrade


Comments

Popular posts from this blog

ADF sort of generic screen for tables with the same structure

We have a couple (about a hundred) of tables with the same structure (Code, Description, Create Date, Update Date). So I wanted to do something simple so that I did not have to create all these screens 1) EO   I created the EO based on one of the tables I had that had the above columns. I then Added a transient attribute called table name to my EO based on a groovy expression. (the expression needs to change as I am reading web tier stuff from the model layer but I will fix this later) I then generated a java class for my EO. And added the following overriden method to my newly created java class. protected StringBuffer buildDMLStatement(int i, AttributeDefImpl[] attributeDefImpl,   AttributeDefImpl[] attributeDefImpl2, AttributeDefImpl[] attributeDefImpl3, boolean b) {   StringBuffer statement = super.buildDMLStatement(   i, attributeDefImpl, attributeDefImpl2, attributeDefImpl3, b); return new StringBuffer(StringUtils.replace(statement.to...

OJDeploy: Documentation for the tool

Real DOCS:  http://docs.oracle.com/cd/E26098_01/user.1112/e17455/deploying_apps.htm#OJDUG645 OJDeploy Documentation if you run it from the command line - I keep looking for this so I though I would post it here so I remeber. Oracle JDeveloper Deploy 11.1.2.1.0.6081 Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. Usage:   ojdeploy -profile <name> -workspace <jws> [ -project <name> ] [ <options> ]   ojdeploy -buildfile <ojbuild.xml> [ <options> ]   ojdeploy -buildfileschema Arguments:   -profile               the name of the Profile to deploy   -workspace      full path to the JDeveloper Workspace file(.jws)   -project              name of the JDeveloper Project within the .jws where the Profile can be...

Util code

public static MethodExpression getMethodExpression( String expr, Class returnType, Class[] argTypes){ FacesContext fc = FacesContext.getCurrentInstance(); ELContext elctx = fc.getELContext(); ExpressionFactory elFactory = fc.getApplication().getExpressionFactory(); return elFactory.createMethodExpression( elctx, expr, returnType, argTypes); } public static javax.faces.el.MethodBinding getMethodBinding( String expr, Class[] argTypes){ FacesContext fc = FacesContext.getCurrentInstance(); ELContext elctx = fc.getELContext(); return fc.getApplication().createMethodBinding(expr, argTypes); } SetPropertyListener listener = new SetPropertyListener( ActionEvent.class.getName()); listener.setFrom(link.getRoute()); listener.setValueExpression("to", JSFUtils.getValueExpression("#{pageFlowScope.route}", String.class)); action.addActionListener(listener); AdfFacesContext.getCurrentInstance().getPageFlowScope() .put("route", lin...