Wednesday, April 24, 2013

Determining CPU/core counts on Linux Server

Here are the commands that can be used to determine the physical CPU/core and logical CPU counts on a Linux server.

1. Determining the number of logical processors seen by the OS:

cat /proc/cpuinfo | grep ^processor | wc -l

2. Determining  the number of physical CPUs on a machine:

cat /proc/cpuinfo | grep "physical id" | uniq | wc -l

3. Determining the number of cores per CPU:

cat /proc/cpuinfo | grep "cores" | head -1

4. Determining if Hyperthreading is turned on:

a.  First determine the number of siblings per CPU.  Siblings are the number of logical processors sharing the same physical processor:

cat /proc/cpuinfo | grep "siblings" | head -1

b. If the number of CPU cores per processor  (from #2 above) is the same as the number of siblings, then Hyperthreading is off.  If siblings is 2 times the number of cores, Hyperthreading is turned on.

Tuesday, April 23, 2013

ORA-39095: Dump file space has been exhausted

Problem Description:

datapump export got following error:
ORA-39095: Dump file space has been exhausted: Unable to allocate 4096 bytes


Cause of the Error:

Note that %U specification for the dump file can expand up to 99 files.
If 99 files have been generated before the export has completed, it will again return the ORA-39095 error. 
 

Solution of the Error:

Use a bigger filesize value.

Add a 3rd node to Oracle RAC 11gr2

1 Verify the prerequisites with cluvfy
 

Login as a grid user on one of the existing cluster nodes, for example raclinux1, and run the following commands.
 

cluvfy stage -post hwos -n rac3

cluvfy comp peer -refnode rac1 -n rac3

cluvfy stage -pre nodeadd -n rac3

cluvfy stage -pre crsinst -n rac3


2 Ignore error due to Bug #10310848 
If your shared storage is ASM using asmlib you may get an error – similar to the following 
 
ERROR:
PRVF-5449 : Check of Voting Disk location "ORCL:CRS1(ORCL:CRS1)" failed on the following nodes:

        rac3:No such file or directory

PRVF-5431 : Oracle Cluster Voting Disk configuration check failed

To ignore it:

IGNORE_PREADDNODE_CHECKS=Y 
export IGNORE_PREADDNODE_CHECKS

3 Extend Clusterware
addNode.sh "CLUSTER_NEW_NODES={rac3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={rac3-vip}"

execute following as root on new node:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/crs/11.2.0,2/root.sh

verify new node:
cluvfy stage -post crsinst -n rac3-lnx
cluvfy stage -post nodeadd -n rac3-lnx  

4 Extend Oracle Database Software

$ORACLE_HOME/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={rac3}"

5 Use DBCA to add database instance on new nodes


Wednesday, October 17, 2012

acfsutil size: ACFS-03008: The volume could not be resized.

Error:

$ /sbin/acfsutil size +100G /datapump
acfsutil size: ACFS-03008: The volume could not be resized.  Either the volume expansion's limit has been reached or ASM could not expand the storage.

Cause:
acfs volume can only be resize 5 times

Solution:

1.  /bin/umount -t acfs /datapump
2.  /sbin/fsck -a -v -y -t acfs /dev/asm/datapumpvol-23
3.  /bin/mount -t acfs /dev/asm/datapumpvol-23 /datapump

Monday, July 30, 2012

Verify ASMLIB configuration

Usually System Admin will install ASMLIB and create ASM disks Here are a few useful command to verify ASMLIB was configured properly
1 Verfiy rpm installation

rpm -qa|grep oracleasm


2. ASM mount point creation

df -ha|grep oracleasm
oracleasmfs              0     0     0   -  /dev/oracleasm

3 Query and liks ASM disk
/etc/init.d/oracleasm listdisks
/etc/init.d/oracleasm querydisk  


4. Discover asm disks using string 'ORCL:*'

/usr/sbin/oracleasm-discover 'ORCL:*' 

5. Simulate the disk discovery from the operating system level, using tool kfod.  ($ORACLE_HOME/bin). 

$ORACLE_HOME/bin/kfod asm_diskstring='ORCL:*' disks=all

Friday, July 27, 2012

ORA-29701 On Reboot for Non-RAC database Uses ASM


ORA-29701: unable to connect to Cluster Manager

On Server Reboot, Oracle CSS daemon doesn't start in time, then the Automatic Storage
Management (+ASM) instance can't start and therefore all instances are unable to start. 

Solution (according to Note:264235.1)

put the entry in 'inittab' file about the init.cssd script before
running the runlevel 3

example of inittab:

(...)
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog 
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog 
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog 
(...)
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 


you need to change it in this way:


(...)
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog 
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog 
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog 
(...)

Tuesday, June 26, 2012

Flashback primary database in a dataguard environment

Following steps have been tested in Oracle 10.2

1, On primary database, Stop dataguard broker.
>alter system set dg_broker_start = false;

2, Flashback database to SCN
>shutdown immediate;
>startup mount;
>flashback database to SCN ;
>alter database open resetlog;
>alter system set dg_broker_start = true;


3, Determine the SCN before the RESETLOGS operation occurred.
> SELECT TO_CHAR(RESETLOGS_CHANGE# - 2) FROM V$DATABASE; --should be same as 

4, Obtain the current SCN on the standby database.
>SELECT TO_CHAR(CURRENT_SCN) FROM V$DATABASE;


5, Determine if it is necessary to flash back the standby database.

If the value of CURRENT_SCN is larger than the value of resetlogs_change# - 2(), issue the following statement to flash back the standby database.
>FLASHBACK STANDBY DATABASE TO SCN resetlogs_change# -2;

•If the value of CURRENT_SCN is less than the value of the resetlogs_change# - 2, skip to Step 6.


6, Restart Redo Apply.

>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;