OPEN 欧拉 x86操作系统Oracle数据库安装过程
1、数据盘挂载,提供的服务器是初始的服务器,数据盘没挂载,先进行手动挂载。
具体操作如下: fdisk /dev/vdb、进去n 增加分区
然后p选项
分区号默认直接回车
连续两次回车到如下步骤
然后输入w
执行pvcreate /dev/vdb1 vgcreate vgdata /dev/vdb1
执行 lvcreate -L 499G -n datalv vgdata
执行 lvdisplay |grep -C 5 datalv
执行 mkfs.xfs /dev/vgdata/datalv
执行blkid
执行blkid |grep datalv |awk '{print $2}'
复制id bfa8b4b9-89b7-4791-bf96-fb9308fbe429(系统生成的uuid)
执行echo UUID="bfa8b4b9-89b7-4791-bf96-fb9308fbe429" /data xfs defaults 0 0 >> /etc/fstab
看最终打算挂载到哪个目录下,就把/etc/fstab中/data改成那个目录名
我这边因为是安装oracle专用的服务器所以按教程直接创建一个apps目录,将目录挂过去。
执行mount /apps
到此数据盘挂载就好了。
2、下面开始数据库的安装
首先确认一下yum是否可用,安装依赖最好使用yum进行安装,手动安装会有很多问题,很多内网环境的服务器是有本地yum源的,会省事很多。
1)安装依赖
yum install libnsl libnsl2-devel libaio-devel libcap-devel xorg-x11-utils xauth gcc make libstdc++-devel sysstat smartmontools glibc-compat-2.17
2)下载安装低版本的libaio包;libaio版本太高,会造成编译错误 查看libaio1库版本不能大于0.3.109
[oracle\@s3 install]\$ rpm -qa libaio
libaio-0.3.110-12.el8.x86\_64
查看欧拉操作系统版本
[oracle\@localhost bin]\$ cat /etc/os-release
NAME="openEuler"
VERSION="22.03 (LTS-SP1)"
ID="openEuler"
VERSION\_ID="22.03"
PRETTY\_NAME="openEuler 22.03 (LTS-SP1)"
ANSI\_COLOR="0;31"
下载
wget <http://mirrors.ustc.edu.cn/centos/7.9.2009/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm>
备份原来的libaio.so.1
mv /usr/lib64/libaio.so.1 /usr/lib64/libaio.so.120240103
解压
rpm2cpio libaio-0.3.109-13.el7.x86\_64.rpm |cpio -idmv
把解压后的文件拷贝到/usr/lib64下
cp -r /root/lib64/libaio.so.1 /usr/lib64
cp -r /root/lib64/libaio.so.1.0.1 /usr/lib64
执行安装
rpm -ivh libaio-0.3.109-13.el7.x86\_64.rpm --force --nodeps
3)### 使用自定义的简单的ld脚本来替换系统安装的ld
rm /usr/bin/ld
touch /usr/bin/ld
chmod a+rx /usr/bin/ld
编辑内容,并执行
vim /usr/bin/ld
#!/bin/sh
usr/bin/ld.bfd -L/opt -laio $\*
sh /usr/bin/ld
4)### 修改系统时间
[root\@localhost \~]# date -s "2024-01-11 11:25:40"
[root\@localhost \~]# hwclock -w
5)### 修改host,绑定主机名
[root\@localhost \~]# hostname
localhost.localdomain
[root\@localhost \~]# vim /etc/hosts
192.168.9.138 localhost.localdomain
6)### 关闭selinux,设置SELINUX= enforcing 为SELINUX=disabled
setenforce 0 vim /etc/selinux/config
命令方式:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
7)### 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
8)### 添加oinstall 、dba 组,新建oracle用户并加入oinstall、dba组中
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
[root\@localhost \~]# id oracle
9)### 修改内核参数
[root\@localhost db]# vim /etc/sysctl.conf
(清空原来内容再添加)内容如下:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
让参数生效:
/sbin/sysctl -p
10)### 配置Oracle用户参数
[root\@localhost /]# 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
11)### 修改/etc/pam.d/login 文件
[root\@localhost \~]# vim /etc/pam.d/login
(在文件末尾添加)内容如下:
session required /lib64/security/pam\_limits.so
session required pam\_limits.so
12)### 修改/etc/profile 文件
[root\@localhost \~]# vim /etc/profile
在如下位置添加: …… unset i unset -f pathmunge
if \[ \$USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
执行source /etc/profile使配置生效 12)### 创建安装目录app&&静默安装目录etc
[root\@localhost home]# mkdir -p /apps/oracle/app/
[root\@localhost home]# mkdir -p /apps/oracle/etc/
[root\@localhost home]# chown -R oracle:oinstall /apps/oracle
[root\@localhost home]# chmod 775 /apps/oracle
13)### 上传oracle安装包到:/apps/oracle/app/下,并解压,会生成一个database目录
unzip p13390677\_112040\_Linux-x86-64\_1of7.zip
unzip p13390677\_112040\_Linux-x86-64\_2of7.zip
必须使用VIP加过补丁的版本,官网下载的白嫖版本安装会有问题 拷贝/apps/oracle/app/database/response的.rsp文件到/apps/oracle/etc/目录下
14)### 添加环境变量
切换oracle用户
su oracle
编辑环境变量,并生效
[oracle\@localhost \~]$ vim /home/oracle/.bash_profile
[oracle@localhost ~]$ source .bash\_profile
内容如下:
PATH=$PATH:$HOME/.local/bin:\$HOME/bin
# oracle安装目录
export ORACLE\_BASE=/apps/oracle/app
export ORACLE\_HOME=\$ORACLE\_BASE/product/11.2.0
# oracle实例SID名称
export ORACLE\_SID=xwtechdb
export ORACLE\_TERM=xwtechdb # 同SID
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD\_LIBRARY\_PATH=\$ORACLE\_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS\_LANG=AMERICAN\_AMERICA.AL32UTF8
export ORACLE\_UNQNAME=xwtechdb # 同SID
export PATH=$ORACLE_HOME/bin:$PATH
export PATH
export SQLPATH=/apps/oracle/labs
15)### 编辑/apps/oracle/etc/目录下db_install.rsp(根据实际编写)
oracle.install.responseFileVersion=/oracle/install/rspfmt\_dbinstall\_response\_schema\_v11\_2\_0
oracle.install.option=INSTALL\_DB\_SWONLY
ORACLE\_HOSTNAME=localhost
UNIX\_GROUP\_NAME=oinstall
INVENTORY\_LOCATION=/apps/oracle/app/oraInventory
SELECTED\_LANGUAGES=en,zh\_CN
ORACLE\_HOME=/apps/oracle/app/product/11.2.0
ORACLE\_BASE=/apps/oracle/app
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.DBA\_GROUP=dba
oracle.install.db.OPER\_GROUP=oinstall
oracle.install.db.config.starterdb.globalDBName=xwtecdb
oracle.install.db.config.starterdb.SID=xwtecdb
oracle.install.db.config.starterdb.characterSet=AL32UTF8
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
DECLINE\_SECURITY\_UPDATES=true
15)### 安装数据库
在路径:/apps/oracle/app/database下执行命令
./runInstaller -silent -force -responseFile /apps/oracle/etc/db\_install.rsp -ignorePrereq
切换root用户执行(有时候可能只有一个root.sh,也是正常的)
[root@localhost app] sh /apps/oracle/app/oraInventory/orainstRoot.sh
[root@localhost database]$ sh /apps/oracle/app/product/11.2.0/root.sh 16)### 配置监听文件,并执行安装
编辑/apps/oracle/etc/目录下netca.rsp
[oracle@localhost database]$ vim /apps/oracle/etc/netca.rsp
(文件末尾添加)
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /apps/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/apps/oracle/app/product/11.2.0/bin/lsnrctl start LISTENER # 实际安装目录
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
安装:
cd /apps/oracle/app/product/11.2.0/bin
netca /silent /responsefile /apps/oracle/etc/netca.rsp
17)### 启动监听
先查看lsnrctl文件大小是否为0,如果为0,考虑lib64.so.1文件是否安装低版本
[oracle\@localhost bin]$ ls -l lsnrctl -rwxr-x--x 1 oracle oinstall 158440 Jan 3 13:53 lsnrctl
[oracle@localhost bin]$
启动监听
[oracle\@localhost bin]\$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 03-JAN-2024 14:15:03
Copyright (c) 1991, 2013, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
18)### 静默建库
编辑文件:
vim /apps/oracle/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "xwtechdb" #数据库的名字,与环境变量配置保持一致\
SID = "xwtechdb" #对应的实例名字,与环境变量配置保持一致\
SYSPASSWORD = "sysdba" #SYS管理员密码\
SYSTEMPASSWORD = "sysdba" #SYSTEM管理员密码\
SYSMANPASSWORD = "sysdba"
DBSNMPPASSWORD = "sysdba"
CHARACTERSET = "ZHS16GBK"
[ADDINSTANCE]
DB_UNIQUE_NAME = "xwtechdb" #数据库的名字,与环境变量配置保持一致
[DELETEINSTANCE]
DB_UNIQUE_NAME = "xwtechdb" #数据库的名字,与环境变量配置保持一致
INSTANCENAME = "xwtechdb" #数据库的名字,与环境变量配置保持一致
执行建库命令:
cd /apps/oracle/app/product/11.2.0/bin
dbca -silent -responseFile /apps/oracle/etc/dbca.rsp
19)### 登录查看
[oracle@localhost bin]\$ sqlplus / as sysdba
SQL\*Plus: Release 11.2.0.4.0 Production on Fri Jan 12 13:49:22 2024
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
SQL>
SQL>
SQL> startup ( 默认安装好,启动数据库,无需再自己启动!!!)
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL>
连接数据库时有可能数据库环境变量还未生效
先exit再执行su - oracle使配置的环境变量生效一下。
顺利的话2个小时应该能弄好。