国产操作系统HopeStage,离线静默安装oracle11g(详细步骤)

        HopeStage是润和软件的一款企业级操作系统,是基于华为 openEuler开源社区构建的。安装过的小伙伴一定知道,openEuler和centos极其相似(确切的说,应该是Centos8),所以接下来的安装和centos下的也是极为相似的。各位大佬可以跳着看。

环境准备

首先安装一个虚拟机,官网下载的镜像,标准安装,这里不在详细赘述

虚拟机配置为4G内存,2核4线程 35G磁盘

启动有点慢,感觉很厚重。

 下面正式开始安装

配置本地yum源

这里是以内网的前提下进行的oracle安装,如果有外网可以直接使用网卡yum源

  • 创建目录
mkdir /mnt/cdrom

  • 挂载(其实装完虚拟机已经挂载在media上了,个人习惯)
 mount /dev/sr0 /mnt/cdrom/

 启动时没有连接镜像,也可以上传一份到服务器,然后挂载,这里不在细说。

  • 备份原有yum.repos.d目录
mv /etc/yum.repos.d /etc/yum.repos.d.bak

  •  重建yum.repos.d目录
 mkdir /etc/yum.repos.d

  •  新建repo文件并写入内容
echo '[HopesStage-local.repo]
name=kylin-local
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HopeStage' > /etc/yum.repos.d/HopesStage-local.repo

  • 清空原缓存信息
yum clean all

  • 加载缓存
yum makecache

  •  可以测试下是否成功了
yum list

至此本地yum源已经配置完成。


安装依赖

查看依赖

rpm -q binutils compat-libcap1 compat-libstdc elfutils elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst xorg-x11-xauth make sysstat zip unzip

 安装依赖

根据上面的提示,安装缺少的部分。直接使用

yum install -y binutils expat gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst xorg-x11-xauth make sysstat zip unzip是安装不上的,这个有点奇怪。我们单独安装,缺啥补啥。

  • 安装gcc-c++
yum install -y  gcc-c++

安装libaio-devel

yum install -y libaio-devel

  •  安装sysstat
yum install -y sysstat

重点来了,这里有些是需要手动安装的依赖,又由于没找打HopeStage官方的镜像库,直接从centos8的仓库下载下来安装了。compat-libcap1、elfutils-libelf、compat-libstdc、ksh虽然也没有,但是好像不影响安装,或者有什么功能没用到就没报错,建议还是装上。需要安装的是libnsl,否则后面会报错。

这里分享下我用到的版本

点击这里下载 https://download.csdn.net/download/u011048844/87740410

  • 安装libnsl

 libnsl-2.28-72.el8.x86_64.rpm

rpm -ivh libnsl-2.28-72.el8.x86_64.rpm --nodeps --force

创建用户和用户组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -p oracle

 系统参数配置

 修改内核参数

  • 编辑sysctl.conf
 vi /etc/sysctl.conf

 加入内容如下

#Oracle

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

fs.aio-max-nr = 1048576

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

fs.file-max = 6815744

vm.min_free_kbytes = 524288

vm.swappiness = 100

  • 配置生效
 sysctl -p

  • 修改用户限制 
vi /etc/security/limits.conf

 加入如下内容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 10240

oracle hard nofile 65536

oracle soft stack 10240

 vi /etc/pam.d/login

加入如下内容

session    required     pam_limits.so

vi /etc/profile

加入如下内容

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

  •  配置生效
 source /etc/profile

 关闭selinux

因为是静默安装,所以不需要图形界面了,设置为disabled

vi /etc/selinux/config

host配置

vi /etc/hosts

 加入如下内容

192.168.139.139(自己的IP)  template(主机名,可以用 hostname 查询)

 GCC版本

由于HopeStage系统(与Centos8类似)安装的gcc版本过高(centos7上安装就不需要这一步),虽然提示安装成功,但是无法启动。所以这里提前做一些调整。

  • 上传libpthread_nonshared.a

  •  切换到文件所在目录,我这里是/app,按实际的来就好
cd /app/
  • 复制libpthread_nonshared.a到/usr/lib64/下
cp libpthread_nonshared.a /usr/lib64/

  • 赋予权限
chmod 755 /usr/lib64/libpthread_nonshared.a

  • 切换目录
cd /etc/alternatives

 

  • 建立软连接
ln -sf /usr/bin/ld.gold ld


 安装ORACLE

 漫长的准备工作结束了,现在正是开始安装oracle

创建base目录

这里要说明的是,小编并没有使用常规的/u01,也没有单独的分区。

mkdir /oracle

 上传oracle安装包

这里就不贴连接了,自行下载吧。我这里使用的是11.0.2.4的包

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

 调整文件所属及权限

chown -R oracle:oinstall /oracle
chmod -R 775 /oracle

 创建oraInst.loc

vi /etc/oraInst.loc

 加入如下内容,注意调整路径哦

inst_group=oinstall

inventory_loc=/oracle/oraInventory

修改权限

 chown oracle:oinstall /etc/oraInst.loc
 chmod 664 /etc/oraInst.loc

 解压文件

  • 切换用户 ,中间的横杠不能少!!!,不然改的环境变量有问题。上面所有操作都是在root用户下进行的,后面有用户切换操作,需要注意
su - oracle

  • 切换目录
cd /oracle/

  •  解压文件
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

 设置环境变量

vi ~/.bash_profile

 加入如下内容

export PS1='[\h:\u:$PWD]$'

export ORACLE_BASE=/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

#数据库实例,后续创建数据库时需要按照该实例创建

export ORACLE_SID=husolar

export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORACLE_TERM=vt100

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"

export ORA_NLS11=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:/usr/lib

export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib

export CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export TEMP=/tmp

export TMP=/tmp

export TMPDIR=/tmp

stty erase ^H

stty erase ^?      

umask 022

  •  生效配置文件
source ~/.bash_profile

 响应文件设置

 mkdir /oracle/etc
cp /oracle/database/response/* /oracle/etc/
 chmod 700 /oracle/etc/*.rsp

 编辑文件

vi /oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY

安装类型

ORACLE_HOSTNAME=template

主机名称(hostname查询,这里要注意,主机名要在 /etc/hosts 文件中配置好ip对应关系,否则安装会报错)

UNIX_GROUP_NAME=oinstall

安装组

INVENTORY_LOCATION=/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN,zh_TW

ORACLE_HOME=/oracle/product/11.2.0/db_1

ORACLE_BASE=/oracle

oracle.install.db.InstallEdition=EE

oracle版本

oracle.install.db.EEOptionsSelection =false

oracle.install.db.DBA_GROUP=dba

dba用户组

oracle.install.db.OPER_GROUP=oinstall

oper用户组

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

数据库类型

oracle.install.db.config.starterdb.globalDBName=husolar

这里是用户自己定义的SID,下面配置保持一致

oracle.install.db.config.starterdb.SID=husolar

SID(这里是用户自己定义的SID,下面配置保持一致)

oracle.install.db.config.starterdb.memoryLimit=1024

自动管理内存的内存(M)

oracle.install.db.config.starterdb.password.ALL=husolar@123

设定所有数据库默认用户使用同一个密码,自建用户不受影响

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

DECLINE_SECURITY_UPDATES=true

设置安全更新(这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。)

 执行安装

  • 切换目录
cd /oracle/database/

  •  静默安装
./runInstaller -silent -ignorePrereq -responseFile /oracle/etc/db_install.rsp

可以另外开一个窗口查看日志,当前窗口不能关!!!。

tail -f /oracle/oraInventory/logs/installActions2023-04-28_03-24-32PM.log

过一会儿,提示安装成功了。并且提示需要用root用户执行一个脚本

 直接在新开的窗口执行

sh /oracle/product/11.2.0/db_1/root.sh

至此数据库软件已经安装成功了 。接下来配置数据库

数据库配置

用户切换为oracle,切换目录

su - oracle
cd /oracle/product/11.2.0/db_1/dbs

 创建ora文件

cat init.ora > init$ORACLE_SID.ora

其实就是创建一个文件名为inithusolar.ora的文件,husolar是前面配置的SID, 内容为init.ora文件里的内容

 编辑文件

vi inithusolar.ora

 

 修改内容如下

db_name='husolar'

memory_target=1G

processes = 300

audit_file_dest='/oracle/admin/husolar/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='/oracle/flash_recovery_area/husolar'

db_recovery_file_dest_size=2G

diagnostic_dest='/oracle'

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

# You may want to ensure that control files are created on separate physical

# devices

control_files = (ora_control1, ora_control2)

compatible ='11.2.0'

创建目录 

mkdir -p /oracle/admin/husolar/adump
mkdir -p /oracle/flash_recovery_area/husolar
mkdir -p /oracle/oradata/husolar

 编辑建库脚本

vi /oracle/script.sql

添加内容如下, 这里数值做了减少,虚拟机资源不够。

CREATE DATABASE husolar

USER SYS IDENTIFIED BY sys

USER SYSTEM IDENTIFIED BY system

LOGFILE

GROUP 1 ('/oracle/oradata/husolar/redo01.log') SIZE 50M,

GROUP 2 ('/oracle/oradata/husolar/redo02.log') size 50M,

GROUP 3 ('/oracle/oradata/husolar/redo03.log') size 50M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 200

MAXDATAFILES 10000

MAXINSTANCES 1

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

datafile '/oracle/oradata/husolar/system01.dbf' size 1024M REUSE

EXTENT MANAGEMENT LOCAL

sysaux datafile '/oracle/oradata/husolar/sysaux01.dbf' size 1024M REUSE

default temporary tablespace temp

tempfile '/oracle/oradata/husolar/temp01.dbf' size 1024M REUSE

undo tablespace UNDOTBS1

datafile '/oracle/oradata/husolar/undotbs01.dbf' size 1024M REUSE

AUTOEXTEND off;

启动

sqlplus / as sysdba
startup nomount;

执行脚本 

@/oracle/script.sql;

@/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql;

 

 继续执行,接下来这个脚本耗时比较长,可能也会有些报错,并不影响,耐心等待。

@/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql;

 

继续执行脚本

@/oracle/product/11.2.0/db_1/rdbms/admin/utlrp.sql;

 这里做个切换

conn system/system;

 

 接着执行脚本,会有报错,没关系

@/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql;

  •  退出后重新进
quit
 sqlplus / as sysdba

  •  重启
shutdown immediate;
startup;

  •  退出
quit

 监听配置

修改listener.ora

vi /oracle/product/11.2.0/db_1/network/admin/listener.ora

添加内容如下

#Generated by oracle configuration tools.

SID_LIST_LISTENER=

    (SID_LIST=

        (SID_DESC=

          (GLOBAL_DBNAME= husolar)

          (ORACLE_HOME=/oracle/product/11.2.0/db_1)

          (SID_NAME=husolar)

        )

    )

LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=template)(PORT=1521)))

ADR_BASE_LISTENER = /oracle

 修改tnsnames.ora

vi /oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

添加内容如下

# Generated by Oracle configuration tools.

husolar =

    (DESCRIPTION =

        (ADDRESS_LIST =

            (ADDRESS = (PROTOCOL = TCP)(HOST = template)(PORT = 1521))

        )

        (CONNECT_DATA =

            (SID = husolar)

        )

)

 启动监听

lsnrctl start

 配置开机启动

这里需要采用systemctl的方式,虽然centos7时还可以通过rc.local方式配置(添加可执行权限),但是在HopeStage中尝试后,没有成功。

  • 设置允许开机启动
vi /etc/oratab

 添加内容如下

husolar:/oracle/product/11.2.0/db_1:Y
  •  切换为root用户(注销),或者重新打开一个窗口也可以
exit

  •  编写启动脚本
vi /usr/bin/oracle.sh

  •  调整权限
chmod 777 /usr/bin/oracle.sh

  • 编写oracle11g.service启动脚本
vi /etc/systemd/system/oracle11g.service

 添加内容如下

[Unit]

Description=Oracle11g

After=syslog.target network.target

[Service]

LimitMEMLOCK=infinity

LimitNOFILE=65535

Type=oneshot

RemainAfterExit=yes

User=oracle

Environment="ORACLE_HOME=/oracle/product/11.2.0/db_1"

ExecStart=/usr/bin/oracle.sh

[Install]

WantedBy=multi-user.target

  • 启用oracle11g服务
systemctl enable oracle11g

 到这里,数据安装配置已经基本结束了。

接下来我们做一些其他配置。

防火墙设置

启动防火墙

systemctl start firewalld

开放1521端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent

重新加载

firewall-cmd --reload

当然要使用数据库,还需要用户和表空间。

用户和表空间

切换oracle用户并登录

su - oracle
sqlplus / as sysdba

 创建表空间

表空间大小、是否自动增长,亦或是建立多个表空间文件,请自行调整。

create tablespace husolar datafile '/oracle/oradata/husolar/husolar01.dbf' size 1024M;

 创建用户并指定表空间

create user husolar identified by husolar123 default tablespace husolar;

赋予权限

 简单粗暴,直接给dba权限

grant connect,dba to husolar;

  •  退出
quit

测试登录

sqlplus husolar/husolar123

 当然了,我们还是要用工具测试连接下的

 至此,全部结束,可以愉快的使用数据库了。

猜你喜欢

转载自blog.csdn.net/u011048844/article/details/130012991