Manual Upgrade Single Instance Oracle Database 11.2.0.3 to 11.2.0.4 Part 1


This activity is divided into four main tasks, namely:

  1. Install 11.2.0.4 binaries
  2. Apply July 2016 PSU to 11.2.0.4 database (optional)
  3. Upgrade 11.2.0.3 to 11.2.0.4
  4. Deinstall11.2.0.3 binaries

Install 11.2.0.4 binaries:

    The following are the prerequisite tasks to be performed prior to 11.2.0.4 database installation.
  1. Determine the total RAM size.

    Minimum: 1 GB of RAM
    Recommended: 2 GB of RAM or more
    1
    2
    3
    [oracle@oeldev01 ~]$ grep MemTotal /proc/meminfo
    MemTotal:        2050460 kB
  2. Determine the size of the configured swap space.

    1
    2
    3
    [oracle@oeldev01 ~]$ grep SwapTotal /proc/meminfo
    SwapTotal:       4194300 kB

    Note: On Linux, the HugePages feature allocates non-swappable memory for large page tables using memory-mapped files. If you enable HugePages, then you should deduct the memory allocated to HugePages from the available RAM before calculating swap space.
  3. Determine the available RAM and swap space.

    Oracle recommends that you take multiple values for the available RAM and swap space before finalizing a value. This is because the available RAM and swap space keep changing depending on the user interactions with the computer.
    1
    2
    3
    4
    5
    6
    [oracle@oeldev01 ~]$ free
                 total       used       free     shared    buffers     cached
    Mem:       2050460    1509548     540912     615828      55396    1048392
    -/+ buffers/cache:     405760    1644700
    Swap:      4194300          0    4194300
  4. Determine the amount of shared memory available.

    Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The shared memory should be sized to be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on that computer.
    1
    2
    3
    4
    [oracle@oeldev01 ~]$ df -h /dev/shm/
    Filesystem      Size  Used Avail Use% Mounted on
    tmpfs          1002M  598M  404M  60% /dev/shm
  5. Determine the amount of disk space available in the /tmp.

    At least 1 GB of disk space in the /tmp directory is needed.
    1
    2
    3
    4
    5
    [oracle@oeldev01 ~]$ df -h /tmp
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_oeldev01-LogVol03
                          3.9G  223M  3.4G   7% /tmp
  6. Determine whether the system architecture can run the software.

    This command displays the processor type. Verify that the processor architecture matches the Oracle software release to install. If you do not see the expected output, then you cannot install the software on this system.
    1
    2
    3
    [oracle@oeldev01 ~]$ uname -m
    x86_64
  7. Determine screen resolution.

    To install Oracle 11g Release 2 your system should be running on at least 1024×768 screen resolution.
    1
    2
    3
    [oracle@oeldev01 ~]$ xdpyinfo | grep 'dimensions:'
      dimensions:    1366x768 pixels (361x203 millimeters)
  8. Determine the amount of free disk space on the system.

    Space Requirement for Software Files:

    Enterprise Edition – 4.7 GB
    Standard Edition – 4.6 GB

    Space Requirement for Data Files:

    Enterprise Edition – 1.7 GB
    Standard Edition – 1.5 GB


    Note: Since this is an out-of-place upgrade, the space requirement is twice – to handle the old and new $ORACLE_HOME. I’m installing the binaries to /u01
    1
    2
    3
    4
    5
    [oracle@oeldev01 ~]$ df -h /u01
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_oeldev01-LogVol04
                           20G  4.2G   15G  23% /u01
  9. Determine the distribution and version of Linux installed.

    Check out this doc for the distributions and versions that are supported.
    1
    2
    3
    [oracle@oeldev01 ~]$ cat /proc/version
    Linux version 3.8.13-44.1.1.el6uek.x86_64 (mockbuild@ca-build44.us.oracle.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #2 SMP Wed Sep 10 06:10:25 PDT 2014
  10. Determine whether the required kernel is installed.

    On Oracle Linux 6:

    2.6.32-100.28.5.el6.x86_64 or later

    On Oracle Linux 6 with Red Hat Compatible Kernel:

    2.6.32-71.el6.x86_64 or later
    1
    2
    3
    [oracle@oeldev01 ~]$ uname -r
    3.8.13-44.1.1.el6uek.x86_64
  11. Comment

  12. Determine whether the required packages are installed.

    The following are the list of packages required for Oracle Database 11g Release 2 (11.2):

    binutils-2.20.51.0.2-5.11.el6 (x86_64)
    compat-libcap1-1.10-1 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6.i686
    gcc-4.4.4-13.el6 (x86_64)
    gcc-c++-4.4.4-13.el6 (x86_64)
    glibc-2.12-1.7.el6 (i686)
    glibc-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6.i686
    ksh
    libgcc-4.4.4-13.el6 (i686)
    libgcc-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6.i686
    libstdc++-devel-4.4.4-13.el6 (x86_64)
    libstdc++-devel-4.4.4-13.el6.i686
    libaio-0.3.107-10.el6 (x86_64)
    libaio-0.3.107-10.el6.i686
    libaio-devel-0.3.107-10.el6 (x86_64)
    libaio-devel-0.3.107-10.el6.i686
    make-3.81-19.el6
    sysstat-9.0.4-11.el6 (x86_64)

    or

    oracle-rdbms-server-11gR2-preinstall

    To determine whether the required packages are installed, enter commands similar to the following:

    # rpm -q package_name
    1
    2
    3
    [oracle@oeldev01 ~]$ rpm -q oracle-rdbms-server-11gR2-preinstall
    oracle-rdbms-server-11gR2-preinstall-1.0-13.el6.x86_64
  13. Determine whether the oinstall group exists.

    Since there’s a currently installed 11.2.0.3 database, the group should already exist.
    1
    2
    3
    [oracle@oeldev01 ~]$ grep oinstall /etc/group
    oinstall:x:54321:
  14. Determine whether the dba group exists.

    Since there’s a currently installed 11.2.0.3 database, the group should already exist.
    1
    2
    3
    [oracle@oeldev01 ~]$ grep dba /etc/group
    dba:x:54322:oracle
  15. Determine the oracle user exists and belongs to the correct groups

    If the oracle user exists, then this command displays information about the groups to which the user belongs. The output should be similar to the following, indicating that oinstall is the primary group and dba is a secondary group:

    uid=440(oracle) gid=200(oinstall) groups=201(dba),202(oper)
    1
    2
    3
    [oracle@oeldev01 ~]$ id oracle
    uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
  16. For each installation software owner, check the resource limits for installation.
  17. Check out this doc for the resource limits.
    Check the soft and hard limits for the file descriptor setting. Ensure that the result is in the recommended range.
    1
    2
    3
    4
    5
    [oracle@oeldev01 ~]$ ulimit -Sn
    1024
    [oracle@oeldev01 ~]$ ulimit -Hn
    65536
    Check the soft and hard limits for the number of processes available to a user. Ensure that the result is in the recommended range.
    1
    2
    3
    4
    5
    [oracle@oeldev01 ~]$ ulimit -Su
    16384
    [oracle@oeldev01 ~]$ ulimit -Hu
    16384
    Check the soft limit for the stack setting. Ensure that the result is in the recommended range.
    1
    2
    3
    4
    5
    [oracle@oeldev01 ~]$ ulimit -Ss
    10240
    [oracle@oeldev01 ~]$ ulimit -Hs
    32768
    Repeat this procedure for each Oracle software installation owner. If necessary, update the resource limits in the /etc/security/limits.conf configuration file for the installation owner.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    [root@oeldev01 ~]# cat /etc/security/limits.conf
    # /etc/security/limits.conf
    #
    #Each line describes a limit for a user in the form:
    #           
    #Where:
    # can be:
    #        - a user name
    #        - a group name, with @group syntax
    #        - the wildcard *, for default entry
    #        - the wildcard %, can be also used with %group syntax,
    #                 for maxlogin limit
    # can have the two values:
    #        - "soft" for enforcing the soft limits
    #        - "hard" for enforcing hard limits
    # can be one of the following:
    #        - core - limits the core file size (KB)
    #        - data - max data size (KB)
    #        - fsize - maximum filesize (KB)
    #        - memlock - max locked-in-memory address space (KB)
    #        - nofile - max number of open file descriptors
    #        - rss - max resident set size (KB)
    #        - stack - max stack size (KB)
    #        - cpu - max CPU time (MIN)
    #        - nproc - max number of processes
    #        - as - address space limit (KB)
    #        - maxlogins - max number of logins for this user
    #        - maxsyslogins - max number of logins on the system
    #        - priority - the priority to run user process with
    #        - locks - max number of file locks the user can hold
    #        - sigpending - max number of pending signals
    #        - msgqueue - max memory used by POSIX message queues (bytes)
    #        - nice - max nice priority allowed to raise to values: [-20, 19]
    #        - rtprio - max realtime priority
    #                
    #*               soft    core            0
    #*               hard    rss             10000
    #@student        hard    nproc           20
    #@faculty        soft    nproc           20
    #@faculty        hard    nproc           50
    #ftp             hard    nproc           0
    #@student        -       maxlogins       4
    # End of file
    # oracle-rdbms-server-11gR2-preinstall setting for nofile soft limit is 1024
    oracle   soft   nofile    1024
    # oracle-rdbms-server-11gR2-preinstall setting for nofile hard limit is 65536
    oracle   hard   nofile    65536
    # oracle-rdbms-server-11gR2-preinstall setting for nproc soft limit is 16384
    # refer orabug15971421 for more info.
    oracle   soft   nproc    16384
    # oracle-rdbms-server-11gR2-preinstall setting for nproc hard limit is 16384
    oracle   hard   nproc    16384
    # oracle-rdbms-server-11gR2-preinstall setting for stack soft limit is 10240KB
    oracle   soft   stack    10240
    # oracle-rdbms-server-11gR2-preinstall setting for stack hard limit is 32768KB
    oracle   hard   stack    32768
    # oracle-rdbms-server-11gR2-preinstall setting for memlock hard limit is maximum of {128GB (x86_64) / 3GB (x86) or 90 % of RAM}
    oracle   hard   memlock    134217728
    # oracle-rdbms-server-11gR2-preinstall setting for memlock soft limit is maximum of {128GB (x86_64) / 3GB (x86) or 90% of RAM}
    oracle   soft   memlock    134217728
  18. Set the environment variables.

  1. If the ORACLE_HOME environment variable is set, then Oracle Universal Installer uses the value that it specifies as the default path for the Oracle home directory. However, if you set the ORACLE_BASE environment variable, then Oracle recommends that you unset the ORACLE_HOME environment variable and choose the default path suggested by Oracle Universal Installer.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    [oracle@oeldev01 ~]$ cat .bash_profile
    # .bash_profile
    umask 022
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    # User specific environment and startup programs
    TMP=/tmp
    TMPDIR=$TMP
    export TMP TMPDIR
    ORACLE_BASE=/u01/app/oracle
    export ORACLE_BASE
    unset ORACLE_HOME ORACLE_SID TNS_ADMIN
    #ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    #export ORACLE_HOME
    #TNS_ADMIN=$ORACLE_HOME/network/admin
    #export TNS_ADMIN
    #ORACLE_SID=orcl01
    #export ORACLE_SID
    #PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
    PATH=$PATH:$HOME/bin
    export PATH
  2. Copy and unzip installation files.

  1. [oracle@oeldev01 installers]$ ls -ltr
    total 2487208
    -rwxr-x---. 1 oracle oinstall 1395582860 Jun 16 17:42 p13390677_112040_Linux-x86-64_1of7.zip
    -rwxr-x---. 1 oracle oinstall 1151304589 Jun 16 17:43 p13390677_112040_Linux-x86-64_2of7.zip
    [oracle@oeldev01 installers]$ unzip p13390677_112040_Linux-x86-64_1of7.zip
    Archive:  p13390677_112040_Linux-x86-64_1of7.zip
       creating: database/

Execute runInstaller.

Before running runInstaller, make sure that the host is listed in the /etc/hosts file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[oracle@oeldev01 ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.103 oeldev01
[oracle@oeldev01 ~]$ cd /u02/installers/
[oracle@oeldev01 installers]$ ls -ltr
total 4
drwxr-xr-x. 7 oracle oinstall 4096 Aug 27  2013 database
[oracle@oeldev01 installers]$ cd database/
[oracle@oeldev01 database]$ ls -ltr
total 60
drwxr-xr-x.  2 oracle oinstall  4096 Aug 27  2013 sshsetup
-rwxr-xr-x.  1 oracle oinstall  3267 Aug 27  2013 runInstaller
drwxr-xr-x.  2 oracle oinstall  4096 Aug 27  2013 rpm
drwxr-xr-x.  2 oracle oinstall  4096 Aug 27  2013 response
-rw-r--r--.  1 oracle oinstall 30016 Aug 27  2013 readme.html
drwxr-xr-x. 14 oracle oinstall  4096 Aug 27  2013 stage
-rw-r--r--.  1 oracle oinstall   500 Aug 27  2013 welcome.html
drwxr-xr-x.  4 oracle oinstall  4096 Aug 27  2013 install
[oracle@oeldev01 database]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB.   Actual 3460 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4095 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Leave the “Email” blank and skip software updates.

  1. 01
    02
    03
  2. Install database software only.

    04
  3. Choose single instance database installation.

    05
  4. Select languages.

    06
  5. Select Enterprise Edition.

    07
  6. Enter ORACLE_BASE and ORACLE_HOME directories.

    08
  7. Specify OSDBA group.

    09
  8. Review prerequisite checks. Make necessary adjustments.

    10
  9. Proceed with the installation.

    11
  10. Execute (root) configuration scripts.

    12
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [root@oeldev01 installers]# /u01/app/oracle/product/11.2.0/dbhome_2/root.sh
    Performing root user operation for Oracle 11g
    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /u01/app/oracle/product/11.2.0/dbhome_2
    Enter the full pathname of the local bin directory: [/usr/local/bin]:
    The contents of "dbhome" have not changed. No need to overwrite.
    The contents of "oraenv" have not changed. No need to overwrite.
    The contents of "coraenv" have not changed. No need to overwrite.
    Entries will be added to the /etc/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of root script.
    Now product-specific root actions will be performed.
    Finished product-specific root actions.
  11. Close OUI.

    13

No comments: