前言

最近在部署一套环境,里面的数据库用的是Oracle。就顺带整理了一下笔记
最无语的是到2019了,还是有人分不清什么是服务端什么是客户端。
先让我装个客户端,特喵的又说你这个不是客户端怎么缺那么多头文件。。。
真被气死

正文

适用于Centos6+
oracle11.*

环境检查

检查 swap分区、内存、磁盘大小、系统版本

df
free
uname -a

关闭selinux和防火墙

#临时关闭
setenforce 0
#永久关闭
sed -i '/^SELINUX=/s/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config 
#关闭防火墙
service iptables stop
systemctl stop firewalld
systemctl disable firewalld

修改主机名和hosts

#设置主机名
echo "oracle-prod" > /etc/hostname
#增加对应的hosts记录
echo "127.0.0.1 oracle-prod" >> /etc/hosts

Note

" 可以使用hostname来查看是否已经设置了主机名
ORA-00130: invalid listener address
添加与主机名与IP对应记录,不然在安装数据库时会报错

修改内核参数

cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 32903162
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
EOF

sysctl -p 

Note

" kernel.shmmax = 32903162(byte)为本机物理内存的一半,可以使用free查看。
或者直接使用如下命令:

echo $((free | awk '/Mem/ {print $2}'/2))

修改pam验证登录

echo "session required pam_limits.so" >> /etc/pam.d/login

修改用户配置文件

cat >> /etc/profile <<EOF
export LIBXCB_ALLOW_SLOPPY_LOCK=true
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

source /etc/profile

修改系统资源限制

cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536    
oracle soft stack 10240
EOF

准备用户与组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "rs_ora2019" | passwd --stdin oracle

准备安装目录

mkdir -p /u01/app/oracle/product/11.2.0.2.0/db_1
mkdir/u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 755 /u01

配置oracle用户环境变量

cat >> /home/oracle/.bash_profile   <<EOF
#Oracle Settings umask 022;
export ORACLE_SID=orcl-prod;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=\${ORACLE_BASE}/product/11.2.0.2.0/db_1;
export PATH=\$ORACLE_HOME/bin:/usr/sbin:\$PATH;
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib;
export TNS_ADMIN=\$ORACLE_HOME/network/admin;
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
EOF
source /home/oracle/.bash_profile

安装依赖

yum install gcc gcc-c++ libaio-devel compat-gcc-34 compat-gcc-34-c++

下载安装包

官网下载

需要下载如下两个文件
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

若没有在IBM注册有账号可以在此下载

Oracle11.2.0.2 from Nedved OD

上传解压安装包

把从官网下载得到的两个zip上传至/home/oracle/

chown -R oracle:oracle /home/oracle/l*.zip
su - oracle
unzip ./linux.x64_11gR2_database_1of2.zip && unzip ./linux.x64_11gR2_database_2of2.zip
mkdir ora_install 
mv database ora_install

Note

" 必须先解压1of2 再解压2of2

response下的=应答文件:

db_install.rsp:安装应答

dbca.rsp:创建数据库应答

netca.rsp:建立监听、本地服务名等网络设置的应答

配置安装应答文件

cd /home/oracle/ora_install/database/response &&
cp db_install.rsp db_install.rsp.default
cat > db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle-prod
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.2.0,oracle.oraolap:11.2.0.2.0,oracle.rdbms.dm:11.2.0.2.0,oracle.rdbms.dv:11.2.0.2.0,orcle.rdbms.lbac:11.2.0.2.0,oracle.rdbms.rat:11.2.0.2.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
EOF

部分参数含义

参数 说明
-silent 表示以静默方式安装,不会有任何提示
-force 允许安装到一个非空目录
-noconfig 表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径
oracle.install.responseFileVersion 响应文件模板的版本,该参数不要更改
oracle.install.option 安装选项,本例只安装oracle软件,该参数不要更改
DECLINE_SECURITY_UPDATES 是否需要在线安全更新,设置为false,该参数不要更改
ORACLE_HOSTNAME 安装主机名
UNIX_GROUP_NAME oracle用户用于安装软件的组名
INVENTORY_LOCATION oracle产品清单目录
SELECTED_LANGUAGES oracle运行语言环境,一般包括引文和简繁体中文
ORACLE_HOME Oracle安装目录
ORACLE_BASE oracle基础目录
oracle.install.db.InstallEdition 安装版本类型,一般是企业版
oracle.install.db.isCustomInstall 是否定制安装,默认Partitioning,OLAP,RAT都选上了
oracle.install.db.customComponents 定制安装组件列表:除了以上默认的,可加上Label Security和Database Vault
oracle.install.db.DBA_GROUP oracle用户用于授予OSDBA权限的组名
oracle.install.db.OPER_GROUP oracle用户用于授予OSOPER权限的组名

进行安装

cd /home/oracle/ora_install/database/
./runInstaller -silent -responseFile /home/oracle/ora_install/database/response/db_install.rsp -ignorePrereq

···

#Root scripts to run

/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
To execute the configuration scripts:
        1. Open a terminal window
        2. Log in as "root"
        3. Run the scripts
        4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

Note

" 安装过程可以再开一个窗口按照提示查看日志运行。当安装成功后会在执行安装命令的那个窗口跳出#Root scripts to run ··· 的内容

切换root执行

su - root
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
/u01/app/oracle/oraInventory/orainstRoot.sh

静默配置监听程序

使用 oracle 用户

netca /silent /responsefile /home/oracle/ora_install/database/response/netca.rsp

查看输出信息,若没有报错会在$TNS_ADMIN 下生成 listener.ora 和 sqlnet.ora

ll $TNS_ADMIN

通过netstat命令可以查看1521端口正在监听

ss -antpul | grep 1521

静默方式建库

dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname orcl-prod \
-sid orcl-prod \
-responseFile NO_VALUE \
-characterSet ZHS16GBK \
-memoryPercentage 30 -emConfiguration LOCAL

.
.
.

85% complete
96% complete
100% complete
Look at the log file "/opt/app/oracle/cfgtoollogs/dbca/orcl-prod/orcl-prod.log" for further details.

Note

参数 说明
-silent 指以静默方式执行dbca命令
-createDatabase 指使用dbca
-templateName 指定用来创建数据库的模板名称,这里指定为General_Purposedbc,即一般用途的数据库模板
-gdbname 指定创建的全局数据库名称,这里指定名称为 orcl-prod
-sid 指定数据库系统标识符,这里指定为 orcl-prod,与数据库同名
-responseFile 指定安装响应文件,NO_VALUE表示没有指定响应文件
-characterSet 指定数据库使用的字符集,这里指定为AL32UTF8
-memoryPercentage 指定用于oracle的物理内存的百分比,这里指定为30%
-emConfiguration 指定Enterprise Management的管理选项。
LOCAL 表示数据库由Enterprise Manager本地管理

数据库成功安装之后默认是启动状态

检查

1、进行实例进程检查

ps -ef | grep ora_ | grep -v grep

2、查看监听状态

lsnrctl status

3、登录查看实例状态

sqlplus / as sysdba

设置Linux开机自启动

修改ORACLE_HOME_LISTNER

将$ORACLE_HOME/bin下的dbstart和dbshut
里面的ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbstart
sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbshut

配置oratab

将N改为Y

sed -i '/orcl-prod/s/N/Y/' /etc/oratab

配置rc.local

cat >> /etc/rc.d/rc.local <<EOF
su oracle -lc "/u01/app/oracle/product/11.2.0.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0.2.0/db_1/dbstart
EOF

chmod +x /etc/rc.d/rc.local

以上就oracle11g的静默安装了。
2019.3.29 V1


富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善