麒麟armv10-sp3安装oracle19c
项目需要用arm的操作系统安装oracle,未找到一个完整的安装文档,dbca无法图形问题解决,特此整理
一、环境信息
CPU
操作系统
兼容性信息
二、安装准备
1、软件下载及兼容性信息
麒麟系统兼容性官网网站:麒麟生态
oracle安装包:https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_db_home.zip
oracle-database-preinstall-19c:Oracle Linux 7 (x86_64) Latest | Oracle, Software. Hardware. Complete.
oracle硬件要求:Server Hardware Checklist for Oracle Database Installation
2、设置hosts
###START-ORACL19C###
`hostname -I` `hostname` `hostname`
###END-ORACL19C###
EOF
3、规划swap
内存大于16G,swap要16G
dd if=/dev/zero of=/mnt/central/swapfile bs=1024 count=16M
mkswap /mnt/central/swapfile # 格式化 swap
chown root:root /mnt/central/swapfile
chmod 0600 /mnt/central/swapfile
swapon /mnt/central/swapfile # 激活 swap
swapon -s # 查看是否生效
vi /etc/fstab
/mnt/central/swapfile swap swap defaults 0 0##最好重启一下机器
4、关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
5、关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
6、配置环境变量
cat <<EOF >>~/.bash_profile
export ORACLE_HOSTNAME=`hostname`
export ORACLE_UNQNAME=myodb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=myodb
export PATH=/usr/bin:/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
EOF
7、配置yum
mount /usr/local/src/Kylin-Server-V10-SP3-General-Release-2303-ARM64.iso /mnt/cdrom/
cd /etc/yum.repos.d/
mkdir bak
mv kylin_aarch64.repo bak/
vi local.repo
[LocalRepo]
name=Local Repository
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0yum makecache
yum clean all
yum list
三、软件安装
1、上传传软件
mkdir /soft
#上传软件
sha256sum LINUX.ARM64_1919000_db_home.zip
#检查与官网是否一样
Oracle Database 19c for LINUX ARM (aarch64)
2、安装preinstall
oracle-database-preinstall-19c 这个工具会自动配置系统参数,创建 oracle 用户和组
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
安装提示的依赖
安装完如果提示有/etc/release我们强制安装
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm --nodeps
3、创建目录授权
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /data/oradata ### 数据的存储目录
chown -R oracle:oinstall /u01 /soft /data
chmod -R 775 /u01 /soft /data
passwd oracle#设置密码
4、图形化准备
第一步:安装软件包
yum install –y xorg-x11-xauth
yum install –y xterm # xterm是一款终端模拟器
第二步:修改配置文件
修改/etc/ssh/ssh_config, 将 ForwardX11 由no修改为yes
修改/etc/ssh/sshd_config,将 X11Forwarding 由no修改为yes
重启SSH服务:service sshd restart
5、设置编译工具
Oracle软件relink时,会到指定位置找ar和as工具,在CentOS 8上,虽然有这两个工具,但是位置不对,在Orace软件引用的位置创建符号链接:
mkdir -p /opt/rh/devtoolset-8/root/usr/bin/
cd /opt/rh/devtoolset-8/root/usr/bin/
ln -s /usr/bin/ar ar
ln -s /usr/bin/as as
6、配置libnsl.so.1的软连接
启动图形时会报缺失,详细了解可以参考:rhel8安装Oracle19c缺少libnsl如何解决 - 墨天轮
cd /usr/lib64
ln -s /u01/app/oracle/product/19.3.0/dbhome_1/lib/stubs/libnsl.so.2 libnsl.so.1
7、设置CV_ASSUME_DISTID参数
export CV_ASSUME_DISTID=OEL7.6
#由于在该版本的cvu_prereq.xml文件中只是写了oel支持,现在的操作系统是Kylin Linux Advanced Server,不在他的列表里面,因此提示该错误,解决方案参考:19.x:Database software installation failed with ” PRVG-0282 : failed to retrieve the operating system distribution ID ” (Doc ID 2894095.1),设置CV_ASSUME_DISTID解决该问题
8、解压软件
su - oracle
cd /soft
unzip LINUX.ARM64_1919000_db_home.zip -d $ORACLE_HOME
9、执行安装
[oracle@localhost dbhome_1]$ ./runInstaller
安装比较简单,按如上设置基本不会出问题,附上一张安装图
四、数据库创建
安装中遇到最大的问题就是创建数据库了,dbca图形启动一直卡住,静默安装直接闪退
日志报错,libsrvm19.so在link时异常
1、dbca安装
#备份home/lib目录下的libsrvm19.so
mv $ORACLE_HOME/lib/libsrvm19.so $ORACLE_HOME/lib/libsrvm19.so_bak
#拷贝oui目录下libsrvm19.so导lib目录
cp $ORACLE_HOME/oui/lib/aarch64/libsrvm19.so $ORACLE_HOME/lib/libsrvm19.so
dbca启动图形
#安装完成后避免环境异常替换回libsrvm19.so
rm -rf $ORACLE_HOME/lib/libsrvm19.so
mv $ORACLE_HOME/lib/libsrvm19.so_bak $ORACLE_HOME/lib/libsrvm19.so
整体创建与x86一样,不在截图赘述,附上一张安装完成截图
2、手工建库
dbca用如上可以解决,dbca如实在解决不了,或者体验手工建库可参考
1.1、创建目录
su - oracle
mkdir -p /u01/app/oracle/admin/myodb/adump
mkdir -p /u01/app/oracle/flashback
mkdir -p /data/oradata/myodb/datafile
mkdir -p/data/oradata/myodb/tempfile
mkdir -p/data/oradata/myodb/onlinelog
1.2、创建密码文件
cd $ORACLE_HOME/dbs
orapwd file=orapwhefeidb password=oracle
1.3、创建pfile
vi myodb.ora
myodb.__db_cache_size=754974720
myodb.__java_pool_size=16777216
myodb.__large_pool_size=16777216
myodb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
myodb.__pga_aggregate_target=2248146944
myodb.__sga_target=4194304000
myodb.__shared_io_pool_size=0
myodb.__shared_pool_size=3321888768
myodb.__streams_pool_size=33554432
*.audit_file_dest='/u01/app/oracle/admin/myodb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/data/oradata/myodb/control01.ctl','/data/oradata/myodb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_files=1000
*.db_name='myodb'
*.db_recovery_file_dest='/u01/app/oracle/flashback'
*.db_recovery_file_dest_size=107374182400
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=myodbXDB)'
*.event='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1'
*.memory_target=6442450944
*.open_cursors=300
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=2205
*.undo_tablespace='UNDOTBS1'
1.4、启动实例
sqlplus / as sysdba
#用pfile启动实例导nomount
startup nomount pfile='/home/oracle/myodb.ora';
#创建spfile
create spfile from pfile;
1.5、创建数据库
CREATE DATABASE myodb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/data/oradata/myodb/onlinelog/redo01a.log') SIZE 200M BLOCKSIZE 512,
GROUP 2 ('/data/oradata/myodb/onlinelog/redo02a.log') SIZE 200M BLOCKSIZE 512,
GROUP 3 ('/data/oradata/myodb/onlinelog/redo03a.log') SIZE 200M BLOCKSIZE 512
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 8192
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/data/oradata/myodb/datafile/system01.dbf'
SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SYSAUX DATAFILE '/data/oradata/myodb/datafile/sysaux01.dbf'
SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TABLESPACE users
DATAFILE '/data/oradata/myodb/datafile/users01.dbf'
SIZE 5M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/data/oradata/myodb/tempfile/temp01.dbf'
SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS1
DATAFILE '/data/oradata/myodb/datafile/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
1.6、脚本执行
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/utlrp.sql
@?/sqlplus/admin/pupbld.sql
#脚本说明:
#catalog.sql创建数据字典表的视图、励态性能视图和许多视图的公共同义词。授予PUBLIC对同义词的访问权限。
#catproc.sql运行PL/SQL 所需或与PL/SQL一起使用的所有脚本。
#utlrp.sql重新编译所有处于无效状态的PL/SQL模块,包括包、过程和类型。
#pupbld.sql SQL*Plus 需要,启用SQL*Plus以禁用用户命令。
#也可以用catctl.pl使用脚本运行catpcat.sql代替catalog.sql与catproc.sql
#catpcat.sql构建数据字典。
#该脚本使用catctl.pl程序运行(而不是使用SQL*Plus)并在内部运行脚本catalog.sql和catproc.sql并行进程,从而提高建数据字典的性能。
五、其他
使用Oracle11.2客户端连接Oracle 19c的时候,报错:
ORA-28040: No matching authentication protocol
ORA-28040: 没有匹配的验证协议
问题原因
原因客户端与服务器的没有匹配的认证协议
解决方案
1、在数据库服务器上的$ORACLE_HOME/network/admin/sqlnet.ora文件添加相应参数
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
重启监听
2、升级客户端版本