Oracle NZ - Francisco Munoz Alvarez

16. December 2009

DB_ULTRA_SAFE a new GEM for High Availability

Filed under: Oracle FAQ, 11gR2, DBA Career Tips, Others, Tutorials, General — admin @ 00:45

DB_ULTRA_SAFE is a new parameter introduced with Oracle 11gR1, and a fantastic new GEM for High Availability, that using Data Guard to configure on both the primary and standby will trigger the most comprehensive data corruption prevention and detection (and repair on 11gR2, see **) tool in the market.

** Starting in Oracle Database 11g Release 2 (11.2), the primary database automatically attempts to repair the corrupted block in real time by fetching a good version of the same block from a physical standby database.

Speaking simple, what this new functionality will do is use your Standby Database as a backup to correct automatically any data corruption on your primary database and vice-versa (again on 11.2).

The DB_ULTRA_SAFE initialization parameter also controls other data protection behavior in Oracle Database, such as requiring ASM to perform sequential mirror write I/Os.

You basically need to understand that when setting DB_ULTRA_SAFE it will control the behaviour of DB_BLOCK_CHECKING, DB_BLOCK_CHECKSUM, or DB_LOST_WRITE_PROTECT parameters for you, which mean:

When you set DB_ULTRA_SAFE to Then the following parameters…
DATA_AND_INDEX (recommended by Oracle)
  • DB_BLOCK_CHECKING is set to FULL.
  • DB_LOST_WRITE_PROTECT is set to TYPICAL.
  • DB_BLOCK_CHECKSUM is set to FULL.
DATA_ONLY
  • DB_BLOCK_CHECKING is set to MEDIUM.
  • DB_LOST_WRITE_PROTECT is set to TYPICAL.
  • DB_BLOCK_CHECKSUM is set to FULL.

Lets’ Check  all the parameters affected by DB_ULTRA_SAFE:

  • DB_BLOCK_CHECKING (Introduced with Oracle 8.1.6) prevents memory and data corruptions, but it incurs some performance overhead on every block change.
  • DB_BLOCK_CHECKSUM (Introduced with Oracle 8.1.6) detects redo and data block corruptions and detect corruptions on the primary database and protect the standby database. This parameter requires minimal CPU resources.
  • DB_LOST_WRITE_PROTECT (also introduced with 11gR1) enable or disable a physical standby database to detect lost write corruptions on both the primary and physical standby database.

Important: if you explicitly set the DB_BLOCK_CHECKING, DB_BLOCK_CHECKSUM, or DB_LOST_WRITE_PROTECT parameters in the initialization parameter file, then the DB_ULTRA_SAFE parameter has no effect and no changes are made to the parameter values. Thus, if you specify the DB_ULTRA_SAFE parameter, do not explicitly set these underlying parameters.

To activate it, all you need to do is follow the following steps:

On the Primary Database:  

  1. Set the DB_ULTRA_SAFE=DATA_AND_INDEX initialization parameter using:
  2. SQL> alter system set db_ultra_safe=dta_and_index scope=spfile;
  3. SQL> shutdown immediate (Shutdown your Database)
  4. SQL> startup (This will start your primary Database using your new parameter set in the SPFILE previously)

On the Physical Standby Database: 

  1. Set the DB_ULTRA_SAFE=DATA_AND_INDEX initialization parameter using:
  2. SQL> alter system set db_ultra_safe=dta_and_index scope=spfile;
  3. SQL> startup nomount
  4. SQL> alter database mount standby database;
  5. SQL> alter database recover managed standby database disconnect from session;

If you are using your Standby Database on Read Only mode you also need to run the follow commands on your Physical Standby DB: 

  1. SQL> alter database recover managed standby database cancel;
  2. SQL> alter database open read only;

If you decide to change later the Read Only Standby to Standby again, you just will need to run the following command: 

  1. SQL> alter database recover managed standby database disconnect from session;

Hoping this information could help you in the future,

Francisco Munoz Alvarez

Example done on primary:

Screen 1

Example done at the Standby:

Screen 2

Technorati Tags: ,,,

15. July 2009

Back to Basics:The Oracle Editions

Filed under: Oracle FAQ, Tutorials, Questions, General — admin @ 02:26

Sometimes understanding the Oracle Database Editions is a little confuse, and on my opinion know all the options available in the market is something very important and fundamental for any DBA. The main idea of this post is to help you to understand a little bit more about all available options in the Oracle market, learn some key differences and functionalities of each Edition.

Understanding the Different Editions

All the time I receive questions regarding Oracle Database Editions like:

  • What’s the difference between Standard Edition and Enterprise Edition?  
  • How complicate is to upgrade a Standard Edition Database to Enterprise Edition and vice versa?   
  • Can you explain me the most important Options and Packages available with Oracle?  
  • Is Oracle Express Edition really free? What are the limitations and what it can do?

So many people don’t understand the diversity of Editions available with Oracle Databases, most of the time everyone associate it with the Enterprise Edition only, saying “Oracle is so expensive! Let’s look to other brands due that we can’t afford it!”, That’s a huge mistake, if you want the best available in the market you need to pay for it, but you need to understand all the options available for you by Oracle Corporation before take a precipitate and wrong decision, you always can find an edition that is affordable for your budget, and I can guarantee that you will not find the same performance and functionality at any other product in the market.

This is like buy a car, you can always dream to have a top brand vehicle, but you don’t need to buy the most expensive model if you only need a compact one, it will be more affordable and you know that you can trust in the quality of the product. The same happens with Oracle Databases. Oracle have available several editions of their Database product, all are the same product (internal code) but depending of the edition it can have some limitations or additional options to improve the performance, security, availability, and management of your 11g Database.

Oracle Database 11g is available in a choice of editions tailored to meet your business, personal, or IT needs, and also offers several extra options to enhance your Database capabilities depending of your applications requirements. Oracle have basically 5 different editions available for you, all are build using the same reliable database engine architecture and are compatible with each other, making this way an upgrade to be a very easy task to the DBA and this will also help to make your database grow at the same speed of your business.
The Editions available are: Express Edition, Personal Edition, Standard One Edition, Standard Edition and Enterprise Edition, now let’s take a quick look on each one:

  • Oracle Express Edition (XE): This edition is an entry-level, small-footprint database based at the Oracle 10g release 2 Enterprise code that is free to develop, deploy, and distribute; due to it, this is an excellent option for developers, students, and very small organizations trying to initiate their journey in the Oracle world. Oracle XE is very easy to download and very simple to administrate, it can be installed on any host machine size, with any number of CPU’s and memory available, but it will have several limitations like: will storage only 4GB of data, will use up to 1GB of memory, and will use only 1 CPU in the host machine. Currently this edition is not supported by My Oracle Support (old Metalink), this means no patches available and support, but you can always refer to the OTN forums to ask your peers for any kind of help relate to this edition.
  • Oracle Personal edition (PE): This edition supports single-user development and deployment environments that require full compatibility with Oracle Database Standard Edition One, Oracle Database Standard Edition, and Oracle Database Enterprise Edition. Oracle PE includes all of the components, options and functionalities that are included with Enterprise Edition with the exception of the Oracle Real Application Clusters (RAC) option. The negative side of this edition is that this is only available for Windows environments (Windows 2000, Windows NT, Windows XP, Windows Vista, and Windows Server 2003/32-bit and 64-bit versions), and the Management Packs are not included.
  • Oracle Standard Edition One (SEO): Delivers an unprecedented ease to use, power, price/performance for workgroups, department-level, and Web applications. This edition is highly recommended to be used from single-server environments for small business to any highly distributed branch environments. Oracle Database SEO includes all the facilities necessary to build any business-critical applications.
  • Oracle Standard Edition (SE): Offers a low cost alternative for small/medium business or departmental applications that want to have the power of Oracle, this Edition has all the benefits of Oracle SEO plus support for larger machines and clustering of services with Real Application Clusters (Free in this Edition); RAC was not included in previous Standard Edition releases prior to Oracle Database version 10g.
  • Oracle Enterprise Edition (EE): It’s the top of the Oracle Editions line, provides the best in performance, availability, scalability, and security required for mission-critical applications such as high-volume online transaction processing (OLTP) applications, query-intensive data warehouses, and demanding Internet applications. Oracle Database EE contains all of the components of Oracle Database, and can be further enhanced with the purchase of several available options and packs.

Now let’s take a closer look to all availabilities and restrictions of each Oracle Edition:

Limitations/ Availability

Express Edition Personal Edition Standard Edition One Standard Edition Enterprise Edition
Number of CPU/Sockets 1 CPU No Limit 2 Sockets 4 Sockets No Limit
RAM 1GB OS Maximum OS Maximum OS Maximum OS Maximum
Max. Number of Users No Limit 1 No Limit No Limit No Limit
Databases per Host 1 No Limit No Limit No Limit No Limit
Minimum User License Requirements Not Apply Not Apply 5 Named Users Plus 5 Named Users Plus 25 Named Users Plus per CPU
Database Size 4GB No Limit No Limit No Limit No Limit
Windows Available Available Available Available Available
Linux Available No Available Available Available Available
Unix No Available No Available Available Available Available
64-Bit No Available Available Available Available Available

Now you have a clear idea of all available Editions of Oracle in the market, in the next post I’ll go thru the most important options and packs available to enhance your database to achieve all your personal or company goals.

Cheers,

Francisco Munoz Alvarez

2. February 2009

Installing Grid Control – Part I

Filed under: Grid Control, Tutorials, White Papers — admin @ 10:26

By Francisco Munoz Alvarez ace-2.gif

Before you start with an installation of Grid Control, I’ll recommend you to go thru the documentation to understand all the minimum requirements and the installation process. For reference purpose, I’ll resume some important points of it here.

Let’s start taking  a close look in the components of the Grid Control  and some important information:

Component Definition
Grid Control Console

From the Grid Control console, you can monitor and administer your entire computing environment from one location on the network. All the services within your enterprise, including hosts, databases, listeners, application servers, Oracle Collaboration Suite applications, and Web applications are easily managed from one central location (console).

Management Agent

The Management Agent is a process that is deployed on each monitored host. It is responsible for monitoring all targets on the host, for communicating that information to the middle-tier Management Service, and for managing and maintaining the host and its targets.

Management Service

The Management Service is a J2EE Web application that renders the user interface for the Grid Control console. It works with all Management Agents to process monitoring and jobs information, and uses the Management Repository to store data.

Management Repository

The Management Repository consists of objects such as database jobs, packages, procedures, views, and two tablespaces in Oracle Database that contain all available information about administrators, targets, and applications managed within Enterprise Manager.

The Management Service uploads the monitoring data received from the Management Agents to the Management Repository. The Management Repository then organizes all data collected, so that it can be retrieved by the Management Service and displayed in the Grid Control console, making our life easy. Because all data is stored in the Management Repository, it can be shared between any number of administrators accessing the Grid Control console.

Licensing Information

Although the installation media in your media pack contain many Oracle components, you are permitted to use only those components for which you have purchased licenses. Oracle Support Services does not provide support for components for which licenses have not been purchased. For more information please refer to Oracle Enterprise Manager Licensing Information.

Oracle Directory

If you choose to install Enterprise Manager Grid Control using a new database on a computer with no other Oracle software installed, Oracle Universal Installer creates an Oracle base directory for you. If Oracle software is already installed, then one or more Oracle base directories already exist. In the latter case, you must specify the Oracle base directory into which you want to install Oracle Database.

You are not required to create an Oracle base directory before installation, but you can do so if desired. You can set the ORACLE_BASE environment directory to point to this directory, which the Oracle Universal Installer will recognize.

Multiple Oracle Home Support

Enterprise Manager is installed on multiple Oracle homes within the Oracle base directory. This means that a typical Enterprise Manager Grid Control installation creates three Oracle homes in different Oracle home directories. For example, oms10g, db10g, and agent10g.

Permissions Required for Executing UTL_FILE

The management audit log package of the scheme owner uses the UTIL package. For this package to function properly, the Enterprise Manager schema user (for example, sysman) must have permissions to execute this package.

To grant permissions, run this command (where sysman is the schema user):

grant execute on utl_file to sysman;
Enterprise Manager 10g Grid Control Certification Matrix

Before you download the software, Oracle recommends you to read the Oracle Enterprise Manager 10g Grid Control Certification matrix. The certification matrix shows the operating systems and browser versions on which Enterprise Manager Grid Control and Management Agent are certified.

The Enterprise Manager 10g Grid Control Certification matrix is available on Oracle Metalink at:

https://metalink.oracle.com/

Login and select the Certify tab. On the Certify page, click View Certifications by Product and select Enterprise Manager 10g Grid Control, and then click Submit.

Preinstallation Requirements for Enterprise Manager

For small environments (100 monitored targets):

  • 1 Host with 1 CPU (3GHz) 2 GB RAM and 2 GB Space to install the Oracle Management Service.
  • 1 Host with 1 COU (3GHz) 2 GB RAM and 10 GB space to the Oracle Management Repository

Note: On small environments it’s ok to share the same host for the Oracle Management Service and Repository.

  • 400 MB hard disk space to install the Oracle Management Agent for all Unix platforms and 500 MB for Windows,

For information regarding Preinstallation requirements, please refer to the OEM Documentation here.

Certified Enterprise Manager Targets

This is a resume of the list, for full list, please refer to the documentation.

Supported Targets     Release
Oracle Application Server
  • 9.0.4.2 and later patchsets
  • 10.1.2.0.0 (Phase 1)
  • 10.1.0.2.0.1 (SEONE)
  • 10.1.2.0.2 (Phase 2)
  • 10.2.0.2.1 Patchset
  • 10.1.3 (Standalone OC4J)
Oracle Database, Listener
  • 8.1.7.4
  • 9.0.1.5
  • 9.2.0.7 and later patchsets
  • 10.1.0.4 and later patchsets
  • 10.2
Oracle Real Application Clusters Database
  • 9.2.0.6
  • 10.1.0.4
  • 10.1.0.5
  • 10.2
Oracle Collaboration Suite
  • 9.0.4.2 and later 10.1.1

Note: Oracle recommends that the target host on which you are installing the Management Agent have a static IP address and not DHCP.

Reference material: Enterprise Manager Grid Control Installation and Basic Configuration Guide.

16. January 2009

LOGGING or NOLOGGING, that is the question - Part VI

Filed under: Redo Logs, Tutorials, White Papers — admin @ 07:34

 By Francisco Munoz Alvarez Oracle ACE

TIPS USING NOLOGGING MODE 

DIRECT PATH INSERT 

To use Direct Path Insert use the /*+ APPEND */ hint as follow:

  • INSERT /*+ APPEND */ into … SELECT …

When direct path insert is used oracle does the following:

  • Format the data to be inserted as oracle blocks.
  • Insert the blocks above the High Water Mark (HWM)

  • When commit takes place the HWM is moved to the new place (The process is done bypassing the buffer cache).

It is clear that direct load is useful for bulk inserts. Using it to insert few hundred records at a time can have bad effect on space and performance.

It is very important to understand how Direct Path Inserts affects redo generation. As mentioned above it does not affect indexes but it is affected by the following factors:

  • The database Archivelog mode.
  • Using the /*+ APPEND */ hint.
  • The LOGGING mode of the table.
  • The FORCE LOGGING mode of the database (from 9i R2).

If the database is in FORCE LOGGING mode then Oracle will treat the table as if it was in LOGGING mode regardless of its mode. To find out if the database is in FORCED LOGGING or not run:

  • select FORCE_LOGGING from v$database ;

If the /*+ APPEND */ Hint is not used then the insertion will generate the normal amount of redo regardless of the other factors.

This table will show the relation between ARCHIVELOG mode and having the table in LOGGING mode when the /*+ APPEND */ hint is used. This does not include index and  data dictionary changes redo generation.

LOGGING MODE

ARCHIVELOG

NOARCHIVELOG

LOGGING

Redo

No Redo

NOLOGGING

No Redo

No Redo

For Bulk DML  

Bulk Inserts 

To load bulk data using Direct Path.

  • set table in nologging mode. Alter table table_name nologging;
  • alter index index_name unusable ;
  • alter session set skip_unusable_indexes=true ;(*)
  •  Insert /*+ APPEND */ into table_name select …
  •  Alter index index_name rebuild nologging;
  • Alter table table_name logging ;
  • Alter index index_name logging ;
  • Backup the data.

(*)skip_unusable_indexes is an instance initialization parameter in 10g and defaulted to true. Before 10g, skip_unusable_indexes needs to be set in a session or the user will get an error. It is a good practice to set it in a session, regardless of the database version, when the above is done.

There is no direct way (at the time of writing this document) of reducing redo generation for bulk update and delete. The user needs to reduce the workload on the database.

Bulk Delete 

  1. Create a new_table with no logging, CREATE TABLE table_name NOLOGGING (….); The NOLOGGING comes after the TABLE_NAME not at the end of the statement.
  2. Insert /*+ Append */ into new_table select the records you want to keep from current_table.
  3. Create the indexes on the new table with NOLOGGING (*)
  4. Create constraints, grants etc.
  5. Drop current_table.
  6. Rename new_table to current.
  7. Alter new_table and indexes logging.
  8. Backup the data.

(*) If the data left is so small or there are a lot of dependencies on the table (views, procedures, functions) the following steps can be used instead of 3-6 above:

  1. Disable constrains on current_table;
  2. Truncate current_table;
  3. make indexes unusable;
  4. alter current table NOLOGGING ;
  5. Insert /*+ APPEND */ into current_table select * from new_table ;
  6. commit;
  7. rebuild indexes with NOLOGGING;
  8. enable constraints
  9. Put current table and indexes in LOGGING mode
  10. backup the data
  11. drop table new_table;

Bulk Update 

Follow the steps for bulk Delete but integrate the update within the select statement. Lets say that you want to update the value column in the goods table by increasing it by 10% the statement will be like:

  1. Create a new_table with no logging, CREATE TABLE table_name NOLOGGING (….); (The nologging comes after the table_name, not at the end of the statement.).
  2.  Insert /*+ Append */ into new_table select (update statement eg: col1, col2* 1.1,…)
  3. Create the indexes on the new table with NOLOGGING (*)
  4. Create constraints, grants etc.
  5. Drop current_table.
  6. Rename new_table to current.
  7. Alter new_table and indexes logging.
  8. Backup the data.

Backup and Nologging 

If required, it is possible that the data loaded using NOLOGGING can be loaded again. If the database crashed before backing up the new data then this data can not be recovered.

Here are the two scenarios of backing up:

Export (exp or expdp) 

This method will allow you to recover the loaded data up to the point the export was taken but not later.

For customers using 10g Oracle Streams, there is also the option of using Data Pump Export and Import Direct Path API. For more details please refer to the Utilities Guide

Hot Backup 

In order to recover any additional data or modification to the table you bulk inserted into using NOLOGGING the least you need to do is a hot backup of that tablespace. Remember you still generate redo for DML on the table when it is in NOLOGGING mode but you are strongly advised to put it in LOGGING mode in case you run one of the operations mentioned in the Disabling Logging section.

Wait for next part, I will talk about Redo Log I/O related wait events..  

1. November 2008

Let’s play with Oracle RAC 11g and Oracle Enterprise Linux 5- Part I

Filed under: RAC, Tutorials — admin @ 14:55

 

This is the first of many workshops I’ll start to post on my blog, at the end of each one I’ll post the full paper and some videos teaching step by step each workshop.

Let’s start with the first one ;)

Part I - Creating the Virtual Environment

Project Name

Oracle Rac5/2008

Author

Francisco Munoz Alvarez

Software Used

Oracle Enterprise Linux 5

WMware Workstation 6.0.4 build 93057

Oracle 11.1.0.6 Database and Clusterware Software

Date

30/10/2008

 

The idea of this workshop, it’s to guide you on how to create a RAC Installation using VMware Workstation 6, Oracle Enterprise Linux 5, and Oracle 11g.

This installation should never be used for Production or Development purposes. This installation was created for educational purpose only, and is extremely helpful to learn and understand how Oracle RAC works and if you do not have access to traditional hardware resources.

1. Project Hardware and Software Overview

 

Host Machine

Machine Name

Francisco-PC

Operational System

Windows Vista Business SP1

VMware Version

WMware Workstation 6.0.4 build 93057

Host Machine

HP Pavilion 6730b

Memory

3 GB

External Hard Drive

600 GB

Processor

Intel Core Duo P8400

 

Virtual Machine #1 - Rac1

Operational System

Oracle Enterprise Linux 5

Machine Name

rac1

Database Version

11.1.0.6

Instance Name

Test1

Public Name/IP - (eth0)

rac1.dbisonline.com - 192.168.2.8

Interconnect Name/IP - (eth1)

rac1-vip.dbisonline.com -10.10.10.11

Memory

860 MB

CPU

2 CPUs

Hard Drive

18 GB

Location

C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1

Virtual Machine #2 - Rac2

Operational System

Oracle Enterprise Linux 5

Machine Name

rac2

Database Version

11.1.0.6

Instance Name

Test2

Public Name/IP - (eth0)

rac2.dbisonline.com - 192.168.2.9

Interconnect Name/IP - (eth1)

rac2-vip.dbisonline.com -10.10.10.12

Memory

860 MB

CPU

2 CPUs

Hard Drive

18 GB

Location

C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac2

VMware File

Virtual Disks

Virtual Device Node

Size (GB)

Description

RAC\rac1\localdisk-flat.vmdk

/dev/sda1

/dev/sda2

SCSI 0:0

8

/

Mount Point

Swap space

Oracle Binaries

RAC\shared_storage\ocfs2-flat.vmdk

/dev/sdb1

SCSI 1:0

1

OCFS2 Disk

RAC\shared_storage\asm1-flat.vmdk

/dev/sdc1

SCSI 1:1

3

ASM disk group 1

RAC\shared_storage\asm2-flat.vmdk

/dev/sdd1

SCSI 1:2

3

ASM disk group 2

RAC\shared_storage\asm3-flat.vmdk

/dev/sde1

SCSI 1:3

3

ASM Flash Recovery Area

 

2. The Software

You can download all software you will need to this project at the following urls:

 

 

3. Virtual Machine Rac1 Setup

 

We are going to create 2 virtual machines (Rac1 and Rac2) that will share 5 disks (asm1, asm2, asm3, ocfs2 and local disk).

First we will create the windows folders to have the virtual machines and the shared storage.

  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1
  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac2
  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage

1. Then Double-click on the VMware Icon your desktop to bring up the application:

clip_image002[1]

2.   Click on the New Virtual Machine Icon.

clip_image004[1]

3. New Virtual Machine Wizard: Click on Next.

clip_image006[1]

4. In the Select the Appropriate Configuration Window Select Custom and then press next.

clip_image008[1]

5. Press Next in the Compatibility Window.

clip_image010[1]

6. Select a Guest Operating System:

  • a. Guest operating system: Select Linux.
  • b. Version: Select Red Hat Enterprise Linux 5.

c. Press Next

clip_image012[1]

7. Name the Virtual Machine:

  • a. Virtual machine name: Enter rac1
  • b. Location: Enter C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1\
  • c. Press Next

clip_image014[1]

8. Processor Configuration

  • a. Number of processors: Select Two
  • b. Press Next

clip_image016[1]

9. Memory for the Virtual Machine

  • a. Memory: Enter 860 MB
  • b. Press Next

clip_image018[1]

10. Network Type

  • a. Network Connection: Select Use bridged networking
  • b. Press Next

clip_image020[1]

11. Select I/O Adapter Types

  • a. SCSI Adapters: Select LSI Logic
  • b. Press Next

clip_image022[1]

12. Select a Disk:

  • a. Disk: Select create a new virtual disk.
  • b. Press Next

clip_image024[1]

13. Select a Disk Type:

  • a. Virtual Disk Type: Select SCSI (Recommended).
  • b. Press Next

clip_image026[1]

14. Specify Disk Capacity:

  • a. Disk capacity: Enter 8GB and Select Allocate all disk space now.
  • b. Press Next

clip_image028[1]

15. Specify Disk File:

  • a. Disk file: Enter localdisk
  • b. Click on Finish.

clip_image030[1]

clip_image032[1]

16. Now we will create the rest of shared disks:

  • a. VMware Server Console: Click on Edit virtual machine settings.

clip_image034[1]

17. Add Hardware Wizard: Click on Next.

clip_image036[1]

18. On Hardware Type:

  • a. Hardware types: Select Hard Disk
  • b. Then click on Next

clip_image038[1]

19. Select a Disk:

  • a. Disk: Select Create a new virtual disk.
  • b. Then Click Next

clip_image040[1]

20. Select a Disk Type:

  • a. Virtual Disk Type: Select SCSI (Recommended).
  • b. Mode: Select Independent
  • c. Mode: Select Persistent
  • d. Then Click Next

clip_image042[1]

21. Specify Disk File:

  • a. Disk file: Enter “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2.vmdk”
  • b. Then Click Next

clip_image044[1]

22. Specify Disk Capacity:

  • a. Disk capacity: Enter “1.0GB”
  • b. Select Allocate all disk space now.
  • c. Then Click Finish

clip_image046[1]

clip_image048[1]

clip_image050[1]

Repeat steps 16 to 22 to create all the other virtual SCSI hard disks:

  • asm1.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk (3GB),
  • asm2.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk (3GB),
  • asm3.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk (3GB).

Then when finish you will have something like this:

clip_image052[1]

Add an additional virtual network card for the private interconnects:

  • a. VMware Server Console: Click on Edit virtual machine settings.
  • b. Hardware types: Ethernet Adapter.
  • c. Then Click Next

clip_image054[1]

On Network Type:

  • a. On Network Connection Select Bridget: Connect directly to the physical network
  • b. Click on Finish.

clip_image056[1]

Then Select Floppy then:

  • a. click on Remove
  • b. Then OK.

clip_image058[1]

clip_image060[1]

Like you see the hard drives are showing:

  • Hard Disk (SCSI 0:0) 8 GB
  • Hard Disk (SCSI 0:1) 1 GB
  • Hard Disk (SCSI 0:2) 3 GB
  • Hard Disk (SCSI 0:3) 3 GB
  • Hard Disk (SCSI 0:4) 3 GB

Now we need to change them to look like this:

  • Hard Disk (SCSI 0:0) 8 GB
  • Hard Disk (SCSI 1:0) 1 GB
  • Hard Disk (SCSI 1:1) 3 GB
  • Hard Disk (SCSI 1:2) 3 GB
  • Hard Disk (SCSI 1:3) 3 GB

To make this possible we will give double-click over the hard disk showing SCSI 0:1

  • a. Then Click on Advanced

clip_image062[1]

Then Change Virtual Device node

  • a. From SCSI 0:1 Hard Disk (SCSI 0:1)
  • b To SCSI 1:0
  • c. Then Click OK
  • d. Then Click OK one more time

clip_image064[1]

clip_image066[1]

Repeat these steps to change:

  • Hard Disk (SCSI 0:2) 3 GB to SCSI 1:1
  • Hard Disk (SCSI 0:3) 3 GB to SCSI 1:2
  • Hard Disk (SCSI 0:4) 3 GB to SCSI 1:3

clip_image068[1]

Now to finish this virtual machine, edit the file C:\Users\francisco\Documents\labs-virtual-machines\RAC\Red Hat Enterprise Linux 4.vmx.

               a. Then add the following lines to it like the example bellow:

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus = "virtual"

b.

config.version = "8"

virtualHW.version = "6"

numvcpus = "2"

scsi0.present = "TRUE"

scsi0.virtualDev = "lsilogic"

memsize = "860"

scsi0:0.present = "TRUE"

scsi0:0.fileName = "localdisk.vmdk"

ide1:0.present = "TRUE"

ide1:0.fileName = "auto detect"

ide1:0.deviceType = "cdrom-raw"

floppy0.autodetect = "TRUE"

ethernet0.present = "TRUE"

ethernet0.wakeOnPcktRcv = "FALSE"

usb.present = "TRUE"

ehci.present = "TRUE"

sound.present = "TRUE"

sound.fileName = "-1"

sound.autodetect = "TRUE"

svga.autodetect = "TRUE"

pciBridge0.present = "TRUE"

mks.keyboardFilter = "allow"

displayName = "rac1"

guestOS = "rhel5"

nvram = "Red Hat Enterprise Linux 4.nvram"

deploymentPlatform = "windows"

virtualHW.productCompatibility = "hosted"

tools.upgrade.policy = "useGlobal"

disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

scsi1.sharedBus = "virtual"

ide1:0.autodetect = "TRUE"

floppy0.fileName = "A:"

extendedConfigFile = "Red Hat Enterprise Linux 4.vmxf"

scsi0:1.present = "FALSE"

scsi0:1.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2"

scsi0:1.mode = "independent-persistent"

scsi0:2.present = "FALSE"

scsi0:2.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk"

scsi0:2.mode = "independent-persistent"

scsi0:3.present = "FALSE"

scsi0:3.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk"

scsi0:3.mode = "independent-persistent"

scsi0:4.present = "FALSE"

scsi0:4.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk"

scsi0:4.mode = "independent-persistent"

floppy0.present = "FALSE"

ethernet1.present = "TRUE"

ethernet1.wakeOnPcktRcv = "FALSE"

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1:0.present = "TRUE"

scsi1:0.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2"

scsi1:0.mode = "independent-persistent"

scsi1:1.present = "TRUE"

scsi1:1.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk"

scsi1:1.mode = "independent-persistent"

scsi1:2.present = "TRUE"

scsi1:2.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk"

scsi1:2.mode = "independent-persistent"

scsi1:3.present = "TRUE"

scsi1:3.fileName = "C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk"

scsi1:3.mode = "independent-persistent"

 

Ok, let’s finish here for today folks. Tomorrow I’ll explain how to create the second node and to install the Oracle Enterprise Linux 5

Cheers,

Francisco Munoz Alvarez 

24. September 2008

How to migrate from 32 bit to 64 bit using RMAN?

Filed under: Oracle FAQ, Upgrade/Migration, Tutorials, Questions — admin @ 02:07

This procedure can be used for single instance or RAC (9i to 11g):

In the 32 bit source server :

Start making a full backup of the database including all archivelogs:

RMAN> run  {  

allocate channel c1 type disk;  

allocate channel c2 type disk;  

backup database plus archivelog;  

backup current controlfile;  }


In the target 64 bit server:

1) Copy backup files from source server
2) Create the pfile or copy the pfile fromsourceserver
3) Startup nomount the new instance.
4) Connect to rman and set the dbid:

$ rman target / nocatalog RMAN> set dbid=<dbid from the 32 server>;

5) Restore the controlfile:

RMAN> restore controlfile from ‘/disk1/backup_32/backup_piece_name’;

RMAN> alter database mount;

RMAN> restore database;

6) Identify the archivelog till you want to do the recovery and check if you have all the backups you need to do it and run:

RMAN> run {

set until sequence xxxx;

recover database;

}

RMAN> exit

7) Now Migrating to 64 bit:

SQL> recover database until cancel using backup controlfile;

cancel

SQL> alter database open resetlogs migrate;

SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

SQL> shutdown immediate;

SQL> startup

Note: Also please take a look in other methods in the following Metalink Note:

  • Migration of Oracle Instances Across OS Platforms - Doc ID: Note:733205.1

Cheers,

Francisco Munoz Alvarez

Powered by WordPress