β

Linux进阶16:Linux下Oracle静默安装及配置

LearnIT 51 阅读

本文介绍CentOS6.9下Oracle 11gr2的静默安装。

环境要求

本文CentOS6.9采用最小化(Minimal)的方式安装,2个物理CPU,每个2线程,2G内存,60G硬盘,2G的Swap,30G的 / 目录,28G的 /home 目录

软件包安装

配置Yum源,可以参考 Linux进阶09:CentOS的Yum库设置
安装软件包。

$ sudo yum install binutils compat-libcap1 compat-libstdc++-33 \
gcc gcc-c++ glibc glibc glibc-devel glibc-devel ksh libgcc \
libstdc++ libstdc++-devel libaio libaio-devel make sysstat unzip -y

新建用户和组

新建组 oinstall dba ,以及 oracle 用户。

$ sudo groupadd oinstall
$ sudo groupadd dba
$ sudo useradd -g oinstall -G dba oracle
$ sudo passwd oracle

修改内核参数

/etc/sysctl.conf 最后一行添加如下内容。

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

执行 sudo sysctl -p 使内核参数生效。

调整会话限制

/etc/pam.d/login 最后一行添加如下内容。

session    required     pam_limits.so

限制设置

/etc/security/limits.conf 最后一行添加如下内容。

oracle        soft    nproc    8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536

添加IP地址到host

/etc/hosts 中明确添加域名与本机IP地址的映射。

# hostname
CentOS6
# vi /etc/hosts
192.168.80.6 CentOS6

新建文件

$ sudo vi /etc/oraInst.loc
inventory_loc=/home/oracle/oracle/oraInventory
inst_group=oinstall

安装准备

切换到 oracle 用户,本步骤后所有操作均为 oracle 用户。
新建oracle文件夹,作为软件安装目录。

$ su - oracle
$ mkdir oracle

修改环境变量,并生效。

$ vi ~/.bash_profile
export PATH=$PATH:/home/oracle/oracle/product/11gr2/dbhome_1/bin
export ORACLE_HOME=/home/oracle/oracle/product/11gr2/dbhome_1
export ORACLE_SID=higoge
export ORACLE_UNQNAME=$ORACLE_SID
$ source ~/.bash_profile

安装

下载 linux.x64_11gR2_database_1of2.zip 以及 linux.x64_11gR2_database_2of2.zip ,并进行解压和安装(将下载地址复制到迅雷后即可下载,无需登录,下载后改名即可)。本文解压到 /home/oracle/backup 目录下。

$ cd ~/backup
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
$ cd database
$ ./runInstaller -silent -debug -force -ignorePrereq \
DECLINE_SECURITY_UPDATES=true \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/home/oracle/oracle/oraInventory \
ORACLE_HOME=/home/oracle/oracle/product/11gr2/dbhome_1 \
ORACLE_BASE=/home/oracle/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.EEOptionsSelection=true \
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0 \
oracle.install.db.DBA_GROUP=dba \
oracle.install.db.OPER_GROUP=dba \
oracle.install.db.isRACOneInstall=false

执行到 [OUISetupDriver.JobExecutorThread] [ 2018-05-08 01:32:36.271 CST ] [UnixSystem.getCSSConfigType:2387] configType=null 会出现假死状态,请继续等待,建议新起一个窗口使用 top 命令监控下。
出现以下信息表示成功。

The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run

/home/oracle/oracle/product/11gr2/dbhome_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.

root 用户执行如下脚本,或直接使用 sudo 执行。

$ sudo /home/oracle/oracle/product/11gr2/dbhome_1/root.sh

启动监听

$ netca /silent /responsefile /home/oracle/backup/database/response/netca.rsp

报错, Listener start failed. 以及 The exit code is 1
此时会生成 listener.ora ,对此文件进行编辑,修改为本机IP地址。

$ vi /home/oracle/oracle/product/11gr2/dbhome_1/network/admin/listener.ora
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.6)(PORT = 1521))

再次运行,成功。

$ netca /silent /responsefile /home/oracle/backup/database/response/netca.rsp

会有 Oracle Net Services configuration successful. The exit code is 0 字样。
启动服务,并查看状态。

$ lsnrctl start
$ lsnrctl status

启动端口是 1521

配置数据库

$ cp ~/backup/database/response/dbca.rsp ~
vi ~/dbca.rsp
GDBNAME = "higoge.CentOS6" # 全局数据库的名字=SID+主机域名
SID="higoge" # SID
CHARACTERSET="AL32UTF8" # 编码
NATIONALCHARACTERSET="UTF8" # 编码
SYSPASSWORD = "LearnIT"    # 密码
SYSTEMPASSWORD = "LearnIT"  # 密码

静默安装数据库。

$ dbca -silent -responseFile ~/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/home/oracle/oracle/cfgtoollogs/dbca/higoge/higoge.log" for further details.

创建用户

$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup
...
Database mounted.
Database opened.

SQL> create user jeremy identified by learnit default tablespace USERS temporary tablespace TEMP profile DEFAULT;
SQL> grant connect to jeremy;
SQL> grant resource to jeremy;
SQL> grant create any procedure to jeremy;
SQL> grant create any view to jeremy;
SQL> grant debug connect session to jeremy;
SQL> grant unlimited tablespace to jeremy;

说明:创建用户 jeremy ,密码 learnit ,默认表空间 USERS ,临时表空间 TEMP ,概要文件 DEFAULT 。角色权限为 connect resource 。系统权限为 create any procedure create any view debug connect session unlimited tablespace

远程登录

使用PL/SQL,登录数据库为 (description=(address=(protocol=tcp)(host=192.168.80.6)(port=1521))(connect_data=(sid=higoge))) ,连接为 Normal
使用Navicat Premium,登录SID为 higoge ,其他信息输入即可。

自启动服务

每次服务器重启后,都需要手动执行 lsnrctl start 以及使用 sqlplus 连接数据库后,执行 startup ,可以编写自启动脚本,加入到系统 service 中。
/etc/oratab 中, higoge:/home/oracle/oracle/product/11gr2/dbhome_1:N 改为 higoge:/home/oracle/oracle/product/11gr2/dbhome_1:Y
/home/oracle/oracle/product/11gr2/dbhome_1/bin/ 下的 dbstart dbshut 中, ORACLE_HOME_LISTNER=$1 改为 $ORACLE_HOME

#ORACLE_HOME_LISTNER=$1
ORACLE_HOME_LISTNER=$ORACLE_HOME

root 用户新建 /etc/init.d/oracledb 文件,内容如下。

#!/bin/bash
#
# chkconfig: 345 10 90
# description: Oracle auto start-stop script. Edit by higoge.
# /etc/init.d/oracledb
#
export ORACLE_HOME=/home/oracle/oracle/product/11gr2/dbhome_1/
export ORACLE_SID=higoge
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR=oracle

# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
touch /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
****)
echo "Usage: service oracledb start|stop|restart|reload"
exit 1
esac
exit 0

配置权限

$ sudo chmod 755 /etc/init.d/oracledb
$ sudo chkconfig oracledb on

重启服务器验证即可。

如果本文对你有所帮助,请 小额赞助
~~ EOF ~~

本文介绍CentOS6.9下Oracle 11gr2的静默安装。

作者:LearnIT
跟汪汪学挨踢
原文地址:Linux进阶16:Linux下Oracle静默安装及配置, 感谢原作者分享。

发表评论