Thursday, March 3, 2011

Following are the steps required to configure Linux for Oracle Database 10g Release 2.

Verifying System Requirements

To verify that your system meets the minimum requirements for an Oracle Database 10g Release 2 database, log in as root and run the commands below.
To check the amount of RAM and swap space available, run this:
grep MemTotal /proc/meminfo

grep SwapTotal /proc/meminfo

Ex:

grep MemTotal /proc/meminfo
MemTotal: 1034680 kB

grep SwapTotal /proc/meminfo
SwapTotal: 1534196 kB

The minimum RAM required is 8GB, and the minimum required swap space is 10 GB. Allocating the Swap space will be based on the DBA team requirement, but the minimum space should be 10 GB.

Memory depends upon the application we are running. For example ,iHotlier database will be having more memory compared to Databridge.

Adding swap space
This option of adding swap space is required only if the server is not configured with the required amount of swap space at the time of installation.
Swapon and SwapOff are two command provided with Linux to enable/disable devices and files for paging and swapping.

Configuring Linux Kernel Parameters

The Linux kernel is a wonderful thing. Unlike most other *NIX systems, Linux allows modification of most kernel parameters while the system is up and running. There's no need to reboot the system after making kernel parameter changes. Oracle Database 10g Release 2 requires the kernel parameter settings shown below. The values given are minimums, so if your system uses a larger value, don't change it.

Enable direct login to oracle and provide sudo to root access for DBA Group to complete the installation. Revoke root access and direct login for oracle from DBA once installation is completed *

Wednesday, March 2, 2011

INTRODUCTION

FUNC is an open source automation tool developed by using Python programming language. We can use this tool for automating system admin tasks such as status check, configuration tweak, file transfer, rebooting the systems etc in multiple Linux-based systems. It uses the typical Client-Server model, where the server is called by the term "overlord" and the clients which are binded to the server are called as "minions".

INSTALLATION PROCEDURE

The installation procedure for Server and Clients are same but the configuration makes the difference to run as a Server or Client.

Following are the required packages which have to be installed.

smolt

python-ctypes

python-paste

python-simplejson

pyOpenSSL

certmasterfunc

The main configuration file for Server is "/etc/certmaster/certmaster.conf" and for client is "/etc/certmaster/minion.conf"
For a Server to run it requires a service by name "certmaster" and it listens to port 51235.
For a Client to run it requires a service by name "funcd" and it listens to port 51234.

FUNC Client installation on 32bit OS

scp the following file to local system and install the RPM in same order as mentioned.

Note: We should ensure the Network team allows TCP traffic through on these ports.

HOW IT WORKS

Func uses an X.509 public key infrastructure (PKI) to authenticate the minions to the overlord daemon (Master). These SSL certificates are also used to encrypt and verify all communications.

The certmaster daemon running on the overlord creates a Certificate Authority (CA) when it is first started. This serves as the root of the PKI. As each minion starts it will generate a key pair and a Certificate Signing Request (CSR) which contains its public key. The CSR is uploaded to the Master. After the minion has its certificate signed by the overlord's CA you can start issuing commands to that host.

Keys are stored in /etc/pki/func for both sides. Certmaster stores certs and csrs in /var/lib/func (and do not need to be protected against unauthorized read access).

Note: Despite the fact that we have a SSL communication established between Server and clients, we still can't login to client server (from Master) without a password. We can issue commands to client machines only using Func module. Hence this prevents the security risk like we have in establishing SSH connection using empty phase phrase.

HOW TO USE

The command-line syntax for Func is as follows:

# func "hostnames" module method [arg1] [arg2]

Every command should start with the keyword 'func' followed by 'hostnames' within double quotes, module name, method name and the arguments.

In Detail:

"Hostname" - Hostnames within double quotes can be a single servername or a servernames separated by semicolons or we can use wildcard characters to specified a set of servers.

"Module" - In a simple term, we can say a module is a high-level description of an entity and it contains number of useful functions or a set of commands. In OOPS term, we can call it as a Class which contains number of methods.

"Methods" - These are functions or a set of command set available under a particular Module

"Arguments" - Parameters which are passed to methods.

Note: In Func, we have an option of creating Python API which does the same as we do in command-line and include it in a Python script. But I haven't covered it in this document.

More on JBoss module

This module allow you to monitor and control your jboss instances; it permit to get status of instances (listening port, pid, instance name and bind address), simple search by address, by port and by instance name, and check instances problems (example when a jboss instance is up but don't listen on any ports).

Service Module

It starts, stops, and checks the status of services.
Command line usage:

[root@sysllm01 ~]# func applsb01 call service status vsftpd
{'applsb01': 0}
0--Success
[root@sysllm01 ~]# func applsb04 call service status vsftpd
{'applsb04': 3}
3-- Other than 0 in the output meant for Failure or the service doesn't exist on remote system

SUMMARY

Func is a great automation tool, invented exclusively for performing system admin tasks more effective than before on Linux platform. It totally eliminates the difficulties in login to multiple servers without compromising the security and it's pretty faster in executing the commands in remote clients. In addition to taking care of client login issue, it makes our work easier by capturing the result of command execution on remote machines and displaying it locally on Server's terminal. As we know, capturing the output of remote execution is indeed a major challenge and Func comes as a handy tool by eliminating it. Having said all this, Func does have some limitations. First is, the Func output is somewhat chaotic and we can't expect a formatted output. Next is, we can't do every system admin tasks using Func and it's not meant to replace the scripting languages such as Perl, Bash, Expect etc. Instead we can use the Func as a component in our scripting and derive some logic out of it. All we have to do is to learn the functionalities of Func modules/methods and see how we can use in our environment.

Blog Archive

About Me

I have started this blog to share my work experience and spread some smart solutions on Linux to Internet community. I'm hoping more people will get benefited from this blog.
Brief about me: I have 14+ years experience working as System Admin and currently work with VMware.