Home IT Linux Windows Database Network Programming Server Mobile  
           
  Home \ Database \ Oracle to start to solve the error ORA-27102     - Management Linux Container with Docker in Ubuntu (Linux)

- Linux more command Detailed (Linux)

- Python substring format (Programming)

- Linux RAID Set RAID 10 or 0 + 1 (Linux)

- The Sublime Text 3 configuration file (Linux)

- Spark parquet merge metadata problem (Server)

- Use cmake to compile and install MySQL 5.5 (Database)

- CentOS NAT iptables (Linux)

- Java, hashcode, equals and == (Programming)

- Jetty JNDI Development combat (Linux)

- PostgreSQL vacuum principle of a function and parameters (Database)

- Ubuntu 14.10 Install Ubuntu Touch Music App 2.0 (Linux)

- Linux smart small switch rfkill (Linux)

- 12 novice Linux command must learn (Linux)

- Monitor log file (listener.log) (Database)

- Installation in lxml Python module (Linux)

- Shell Scripting Basics (Linux)

- Linux uses a screen recording under RecordMyDesktop (Linux)

- Ubuntu 15.04 / CentOS 7.0 to set custom boot (Linux)

- Ubuntu system process is bound CPU core (Linux)

 
         
  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:      
 
- CentOS installation Percona Server 5.5.42 compiling problem solve one case (Linux)
- Binding multiple network cards in Linux using command nmcli (Linux)
- Ubuntu 14.10 / Linux Mint 17.1 Win10 compiler install rdesktop 1.8.3 Remote Desktop connection (Linux)
- Linux RAID Set RAID 10 or 0 + 1 (Linux)
- CentOS and RHEL to install IPython 0.11 (Linux)
- Linux / CentOS 7.0 installation and configuration under Tomcat 8.0 (Server)
- Python substring format (Programming)
- Java Virtual Machine class loading mechanism and bytecode execution engine (Programming)
- CoreOS quick installation to get started on a PC (Linux)
- iOS persistence of data archiving NSKeyedArchiver (Programming)
- The security configuration of Linux (Linux)
- Jetty JNDI Development combat (Linux)
- Getting Started with Linux system to learn: how to check memory usage of Linux (Linux)
- Ora-1092: OPI colleague K aborting process --- killed by OO Well killer (Database)
- A custom implementation of the Android sidebar (Programming)
- SUSE Firewall Configuration (Linux)
- How to turn Java String into Date (Programming)
- Sshuttle A VPN-based transparent proxy that uses ssh (Server)
- VSFTPD Security (Linux)
- Linux linux system security (Linux)
     
           
     
  CopyRight 2002-2016 newfreesoft.com, All Rights Reserved.