Home IT Linux Windows Database Network Programming Server Mobile  
           
  Home \ Database \ Oracle to start to solve the error ORA-27102     - Linux network monitoring strategy (Linux)

- RHEL7 Apache MPM configuration (Server)

- Android in the event delivery and handling mechanism (Programming)

- What happens after the MySQL disk space is full (Database)

- BusyBox build root file system (Linux)

- Nginx Performance Tuning Guidelines (Server)

- Cancel Root Command History under Linux (Linux)

- Java singleton mode (Singleton mode) (Programming)

- Linux and Unix systems really do network more secure (Linux)

- Getting Started with Linux system to learn: how to install the kernel headers on Linux (Linux)

- Zorin OS: Linux novice most personal desktop system should be used (Linux)

- Linux text processing tool of sed (Linux)

- Bash Automated Customization Linux belongs to its own CentOS system (Linux)

- Linux for enterprises to build a firewall (Linux)

- Linux operation and maintenance engineers face questions Intermediate (Linux)

- Linux System Getting Started Tutorial: How to Force Change your password at next logon Linux (Linux)

- Getting the Linux shell expr use (Programming)

- Nodejs complete installation instructions for Express (Linux)

- Linux kernel likely and unlikely to resolve macro definitions (Linux)

- Nginx Beginner Guide (Server)

 
         
  Oracle to start to solve the error ORA-27102
     
  Add Date : 2017-09-20      
         
       
         
  Environment: RHEL5.5 + Oracle 10.2.0.4
This error is usually because the database initialization parameter file memory settings improper. In this case because the operating system parameter settings cause problems.

1. The current phenomenon: Oracle error ORA-27102 Start

2. Check the configuration of the parameters

3. Locate solve problems

4. The extended summary

1. The current phenomenon: Oracle error ORA-27102 Start
[Oracle @ JYDB1 ~] $ sqlplus / as sysdba

SQL * Plus: Release 10.2.0.4.0 - Production on Thursday, July 30 2015 19:55:10

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Connected to an idle routine.

SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

2. Check the configuration of the parameters

2.1 Creating a file based on the current pfile spfile file
SQL> create pfile = '/ tmp / pfile0730.bak' from spfile;

File has been created.

To view the current configuration of initialization parameters:
[Oracle @ JYDB1 dbs] $ more /tmp/pfile0730.bak
JYZHAO .__ db_cache_size = 10938744832
JYZHAO .__ java_pool_size = 117440512
JYZHAO .__ large_pool_size = 16777216
JYZHAO .__ shared_pool_size = 1442840576
JYZHAO .__ streams_pool_size = 33554432
* .audit_file_dest = '/ Opt / app / oracle // admin / JYZHAO / adump'
* .background_dump_dest = '/ Opt / app / oracle // admin / JYZHAO / bdump'
* .compatible = '10 .2.0.3.0 '
* .control_files = '/ Usr3 / oradata1 / sysdata / control_file / control01.ctl', '/ usr3 / oradata1 / sysdata / control_file / control02.ctl', '
/usr3/oradata1/sysdata/control_file/control03.ctl '
* .core_dump_dest = '/ Opt / app / oracle // admin / JYZHAO / cdump'
* .db_block_size = 8192
* .db_domain = ''
* .db_file_multiblock_read_count = 16
* .db_files = 2048
* .db_name = 'JYZHAO'
* .dispatchers = '(PROTOCOL = TCP) (SERVICE = JYZHAOXDB)'
* .job_queue_processes = 10
* .nls_language = 'SIMPLIFIED CHINESE'
* .nls_territory = 'CHINA'
* .open_cursors = 300
* .pga_aggregate_target = 1572864000
* .processes = 600
* .remote_login_passwordfile = 'EXCLUSIVE'
* .resource_limit = TRUE
* .sessions = 665
* .sga_target = 12582912000
* .undo_management = 'AUTO'
* .undo_tablespace = 'UNDOTBS1'
* .user_dump_dest = '/ Opt / app / oracle // admin / JYZHAO / udump'

You can see, sga = 12G, pga = 1.5G,

2.2 start with pfile file get the same error

startup pfile = '/ tmp / pfile0730.bak'
SQL> startup pfile = '/ tmp / pfile0730.bak'
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SQL>!

2.3 Check the host memory, / dev / shm, ipcs

2.3.1 Idle sufficient memory
[Oracle @ JYDB1 10.2.0] $ free -g
            total used free shared buffers cached
Mem: 31 0 30 0 0 0
- / + Buffers / cache: 0 31
Swap: 31 0 31

2.3.2 / dev / shm to 16G, in line with current needs
[Oracle @ JYDB1 10.2.0] $ df -h / dev / shm
File system capacity has the mount point Used Avail Use%
tmpfs 16G 0 16G 0% / dev / shm

2.3.3 ipcs -a nor unreleased shared memory
[Oracle @ JYDB1 10.2.0] $ ipcs -a

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages

Here we find that the system found hardware can support sga = 12G, pga = 1.5G configuration.
But this time the next experiment, probably only in the size of sga = 6.5G start the database. sga then Metropolitan error: ORA-27102.

2.4 Check the system configuration file /etc/sysctl.conf

more /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 25769803776
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

You can see the installation documentation is in accordance with the 11g recommended configuration item configuration, which is based on 75% kernel.shmmax calculations to the host memory. Other parameters are not changed.
Because the environment here is Oracle 10g, so we recommend 10g according to the official profile, modify the 10g version of the installation documentation configuration items:
kernel.shmall = 2097152
kernel.shmmax = 25769803776
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

sysctl -p after the commencement of the configuration, then try to start the database, the result, unfortunately, is still error ORA-27102.

3. Locate solve problems

Google a bit and found that there may be a result of kernel.shmall this parameter.
To view the current configuration shmmax and shmall
[Root @ JYDB1 ~] # cat / proc / sys / kernel / shmmax
25769803776
[Root @ JYDB1 ~] # cat / proc / sys / kernel / shmall
2097152

Comment out the new configuration parameters kernel.shmall (original /etc/sysctl.conf configuration value in kernel.shmall 4294967296)
# Kernel.shmall = 2097152
kernel.shmmax = 25769803776
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

To view the current configuration again shmmax and shmall
[Root @ JYDB1 ~] # cat / proc / sys / kernel / shmmax
25769803776
[Root @ JYDB1 ~] # cat / proc / sys / kernel / shmall
4294967296

At this point you can restart the database sga = 12G, pga = 1.5G normal start, before being given because of configuration items kernel.shmall parameter is too small leads.

4. The extended summary

Oracle official profile, either 10g or 11g, configuration parameters kernel.shmall advice is kernel.shmall = 2097152, then here's what environmental problem?

Let's find out the meaning of this parameter kernel.shmall
[Root @ JYDB1 ~] # cat / etc / RedHat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

In RedHat document 5 on kernel.shmall this parameter has such a description:


7.3. Setting SHMALL Parameter
This parameter sets the total amount of shared memory pages that can be used system wide. Hence, SHMALL should always be at least ceil (shmmax / PAGE_SIZE).
The default size for SHMALL in Red Hat Enterprise Linux 2.1, 3, 4 and 5 is 2097152 which is also Oracle's recommended minimum setting for 9i and 10g on x86 and x86-64 platforms. In most cases this setting should be sufficient since it means that the total amount of shared memory available on the system is 2097152 * 4096 bytes (shmall * PAGE_SIZE) which is 8 GB. PAGE_SIZE is usually 4096 bytes unless you use Chapter 14, Large Memory Optimization, Big Pages, and Huge Pages which supports the configuration of larger memory pages.

Check the default values PAGE_SIZE:
[Root @ JYDB1 ~] # getconf PAGESIZE
4096

Calculation shmmax / PAGE_SIZE value shmmax / PAGE_SIZE = 25769803776/4096 = 6291456,
The root cause of this problem is found, in the current environment, the value of kernel.shmall should at least be set to 6291456.

Summary: Oracle deployment process, but also to system parameters recommended values have some understanding. Some officials suggested parameter file may not match the actual situation, this time can be combined with comprehensive documentation system host to locate the problem.
     
         
       
         
  More:      
 
- CoreOS quick installation to get started on a PC (Linux)
- Linux for enterprises to build a firewall (Linux)
- Java NIO in the world (Programming)
- Python console achieve progress bar (Programming)
- How to use GRUB2 files directly from the hard disk to run ISO (Linux)
- Java logging performance of those things (Programming)
- Recover accidentally deleted Nginx logs (Server)
- The Concept and Semantics of Java Memory Model (Programming)
- CentOS 6.4 (64bit) install Python 2.7.5 (Linux)
- Six Ways to view slides can be implemented Android (Programming)
- CentOS 6.2 install git error Perl5 (Linux)
- Intrusion prevention network server security maintenance tips (Linux)
- lolcat: an output terminal rainbow effects in the Linux command-line tool (Linux)
- How to Install Telegram instant messaging software on Ubuntu (Linux)
- Linux ls command (Linux)
- How Linux Log Analysis (Linux)
- CentOS 6.x and CentOS7 installation RPMforge (Linux)
- Java inheritance initialization problem (Programming)
- Network security system (Network)
- MySQL 5.7.9 source compiler installation instructions (Database)
     
           
     
  CopyRight 2002-2016 newfreesoft.com, All Rights Reserved.