注意
1、数据库安装时,务必选择“仅安装数据库软件”
2、数据库卸载切勿手动删除目录,使用如下命令:$ORACLE_HOME/deinstall
3、创建完库后,请务必修改密码策略为“永不过期”,修改方法见目录
1.建立组用户
/usr/sbin/groupadd -g 5001 oinstall
/usr/sbin/groupadd -g 5002 dba
/usr/sbin/groupadd -g 5003 oper
/usr/sbin/useradd -u 5001 -g oinstall -G dba,oper oracle
配置密码
echo "<password>" | passwd oracle --stdin
2.安装依赖包
Centos6
yum install -y compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel libXp make sysstat unixODBC unixODBC-devel compat-libcap1 compat-libstdc++-33 elfutils-libelf-devel
centos7
yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 elfutils-libelf-devel psmisc
3.系统预处理
关闭Transparent HugePages(此步可忽略,新系统已统一进行了优化)
Centos6
关闭Transparent HugePages特性(RHEL6/OEL6)
修改/etc/grub.conf文件,在Kernel行末尾加上下列参数:
transparent_hugepage=never
查看
grep H /proc/meminfo
centos7
# cd /usr/lib/tuned/throughput-performance/
# cp tuned.conf tuned.conf.bak
修改文件tuned.conf如下,如没有找到在最末行新增:
[vm]
transparent_hugepages=always
to
[vm]
transparent_hugepages=never
需重启操作系统后确认
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] <<--- THP Disabled
禁用SELINUX,修改为DISABLE(此步可忽略,新系统已统一进行了优化)
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
getenforce
IO调度算法调整,Centos6需要修改。(此步可忽略,新系统已统一进行了优化)
原先磁盘的IO算法是noop deadline [cfq]调度算法,这种算法是操作系统的默认算法,根据以往在Oracle调优上的建议,可以将这个算法修改为deadline模式。
修改/etc/grub.conf文件,在Kernel行末尾加上下列参数:
elevator=deadline
可以通过cat /sys/block/sda/queue/scheduler命令来查看目前调度算法。
Centos6
service iptables stop
service iptables save
service ip6tables stop
service ip6tables save
chkconfig avahi-daemon off
chkconfig bluetooth off
chkconfig cpuspeed off
chkconfig cups off
chkconfig firstboot off
chkconfig ip6tables off
chkconfig iptables off
chkconfig pcmcia off
centos7
systemctl disable firewalld
systemctl disable avahi-daemon
systemctl disable cups
systemctl disable postfix
systemctl disable smartd
RemoveIPC处理(仅centos7)
在RHEL7.2中,systemd-logind 服务引入了一个新特性,该新特性是:当一个user 完全退出os之后,remove掉所有的IPC objects。
解决方法
vim /etc/systemd/logind.conf
设置RemoveIPC=no
# systemctl daemon-reload
# systemctl restart systemd-logind
4. 内核参数调整
cat>>/etc/sysctl.conf<<EOF
kernel.shmmax = 137438953472
kernel.shmall = 26374320
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 4194304
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
net.ipv4.ipfrag_high_thresh = 16777216
net.ipv4.ipfrag_low_thresh = 15728640
kernel.randomize_va_space=0
vm.min_free_kbytes = 524288
##vm.nr_hugepages = 512
EOF
kernel.shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。
可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存-1byte 。
内存为12G时,该值为 12*1024*1024*1024-1 = 12884901887
内存为16G时,该值为 16*1024*1024*1024-1 = 17179869183
内存为32G时,该值为 32*1024*1024*1024-1 = 34359738367
内存为64G时,该值为 64*1024*1024*1024-1 = 68719476735
内存为128G时,该值为 128*1024*1024*1024-1 = 137438953471
kernel.shmall该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB
一个共享内存段的最大大小是 16G 时,那么需要共享内存页数是 16GB/4KB==4194304 (页),
当内存为12G时, kernel.shmall = 3145728
当内存为16G时, kernel.shmall = 4194304
当内次为32G时, kernel.shmall = 8388608
当内存为64G时, kernel.shmall = 16777216
当内存为128G时, kernel.shmall = 33554432
执行命令生效
# sysctl -p
5. Centos6 Limits配置
cat>>/etc/security/limits.conf<<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
root soft stack 10240
root hard stack 32768
* soft memlock unlimited
* hard memlock unlimited
EOF
Memlock在HugePage环境开启,单位为KB。
Centos7 Limits配置
cat >> /etc/systemd/system.conf<<EOF
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535
EOF
cat>>/etc/security/limits.conf<<EOF
* soft memlock unlimited
* hard memlock unlimited
EOF
6.PAM调整
##防止本地登陆一直退出之login状态
echo "session required pam_limits.so" >>/etc/pam.d/login
7.目录建立
请保证oracle及oradata目录为单独挂载的lvm目录,切入直接在“/”目录下直接创建目录使用。
mkdir -p /oracle/u01/app/oraInventory
mkdir -p /oracle/u01/app/oracle/cfgtoollogs
mkdir -p /oracle/u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /oracle
chown -R oracle:oinstall /oracle
chown -R oracle:oinstall /oradata
chmod -R 775 /oracle/u01/app/oraInventory
chmod -R 775 /oracle/u01/app/oracle
8环境变量
oracle用户
# su - oracle
$ vi .bash_profile
TMP=/tmp
ORACLE_SID=ORCL
#ORACLE_SID请预先想好,保证变量值与实际安装值一致。
ORACLE_BASE=/oracle/u01/app/oracle
ORACLE_HOME=/oracle/u01/app/oracle/product/11.2.0/db_1
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/bin:$PATH
umask 022
9.重启系统
安装数据库
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
Centos7提前打好补丁
安装软件前,对安装介质更新Patch 19404309。
unzip p19404309_112040_Linux-x86-64.zip
cp b19404309/database/cvu_prereq.xml database/stage/cvu
cd database
./runInstaller -jreLoc /oradata/install/jdk1.8/jre
##上方请指定使用jdk,否则图形显示有问题。
在Oracle用户下执行数据库软体安装:
取消收取安全和升级通知
跳过软件升级界面
选择“仅安装数据库软体”
选择单实例或RAC模式
选择安装语言,英文好的直接默认下一步。
选择安装组件,这边选择“企业版”
配置ORACLE_BASE和ORACLE_HOME,预先配置好变量后,直接下一步。
配置用户组,这里选择dba和oper
安装检测,根据实际警告情况选择处理或忽略。
当所有报错解决完成
点击OK继续,
如果是centos7安装过程中会报错,确保启动安装时指定了JDK路径,否则可能无法看到报错界面。
error in invoking target ‘agent nmhs’ of makefile
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
Search for the line
$(MK_EMAGENT_NMECTL)
修改为:
$(MK_EMAGENT_NMECTL) -lnnz11
修改完成后选择“Retry”,如果正常则数据库继续安装。
用ROOT用户执行图上命令。
至此完成数据软体的安装
打补丁
升级OPatch
# unzip p6880880_112000_AIX64-5L.zip
更新到Oracle目录下:
# opatch version
# cd $ORACLE_HOME
# mv OPatch OPatch.bak
# mv /install/OPatch .
# chown -R oracle:oinstall OPatch
# chmod -R 775 OPatch
opatch version 查看版本
打补丁
# unzip p28729262_112040_Linux-x86-64_db_190115.zip
# cd 28729262
# opatch apply -local #安装补丁
# opatch lsinventory #查看补丁信息
创建监听
执行$ netca启动配置界面,一直下一步即可。
建立数据库
使用oracle用户,输入dbca建立数据库
建立数据库
选择第一项创建一个数据库
选择Custom Database,不使用模板建库
输入SID和Global name,尽量保持一致。
取消自动作业
取消企业管理
配置数据库SYS和SYSTEM密码
选择使用文件系统存放数据文件,可以使用默认位置(如图),也可以自己设置、第二项(如果数据要存储到单独盘,要选择此项)
配置内存如图(请根据实际情况调整)
配置用户连接数为300(请根据实际情况调整)
语言集选择“ZHS16GBK“
配置日志组、控制文件、表空间路径,根据实际情况改变目录位置
OK,确认后开始建库
开始建库
建库完成,点击Exit退出
调整默认密码过期策略
1、查看用户的proifle是哪个,一般是default:
sql> SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
sql> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码,举例如下:
$sqlplus / as sysdba
sql> alter user smsc identified by <原来的密码> ----不用换新密码