环境: 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
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 EOF 锁住sga: Linux 默认最大的可锁定的内存是 32k ,若要在内存中锁定 sga防止使用swap, lock_sga=true ,则要 去掉这个限制( ulimit -l unlimited) 第一步: /etc/security/limits.conf <<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 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.防火墙设置
需要的安装包
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
建立相关目录
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
建立用户和组
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'
安装software
$ ./runInstaller
修改为归档模式
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 <user name> default tablespace <non-SYSTEM 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报告进行分析,这个分析需要相对专业的知识,慢慢积累吧。
编辑推荐:
- Word2010如何设置绘图画布格式03-03
- Install Oracle12cR2 on CentOS 7.303-03
- Oracle Database Scheduler整理03-03
- Word2010如何以副本方式打开文档03-03
- Word2010如何添加超链接03-03
- Word2010内置表格如何设置文字环绕方式03-03
- 数据库服务器备份存储更换不受任何影响的便捷操作方法03-03
- 11.2.0.4 grid 安装时 ssh 过不去问题分析03-03
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- RAC性能分析gc buffer busy acquire 等待事件
RAC性能分析gc buffer busy acquire 等待事件
26-03-03 - MAMY绘制游戏中的魔法机器人实例
MAMY绘制游戏中的魔法机器人实例
26-03-03 - Word2010如何创建构建基块
Word2010如何创建构建基块
26-03-03 - oracle DBA 角色重建
oracle DBA 角色重建
26-03-03 - MAYA结合ZBRUSH制作美女杀手CG人物
MAYA结合ZBRUSH制作美女杀手CG人物
26-03-03 - Word2010如何添加自定义项目符号
Word2010如何添加自定义项目符号
26-03-03 - oracle12c解决plsql登录CDB和PDB问题
oracle12c解决plsql登录CDB和PDB问题
26-03-03 - ORACLE会话连接进程三者总结
ORACLE会话连接进程三者总结
26-03-03 - SQL语句执行顺序
SQL语句执行顺序
26-03-03 - word2010水印怎么设置
word2010水印怎么设置
26-03-03
