Thursday, March 12, 2020

Oracle 12CR2 - 2 node RAC Setup on AIX 7.2 Power System.

This article will walk you through the implementation of Oracle  RAC with 2 nodes on AIX 7.2 Power Systems. This implementation can be used for many other UNIX and LINUX systems with little tweaks like Kernel parameter setting or the way you represent the storage/SAN for ASM.

Below are the high level steps to steps:

1. Kernel parameter, user, groups, directories needs to be setup per requirement.
2. local and shared storage needs to be setup on all the DB nodes.
3. 3 IPs for SCAN-NAME to be registered in DNS in round robin fashion
4. NTP(Network Time Protocol) server needs to be available if possible
5. Public, Private, VIP IPs needs to be configured and provided for all the nodes
6. xming OR cygwin with openssh OR mobaxterm needs to be install at client p/c for xwindows to work: I used xming.
7. X11 forwarding needs to be configured on the server in /etc/ssh/sshd_config and sshd services needs to be restarted :stopsrc -s sshd; startsrc -s sshd
8. Firewall port range 6000-6063 needs to be opened in bi-directional to/from server to desktop in order xclock and gui to work.

Please note that Hostname and IPs have been changed to hide actual environment identifications.

1. Kernel Parameter Setting for AIX 

Please make sure that below Kernel parameters specific to AIX are set on all the nodes participating in the cluster. For your specific OS version please follow up the oracle installation guide and make sure appropriate kernel parameters are set for the specific OS.

Kernel_Parameter Prod_nodes
tcp_ephemeral_low 9000
tcp_ephemeral_high 65500
udp_ephemeral_low 9000
udp_ephemeral_high 65500
tcp_keepidle 600
tcp_keepintvl 10
tcp_keepinit 40
tcp_nagle_limit 0
tcp_nodelayack 1
tcp_recvspace 4000K
tcp_sendspace 6046K
udp_sendspace 64K
udp_recvspace 640K
sb_max 6046K
tcp_tcpsecure 5
tcp_timewait 1
tcp_finwait2 5
somaxconn 32K-1
ipqmaxlen 512
maxuproc maxuproc 32768 Maximum number of PROCESSES allowed per user True
ncargs ncargs 1024 ARG/ENV list size in 4K byte blocks True
maxperm% 90
minperm% 3
maxclient% 90
strict_maxperm 0
strict_maxclient 1
page_steal_method 1
lru_poll_interval 10
minfree 960
maxfree 1088
memory_affinity 1
maxpin% 80
esid_allocator 0
lgpg_regions 128
lgpg_size 16777216
v_pinshm 1
rfc1323 0
nfs_rfc1323 1
nfs_socketsize 60000
nfs_tcp_socketsize 600000
j2_maxPageReadAhead 128
maxpgahead 16
numfsbufs 2K
j2_nPagesPerWriteBehindCluster 32
numclust 128
j2_nBufferPerPagerDevice 1024
pv_min_pbuf 1024
sync_release_ilock 1
aio_maxreqs 64K
aio_maxservers 80
j2_maxRandomWrite 32
maxrandwrt 32
vmm_klock_mode 2
vpm_xvcpus 3
minpout minpout 8 LOW water mark for pending write I/Os per file True
maxpout maxpout 12 HIGH water mark for pending write I/Os per file True

2. IPs configuration in /etc/hosts and scan-name configuration in DNS

Please note that SCAN IPs entires are commmented in /etc/hosts, it's just mentioned for referal purpose , actual SCAN NAME and it's IPs need to be configured in DNS with help of network admin in round robin fashion.

root@DBHOST01:[/]#vi /etc/hosts
"/etc/hosts" 18 lines, 667 characters
# Internet Address      Hostname        # Comments               loopback localhost      # loopback (lo0) name/address    DBHOST01_mgmt    DBHOST01    DBHOST02    DBHOST01_vip    DBHOST02_vip       DBHOST01_pvt  DBHOST01       DBHOST02_pvt