银河麒麟v10 服务器 和统信20 1050e 服务器 安装oracle 19c实战(适配成功)

一、资源:

1、操作系统(二选一,我在适配时,两个环境都测试了)x86_64架构

        银河麒麟服务器版操作系统: Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso  自己下载吧银河麒麟v10下载(服务器版 桌面版) - 2021-09-24更新 - 掘金 (juejin.cn)

        统信服务器版操作系统:uniontechos-server-20-1050e-amd64.iso   下载路径 统信UOS生态社区 - 打造操作系统创新生态

2、oracle数据库oracle 19c :

LINUX.X64_193000_db_home.zip 

下载的地址 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-5462157.html"

 (unzip 不要加任何参数,且在服务器上进行解压,因为里面有对应的软连接)

3、其他rpm包(镜像源中没有的)

        compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

4、so文件

libpthread_nonshared.a  下载地址https://download.csdn.net/download/yy4545/85916420https://download.csdn.net/download/yy4545/85916420

要放到/usr/lib64/目录下,不然执行安装oracle时会报错:makefile /u01/app/oracle/19.0.0/dbhome_1/rdbms/lib/ins_rdbms.mk

/usr/bin/ld: 找不到 -lclntshcore

二、安装:

总体要做的内容

  • 1、主机文件配置
  • 2、系统参数配置
  • 3、依赖的包安装
  • 4、创建用户、组及目录、设置oracle 密码、配置环境变量(参数)
  • 5、解压安装包、安装oracle、创建数据库
  • 6、设置开机启动
  • 7、19c常用命令
  • 8、打补丁包(可选)

1、主机文件配置:

/etc/hosts 中添加 :ip地址  主机名   主机名

另外把ipv6的那一行给注释掉

hostname -I 是列出所有ip(除了127.0.0.1) 如果你有多个ip,请在下面的命令执行后,重新修改/etc/hosts 只保留一个ip。
cat >> /etc/hosts <

如下图:

 2、系统参数配置

加入系统参数/etc/sysctl.conf

cat >> /etc/sysctl.conf <

添加最大打开文件数等配置

cat >> /etc/security/limits.d/oracle-database-preinstall-19c.conf <

3、依赖的包安装

   先配置repo源

     先把安装使用的iso文件加载到cdrom(光驱)中,然后挂载到本地/mnt下

mount  /dev/cdrom   /mnt/

#查看挂载情况
df  -h  

  

安装依赖的包没有的包可以暂时忽略,使用的是dnf,也可以使用yum来安装,直接把dnf替换为yum即可 

dnf install -y bc \
 binutils \
 libnsl \
 compat-libstdc++-33 \
 elfutils-libelf \
 elfutils-libelf-devel \
 fontconfig-devel \
 gcc \
 gcc-c++ \
 glibc \
 glibc-devel \
 ksh \
 libaio \
 libaio-devel \
 libXrender \
 libXrender-devel \
 libX11 \
 libXau \
 libXi \
 libXtst \
 libgcc \
 librdmacm-devel \
 libstdc++ \
 libstdc++-devel \
 libxcb \
 make \
 net-tools  \
 nfs-utils  \
 python  \
 python-configshell  \
 python-rtslib  \
 python-six  \
 targetcli  \
 smartmontools \
 sysstat \
 unixODBC \
 unixODBC-devel

其中 compat-libstdc++ 需要自己从网上下载,或者去centos7源中找   名字为compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

##"单独复制安装包compat-libstdc++-33-3.2.3-72 服务器上,并执行下面命令开始安装"
dnf install -y ./compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

4、创建用户、组及目录、设置oracle 密码、配置环境变量(参数)

##### "创建新组和用户。"
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper 
###下面按需进行去掉注释,我安装时没有使用
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin
#groupadd -g 54330 racdba

### 设置组
useradd -u 54321 -g oinstall -G dba,oper oracle


##此步可以不做,
echo "设置oracle用户的密码为1qaz!QAZ  ,由于密码有大小写和最少8个字符限制,所以设置的比较复杂"
echo "1qaz!QAZ" |passwd --stdin oracle

### 创建安装目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /data/oradata    ### 数据的存储目录,最好使用单独挂载的磁盘,为了测试无所谓
chown -R oracle:oinstall /u01 /data
chmod -R 775 /u01 /data

配置oracle的环境变量

echo "创建脚本目录/home/oracle/scripts"
mkdir -p /home/oracle/scripts 
echo "创建脚本“setEnv.sh”文件,包含环境变量等"。
cat > /home/oracle/scripts/setEnv.sh <> /home/oracle/.bash_profile

创建启停脚本

echo "创建“start_all.sh”和“stop_all.sh”脚本用来启动/关闭服务。确保所有权和权限正确无误。
安装完成后,您把“/etc/oratab”中每个实例的重新启动标志设置为“Y”,后就可以使用该脚本了"
cat > /home/oracle/scripts/start_all.sh < /home/oracle/scripts/stop_all.sh <

把依赖的so文件复制到/usr/lib64/目录下

cp  /你的存放位置/libpthread_nonshared.a  /usr/lib64/libpthread_nonshared.a

5、解压安装包、安装oracle、创建数据库

解压时一定要用unzip,不要使用任何参数,且在服务器上进行解压,因为里面有对应的软连接;如果加了参数有概率导致lib下的.so不,导致安装异常

#root用户下
chown -R oracle:oinstall LINUX.X64_193000_db_home.zip

#并把文件cp到ORACLE_HOME下,我设置的oracle_home路径为:/u01/app/oracle/product/19.0.0/dbhome_1
cp LINUX.X64_193000_db_home.zip /u01/app/oracle/product/19.0.0/dbhome_1

#切换到oracle用户下
su - oracle
cd $ORACLE_HOME
#开始解压,一定不要加参数,静等解压完毕
unzip  LINUX.X64_193000_db_home.zip

上面完成后开始执行静默安装oracle 19c (oracle用户下操作)

su - oracle     #切换到oracle用户下
cd $ORACLE_HOME

 

# Fake Oracle Linux 7. 欺骗oracle 让他认为此为Oracle linux 否则会报错,因为oracle是基于#redhat的linux适配的

export CV_ASSUME_DISTID=OEL7.6

./runInstaller -ignorePrereq -waitforcompletion -silent                        \
    -responseFile ${ORACLE_HOME}/install/response/db_install.rsp               \
    oracle.install.option=INSTALL_DB_SWONLY                                    \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME}                                         \
    UNIX_GROUP_NAME=oinstall                                                   \
    INVENTORY_LOCATION=${ORA_INVENTORY}                                        \
    SELECTED_LANGUAGES=en,zh_CN                                                \
    ORACLE_HOME=${ORACLE_HOME}                                                 \
    ORACLE_BASE=${ORACLE_BASE}                                                 \
    oracle.install.db.InstallEdition=EE                                        \
    oracle.install.db.OSDBA_GROUP=dba                                          \
    oracle.install.db.OSBACKUPDBA_GROUP=dba                                    \
    oracle.install.db.OSDGDBA_GROUP=dba                                        \
    oracle.install.db.OSKMDBA_GROUP=dba                                        \
    oracle.install.db.OSRACDBA_GROUP=dba                                       \
    oracle.install.db.config.starterdb.characterSet=AL32UTF8                   \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false                                 \
    DECLINE_SECURITY_UPDATES=true


echo "等待最后两个root用户执行的脚本"
###  如果前面按照步骤操作的情况下,是比较顺利的。
### 有异常了也不用怕,看报错信息,慢慢排错就行。

创建数据库(oracle用户下操作)

su - oracle
cd $ORACLE_HOME

#启动监听
lsnrctl start


echo "静默模式创建数据库"
dbca -silent -createDatabase                                                   \
     -templateName General_Purpose.dbc                                         \
     -gdbname ${ORACLE_SID} -sid  ${ORACLE_SID} -responseFile NO_VALUE         \
     -characterSet AL32UTF8                                                    \
     -sysPassword SysPassword1                                                 \
     -systemPassword SysPassword1                                              \
     -createAsContainerDatabase true                                           \
     -numberOfPDBs 1                                                           \
     -pdbName ${PDB_NAME}                                                      \
     -pdbAdminPassword PdbPassword1                                            \
     -databaseType MULTIPURPOSE                                                \
     -memoryMgmtType auto_sga                                                  \
     -totalMemory 2000                                                         \
     -storageType FS                                                           \
     -datafileDestination "${DATA_DIR}"                                        \
     -redoLogFileSize 50                                                       \
     -emConfiguration NONE                                                     \
     -ignorePreReqs

   -characterSet AL32UTF8    数据库编码可以根据自己需要进行修改

静待数据库安装完毕。。。。。

6、设置开机启动

sed -i 's,'${ORACLE_SID}':.*$,'${ORACLE_SID}':'${ORACLE_HOME}':Y,g' /etc/oratab

cat << EOF >>  /etc/rc.d/rc.local
su oracle -lc "/home/oracle/scripts/start_all.sh"
su oracle -lc "lsnrctl start"
EOF

#为开机启动文件赋权
 chmod +x  /etc/rc.d/rc.local

# pdb不会开机自启,所以要设置pdb开机启动
su oracle -lc "sqlplus / as sysdba" << EOF
alter system set db_create_file_dest='\${DATA_DIR}';
alter pluggable database \${PDB_NAME} save state;
exit;
EOF

7、19c常用命令

show con_name;

#查看已有pdb
show pdbs
#查看已有pdb的datafile文件
select name from v$datafile;
#查看已有pdb的tempfile文件
select name from v$tempfile;
 
#查看DB_CREATE_FILE_DEST缺省路径
show parameter DB_CREATE_FILE_DEST;

select name,open_mode from v$pdbs;
alter session set container=ORCLPDB1;

8、打补丁包(可选)

        没有对应的补丁包,所以此步略过。。

三、总结

        由于是国产的操作系统(实际跟centos是有渊源的(不是很肯定,支持国产)。麒麟是基于openeular,openeular是基于centos的; 统信是基于阿里openanolis,有双核心{一个是阿里自己开发的,一个是基于centos8的};),没有可以参照的,而且大部分包有修改。比较折腾,耗时将近一周;总算搞定了,在此记录,烦请请记得给关注点赞。

      最重要的是一个包:compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm,一个so文件,zip包的解压(unzip 不要加任何参数,且在服务器上进行解压,因为里面有对应的软连接)

你可能感兴趣的:(oracle,linux系统,银河麒麟,统信服务器)