Reasons of ORA-04030
When a client program connects to oracle database an oracle process does work on behalf of the client. The Oracle process allocated memory from PGA(Program Global Area). For dedicated server process PGA contains stack, user session data, cursor information and the sort area. For shared server configuration UGA(user session data, cursor information and the sort area) is allocated in the SGA (System Global Area) and will not be responsible for ORA-4030 errors.
The ORA-4030 can come based on various reasons which is noted below.
1)The Oracle process need more memory in order to request client program and it requests additional memory from Operating System but the Operating System can't serve the request. This is likely to happen if OS does not have enough memory or swap space is not available.
2)There is a memory limit restriction from OS for oracle process to use. Oracle process already use the limit and now it requested additional memory and hence error appears.
3)Might be an oracle bug.
Solution of The Problem
1)Reduce the PGA(Program Global Area): If you don't have enough memory on your system then reducing the PGA can help you to avoid the error. In that case oracle process will not request more memory from OS and if needed more space it will use temporary tablespace segment. But lower the PGA can impact on database performance. If you don't have PGA_AGGREGATE_TARGET set then in order to set lower PGA set SORT_AREA_SIZE parameter to a lower value. You can set it dynamically by,
ALTER SYSTEM SET SORT_AREA_SIZE=10M;
If you have set PGA_AGGREGATE_TARGET then to reduce PGA you have to set PGA_AGGREGATE_TARGET toa lower value.
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=100M;
2)If you did not enabled automatic PGA management then enable the automatic SQL execution memory management feature by setting the parameter WORKAREA_SIZE_POLICY to AUTO and by specifying a size of PGA_AGGREGATE_TARGET then it will lessen to happen ORA-4030 error. As by setting automatic SQL execution memory management feature SORT_AREA_SIZE, HASH_AREA_SIZE are handled by oracle automatically and allocate/deallocate by demand.
ALTER SYSTEM SET WORKAREA_SIZE_POLICY=AUTO;
3)If you impose limit to oracle to use memory then increase the amount of memory a UNIX process can request and use from the operating system. The system administrator can see this soft limit
by issuing,
$limit
In order to see hard limit issue,
$limit -h
If you want to increase a specific resource soft limit by specifying it's name and the new value then on
C shell
use,
csh> limit -h datasize 524289
csh> limit -h datasize
To make all resource unlimited issue,
csh>unlimit
If you use
Bash and Korne Shell
then use,
$ulimit -a
In order to set all resource to unlimited.
4)Increase the amount of swap space available on the system. You should have 2-3 times the amount of physical memory available as swap space.
5)Increase the physical RAM on your system if you have lower RAM. If you don't have the scope to increase your RAM then lower the SGA settings. Lowering SGA size will allow to use more PGA.
6)If some PL/SQL procedures need much memory then you might think to rewrite it so that it needs less memory.
7)Install the latest patch set.
Saturday, August 23, 2008
How to resolve ORA-4030 errors on UNIX
| Reactions: |
OUI-10020: A write lock cannot be obtained.
Problem Description
While using OUI it fails with following message,
OUI-10020:The target area /oracle/10gR2/oraInventory is being used by another session. A write lock cannot be obtained.
Cause of The Problem
There is some process or software that holds lock on the /oracle/10gR2/oraInventory file. Until that software release lock OUI continues to display message OUI-10020.
Solution of The Problem
1.Go to the oraInventory directory.
$cd /oracle/10gR2/oraInventory
2. See the contents of it.
$ls /oracle/10gR2/oraInventory
You will see the locks directory here.
3.Go to the lock directory and delete the read lock under the directory.
$cd locks
$ rm /oracle/10gR2/oraInventory/locks/reader0.lock
4.Now run your Oracle Universal Installer.
While using OUI it fails with following message,
OUI-10020:The target area /oracle/10gR2/oraInventory is being used by another session. A write lock cannot be obtained.
Cause of The Problem
There is some process or software that holds lock on the /oracle/10gR2/oraInventory file. Until that software release lock OUI continues to display message OUI-10020.
Solution of The Problem
1.Go to the oraInventory directory.
$cd /oracle/10gR2/oraInventory
2. See the contents of it.
$ls /oracle/10gR2/oraInventory
You will see the locks directory here.
3.Go to the lock directory and delete the read lock under the directory.
$cd locks
$ rm /oracle/10gR2/oraInventory/locks/reader0.lock
4.Now run your Oracle Universal Installer.
| Reactions: |
umask and permission in unix.
Many one got confused with the setting of umask in unix or linux system. Whenever I was a newbie in this field I also got a bit confused with this settings. In a nutshell umask defines what will be the default permission of a file whenever a user create the file. You already are familiar with the unix permission of 754. The first digit 7(4 read +2 write+1 execute) is for permission for owner, the second digit 5 is for permission for the group and third digit 4 is for permission for others.
In brief,
Now lets a look at ls -l after creating a file without setting any umask.
-bash-3.00$ touch without_umask.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
After omitting first digit as it indicates whether file or folder we get
first 3 digit after - is 110 that is 6 for user oracle permission.
second pair of 3 digits are 100 that is 4 which is for all users who are under oinstall group.
third pair of 3 digits are 100 that is 4 which is for others.
Now start with setting umask of 022. With this setting, Files (and directories) normally created with mode 777 become mode 755. Files (and directories) created with mode 666 become mode 644).
In a word umask just deducted its value(here is 022) from 777 (or other mode that a file created) and then it changes permission to the file.
-bash-3.00$ umask 022
-bash-3.00$ touch with_umask1.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 022 set permission to with_umask1.txt file to 644.
-bash-3.00$ umask 002
-bash-3.00$ touch with_umask2.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 002 set permission to with_umask2.txt file to 664.
-bash-3.00$ umask 000
-bash-3.00$ touch with_umask3.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rw-rw-rw- 1 oracle oinstall 0 Aug 24 00:06 with_umask3.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 000 set permission to the file (666-000)=666.
We can chnage its settings later by chmod if we wish.
-bash-3.00$ chmod 777 with_umask3.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rwxrwxrwx 1 oracle oinstall 0 Aug 24 00:06 with_umask3.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
In brief,
User class: Owner Group Others
character representation: rwx r-x r--
binary representation: 111 101 100
octal representation: 7 5 4
Now lets a look at ls -l after creating a file without setting any umask.
-bash-3.00$ touch without_umask.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
After omitting first digit as it indicates whether file or folder we get
first 3 digit after - is 110 that is 6 for user oracle permission.
second pair of 3 digits are 100 that is 4 which is for all users who are under oinstall group.
third pair of 3 digits are 100 that is 4 which is for others.
Now start with setting umask of 022. With this setting, Files (and directories) normally created with mode 777 become mode 755. Files (and directories) created with mode 666 become mode 644).
In a word umask just deducted its value(here is 022) from 777 (or other mode that a file created) and then it changes permission to the file.
-bash-3.00$ umask 022
-bash-3.00$ touch with_umask1.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 022 set permission to with_umask1.txt file to 644.
-bash-3.00$ umask 002
-bash-3.00$ touch with_umask2.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 002 set permission to with_umask2.txt file to 664.
-bash-3.00$ umask 000
-bash-3.00$ touch with_umask3.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rw-rw-rw- 1 oracle oinstall 0 Aug 24 00:06 with_umask3.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
Here we see umask of 000 set permission to the file (666-000)=666.
We can chnage its settings later by chmod if we wish.
-bash-3.00$ chmod 777 with_umask3.txt
-bash-3.00$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask1.txt
-rw-rw-r-- 1 oracle oinstall 0 Aug 24 00:06 with_umask2.txt
-rwxrwxrwx 1 oracle oinstall 0 Aug 24 00:06 with_umask3.txt
-rw-r--r-- 1 oracle oinstall 0 Aug 24 00:05 without_umask.txt
| Reactions: |
Wednesday, August 20, 2008
Major Oracle Clusterware components
The Oracle Clusterware comprises several background processes that facilitate cluster operations. These processes or components are the main communication links between the Oracle Clusterware high availability components and the Oracle Database as well as they monitor and manage database operations.
Here is the list of major oracle clusterware components or processes.
1)Cluster Synchronization Services (CSS): It manages and controls which nodes are members of the cluster and notify members when a node joins or leaves the cluster.
2)Cluster Ready Services (CRS): It manages high availability operations within a cluster. The CRS process start, stop, monitor and failover operations. It generates events when a resource status changes. When you have installed Oracle RAC, crs monitors the Oracle instance, Listener, and so on, and automatically restarts these components when a failure occurs.
3)Event Management (EVM): It is a background process that publishes events that crs creates.
4)Oracle Notification Service (ONS): It publishes and subscribes service for communicating Fast Application Notification (FAN) events.
5)RACG: It runs server callout scripts when FAN events occur.
6)Process Monitor Daemon (OPROCD): This process is locked in memory to monitor the cluster and provide I/O fencing. OPROCD performs its check, stops running, and if the wake up is beyond the expected time, then OPROCD resets the processor and reboots the node. An OPROCD failure results in Oracle Clusterware restarting the node. OPROCD uses the hangcheck timer on Linux platforms.
Here is the list of major oracle clusterware components or processes.
1)Cluster Synchronization Services (CSS): It manages and controls which nodes are members of the cluster and notify members when a node joins or leaves the cluster.
2)Cluster Ready Services (CRS): It manages high availability operations within a cluster. The CRS process start, stop, monitor and failover operations. It generates events when a resource status changes. When you have installed Oracle RAC, crs monitors the Oracle instance, Listener, and so on, and automatically restarts these components when a failure occurs.
3)Event Management (EVM): It is a background process that publishes events that crs creates.
4)Oracle Notification Service (ONS): It publishes and subscribes service for communicating Fast Application Notification (FAN) events.
5)RACG: It runs server callout scripts when FAN events occur.
6)Process Monitor Daemon (OPROCD): This process is locked in memory to monitor the cluster and provide I/O fencing. OPROCD performs its check, stops running, and if the wake up is beyond the expected time, then OPROCD resets the processor and reboots the node. An OPROCD failure results in Oracle Clusterware restarting the node. OPROCD uses the hangcheck timer on Linux platforms.
| Reactions: |
Configure Raw Devices for ASM in RAC.
Configuring RAW decides in RAC is just similiar as you do configure raw devices for voting disk and OCR. In this example, I have faced a different scenario where in
In racnode-1 disk sdb is mapped to sdf in ranode-2
In racnode-1 disk sdc is mapped to sdd in ranode-2
In racnode-1 disk sdd is mapped to sde in ranode-2
First I have created three raw partitions from my raw devices sdb, sdc and sdd of racnode-1 each of 80GB for ASM.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdb
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33): +80000M
Last cylinder or +size or +sizeM or +sizeK (9726-19581, default 19581):
Using default value 19581
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdc
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-19581, default 19581): +80000M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdd
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-19581, default 19581): +80000M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
For RACNODE-1
[root@racnode-1 ~]# vi /etc/udev/rules.d/63-oracle-raw.rules
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdd2", RUN+="/bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[6-8]*", OWNER="oracle", GROUP="oinstall", MODE="644"
Then reboot the node if it suggest as in this example. The new table will be used at the next reboot.
[root@racnode-1 ~]# reboot
For RACNODE-2
[root@racnode-2 ~]# vi /etc/udev/rules.d/63-oracle-raw.rules
ACTION=="add", KERNEL=="sdf2", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdd2", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sde2", RUN+="/bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[6-8]*", OWNER="oracle", GROUP="oinstall", MODE="644"
Then reboot the node if it suggest as in this example. The new table will be used at the next reboot.
[root@racnode-2 ~]# reboot
Related Documents
In racnode-1 disk sdb is mapped to sdf in ranode-2
In racnode-1 disk sdc is mapped to sdd in ranode-2
In racnode-1 disk sdd is mapped to sde in ranode-2
First I have created three raw partitions from my raw devices sdb, sdc and sdd of racnode-1 each of 80GB for ASM.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdb
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33): +80000M
Last cylinder or +size or +sizeM or +sizeK (9726-19581, default 19581):
Using default value 19581
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdc
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-19581, default 19581): +80000M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@racnode-1 ~]# /sbin/fdisk /dev/sdd
The number of cylinders for this disk is set to 19581.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (33-19581, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-19581, default 19581): +80000M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
For RACNODE-1
[root@racnode-1 ~]# vi /etc/udev/rules.d/63-oracle-raw.rules
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdd2", RUN+="/bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[6-8]*", OWNER="oracle", GROUP="oinstall", MODE="644"
Then reboot the node if it suggest as in this example. The new table will be used at the next reboot.
[root@racnode-1 ~]# reboot
For immediate affect if you don't see any reboot message,
#/bin/raw /dev/raw/raw6 /dev/sdb2
/bin/raw /dev/raw/raw7 /dev/sdc2
/bin/raw /dev/raw/raw8 /dev/sdd2
Adjust the permission settings by,
#chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 640 /dev/raw/raw6
chmod 640 /dev/raw/raw7
chmod 640 /dev/raw/raw8
For RACNODE-2
[root@racnode-2 ~]# vi /etc/udev/rules.d/63-oracle-raw.rules
ACTION=="add", KERNEL=="sdf2", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdd2", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sde2", RUN+="/bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[6-8]*", OWNER="oracle", GROUP="oinstall", MODE="644"
Then reboot the node if it suggest as in this example. The new table will be used at the next reboot.
[root@racnode-2 ~]# reboot
For immediate affect, if you don't see any reboot message
#/bin/raw /dev/raw/raw6 /dev/sdf2
/bin/raw /dev/raw/raw7 /dev/sdd2
/bin/raw /dev/raw/raw8 /dev/sde2
and adjust the permission settings by,
#chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 640 /dev/raw/raw6
chmod 640 /dev/raw/raw7
chmod 640 /dev/raw/raw8
Related Documents
| Reactions: |
Tuesday, August 19, 2008
Possible Limitations When Adding Datafiles to a Tablespace
Before discussing limitations of adding datafiles to a tablespace let's think about DB_FILES parameter. DB_FILES is an initialization parameter in oracle. When an oracle instance starts, this parameter indicates the amount of SGA space to reserve for datafile information and thus, the maximum number of datafiles that can be created for the instance. This parameter exists throughout the life cycle of the instance. So, changes to DB_FILES affect only after restarting the instance.
As this parameter indicates the amount of SGA space to reserve for datafile information the bigger value settings indicates memory is unnecessarily consumed.
And smaller value setting of this parameter impose limit to create another datafile.
So setting of DB_FILES parameter value is important.
Now let's look about possible limitations when adding datafiles to a tablespace.
Possible Limitations When Adding Datafiles to a Tablespace
•OS imposes a limit of the number of files a process can be opened at a time.
•OS imposes a limit of number and size of datafiles.
•The database imposes a maximum limit on the number of datafiles for any Oracle Database opened by any instance. This limit is operating system specific.
•Number of datafiles can't exceed DB_FILES initialization parameter.
•It is good to know that after oracle 8i the MAXDATAFILES parameter (of CREATE CONTROLFILE or CREATE DATABASE command) is not responsible of the limitations of adding datafiles.
•If you attempt to add a new file whose number is greater than MAXDATAFILES, but less than or equal to DB_FILES, the MAXDATAFILES parameter of the control file will expand automatically to accommodate more files.
Related Documents
MAXDATAFILES , DB_FILES parameters and ORA-00059
How to Resize a Datafile
ORA-01667: cannot add any more tablespaces: limit of exceeded
New Feature of 10.2g: Eliminate Control File Re-Creation
When and How to Recreate the Controlfile
As this parameter indicates the amount of SGA space to reserve for datafile information the bigger value settings indicates memory is unnecessarily consumed.
And smaller value setting of this parameter impose limit to create another datafile.
So setting of DB_FILES parameter value is important.
Now let's look about possible limitations when adding datafiles to a tablespace.
Possible Limitations When Adding Datafiles to a Tablespace
•OS imposes a limit of the number of files a process can be opened at a time.
•OS imposes a limit of number and size of datafiles.
•The database imposes a maximum limit on the number of datafiles for any Oracle Database opened by any instance. This limit is operating system specific.
•Number of datafiles can't exceed DB_FILES initialization parameter.
•It is good to know that after oracle 8i the MAXDATAFILES parameter (of CREATE CONTROLFILE or CREATE DATABASE command) is not responsible of the limitations of adding datafiles.
•If you attempt to add a new file whose number is greater than MAXDATAFILES, but less than or equal to DB_FILES, the MAXDATAFILES parameter of the control file will expand automatically to accommodate more files.
Related Documents
MAXDATAFILES , DB_FILES parameters and ORA-00059
How to Resize a Datafile
ORA-01667: cannot add any more tablespaces: limit of exceeded
New Feature of 10.2g: Eliminate Control File Re-Creation
When and How to Recreate the Controlfile
| Reactions: |
Monday, August 18, 2008
MAXDATAFILES , DB_FILES parameters and ORA-00059
Problem Description
Whenever I try to create tablespace it fails with error message, ORA-00059.
SQL> create tablespace test_tbs;
create tablespace test_tbs
*
ERROR at line 1:
ORA-00059: maximum number of DB_FILES exceeded
Cause of The Problem
You have reached the limit of DB_FILES parameter. Before entering into solution part let's have an idea about DB_FILES and MAXDATAFILES parameter.
The DB_FILES parameter limits the maximum number of datafile can exist in oracle database. We can't change this parameter dynamically. We have to change it spfile by using ALTER SYSTEM .... SCOPE=SPFILE or in the pfile.
And the MAXDATAFILES parameter you can find with the CREATE DATABASE command or in CREATE CONTROLFILE command. It is also a limitation of maximum number of datafiles can be in the datafile. But starting from oracle 8 this hard limit parameter can be easily expanded up to DB_FILES parameter. So, if you attempt to add a new file whose number is greater than MAXDATAFILES, but less than or equal to DB_FILES, the MAXDATAFILES parameter of the control file will expand automatically to accommodate more files.
So, if you are after oracle 8i then we should just forget about MAXDATAFILES parameter. We should rather think about DB_FILES parameter.
Solution of The Problem
If you use pfile to startup the database then edit pfile and add/modify the DB_FILES parameter to a greater value so that it can accommodate higher number of datafiles. Then start the database using that pfile.
If you use spfile to startup the database then issue,
SQL> alter system set db_files=300 scope=spfile;
System altered.
Then start your database and either create tablespace or add datafile to an existing tablespace. Hopefully it will work.
SQL> conn / as sysdba
SQL> startup force
SQL> CREATE TABLESPACE or ALTER TABLESPACE command to add datafile.
Related Documents
http://arjudba.blogspot.com/2008/07/ora-01667-cannot-add-any-more.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/possible-limitations-when-adding.html
Whenever I try to create tablespace it fails with error message, ORA-00059.
SQL> create tablespace test_tbs;
create tablespace test_tbs
*
ERROR at line 1:
ORA-00059: maximum number of DB_FILES exceeded
Cause of The Problem
You have reached the limit of DB_FILES parameter. Before entering into solution part let's have an idea about DB_FILES and MAXDATAFILES parameter.
The DB_FILES parameter limits the maximum number of datafile can exist in oracle database. We can't change this parameter dynamically. We have to change it spfile by using ALTER SYSTEM .... SCOPE=SPFILE or in the pfile.
And the MAXDATAFILES parameter you can find with the CREATE DATABASE command or in CREATE CONTROLFILE command. It is also a limitation of maximum number of datafiles can be in the datafile. But starting from oracle 8 this hard limit parameter can be easily expanded up to DB_FILES parameter. So, if you attempt to add a new file whose number is greater than MAXDATAFILES, but less than or equal to DB_FILES, the MAXDATAFILES parameter of the control file will expand automatically to accommodate more files.
So, if you are after oracle 8i then we should just forget about MAXDATAFILES parameter. We should rather think about DB_FILES parameter.
Solution of The Problem
If you use pfile to startup the database then edit pfile and add/modify the DB_FILES parameter to a greater value so that it can accommodate higher number of datafiles. Then start the database using that pfile.
If you use spfile to startup the database then issue,
SQL> alter system set db_files=300 scope=spfile;
System altered.
Then start your database and either create tablespace or add datafile to an existing tablespace. Hopefully it will work.
SQL> conn / as sysdba
SQL> startup force
SQL> CREATE TABLESPACE or ALTER TABLESPACE command to add datafile.
Related Documents
http://arjudba.blogspot.com/2008/07/ora-01667-cannot-add-any-more.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/possible-limitations-when-adding.html
| Reactions: |
CRS Stack Fails to Start After Reboot ORA-29702 CRS-0184
Problem Description
An attempt to manually start the instance fails with,
ORA-29702: error occurred in Cluster Group Service operation
crs_stat produces the error,
/oracle/crs/bin/crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
CSS stack did not come up as the following command issued out of init.cssd
crsctl check boot
failed with error message
Failed 3 to bind listening endpoint: (ADDRESS=(PROTOCOL=tcp)(HOST=node2priv))
and return code 11.
The error message was also written to /var/log/messages on this node.
Note that in 10gR2 the message no longer gets written to /var/log/messages, instead it will be written to /tmp/crsctl.
Cause of the Problem
Error message 'Failed 3 to bind listening endpoint: (ADDRESS=(PROTOCOL=tcp)(HOST=node2priv))' indicated that CSS had a problem creating the listening endpoint for hostname node2
In node1 within the /etc/hosts file the name of the private interconnect exist. But on node2 somehow it is missing the private interconnect in the /etc/hosts file. That's why the problem occurs.
Solution of The Problem
1. Add the missing hostnames to /etc/hosts
2. Stop and start CRS stack
Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html
An attempt to manually start the instance fails with,
ORA-29702: error occurred in Cluster Group Service operation
crs_stat produces the error,
/oracle/crs/bin/crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
CSS stack did not come up as the following command issued out of init.cssd
crsctl check boot
failed with error message
Failed 3 to bind listening endpoint: (ADDRESS=(PROTOCOL=tcp)(HOST=node2priv))
and return code 11.
The error message was also written to /var/log/messages on this node.
Note that in 10gR2 the message no longer gets written to /var/log/messages, instead it will be written to /tmp/crsctl.
Cause of the Problem
Error message 'Failed 3 to bind listening endpoint: (ADDRESS=(PROTOCOL=tcp)(HOST=node2priv))' indicated that CSS had a problem creating the listening endpoint for hostname node2
In node1 within the /etc/hosts file the name of the private interconnect exist. But on node2 somehow it is missing the private interconnect in the /etc/hosts file. That's why the problem occurs.
Solution of The Problem
1. Add the missing hostnames to /etc/hosts
2. Stop and start CRS stack
Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html
| Reactions: |
How to Resize a Datafile
There may be situations when you need to increase or decrease your datafile size. Prior to oracle 7.2 there was no easy way to resize the datafile. Before 7.2 the solutions was to drop and recreate the tablespace with different sized datafiles, or to add more datafiles to a tablespace whenever you need more space in the tablespace.
Before 7.2 the RESIZE command will raise error,
ORA-00923: FROM keyword not found where expected
Before entering into resize datafile let's be familiar with several views related to datafile.
From V$DATAFILE.CREATION_TIME we can see the timestamp of the datafile creation time.
From V$DATAFILE.BYTES we can see the current datafile size in bytes. 0 in this fields indicate the datafile is inaccessible.
From V$DATAFILE.CREATE_BYTES we can the datafile size when it was created.
From V$DBA_DATA_FILES.MAXBYTES we can see the maximum size of the datafile.
Before going into resize I just create one tablespace containing one datafile of size 10M which can be extended up to 100M.
SQL> create tablespace test_tbs datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARJU\test_tbs01.dbf' size 10M autoextend on maxsize 100M;
Tablespace created.
Now have a look at the current size of maximum size of this data file from dba_data_files view.
SQL> select bytes/1024/1024, maxbytes/1024/1024 from dba_data_files where file_id=6;
BYTES/1024/1024 MAXBYTES/1024/1024
--------------- ------------------
10 100
Increase datafile size
To see the current settings of the datafile query from v$datafile view. The BYTES column shows the current size of the datafile, and the CREATE_BYTES column shows what the size was
specified when the file was created.
Current size is 10M we can increase it upto 15M by,
SQL> alter database datafile 6 resize 15M;
Database altered.
SQL> select bytes/1024/1024, maxbytes/1024/1024 from dba_data_files where file_id=6;
BYTES/1024/1024 MAXBYTES/1024/1024
--------------- ------------------
15 100
SQL> select bytes/1024/1024, create_bytes/1024/1024 from v$datafile where file#=6;
BYTES/1024/1024 CREATE_BYTES/1024/1024
--------------- ----------------------
15 10
Here 12 is current size and 10 is creation time size.
Decrease Datafile size
Downsizing a datafile is more complicated than increasing the size of a datafile. Because you cannot deallocate space from a datafile that is currently being used by database objects. To remove space from a datafile, you have to have contiguous space at the END of the datafile. From DBA_FREE_SPACE we can see the free space in the datafile.
To resize our datafile to 2M issue,
SQL> alter database datafile 6 resize 2M;
If you try to resize a datafile to a size smaller than is needed to contain all the database objects in that datafile, the following error is returned,
ORA-03297: file contains blocks of data beyond requested RESIZE value
Or
ORA-03297: file contains used data beyond requested RESIZE value
Before 7.2 the RESIZE command will raise error,
ORA-00923: FROM keyword not found where expected
Before entering into resize datafile let's be familiar with several views related to datafile.
From V$DATAFILE.CREATION_TIME we can see the timestamp of the datafile creation time.
From V$DATAFILE.BYTES we can see the current datafile size in bytes. 0 in this fields indicate the datafile is inaccessible.
From V$DATAFILE.CREATE_BYTES we can the datafile size when it was created.
From V$DBA_DATA_FILES.MAXBYTES we can see the maximum size of the datafile.
Before going into resize I just create one tablespace containing one datafile of size 10M which can be extended up to 100M.
SQL> create tablespace test_tbs datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARJU\test_tbs01.dbf' size 10M autoextend on maxsize 100M;
Tablespace created.
Now have a look at the current size of maximum size of this data file from dba_data_files view.
SQL> select bytes/1024/1024, maxbytes/1024/1024 from dba_data_files where file_id=6;
BYTES/1024/1024 MAXBYTES/1024/1024
--------------- ------------------
10 100
Increase datafile size
To see the current settings of the datafile query from v$datafile view. The BYTES column shows the current size of the datafile, and the CREATE_BYTES column shows what the size was
specified when the file was created.
Current size is 10M we can increase it upto 15M by,
SQL> alter database datafile 6 resize 15M;
Database altered.
SQL> select bytes/1024/1024, maxbytes/1024/1024 from dba_data_files where file_id=6;
BYTES/1024/1024 MAXBYTES/1024/1024
--------------- ------------------
15 100
SQL> select bytes/1024/1024, create_bytes/1024/1024 from v$datafile where file#=6;
BYTES/1024/1024 CREATE_BYTES/1024/1024
--------------- ----------------------
15 10
Here 12 is current size and 10 is creation time size.
Decrease Datafile size
Downsizing a datafile is more complicated than increasing the size of a datafile. Because you cannot deallocate space from a datafile that is currently being used by database objects. To remove space from a datafile, you have to have contiguous space at the END of the datafile. From DBA_FREE_SPACE we can see the free space in the datafile.
To resize our datafile to 2M issue,
SQL> alter database datafile 6 resize 2M;
If you try to resize a datafile to a size smaller than is needed to contain all the database objects in that datafile, the following error is returned,
ORA-03297: file contains
Or
ORA-03297: file contains used data beyond requested RESIZE value
| Reactions: |
Sunday, August 17, 2008
How to Find out or Check Linux Version Information
Before installing oracle clusterware it is necessary in which version of linux you are trying to install to. Because based on the version procedure may vary to install clusterware.
Here I mention several ways to check the version of linux.
Find out linux release information
1)On Red Hat Linux,
-bash-3.1$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
Alternatively,
# rpm -q redhat-release
redhat-release-4ES-2
2)On SUSE Linux,
$cat /etc/SuSE-release
SUSE LINUX Enterprise Server 9 (i586)
VERSION = 9
3)On Debian Release,
debian:/home/Arju/Spark# cat /etc/debian_version
4.0
Find out linux Kernel Version
debian:/home/Arju/Spark# uname -s -r
Linux 2.6.18-4-686
debian:/home/Arju/Spark# uname -a
Linux debian 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux
-bash-3.1$ uname -a
Linux racnode-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
-bash-3.1$ uname -s -r
Linux 2.6.18-8.el5
Description of the output of uname -a
At the end but the before of OS name the output of "uname -a " shows the OS word-size.
- i686 i386 indicates 32-bit Linux on standard x86 microprocessor series hardware
- x86_64 indicates 64-bit Linux on standard AMD64 or Intel EM64T hardware
- ia64 indicates 64-bit Linux on the Itanium-2 processor developed jointly by Hewlett-Packard and Intel
- s390x indicates 64-bit Linux on IBM S/390 (31-bit) and zSeries (64-bit) hardware.
- ppc64 indicates 64-bit Linux on IBM power based systems that support Linux includes machines branded as pSeries, iSeries, System p5 and System i5.
The first word of the output shows the kernel name. We see the kernel name is linux.
Only itself can be seen by,
-bash-3.1$ uname -s
Linux
The second word of the output of " uname -a " shows the hostname. Here we see the hostname is debian for debian machine and racnode-1 for redhat linux machine.
Only itself can be seen by,
-bash-3.1$ uname -n
racnode-1
The third word of the output of "uname -a" prints the kernel release. Here for racnode-1 machine we see kernel release is 2.6.18-8.el5. Only itselef can be seen by uname -r
-bash-3.1$ uname -r
2.6.18-8.el5
The fourth word print the kernel version. For racnode-1 we see kernel version is #1 SMP Fri Jan 26 14:15:21 EST 2007. Only itself can be seen by, uname -v.
-bash-3.1$ uname -v
#1 SMP Fri Jan 26 14:15:21 EST 2007
The fifth one prints the machine hardware name. Only itself can be seen from ,
-bash-3.1$ uname -m
i686
The sixth one prints the processor type. Here it is seen by,
-bash-3.1$ uname -p
i686
The seventh one prints the hardware platform. Here it is
-bash-3.1$ uname -i
i386
The eighth one print the operating system. Here it is
-bash-3.1$ uname -o
GNU/Linux
In fact "uname -a" is the combination of all these 8. That is "uname -a" is equivalent to,
-bash-3.1$ uname -snrvmpio
Linux racnode-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
Another Way by Cheking issue file
From the /etc/issue file you can also check the version information. In fact it is a text file which contains a message or system identification to be printed before the login prompt.
From here we see for debian machine it is 4.0 and for red hat racnode-1 it is 5.
debian:/home/Arju/Spark# cat /etc/issue
Debian GNU/Linux 4.0 \n \l
-bash-3.1$ cat /etc/issue
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel \r on an \m
Related Documents
How to Identify OS or Oracle 64 bit or 32 bit on Unix
Here I mention several ways to check the version of linux.
Find out linux release information
1)On Red Hat Linux,
-bash-3.1$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
Alternatively,
# rpm -q redhat-release
redhat-release-4ES-2
2)On SUSE Linux,
$cat /etc/SuSE-release
SUSE LINUX Enterprise Server 9 (i586)
VERSION = 9
3)On Debian Release,
debian:/home/Arju/Spark# cat /etc/debian_version
4.0
Find out linux Kernel Version
debian:/home/Arju/Spark# uname -s -r
Linux 2.6.18-4-686
debian:/home/Arju/Spark# uname -a
Linux debian 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux
-bash-3.1$ uname -a
Linux racnode-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
-bash-3.1$ uname -s -r
Linux 2.6.18-8.el5
Description of the output of uname -a
At the end but the before of OS name the output of "uname -a " shows the OS word-size.
- i686 i386 indicates 32-bit Linux on standard x86 microprocessor series hardware
- x86_64 indicates 64-bit Linux on standard AMD64 or Intel EM64T hardware
- ia64 indicates 64-bit Linux on the Itanium-2 processor developed jointly by Hewlett-Packard and Intel
- s390x indicates 64-bit Linux on IBM S/390 (31-bit) and zSeries (64-bit) hardware.
- ppc64 indicates 64-bit Linux on IBM power based systems that support Linux includes machines branded as pSeries, iSeries, System p5 and System i5.
The first word of the output shows the kernel name. We see the kernel name is linux.
Only itself can be seen by,
-bash-3.1$ uname -s
Linux
The second word of the output of " uname -a " shows the hostname. Here we see the hostname is debian for debian machine and racnode-1 for redhat linux machine.
Only itself can be seen by,
-bash-3.1$ uname -n
racnode-1
The third word of the output of "uname -a" prints the kernel release. Here for racnode-1 machine we see kernel release is 2.6.18-8.el5. Only itselef can be seen by uname -r
-bash-3.1$ uname -r
2.6.18-8.el5
The fourth word print the kernel version. For racnode-1 we see kernel version is #1 SMP Fri Jan 26 14:15:21 EST 2007. Only itself can be seen by, uname -v.
-bash-3.1$ uname -v
#1 SMP Fri Jan 26 14:15:21 EST 2007
The fifth one prints the machine hardware name. Only itself can be seen from ,
-bash-3.1$ uname -m
i686
The sixth one prints the processor type. Here it is seen by,
-bash-3.1$ uname -p
i686
The seventh one prints the hardware platform. Here it is
-bash-3.1$ uname -i
i386
The eighth one print the operating system. Here it is
-bash-3.1$ uname -o
GNU/Linux
In fact "uname -a" is the combination of all these 8. That is "uname -a" is equivalent to,
-bash-3.1$ uname -snrvmpio
Linux racnode-1 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
Another Way by Cheking issue file
From the /etc/issue file you can also check the version information. In fact it is a text file which contains a message or system identification to be printed before the login prompt.
From here we see for debian machine it is 4.0 and for red hat racnode-1 it is 5.
debian:/home/Arju/Spark# cat /etc/issue
Debian GNU/Linux 4.0 \n \l
-bash-3.1$ cat /etc/issue
Red Hat Enterprise Linux Server release 5 (Tikanga)
Kernel \r on an \m
Related Documents
How to Identify OS or Oracle 64 bit or 32 bit on Unix
| Reactions: |
Different ways to take Screenshot on Linux
Way 1: Using GUI if you have GNOME:
If you have GNOME installed then using graphical tool you can easily take a screenshot. To do it
Click Applications —> Accessories —> Take Screenshot.
You are done.
Way 2: With the PrintScreen Button
To get a screenshot of your active window just press ALT+Print Screen button. A new window will appear. Just enter your name of the screenshot there as well as the location.
Way 3: Using ImageMagick Tool: This tool can be useful in certain scenario. Suppose to take a screenshot of a menu you can't use GNOME tool. You have to use this tool then as it support a delay before taking the screenshot. You need to install this tool to use.
To check whether ImageMagick tool is installed or not just issue,
# import -version
bash: import: command not found
You can get this tool from http://www.imagemagick.org/script/index.php.
The next step is to install it. On my debian linux, I issue
#apt-get install imagemagick
To take a screenshot in the terminal with ImageMagick, type the following line into a terminal and then click-and-drag the mouse over a section of the screen:
import MyScreenshot.jpg
To view it,
#eog MyScreenshot.jpg
To capture a creenshot after 10 seconds delay you can issue,
sleep 10; import -window root MyScreenshot2.jpg
Way 4: Using scrot
To install scrot on my system I used,
sudo aptitude install scrot
To take a snapshot with it use,
scrot MyScreenshot.png
Way 5: With the Terminal using gnome-panel-screenshot:
Using terminal in GNOME you can also take the snapshot in linux. Do it as,
$gnome-panel-screenshot
Also delay can be added by,
$gnome-panel-screenshot --delay 5
Way 6: With the GIMP
Install gimp on my debian system by,
# apt-get install gimp
And to take snapshot open gimp and follow,
File —> Acquire —> Screen Shot.
Way 7: Web Page Snapshot With Firefox
With screengrab you can take screenshot within webpage just by a click if you use firefox. To get screengrab just download it from https://addons.mozilla.org/en-US/firefox/search?q=screengrab&cat=all
To use it just right click on a web page and choose: ScreenGrab! —> Save document as image.
Way 8: With xwd to screen a terminal
Just on your terminal write,
$xvd> screen.xvd
And then convert it to any format that you wish using convert command.
$convert screen.xvd screen.jpg
Way 9: Using ksnpshot
With ksnapshot you can easily take snapshot. It can be used in KDE as well as GNOME.
Way 10: Using gimp Tool
If you know any other ways just enter inside comments in this post. Thank you.
Related Documents
How to change/configure IP Address on Linux/ Fedora /Ubuntu
Copy files between Unix and Windows with rcp
Screen -A very useful unix tool to work with remote system
How to change the hostname in Linux
Memory Usage of Solaris Operating System
If you have GNOME installed then using graphical tool you can easily take a screenshot. To do it
Click Applications —> Accessories —> Take Screenshot.
You are done.
Way 2: With the PrintScreen Button
To get a screenshot of your active window just press ALT+Print Screen button. A new window will appear. Just enter your name of the screenshot there as well as the location.
Way 3: Using ImageMagick Tool: This tool can be useful in certain scenario. Suppose to take a screenshot of a menu you can't use GNOME tool. You have to use this tool then as it support a delay before taking the screenshot. You need to install this tool to use.
To check whether ImageMagick tool is installed or not just issue,
# import -version
bash: import: command not found
You can get this tool from http://www.imagemagick.org/script/index.php.
The next step is to install it. On my debian linux, I issue
#apt-get install imagemagick
To take a screenshot in the terminal with ImageMagick, type the following line into a terminal and then click-and-drag the mouse over a section of the screen:
import MyScreenshot.jpg
To view it,
#eog MyScreenshot.jpg
To capture a creenshot after 10 seconds delay you can issue,
sleep 10; import -window root MyScreenshot2.jpg
Way 4: Using scrot
To install scrot on my system I used,
sudo aptitude install scrot
To take a snapshot with it use,
scrot MyScreenshot.png
Way 5: With the Terminal using gnome-panel-screenshot:
Using terminal in GNOME you can also take the snapshot in linux. Do it as,
$gnome-panel-screenshot
Also delay can be added by,
$gnome-panel-screenshot --delay 5
Way 6: With the GIMP
Install gimp on my debian system by,
# apt-get install gimp
And to take snapshot open gimp and follow,
File —> Acquire —> Screen Shot.
Way 7: Web Page Snapshot With Firefox
With screengrab you can take screenshot within webpage just by a click if you use firefox. To get screengrab just download it from https://addons.mozilla.org/en-US/firefox/search?q=screengrab&cat=all
To use it just right click on a web page and choose: ScreenGrab! —> Save document as image.
Way 8: With xwd to screen a terminal
Just on your terminal write,
$xvd> screen.xvd
And then convert it to any format that you wish using convert command.
$convert screen.xvd screen.jpg
Way 9: Using ksnpshot
With ksnapshot you can easily take snapshot. It can be used in KDE as well as GNOME.
Way 10: Using gimp Tool
If you know any other ways just enter inside comments in this post. Thank you.
Related Documents
How to change/configure IP Address on Linux/ Fedora /Ubuntu
Copy files between Unix and Windows with rcp
Screen -A very useful unix tool to work with remote system
How to change the hostname in Linux
Memory Usage of Solaris Operating System
| Reactions: |
RunInstaller fails with java.lang.UnsatisfiedLinkError
To install clusterware whenever I run runIstaller it fails with following errors along with unknown source.
-bash-3.1$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-08-17_03-53-41PM. Please wait ...-bash-3.1$ Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999, 2005, Oracle. All rights reserved.
Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-08-17_03-53-41PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-08-17_03-53-41PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.(Unknown Source)
at java.awt.Component.(Unknown Source)
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Exception in thread "main" java.lang.NoClassDefFoundError
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiif.oiifm.OiifmAlert.(OiifmAlert.java:151)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:984)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Solution of The problem
Create the dynamic link with the library as following,
$cd /usr/lib
$ln -s libXpm.so.4.11.0 libXp.so.6
-bash-3.1$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-08-17_03-53-41PM. Please wait ...-bash-3.1$ Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999, 2005, Oracle. All rights reserved.
Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-08-17_03-53-41PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-08-17_03-53-41PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.
at java.awt.Component.
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Exception in thread "main" java.lang.NoClassDefFoundError
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiif.oiifm.OiifmAlert.
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:984)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Solution of The problem
Create the dynamic link with the library as following,
$cd /usr/lib
$ln -s libXpm.so.4.11.0 libXp.so.6
| Reactions: |
Running Runinstaller fails with DISPLAY not set
When I running the runinstaller command on my linux server after entering through ssh it fails with DISPLAY not set.
$ssh oracle@192.168.1.91
-bash-3.1$ /oradata1/clusterware/runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-08-17_04-01-48PM. Please wait ...
DISPLAY not set. Please set the DISPLAY and try again.
Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY environment variable:
- For csh: % setenv DISPLAY 192.168.1.128:0.0
- For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
Use the following command to see what shell is being used:
echo $SHELL
Use the following command to view the current DISPLAY environment variable setting:
echo $DISPLAY
- Make sure that client users are authorized to connect to the X Server.
To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that started the session and type the following command:
% xhost +
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as 'xclock':
% <full path to xclock.. see below>
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock
Solution of The Problem
If you are trying to run GUI on remote unix machine using ssh from the client unix machine then you have to ssh with the -X or -Y option. To solve the problem just quit the session and reenter to the remote machine using anyone of the following,
ssh oracle@192.168.1.91 -X
ssh oracle@192.168.1.91 -Y
If your are already on the machine and got above message then as a root user issue,
#xhost +
Now as oracle user run oracle universal installer.
$ssh oracle@192.168.1.91
-bash-3.1$ /oradata1/clusterware/runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-08-17_04-01-48PM. Please wait ...
DISPLAY not set. Please set the DISPLAY and try again.
Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY environment variable:
- For csh: % setenv DISPLAY 192.168.1.128:0.0
- For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
Use the following command to see what shell is being used:
echo $SHELL
Use the following command to view the current DISPLAY environment variable setting:
echo $DISPLAY
- Make sure that client users are authorized to connect to the X Server.
To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that started the session and type the following command:
% xhost +
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as 'xclock':
% <full path to xclock.. see below>
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock
Solution of The Problem
If you are trying to run GUI on remote unix machine using ssh from the client unix machine then you have to ssh with the -X or -Y option. To solve the problem just quit the session and reenter to the remote machine using anyone of the following,
ssh oracle@192.168.1.91 -X
ssh oracle@192.168.1.91 -Y
If your are already on the machine and got above message then as a root user issue,
#xhost +
Now as oracle user run oracle universal installer.
| Reactions: |
Installing Clusterware through OUI fails Cheking OS version in RHL-5
Whenever to install oracle clusterware I run runInstaller on Red hat linux 5 machine it fails with operating system version test. The same problem happens whenever you try to install Oracle Clusterware or oracle database 10g on Oracle Enterprise Linux 5.0 or SUSE Linux Enterprise Server 10 then the current version of Oracle Universal Installer does not recognized these operating systems as supported operating systems and does not perform the installation. It fails like below.
-bash-3.1$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<< style="font-weight: bold;">Cause of The Problem
The installer picks up the version of Linux installed from the /etc/redhat-release file. There may be several reasons for which the above messages can be shown.
1. Your OS is not certified with the oracle certification to install clusterware.
2. The /etc/redhat-release become corrupted and installer can't read the file.
3. It cannot identify the version of Linux installed in the machine and reports a failure accordingly.
4. May be bug of the OUI.
Solution of The Problem
Method 1: Change the release value in /etc/redhat-release
Step 1: Ensure that your OS version is certified with clusterware installation or the product you want to install. This can be seen by oracle certification matrix.
Step2: Ensure that /etc/redhat-release is there and not corrupted. You can copy it to somewhere and edit it.
Step 3: I have seen if you want to install oracle clusterware on RHL 5 then then it shows above failure though it is certified and I have intact /etc/redhat-release. In that case to meet clusterware installation edit the /etc/redhat-release file to make it from 5 to 4.
The original value and changed value is listed below.
•On Oracle Enterprise Linux 5.0, original value is "Enterprise Linux Enterprise Linux server release 5". Change it to Enterprise Release Enterprise Linux server release 4.
•On Red Hat Enterprise Linux 5.0, original value is "Red Hat Enterprise Linux server release 5". Change it to Red Hat Enterprise Linux server release 4.
•On SUSE Linux Enterprise Server 10, original value is
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
Change it to
SUSE Linux Enterprise Server 9 (x86_64)
VERSION = 9
I have done this on my Red Hat system as,
-bash-3.1$ vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
Now again try to run runInstaller and possibly you will not get the error.
Method 2: (recommended) Running as ignoreSysPrereqs flag:
The idea is while running OUI( Oracle Universal Installer) command it to skip operating system test. Start the runIstaller as
./runinstaller -ignoreSysPrereqs
which causes the installer to skip the operating system check and continue with the installation.
Related Documents
Install Oracle Database 10g Software on Red Hat Linux
-bash-3.1$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<< style="font-weight: bold;">Cause of The Problem
The installer picks up the version of Linux installed from the /etc/redhat-release file. There may be several reasons for which the above messages can be shown.
1. Your OS is not certified with the oracle certification to install clusterware.
2. The /etc/redhat-release become corrupted and installer can't read the file.
3. It cannot identify the version of Linux installed in the machine and reports a failure accordingly.
4. May be bug of the OUI.
Solution of The Problem
Method 1: Change the release value in /etc/redhat-release
Step 1: Ensure that your OS version is certified with clusterware installation or the product you want to install. This can be seen by oracle certification matrix.
Step2: Ensure that /etc/redhat-release is there and not corrupted. You can copy it to somewhere and edit it.
Step 3: I have seen if you want to install oracle clusterware on RHL 5 then then it shows above failure though it is certified and I have intact /etc/redhat-release. In that case to meet clusterware installation edit the /etc/redhat-release file to make it from 5 to 4.
The original value and changed value is listed below.
•On Oracle Enterprise Linux 5.0, original value is "Enterprise Linux Enterprise Linux server release 5". Change it to Enterprise Release Enterprise Linux server release 4.
•On Red Hat Enterprise Linux 5.0, original value is "Red Hat Enterprise Linux server release 5". Change it to Red Hat Enterprise Linux server release 4.
•On SUSE Linux Enterprise Server 10, original value is
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
Change it to
SUSE Linux Enterprise Server 9 (x86_64)
VERSION = 9
I have done this on my Red Hat system as,
-bash-3.1$ vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
Now again try to run runInstaller and possibly you will not get the error.
Method 2: (recommended) Running as ignoreSysPrereqs flag:
The idea is while running OUI( Oracle Universal Installer) command it to skip operating system test. Start the runIstaller as
./runinstaller -ignoreSysPrereqs
which causes the installer to skip the operating system check and continue with the installation.
Related Documents
Install Oracle Database 10g Software on Red Hat Linux
| Reactions: |
Some Tips of Mozilla Firefox
1)Zooming: If you get any small font or tiny text in your browser you can enlarge your text by simply pressing
CTRL + plus (+) sign (zoom out) or
CTRL + minus(-) sign (zoom in)
2)Handling Tabs: With firefox you can handle many web page in a single firefox window with the help of tabbed browsing.
CTRL+T will open a new empty tab on an existing firefox window.
CTRL+W will close the current tab.
CTRL+SHIFT+T will will reopen a close tab.
Middle click on a link will open a link in a new tab.
3)Single click bookmarking: While browsing if you find any page useful then you can simply bookmark that page with single click bookmarking so that you can easily find that page from Bookmarking menu. To do single click bookmarking just click star button on the location bar. Your current page will be added to the bookmark.
4)Useful keyboard Shortcut:
CTRL+L will move your cursor to the Address bar so that you can type a new site.
CTRL+K will move your cursor to the search bar so that you can search on net.
CTRL+F will move your cursor to find bar so that you can search text within your current page. This is specially helpful in order to search a word on a larger webpage.
CTRL+N will open a new firfox window.
CTRL+O will open a new file in your firefox browser window.
CTRL+SHIFT+W will close your current window.
CTRL+S will save your current page.
CTRL+P will print your web page.
CTRL+R will reload your current web page.
CTRL+0 will reset your zooming.
F11 will show your browser in full screen.
CTRL+D will bookmark your current page.
CTRL+SHIFT+D will bookmark all current page.
CTRL+SHIFT+B will prompt you to organize bookmarks.
CTRL+J will show you your download window.
5)Assign Tags to bookmarks: If you have many bookmarks entry then you can distinguish them easily by assigning them into tags. In order to do that just double click on the star button in the location bar. There you will see Tags tab. Just simply give a name. In order to give a page multiple tags just separate them by comma. Later to find the page just enter tag name in the location bar. The sites will appear from them you can choose.
6)Add ons: You can do a lots of task you wish to make firefox works. To do it,
go to Tools → Add-ons to open the Add-ons Manager and discover all the ways you can make Firefox your own.
7)Manage Search Engines: Just at the left on the search bar (You can see a big G for google) click on the drop down menu. You will see a list of search engines. Click on the Manage Search Engines and from there you can edit, move up and down and remove a search engine.
8)Clear Private Data: After browsing if you want not to keep track your browsing and downloading history you can clear your private data. To do it go to Tools and select clear private data.
CTRL + plus (+) sign (zoom out) or
CTRL + minus(-) sign (zoom in)
2)Handling Tabs: With firefox you can handle many web page in a single firefox window with the help of tabbed browsing.
CTRL+T will open a new empty tab on an existing firefox window.
CTRL+W will close the current tab.
CTRL+SHIFT+T will will reopen a close tab.
Middle click on a link will open a link in a new tab.
3)Single click bookmarking: While browsing if you find any page useful then you can simply bookmark that page with single click bookmarking so that you can easily find that page from Bookmarking menu. To do single click bookmarking just click star button on the location bar. Your current page will be added to the bookmark.
4)Useful keyboard Shortcut:
CTRL+L will move your cursor to the Address bar so that you can type a new site.
CTRL+K will move your cursor to the search bar so that you can search on net.
CTRL+F will move your cursor to find bar so that you can search text within your current page. This is specially helpful in order to search a word on a larger webpage.
CTRL+N will open a new firfox window.
CTRL+O will open a new file in your firefox browser window.
CTRL+SHIFT+W will close your current window.
CTRL+S will save your current page.
CTRL+P will print your web page.
CTRL+R will reload your current web page.
CTRL+0 will reset your zooming.
F11 will show your browser in full screen.
CTRL+D will bookmark your current page.
CTRL+SHIFT+D will bookmark all current page.
CTRL+SHIFT+B will prompt you to organize bookmarks.
CTRL+J will show you your download window.
5)Assign Tags to bookmarks: If you have many bookmarks entry then you can distinguish them easily by assigning them into tags. In order to do that just double click on the star button in the location bar. There you will see Tags tab. Just simply give a name. In order to give a page multiple tags just separate them by comma. Later to find the page just enter tag name in the location bar. The sites will appear from them you can choose.
6)Add ons: You can do a lots of task you wish to make firefox works. To do it,
go to Tools → Add-ons to open the Add-ons Manager and discover all the ways you can make Firefox your own.
7)Manage Search Engines: Just at the left on the search bar (You can see a big G for google) click on the drop down menu. You will see a list of search engines. Click on the Manage Search Engines and from there you can edit, move up and down and remove a search engine.
8)Clear Private Data: After browsing if you want not to keep track your browsing and downloading history you can clear your private data. To do it go to Tools and select clear private data.
| Reactions: |
Subscribe to:
Posts (Atom)
Tag Cloud
10.2g
10g
11g
11gR2
Abasa
About Oracle
Administration
Adsense
Alerts
Archival
ASM
ASP.Net
Audit
Audit Vault
Backup
Bangladesh
Block Corruption
Blogger
Browser
Bug
Business
Clone
Clusterware
Comments
Concepts
Connection
Controlfiles
Crime
CSS
Data Block
Data Dictionary
Data Guard
Data Mining
Data Pump
Data Type
Database Administration
Database Vault
DBConsole
Developer
Economics
EM
Excel
Exercise
Explain plan
Export
External Table
Facebook
Firefox
Firmware
Flashback
Forum
Functions
Games
Globalization Support
Grid Control
Hardware
History
HTML
IE
Import
Indexes
initializaion parameter
initialization parameter
Installation
Internals
Internet
Interview
isql*plus
Java
JavaScript
Job
Joins
Joke
Limitation
Linux
Listener
Logminer
Magento
Mail
Materialized View
Medical
Memory
Mobile
Money
Multimedia
MySQL
Net Services
Network
OCP
Operators
Oracle
Oracle Concepts
Oracle Recovery
OS
Others
OUI
Package
Packages
Parameters
Partitioning
Patchset
Performance
Perl
Pfile
Photos
PHP
PL/SQL
Profile
Pseudocolumns
Puzzle
Quiz
Quota
RAC
RAC Installation
Recovery
Recovery Problems
Redo Log
Reports
RMAN
Scripts
Security
SEO
Server Administration
SGA
Shell Script
Smarty
Social Marketing
Solaris
Spfile
SQL
SQL Tuning
SQL*Loader
Sql*Plus
Startup Problem
Streams
SwingBench
System Analysis
Tablespaces
Technology
Temp
TNS Error
Tools
Troubleshooting
Tuning
Undo
UNIX
Upgradation
Utilities
Version
Views
Vmware
Windows
Wordpress
XML