ITPub博客

首页 > 数据库 > Oracle > Oracle12.2 install on CentOS7.3

Oracle12.2 install on CentOS7.3

原创 Oracle 作者:steven_hua 时间:2017-06-14 18:37:22 0 删除 编辑

环境: CentOS7.3

       Oracle 12cR2  linuxx64_12201_database.zip

       JDK 8 (Java SE Development Kit) with the JNDI extension

 

启用功能:

   Automatic Memory Management

 

字符集:AL32UTF8

ORACLE_HOME: /u01/oracle/orahomes/product/11.2.0/db_1

ORADATA: /u01/oracle/orahomes/oradata

 

参考:https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-oracle-linux-6-and-7

Linux系统安装

最小安装(Minimal option)

X Window System

OpenSSH

Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later

 
yum groupinstall "X Window System"

hostnamectl

 

系统硬件检查

1.检查内核发行版本

# cat /etc/redhat-release
# lsb_release -id
# uname -r

 

2. physical RAM 

grep MemTotal /proc/meminfo

3. swap space

# grep SwapTotal /proc/meminfo

swap space:

Between 1 GB and 2 GB      1.5RAM

Between 2 GB and 16 GB     等于RAM

More than 16 GB            16 GB

 

建swap

dd if=/dev/zero of=/disk1/swap bs=8M count=1024

#mkswap /disk1/swap

mkswap: /disk1/swap: warning: don't erase bootbits sectors

        on whole disk. Use -f to force.

Setting up swapspace version 1, size = 17825788 KiB

no label, UUID=023fe065-88e5-47c8-b4e3-0bb083214295

 

#swapon /disk1/swap

#vi /etc/fstab

/disk1/swap     swap                    swap    defaults        0 0

 

执行一下命令验证挂载是否有问题,如果不报错即为成功

#mount –a

 

 

4. /tmp directory

# df -h /tmp

空间需求:

/tmp directory:    >=1 GB

Software Files directory:   >=4.7G

Data Files directory:       >=1.7G

 

 

# uname -m

5.验证shared memory(/dev/shm) 是mount 状态 、合适的尺寸

df -h /dev/shm

 

6.透明大页(Transparent HugePages)---- Oracle 建议关闭

   从RedHat6开始,系统缺省启用透明大页,可以实时配置,不需要重启才能生效配置

ORACLE官方不建议使用,因为存在一些问题:

1.       在RAC环境下 透明大页(Transparent HugePages )会导致异常节点重启,和性能问题;

2.    在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题;

 

查看:

# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

如果输出结果为[always]表示透明大页启用了,[never]表示透明大页禁用、[madvise]表示

如果HugePages_Total返回0,也意味着透明大页禁用了

grep -i HugePages_Total /proc/meminfo

返回0也意味着透明大页禁用了

cat /proc/sys/vm/nr_hugepages 

禁用透明大页方法:

1)添加“transparent_hugepage=never”到内核启动行 /etc/grub.conf

 

title Oracle Linux Server (2.6.32-300.25.1.el6uek.x86_64)

root (hd0,0)

kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABEL=/ transparent_hugepage=never

initrd /initramfs-2.6.32-300.25.1.el6uek.x86_64.img

 

2)重启系统

 

7.检查host name

 DNS OR /etc/hosts

 

8.内核参数:(/etc/sysctl.conf)

如果原文件已有定义,则保留原文件的配置如kernel.shmmax

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 = 1048576

 

/sbin/sysctl -p
/sbin/sysctl -a

9.安全linux选项: "/etc/selinux/config"

SELINUX=permissive
SELINUX=disabled

 

10为Oracle 用户配置shell 限制:

 vi /etc/security/limits.conf

 

oracle   soft    memlock         1048576    # -1  for lock_sga   *.lock_sga=TRUE
oracle   hard    memlock         1048576
oracle   soft    nproc           2047
oracle   hard    nproc           16384
oracle   soft    nofile          1024
oracle   hard    nofile          65536
oracle   soft    core       unlimited
oracle   hard    core       unlimited

oracle              soft    stack   10240


 

官网给的建议如下表:

Resource Shell Limit

Resource

Soft Limit

Hard Limit

Open file descriptors

nofile

at least 1024

at least 65536

Number of processes available to a single user

nproc

at least 2047

at least 16384

Size of the stack segment of the process

stack

at least 10240 KB

at least 10240 KB, and at most 32768 KB

Maximum locked memory limit

memlock

at least 90 percent of the current RAM when HugePages memory is enabled and at least 3145728 KB (3 GB) when HugePages memory is disabled

at least 90 percent of the current RAM when HugePages memory is enabled and at least 3145728 KB (3 GB) when HugePages memory is disabled


锁住sga:

Linux 默认最大的可锁定的内存是 32k ,若要在内存中锁定 sga防止使用swap,  lock_sga=true ,则要 去掉这个限制( ulimit -l unlimited)

   第一步:

 /etc/security/limits.conf <<eof <="" eof

oracle  soft   memlock  -1# -1 unlimited     for lock_sga   *.lock_sga=TRUE

oracle  hard   memlock  -1

   第二步:

    lock_sga=true

pre_page_sga=ture

 

ulimit –a

ulimit -l unlimited

ulimit -a

 

11.环境参数/etc/profile

cat >> /etc/profile <<eof <="" eof

if [ \$USER = "oracle" ]; then

    if [ \$SHELL = "/bin/ksh" ]; then

        ulimit -p 16384

        ulimit -n 65536

    else

        ulimit -u 16384 -n 65536

    fi

    umask 022

fi

EOF

 

12.防火墙设置

 

①关闭firewall
#停止firewall
systemctl stop firewall.service

#禁止firewall开机启动
systemctl disable firewall.service

②安装iptables防火墙
#安装iptables
yum install iptables-services

#编辑防火墙文件
vi /etc/sysconfig/iptables
添加80和3306端口
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

#重启防火墙使配置文件生效
systemctl restart iptables.service

#设置iptables防火墙为开机启动项
systemctl enable iptables.service

③关闭SELINUX
 vi /etc/selinux/config
 #注释以下配置
 SELINUX=enforcing
 SELINUXTYPE=targeted
 
 #增加以下配置
 SELINUX=disabled
 
 #使配置立即生效
 setenforce 0




需要的安装包

Packages for Red Hat Enterprise Linux 7

binutils-2.23.52.0.1-12.el7 (x86_64)
compat-libcap1-1.10-3.el7 (x86_64)
compat-libstdc++-33-3.2.3-71.el7 (i686)
compat-libstdc++-33-3.2.3-71.el7 (x86_64)
glibc-2.17-36.el7 (i686)
glibc-2.17-36.el7 (x86_64)
glibc-devel-2.17-36.el7 (i686)
glibc-devel-2.17-36.el7 (x86_64)
ksh
libaio-0.3.109-9.el7 (i686)
libaio-0.3.109-9.el7 (x86_64)
libaio-devel-0.3.109-9.el7 (i686)
libaio-devel-0.3.109-9.el7 (x86_64)
libgcc-4.8.2-3.el7 (i686)
libgcc-4.8.2-3.el7 (x86_64)
libstdc++-4.8.2-3.el7 (i686)
libstdc++-4.8.2-3.el7 (x86_64)
libstdc++-devel-4.8.2-3.el7 (i686)
libstdc++-devel-4.8.2-3.el7 (x86_64)
libxcb-1.9-5.el7 (i686)
libxcb-1.9-5.el7 (x86_64)
libX11-1.6.0-2.1.el7 (i686)
libX11-1.6.0-2.1.el7 (x86_64)
libXau-1.0.8-2.1.el7 (i686)
libXau-1.0.8-2.1.el7 (x86_64)
libXi-1.7.2-1.el7 (i686)
libXi-1.7.2-1.el7 (x86_64)
libXtst-1.2.2-1.el7 (i686)
libXtst-1.2.2-1.el7 (x86_64)
make-3.82-19.el7 (x86_64)
net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)
nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)
smartmontools-6.2-4.el7 (x86_64)
sysstat-10.1.5-1.el7 (x86_64)

unixODBC-2.3.1 or later

LDAP

cvuqdisk-1.0.10-1.rpm     for cluster

 

JDK 8 (Java SE Development Kit) with the JNDI extension with Oracle Java Database Connectivity.

 

yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 –y
yum install glibc-devel -y
yum install glibc-devel.i686 -y yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat –y
yum install unixODBC -y yum install unixODBC-devel -y

 

 

 

建立用户和组

groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 506 asmdba
groupadd -g 505 asmoper
useradd -u 502 -g oinstall -G dba,asmdba,oper oracle
passwd oracle

 

nobody

# id nobody  
uid=99(nobody) gid=99(nobody) groups=99(nobody)

 

配置用户环境

# vi /home/oracle/.bash_profile
# Oracle 12g Database Environment Variables
# User specific environment and startup programs
export NLS_LANG=american_america. AL32UTF8
export ORACLE_BASE=/u01/oracle/orahomes
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_PATH=.:$ORACLE_HOME/rdbms/admin
export ORACLE_SID=orcl
export ORACLE_HOSTNAME=db15.xx.com
#export ORACLE_UNQNAME=DB11G;
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS11=$ORACLE_HOME/nls/data
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
#export ORACLE_PATH=.:$ORACLE_HOME/rdbms/admin:/oracle/maintain/sql
  
# UNIX Environment Variables
export LANG=en_US
export PATH=.:$ORACLE_HOME/bin:${PATH}:$HOME/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 
# Use old Linuxthreads with floating stacks instead of
# the new Native POSIX Thread Library (NPTL)
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export  TZ='Asia/Shanghai'
unset CLASSPATH 
#alias
#alias ls='ls -FA'
alias rm='rm -i'
alias oh='cd $ORACLE_HOME'
alias os='echo $ORACLE_SID'
alias tns='cd $ORACLE_HOME/network/admin/'
alias log='cd $ORACLE_BASE/diag/rdbms/tdwlds/TDWLDS/trace'
alias alert='tail -100 $ORACLE_BASE/diag/rdbms/tdwlds/TDWLDS/trace/alert_$ORACLE_SID.log|more'

 

 

建立相关目录

mkdir -p /u01/oracle/orahomes
chown -R oracle:oinstall /u01
chmod -R 775 /u01


安装software


# DISPLAY=:0.0
# xhost +
$ ./runInstaller


错误:
 -use Automatic Shared Memory Management
[DBT-11217] Unable to check available shared memory on specified node(s) (db01).

 -use Automatic Memory Management

 [DBT-11211] The Automatic Memory Management option is not allowed when the total physical memory is greater than 4GB.

 

 

sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Mon Mar 20 21:26:14 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 DAVE 			  READ WRITE NO
SQL>

 

 

 

 

 

 

修改为归档模式

alter database archivelog

archive log list

 

 

 

默认配置修改(ORACLE调优项)

 

一、安全

1.Remove the GRANT EXECUTE TO PUBLIC privilege from potentially harmful packages

revoke execute on utl_file from public;
revoke execute on dbms_random from public;
revoke execute on utl_http from public;
revoke execute on utl_smtp from public;
revoke execute on utl_tcp from public;

 

2.确保以下账号密码是被改变的

 

        SYS

        SYSTEM

        DBSNMP

        OUTLN

        CTXSYS

        PERFSTAT

 

3.确保只有sys、system使用SYSTEM 表空间

alter database default tablespace users;
alter user sys default tablespace system;
alter user system default tablespace system;
select username, default_tablespace from dba_users where default_tablespace = 'SYSTEM';
alter user  default tablespace ;

 

4. Lock and expire potentially harmful built-in user-ids.

alter user outln password expire account lock;
alter user dbsnmp password expire account lock;

 

1.登录限制

alter profile DEFAULT limit
  failed_login_attempts unlimited
  password_life_time unlimited;

 

2.固定大小的还原表空间 (最好在系统运行一段时间后再做,这样才有依据)

  可获得最佳保留期的自动优化,支持闪回操作,限制表空间增长

  对于固定UNDO表空间,将会通过表空间的剩余空间来最大限度保留UNDO信息。如果FIXED UNDO表空间没有对保留时间作GUARANTEE(alter tablespace xxx retention guarantee;),则undo_retention参数将不会起作用。

 

  create undo tablespace thinktbs datafile '/u01/app/oracle/oradata/ORCL/datafile/think_undo.dbf'  size 2m autoextend off; 

  alter system set undo_tablespace=thinktbs;

 

  undo表空间的大小有三个影响因素:

   1)undo_retention

   2)每秒需要的undo数据块:

v$undostat  (select max(undoblks/((end_time-begin_time)*24*3600)) from v$undostat;  )

   3)缺省块大小 db_block_size 

   计算公式:undo size=db_block_size*undo_retention*max(undoblks/((end_time-begin_time)*24*3600))

 

   计算方法2(直方图):DBA_HIST_UNDOSTAT.tuned_undoretention

   select to_char(begin_time,'DD-MON-RR HH24:MI') begin_time,to_char(end_time,'DD-MON-RR HH24:MI') end_time,tuned_undoretention from v$undostat order by end_time;

 

 ALTER DATABASE DATAFILE '/home/oracle/oradata/EMDB/undotbs01.dbf' RESIZE 1024M

 ALTER DATABASE DATAFILE '/home/oracle/oradata/EMDB/undotbs01.dbf' AUTOEXTEND OFF

 

3.redo日志组评估

 

3.指定磁盘扇区大小

  新的磁盘物理扇区一般是4kb, 可用 fdisk -lu /dev/sda 查看

 

[root@wldb15.tudou.com]$ fdisk -lu /dev/sda2

Disk /dev/sda2: 262.7 GB, 262721765376 bytes

255 heads, 63 sectors/track, 31940 cylinders, total 513128448 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

这是512bytes扇区的磁盘

 

 

  4k 扇区有两种工作模式:native mode 和 emulation mode。

  1)Native mode,即4k模式,物理和逻辑的block大小一样,都是4096 bytes。 但native mode 的缺点是需要操作系统和软件(如DB)的支持。

     Oracle 从11gR2 之后,就支持4k IO操作,操作系统方面, Linux 内核在2.6.32 之后都支持4k IO操作。

  2)emulation mode:也称512e。 在该模式下,物理块还是4k,但逻辑块是512 bytes。 这种模式主要是为了向后兼容。

     但在该模式下,底层物理还是4k进行操作,所以就会导致Partial I/O 和4k 对齐的问题。

 

  在Oracle 数据库的文件中,默认情况下,datafile的block 是8KB,控制文件是16KB,所以都没有partial IO的问题,唯有online redo log,默认是512 bytes,存在partial IO的问题。

 

使用以下命令的SECTOR_SIZE和BLOCKSIZE子句:

? CREATE DISKGROUP

? ALTER DATABASE

? CREATE DATABASE

? CREATE CONTROL FILE

 

CREATE DATABASE sample NORESETLOGS FORCE LOGGING

ARCHIVELOG

LOGFILE

GROUP 1 '$ORACLE_BASE/oradata/sample/redo01.log'

SIZE 100M BLOCKSIZE 4096,

GROUP 2 '$ORACLE_BASE/oradata/sample/redo02.log'

SIZE 100M BLOCKSIZE 4096

DATAFILE

。。。

 

alter database add logfile group 5 size 100m blocksize 4096;  (前提条件是底层的存储支持4k 扇区)

 

在emulation mode模式下,修改blocksize 4096,可能会得到:

ORA-01378: The logical block size (4096) of file +DATA is not compatible with the disk sector size (media sector size is 512 and host sector size is 512)

 

只要确认底层存储物理是4k的扇区,那么可以设置_disk_sector_size_override参数为true,来覆盖扇区的设置。该参数支持动态修改:

ALTER SYSTEM SET “_DISK_SECTOR_SIZE_OVERRIDE”=”TRUE”;

 

在自动存储管理(ASM) 环境下,你可以为磁盘组设置SECTOR_SIZE属性

该属性只能在创建磁盘组时设置,通过使用CREATE DISKGROUP命令

 

 

Unix核心参数设置

 

4.内存大页开启

 

5.PFILE参数设置

  Processes

 

  需要注意的是:

   SEMMSL必须设定为至少要10 + '进程数的最大值'

   SEMMNS 也依赖于每个数据库上的进程参数值。

 

 

6.主要的数据库表空间存放位置(存储介质直接影响数据库性能),将REDO和DATA分开放置。

  DATA数据放在随机读性能好的介质上,如SSD磁阵,SSD卡,FusionIO等,延时越小越好。

  REDO数据放在顺序写的介质上,保证带宽大小。如果REDO有瓶颈,DATA存储介质再牛逼也不顶用了。

 

7、如果有网络,就要设置网络中断绑定

 

 

瓶颈分析:

 

1、对系统层面进行分析,CPU,MEM,IO一个一个遍历检查,确保硬件没有出现瓶颈。如果这个提前出现问题,就赶紧换硬件再说。

 

2、如果硬件OK ,而CPU的利用率等没有上去,那么输出AWR报告进行分析,这个分析需要相对专业的知识,慢慢积累吧。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/807718/viewspace-2140745/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Memcache安全配置
请登录后发表评论 登录
全部评论

注册时间:2008-05-16

  • 博文量
    117
  • 访问量
    190322