本教程的前段部分,安装的环境搭建在下面查看:
《centos 7.6 安装Oracle 11g r2之一-安装环境设置》
本篇文章文章接着上面讲,
1.创建Oracle 安装目录
mkdir -p /data/oracle/ #在data文件夹下面创建APP文件夹
chown -R oracle:oinstall /data/oracle/ #将文件夹用户组和用户,oinstall组,Oracle用户。
chmod -R 775 /data/oracle/ #修改文件夹权限775 775指的是只有拥有者和组用户能够读写,其他用户只能读
2.上传安装文件
上传文件到centos7 有多种办法:
第一种,使用ftp,建议使用pure-ftpd软件。使用方法如下:
《CentOS 7.6 安装pure-ftp搭建Ftp服务器》
第二种,使用利用ssh使用WinSCP来上传文件,这种方法简单,操作起来也简单。
我们采用第二种方法。
首先,在软件建立连接。完成后点击登陆。
然后,出现添加密钥界面点击是
最后,将文件上传至新建文件夹。
这样,文件就传输完成。
3.配置Oracle用户环境变量
在文件/home/oracle/.bash_profile里添加下面内容(具体值根据实际情况修改)
umask 022 #Umask 为022表示默认创建新文件权限为755,也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写)
export ORACLE_HOSTNAME=oracle #设置主机名
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/ #oracle数据库路径
export ORACLE_SID=ORCL #oracle启动数据库实例名
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH #添加系统环境变量
export LC_ALL="en_US"
export LANG="en_US" #防止安装过程出现乱码
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" #设置Oracle客户端字符集
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" #设置时间格式
环境变量生效由两种办法:
第一种,重新启动
reboot
第二种,直接生效
source /home/oracle/.bash_profile
4. 解压两个Oracle数据库文件
unzip -q linux.x64_11gR2_database_1of2.zip -d /data #解压到新建的data文件夹
unzip -q linux.x64_11gR2_database_2of2.zip -d /data
mkdir -p /data/etc
cp /data/database/response/* /data/etc/
在/data/etc/db_install.rsp修改以下变量的值
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracledb
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.dbcontrol.emailAddress=zabbx@www.zabbx.cn
5.开始安装Oracle
使用下面命令安装Oracle。
su - oracle
cd /data/database
./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq
在这一步,可能会出现使用su - oracle 切换用户的时候命令提示符变成bash-4.2
可通过下面方法解决:
《centos7.6 安装Oracle切换用户时变成bash-4.2$的解》
安装期间可以使用tail命令监看oracle的安装日志
#日志文件名称根据自己的实际执行时间变更
tail -f /data/oracle/inventory/logs/installActions2020-01-21_09-11-27PM.log
具体的安装日志名称是你Oracle日期,自己气看吧!
如果出现下面信息,就已经正面安装完成。
6.使用root用户执行脚本
这两条命令是,上一步骤安装完提示操作
su - root
sh /data/oracle/inventory/orainstRoot.sh
sh /data/oracle/product/11.2.0/root.sh
这个是做什么用的?
/data/oracle/inventory/orainstRoot.sh
- 添加grid用户及oinstall组对Oracle Central Inventory 目录的读写权限。
- 删除其它用户组对该目录的读、写、执行权限。
- 创建/etc/oraInst.loc文件。
/data/oracle/product/11.2.0/root.sh
- 复制grid用户的$ORACLE_HOME/bin下的oraenv、dbhome、coraenv可执行程序到/usr/local/bin路径下
- 创建/etc/oratab文件
- 创建grid用户的OCR keys文件
- 启动ohasd守护进程,并且将ohasd守护进程的启动文件写入到/etc/inittab文件中,以便于ohasd守护进程随着操作系统的启动而启动。如果是Oracle Enterprise Linux 6及以上版本的操作系统的话,则将该配置信息写入到/etc/init/oracle-ohasd.conf的独立配置文件中。
7.配置监听程序
su - oracle
netca /silent /responsefile /data/etc/netca.rsp
- 在这一步,可能执行netca会提示:bash: netca: 未找到命令。
- 解决办法:进入home/oracle 然后执行:source .bash_profile
查看监听端口
netstat -tnpl | grep 1521
注:新的电脑不一定能够执行netstat命令,需要自己安装!
安装netstat
yum -y install net-tools
8.静默创建数据库
编辑应答文件/data/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
执行静默建库
su - oracle
dbca -silent -responseFile /data/etc/dbca.rsp
执行过程如下
查看进程
ps -ef | grep ora_ | grep -v grep
执行结果
查看监听状态
lsnrctl status
#结果
数据库实例创建成功!
9.登录数据库
su - oracle
sqlplus / as sysdba
select status from v$instance;
执行select时,全出现以下情况
解决方式:
输入startup,
#startup的输出提示:
根据提示,将data/oracle/admin/orcl/pfile目录下的init.ora.xxx形式的文件复制改名成报错目录的文件initOracle.ora(根据startup提示)即可
cp /data/oracle/admin/orcl/pfile/init.ora.0222020235110 /data/oracle/product/11.2.0/dbs/initORCL.ora
再次执行startup:
查看数据库编码
select userenv('language') from dual;
输出结果:
查看数据库版本
select * from v$version;
输出结果:
激活scott用户
alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;
10. 设置Oracle开机启动
修改/data/oracle/product/11.2.0/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改/data/oracle/product/11.2.0/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改vi /etc/oratab
orcl:/data/oracle/product/11.2.0:Y
新建文件/etc/rc.d/init.d/oracle
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
给/etc/init.d/oracle添加执行权限
chmod +x /etc/init.d/oracle
开机启动oracle
systemctl enable oracle
或
chkconfig oracle on
给启动文件加权限
cd /data/oracle/product/11.2.0/bin/
chmod 6751 oracle
cd /var/tmp
chown -R oracle:oinstall .oracle
11. 防火墙配置放开Oracle的端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
评论区