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.youkuaiyun.com/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
当然了,我们还是要用工具测试连接下的
至此,全部结束,可以愉快的使用数据库了。