• Parm Patram
    Phone : (404) 216-4283
    Email: ppatram _at_ btsincorporated.com


    Summary
    Mr. Patram has been an Oracle DBA/Oracle Apps DBA for more than 5 years and a Linux/Solaris Systems Admin for more than 10 years. He holds the Oracle Certified Professional and Solaris Certified System Administrator credentials and is also very versed in Linux (Redhat).

    He has proven ability to improve manageability, stability, security and performance. His analytical, troubleshooting, and creative abilities allow him to adapt to any circumstance quickly, accurately pinpoint root cause, and come up with unique solutions.

    Skills Summary
    * Oracle 10g/11g
    * Recovery Manager (RMAN)
    * User and Security Administration
    * Export/Import (exp, expdp)
    * Logminer
    * Streams Replication
    * Dataguard Standby Database
    * Oracle Enterprise Manager (OEM)
    * Oracle EBS
    * Performance Tuning
    * Materialized Views (Snapshots)
    * PL/SQL, sqlplus
    * Real Application Clusters (RAC)
    * mySQL
    * postgresql
    * Unix Shell Scripting (bash, ksh)
    * PHP/Perl, expect, C Programming
    * Code Versioning (svn, fisheye)
    * Linux/Solaris (kickstart, LVM/Disksuite RAID, NFS, samba)
    * Installation/Configuration (rpm, up2date, yum, apt-get)
    * Advanced Network Troubleshooting (ping, ipcalc, arping, tcpdump, nmap)
    * Advanced Application Troubleshooting (strace/truss, netstat, ipcs, lsof, ps, jconsole)
    * Monitoring (Hyperic, openNMS, SNMP)
    * Migration (rsync)
    * Change/Configuration Auditing (Tripwire, custom scripting)
    * Change Control
    * Automation (expect, Perl, C, shell)
    * Apache/Tomcat

    Work Employment History
    Nov 2009 – Present: Linux/Solaris & Oracle Database Administrator at Barnhardt.
    * Managed development, stage and production databases and application servers for large manufacturing company’s ERP.
    * Install/configure Solaris 9 on Sunfire 280R. Developed method to clone the production server to backup/stage for consistency. Did some hardware work with RSC.
    * Updated old documentation and wrote new articles in tech services wiki relating to Linux/Solaris/Oracle.
    * Developed and implemented method to permit Oracle 10g Dataguard to compress archivelogs using SSH port forwarding (Linux).
    * Wrote custom plugins in Perl/bash/ksh for Hyperic to monitor Oracle Streams, Oracle Dataguard, and certain specific metrics on the application server.
    * Developed scripts using expect to test ERP functionality in an automated fashion.
    * Helped establish Change Control process.
    * Installed ERP on Linux (RHEL 5) for functional/development testing.

    * Streamlined Dev refresh process by scripting much of the pieces and creating a checklist of the order to execute those scripts. Project time did not permit a fully automated approach, which was the next progression.
    * Updated some of the scripts to use command-line arguments. This allowed the scripts to be exactly the same, but function differently based on arguments.
    * Updated the ‘standby monitor’ to perform checks to eliminate false alerts.
    * Developed ‘Tango’, which is a way to detect changes to an Oracle database’s settings or object properties. Tango consists of Oracle PL/SQL package and bash/Perl OS scripts.
    * Developed method to resize the filesystem used for archive logging without needing to stop the database (Linux).
    * Installed monitoring/auditing tools: Tripwire, openNMS, and Hyperic on RHEL 5 systems.
    * Helped with securing the ERP platform.
    * Identified/corrected performance problems resulting from over-sized SGA. Implemented SQL Profiling to improve performance of certain problem queries (Oracle).

    Aug 2005 – Nov 2009: Senior Linux/Oracle Database Consultant at Business Technology Services, Inc.
    * Specialized in RHEL, Oracle 10g and Oracle EBS.
    * Managed company’s dedicated Linux server which services their website and email needs.
    * Worked for many clients of BTS, Inc. in various industries.
    * On call support.
    * Oracle Dataguard standby database implementation, troubleshooting and tuning.
    * Oracle Streams replication.
    * General Troubleshooting and problem resolution.
    * Custom monitoring for Linux OS and Oracle database.
    * Oracle database performance tuning.
    * Oracle RAC on Linux (RHEL) implementation and monitoring.
    * Oracle EBS (11i and 12i) patch investigation and installation.
    * Oracle EBS cloning.

    Jan 2000 – August 2005: Senior Linux Administrator at Interland, Inc (now Peer1).
    * Worked in Dedicated Server Solutions department which offered billable Admin services to company’s Dedicated Server customers.
    * DSS also provided Data Center Operations support for company’s Shared Servers in addition to the Dedicated Servers (5000+ total).
    * Tier III support for Dedicated Services (non-billable questions and issues).
    * Assisted Engineering with build issues by writing work-around scripts and providing diagnostic data.
    * Was the leading revenue earner in DSS.
    * Some hardware work (HP/Compaq Proliant, Cobalt, white-box).
    * Plesk Linux Control Panel SME. Wrote many scripts to manage and migrate Cobalt RAQ, systems with no control panel, and older versions of Plesk to the newest Plesk versions.
    * Instituted Clean, Patch, &Lockdown service for customers whose servers had been hacked into.
    * Invented ‘Backplane Sharing’ to retrieve data from RAID array on non-booting servers by using the dead system to power up the RAID array so it can be mounted to a running machine in order to perform a data copy.
    * Developed unique method of reviving badly hacked servers that fail to boot by booting from CD, chroot, then manual services startup. Used as a stop-gap until a full migration to a new server could be effected.
    * Provided excellent sales support for sizing requirements and other technical consulting required for completing the sale.

    Miscellaneous Freelance Work
    Omega Learning Centers (http://omegalearningcenter.com).
    Administer company’s web server and email server.  Maintain and add new functionality to company’s suite of proprietary web-based interfaces used for running their business. Instrumental in scaling the products out to meet their need to franchise. Company now has 3 locations and growing.

    3D Cellular (http://omegalearningcenter.com).
    Administer company’s web and email server. Manage server firewall.  Responsible for the SSL certificates in use for both the website and email. Implemented VPN between LAN and Internet server. Designed custom scripts for backing up customer’s project files from their local area network to the server as well as designing and implementing an off-site backup plan for the server itself.

    Kagan Creative (http://kagancreative.com).
    Server administration and migration. Built and configured a dedicated mySQL server for client. Also responsible for about 10 SSL certificates for various websites running on the web server. Configured 3-node load-balanced web server for client.

    HPP Christian Hosting  (http://hppchristianhosting.com).
    Administered 3 high-traffic and heavily populated web servers totaling about 1000 different websites. Identify and upgrade old vulnerable applications running on the various websites that were being hacked into. Migrated the servers a few times to keep up with growing demand and the need for faster hardware. Assisted with some handover work when client sold the business in September 2007.

    Certifications
    Oracle Certified Professional (Database and Grids), 2009
    Solaris Certified System Administrator, 2003
    Microsoft Certified Systems Engineer, 1999

    Education
    1990, Associates of Arts (Data Processing)

    References
    Available Upon Request

  • DATAGUARD, Documentation, HEADS UP 10-03-2008 Comments Off

    alter system set log_archive_trace=7935;

    This will cause lgwr and archN to write a bunch of stuff to the alert log.

  • DATAGUARD 10-02-2008 Comments Off

    his process is for setting up replication to another databse on the same system.

    SYSTEM

    add the service names in the /etc/hosts file:
    127.0.0.1 localhost.localdomain localhost orcl klon

    PRIMARY DATABASE

    Enable force logging:
    SYS@orcl 11:26:29> select force_logging from v$database;

    FOR

    NO

    SYS@orcl 11:26:54> alter database force logging;

    Database altered.

    SYS@orcl 11:27:12> select force_logging from v$database;

    FOR

    YES

    Create password file (usually not necessary). The SYS password must be the same for the primary and all standby databases.

    Configure a standby redo log
    Get the number of log groups and logfile sizes from EM and then create the standy redo log groups:
    Remember to increment the group numbers, add the ’standby’ keyword, and change the logfile names

    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ( ‘/u01/app/oracle/oradata/orcl/REDO/sb_redo01.log’) SIZE 51200K;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ( ‘/u01/app/oracle/oradata/orcl/REDO/sb_redo02.log’) SIZE 51200K;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ( ‘/u01/app/oracle/oradata/orcl/REDO/sb_redo03.log’) SIZE 51200K;
    /

    Verify that the standby logs have been added:
    SYS@orcl 12:07:25> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

    GROUP# THREAD# SEQUENCE# ARC STATUS
    ———- ———- ———- — ———-
    4 0 0 YES UNASSIGNED
    5 0 0 YES UNASSIGNED
    6 0 0 YES UNASSIGNED

    Configure the Primary database (both as primary and secondary -- for switchover of roles):
    # Primary Role Initialization Parameters:
    #
    #DB_NAME=orcl
    DB_UNIQUE_NAME=orcl
    LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,klon)'
    #
    # get from show parameter control_files;
    #CONTROL_FILES='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl'
    #
    # get from select a.dest_id,name,destination from v$archived_log a, v$archive_dest b where a.dest_id=b.dest_id;
    #check the LOCATION directory to see if the db name is in a folder in lowercase or not!
    LOG_ARCHIVE_DEST_1=
     'LOCATION=/u01/app/oracle/product/11.1.0/db_1/dbs/
      VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
      DB_UNIQUE_NAME=ORCL'
    #
    LOG_ARCHIVE_DEST_2=
     'SERVICE=klon LGWR ASYNC
      VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
      DB_UNIQUE_NAME=klon'
    #
    LOG_ARCHIVE_DEST_STATE_1=ENABLE
    LOG_ARCHIVE_DEST_STATE_2=ENABLE
    #REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
    #
    #get from show parameter log_archive_format
    # this is setup automatically when archivelog is enabled
    #LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
    #
    LOG_ARCHIVE_MAX_PROCESSES=4
    #
    #
    #Standby Role Initialization Parameters:
    #
    FAL_SERVER=klon
    FAL_CLIENT=orcl
    DB_FILE_NAME_CONVERT='klon','orcl'
    LOG_FILE_NAME_CONVERT='/klon/','/orcl/'
    STANDBY_FILE_MANAGEMENT=AUTO
    
    
    Apply these settings to the Primary database (also make sure that the database is in archivelog mode):
    create pfile='/home/oracle/DATAGUARD/init_orcl.ora' from spfile;
    Then add the above lines to what is there already. Be sure to comment out anything in your additons that are already in the pfile.
    shutdown immediate;
    create spfile from pfile='/home/oracle/DATAGUARD/init_orcl.ora';
    startup

    SECONDARY DATABASE

    Create a backup copy of the primary database datafiles.

    Configure a standby redo log

    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ( ‘/u01/app/oracle/oradata/klon/REDO/sb_redo01.log’) SIZE 51200K;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ( ‘/u01/app/oracle/oradata/klon/REDO/sb_redo02.log’) SIZE 51200K;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ( ‘/u01/app/oracle/oradata/klon/REDO/sb_redo03.log’) SIZE 51200K;
    /

    Setup the parameters for the standby database:

    create pfile=’/home/oracle/DATAGUARD/init_klon.ora’ from spfile;
    shutdown immediate

    Add the following lines to the parameter file, then apply the changes:

    create spfile from pfile=’/home/oracle/DATAGUARD/init_klon.ora’;
    startup

    Make sure you give a different directory for the log_archive_dest_1 directory so that the logfiles do not clobber each other!

    # db_name must be the same for the primary and all standby databases
    DB_NAME=orcl
    DB_UNIQUE_NAME=klon
    LOG_ARCHIVE_CONFIG=’DG_CONFIG=(orcl,klon)’
    DB_FILE_NAME_CONVERT=(’orcl’,'klon’)
    LOG_FILE_NAME_CONVERT=’orcl’,'klon’
    #LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
    log_archive_trace=7935
    LOG_ARCHIVE_DEST_1=
    ‘LOCATION=/u01/app/oracle/product/11.1.0/db_1/dbs/klon
    VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
    DB_UNIQUE_NAME=klon’
    LOG_ARCHIVE_DEST_2=
    ‘SERVICE=orcl LGWR ASYNC
    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
    DB_UNIQUE_NAME=orcl’
    LOG_ARCHIVE_DEST_STATE_1=ENABLE
    LOG_ARCHIVE_DEST_STATE_2=ENABLE
    REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
    STANDBY_FILE_MANAGEMENT=AUTO
    FAL_SERVER=orcl
    FAL_CLIENT=klon

    HEADS-UP

    I did this on an 11g installation and kept getting error ora-1017. Finally I redid the passwords to remove case-sensitivity and it fixed the problem:

    orapwd file=/u01/app/oracle/product/11.1.0/db_1/dbs/orapw<DBID> password=<passwd> entries=10 force=y ignorecase=y

    I had to enable lgwr logging in order to see the error as well. See post

    set lgwr logging level

    There was also mention that on some versions if the connect identifier had a multiple of 5 characters that the same problem would result.

    see also http://www.colestock.com/blogs/2007/10/creating-physical-standby-using.html