首先声明,本次文章只是为了帮助自己做一个记录!!!本次Oracle服务器操作系统为centos7,硬件配置为8核,内存16G。
一、依赖安装
1、# yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel sysstat ksh
2、# yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
3、检查是否安装完成指令
# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
4、可能会出现compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm这个包不存在,这个是在redhat里的依赖包,没有的话,自己找找哈,我肯定是私下存着的,哈哈嚯。
二、交换内存配置
1、手动加swap空间
# dd if=/dev/vda1 of=/swap bs=1024 count=16777216
/dev/vda1目录是我通过指令# df -h查出来,可根据自己的目录挂载
2、制作为swap格式文件
# mkswap /swap
3、# 更改swap文件权限
# chmod 600 /swap
4、# 用swapon命令把这个文件分区挂载swap分区
# swapon /swap
5、# 为防止重启后swap分区变为0,修改文件设置开机自动挂载
# vim /etc/fstab的最后添加 /swap swap swap default 0 0
6、查看交换空间是否配置成功
# free -h或者使用# grep SwapTotal /proc/meminfo
看到自己的swap为16G则配置成功
三、修改CentOS系统标识 (Oracle默认不支持CentOS)
# vim /etc/redhat-release
将内容替换为: redhat-7
四、将/etc/hostname设置为自己想要的主机名
db_install.rsp文件的ORACLE_HOSTNAME 要与之一致,我这里设置的为DG1
五、创建用户和组
# groupadd -g 200 oinstall 添加oinstall组,组的id为200
# groupadd -g 201 dba 添加dba组,组的id为201
# useradd -u 440 -g oinstall -G dba oracle 添加用户oracle
# passwd oracle 输入oracle用户的密码
六、修改linux默认配置参数
#vim /etc/sysctl.conf (8核与16G的配置,其他的自己查一查吧)
fs.aio-max-nr = 1048576
kernel.shmall = 8388608
kernel.shmmax = 8589934592
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
3、修改完成,使生效
# sysctl -p
七、修改用户的SHELL的限制
# vim /etc/security/limits.conf,将以下内容添加到文件
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
八、修改/etc/pam.d/login 文件
注意,如果是linux64位,应该将lib改成lib64,否则重启linux系统的时候会报module is unknown错误
session required /lib64/security/pam_limits.so
session required pam_limits.so
九、修改/etc/profile文件
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
十、创建一会儿Oracle安装的目录,并授权
1、创建oracle安装目录,及数据文件存放目录位置,这里可自定义。在这里举例安装放在/u01/app/oracle目录
# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/oraInventory
2、设置目录所属主为oracle所有。
# chown -R oracle:oinstall /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oraInventory
十一、解压oracle安装包
1、解压Oracle11.2.0.1.0
# unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle/ && unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle/
2、解压Oracle11.2.0.4.0
# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /home/oracle && unzip p13390677_112040_Linux-x86-64_2of7.zip -d /home/oracle
3、授权/home/oracle/database目录
# chown -R oracle:oinstall /home/oracle/database
十二、配置oracle的环境变量,先切换oracle用户
1、# su - oracle,密码是刚刚上面password oracle设定的,我设置的就是oracle
然后输入# vim .bash_profile追加以下内容,
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ROACLE_PID=ora11g
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
2、我要迁移的数据库编码是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,通过指令# select userenv('language') from dual;查看到的
3、使设定参数生效
输入指令# source .bash_profile
十三、修改oracle安装参数,并执行安装
cd /home/oracle/database/response/
执行以下备份及清空指令:
# cp dbca.rsp dbca.rsp.bak
# cp db_install.rsp db_install.rsp.bak
# cp netca.rsp netca.rsp.bak
# echo "" > dbca.rsp && echo "" > db_install.rsp
编辑db_install.rsp
# vim db_install.rsp 内容如下,取自己需要的版本,内容里的DG1是你的主机名,ZHS16GBK是你数据库的编码,自己小心
1、Oracle11.2.0.1.0的配置
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=DG1
UNIX_GROUP_NAME=dba
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
2、Oracle11.2.0.4.0的配置
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=DG1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=false
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=SKIP_UPDATES
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
3、执行安装
# cd /home/oracle/database
# ./runInstaller -silent -force -noconfig -ignorePrereq -responseFile /home/oracle/database/response/db_install.rsp
或者
# ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
4、执行完成后,根据要求,新开一个窗口,以root身份分别执行这两个脚本即可。
# /data/app/oracle/oraInventory/orainstRoot.sh
# /data/app/oracle/product/11.2.0.1/db_1/root.sh
执行脚本:
# . /data/app/oracle/oraInventory/orainstRoot.sh
# cd /data/app/oracle/product/11.2.0.1/db_1/ (root.sh先进入目录,再执行root.sh脚本,不然会执行卡住)
# ./root.sh
5、配置监听listener
# netca /silent /responsefile /home/oracle/database/response/netca.rsp
6、dbca建库,编辑应答文件
# vim /home/oracle/database/response/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
#RECOVERYGROUPNAME=ARCH
CHARACTERSET = "ZHS16GBK"
NATIONALCHARACTERSET= "UTF8"
7、建库
# dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
等跑完后,数据库安装成功,自己去验证。
十四、修改Oracle内存参数及开启归档日志
1、设memory_target的时候,会出现内存不足的错误ORA-00845: MEMORY_TARGET not supported on this system;就是说MEMORY_MAX_TARGET的设置不能超过/dev/shm的大小,在oracle11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错。
执行以下操作即可
# vim /etc/fstab,在最后添加一行
tmpfs /dev/shm tmpfs defaults,size=16G 0 0
使其生效:# mount -o remount,size=16G /dev/shm
2、如果使用Oracle官方的AMM自动内存管理,则把memory_target与memory_max_target设为物理内存的%80,sga与pga都设为0即可。
3、如果想自己管理,则memory_target设为物理内存的%80,sga设为memory_target的%80,pag设为memory_target的%20
4、设置processes为1200,默认是150,1200=8核CPU*150,session会默认设为1824;
5、开启归档,Oracle默认归档在闪回目录,闪回目录默认为2G,用得完,一不小心就用完,建议还是改一下,要么就扩大闪回空间。
1)在root用户下,建目录# mkdir -p /u01/app/oracle/arch_log
2)授权# chown -R oracle:oinstall /u01/app/oracle/arch_log/
2)启动到mount状态下,打开归档功能
shutdown immediate
startup mount
alter database archivelog;
3)修改归档目录
alter system set log_archive_dest_1='location=/u01/app/oracle/arch_log/arch';
十五、参考博客
吸收每位大神的经典内容,最后梳理出来的内容
centos7 静默安装 oracle11g 11.2.0.4_江山如此多坑的博客-CSDN博客
https://www.cnblogs.com/hdhx-lh/p/16378830.html