官方链接:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/index.html
https://oracle-base.com/articles/12c/articles-12c#database-12cr2-installations
https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-oracle-linux-6-and-7
GUI安装
VMware
2G 2核
下载软件
略…
解压缩文件
1
| unzip /mnt/hgfs/SharedFolders/linuxx64_12201_database.zip -d /opt
|
Hosts文件(跳过)
/etc/hosts
文件必须包含服务器的标准名称。
1
| <IP-address> <fully-qualified-machine-name> <machine-name>
|
例子:
1 2
| 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.56.107 zhaolq.com zhaolq
|
在 /etc/hostname
中设置正确的主机名
Oracle安装先决条件
执行自动设置或手动设置以完成基本先决条件。所有安装都需要附加设置。
自动设置
如果计划使用 oracle-database-server-12cR2-preinstall
软件包执行所有必备安装程序,请发出以下命令。
1
| # yum install oracle-database-server-12cR2-preinstall -y
|
值得进行完整更新,但这不是必须的。
值得运行手动设置中列出的所有YUM命令。根据您选择的OS软件包组,可能还需要一些其他软件包。
手动设置
如果尚未使用 oracle-database-server-12cR2-preinstall
软件包执行所有先决条件,则需要手动执行以下安装任务。
修改内核参数
相关链接:
设置Linux内核参数 /etc/sysctl.conf
Linux 内核参数详解-KERNEL
将以下行添加到 /etc/sysctl.conf
文件或名为 /etc/sysctl.d/98-oracle.conf
的文件中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| fs.aio-max-nr = 1048576 fs.file-max = 6815744
kernel.shmall = 2097152 kernel.shmmax = 2147483648 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
|
从配置文件 /etc/sysctl.conf
加载内核参数设置:
1 2 3
| /sbin/sysctl -p # 使"/etc/sysctl.conf"更改立即生效 # Or 具体取决于您编辑的文件。 /sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
|
对Oracle用户设置限制并重启
相关链接
linux文件描述符文件/etc/security/limits.conf
/etc/security/limits.conf配置文件详解
修改 /etc/security/limits.conf
文件
1 2 3 4 5 6 7 8
| oracle soft nofile 1024 # 文件数软限制 oracle hard nofile 65536 # 文件数硬限制 oracle soft nproc 16384 # 进程数软限制 oracle hard nproc 16384 # 进程数硬限制 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock 134217728 oracle hard memlock 134217728
|
将以上内容添加到名为 /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
的文件中??????????????
安装依赖包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| # OL6 and OL7 (RHEL6 and RHEL7) yum install binutils -y yum install compat-libcap1 -y yum install compat-libstdc++-33 -y #yum install compat-libstdc++-33.i686 -y yum install glibc -y #yum install glibc.i686 -y yum install glibc-devel -y #yum install glibc-devel.i686 -y yum install ksh -y yum install libnsl -y yum install libaio -y #yum install libaio.i686 -y yum install libaio-devel -y #yum install libaio-devel.i686 -y yum install libX11 -y #yum install libX11.i686 -y yum install libXau -y #yum install libXau.i686 -y yum install libXi -y #yum install libXi.i686 -y yum install libXtst -y #yum install libXtst.i686 -y yum install libgcc -y #yum install libgcc.i686 -y yum install libstdc++ -y #yum install libstdc++.i686 -y yum install libstdc++-devel -y #yum install libstdc++-devel.i686 -y yum install libxcb -y #yum install libxcb.i686 -y yum install make -y yum install nfs-utils -y yum install net-tools -y yum install smartmontools -y yum install sysstat -y yum install unixODBC -y yum install unixODBC-devel -y
# Required for 12.1, not listed for 12.2 yum install gcc -y yum install gcc-c++ -y yum install libXext -y #yum install libXext.i686 -y yum install zlib-devel -y #yum install zlib-devel.i686 -y
# OL6 only (RHEL6 only) yum install e2fsprogs -y #yum install e2fsprogs-libs -y yum install libs -y #yum install libxcb.i686 -y yum install libxcb -y
|
附加设置
无论是手动还是自动设置,都必须执行以下步骤。
创建组和用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| groupadd -g 54321 oinstall # 创建用户组oinstall groupadd -g 54322 dba # 创建用户组dba groupadd -g 54323 oper # 创建用户组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 -m oracle # 创建oracle用户,指定用户ID,指定所属群组和附加群组
passwd oracle # 为oracle用户设置密码
id oracle # 查看新建的oracle用户 uid=1001(oracle) gid=1002(dba) groups=1002(dba)
|
Terminal方向键和Tab键不能用:
问题描述:用 useradd
命令新增了用户之后,发现在该新建用户下的命令终端,使用方向键无法调出历史命令,同时tab键也无法补全输入命令。
问题解决:在 /etc/passwd
中发现,该新建用户使用的 shell 为 /bin/sh
,而能正常使用的用户 shell 为 /bin/bash
,通过 ls -l /bin/sh
查看 /bin/sh
得知,在ubuntu系统中,/bin/sh
默认链接为 dash。因此,只需要在 /etc/passwd
中修改该用户对应的 shell 为 /bin/bash
即可解决该问题。
设置 selinux
安全增强式Linux - 维基百科
SELinux - CentOS Wiki
编辑 /etc/selinux/config
1 2 3 4 5
| SELINUX=permissive # 设置 secure Linux 为宽松 SELINUX=disabled # 禁用
# 更改完成后,请重新启动服务器或运行以下命令。 setenforce Permissive
|
禁用防火墙
1 2
| systemctl stop firewalld systemctl disable firewalld # 禁用,关闭开机自启
|
创建Oracle软件安装目录
创建数据库软件目录和数据文件存放目录,目录位置根据自己的情况来定,注意磁盘空间即可,这里把其放到 oracle 用户下:
1 2 3
| mkdir -p /u01/app/oracle/product/12.2.0.1/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01 # 或者 chmod ug+rwx /u01 && chmod o=rx /u01
|
创建脚本
创建脚本目录
1
| mkdir /home/oracle/scripts
|
提示:使用 cat
命令创建脚本,所有 $
字符都需转义。如果要手动创建这些文件,而不是使用 cat
命令,必须删除 $
字符之前的 \
字符。
Oracle环境变量脚本
创建一个名为 setEnv.sh
的环境文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| cat > /home/oracle/scripts/setEnv.sh <<EOF # Oracle Settings export TMP=/tmp export TMPDIR=\$TMP
#export ORACLE_HOSTNAME=zhaolq.com #export ORACLE_UNQNAME=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1 export ORACLE_SID=orcl
export PATH=/usr/sbin:/usr/local/bin:\$PATH export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib EOF
# 以下为了解决客户端乱码,可忽略 export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
|
在 /home/oracle/.bash_profile
文件的末尾添加对 setEnv.sh
文件的引用。
1
| echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
|
数据库启动/停止脚本
创建可从启动/关闭服务调用的 start_all.sh
和 stop_all.sh
脚本,确保所有权和权限正确。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| # 启动脚本 start_all.sh cat > /home/oracle/scripts/start_all.sh <<EOF # !/bin/bash . /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO # 是否询问ORACLE_SID选择,详情见oraenv文件。whereis oraenv . oraenv export ORAENV_ASK=YES
# dbstart会调用/etc/oratab文件。$ORACLE_HOME为了指定ORACLE_HOME_LISTNER变量,详情见dbstart文件。whereis dbstart dbstart \$ORACLE_HOME EOF
# 停止脚本 stop_all.sh cat > /home/oracle/scripts/stop_all.sh <<EOF # !/bin/bash . /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES
dbshut \$ORACLE_HOME EOF
# 授权 chown -R oracle.oinstall /home/oracle/scripts chmod u+x /home/oracle/scripts/*.sh
|
Oracle安装完成并编辑了 /etc/oratab
后,就可以使用 oracle 用户运行以下脚本来启动/停止数据库。
1 2
| ~/scripts/start_all.sh ~/scripts/stop_all.sh
|
可以在此处查看如何创建Linux服务以自动启动/停止数据库 (OL6, OL7) 。
安装GUI
略…
安装Oracle
1 2
| $ cd /opt/database $ ./runInstaller
|
安装界面中文乱码
方法一:使用英文字符集
1 2 3 4 5 6 7 8 9 10
| # 系统字符集查看 echo $LANG env | grep LANG export | grep LANG locale locale --help locale -a # 所有可用字符集
# 修改字符集的方式 export LANG=en_US.UTF-8 # 临时修改
|
方法二:安装中文字体
1 2 3 4
| # 查看系统已安装的字体 fc-list # 查看系统已安装的中文字体 fc-list :lang=zh
|
把 Windows 系统 C:\Windows\Fonts
目录下需要的中文字体文件复制到 CentOS 下的 /usr/share/fonts/chinese/
目录下,然后执行以下命令安装字体:
1 2 3 4 5 6 7 8 9 10
| su - root /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o subtype=vmhgfs-fuse,allow_other ls /mnt/hgfs/
mkdir /usr/share/fonts/chinese/ cp /mnt/hgfs/SharedFolders/simsun.ttc -d /usr/share/fonts/chinese/ cd /usr/share/fonts/chinese/ # 切换到新字体目录 mkfontscale # 在当前目录下生成fonts.scale文件 mkfontdir # 在当前目录下生成fonts.dir文件 fc-cache -fv # 重新建立字体缓存
|
修改/etc/oratab
该文件是在创建数据库实例时建立的,需要用root用户运行root.sh,如果忘记运行在自启动和关闭时会失败,错误信息:"/etc/oratab" is not accessible
。
它记录主机中有多少个数据库。
在 $ORACLE_HOME/bin
目录下的 $ORACLE_HOME/bin/dbstart
和 $ORACLE_HOME/bin/dbshut
需要调用 /etc/oratab
文件,如果不存在,dbstart
和 dbshut
将失败。
编辑 /etc/oratab
文件:
1 2 3
| # 格式:$ORACLE_SID:$ORACLE_HOME:<N|Y> # 说明:第一个区域的值是sid;第二个区域的值是数据库主目录;第三个区域的值Y或N,是能否使用dbstart和dbshut脚本启动和关闭数据库的开关。 orcl:/u01/app/oracle/product/12.2.0.1/db_1:Y
|
查看数据库是否启动
ipcs命令
1 2 3 4 5
| [oracle@centos8 ~]$ ipcs -a [oracle@centos8 ~]$ lsnrctl status # 查看监听,可以看监听所对应的实例 [oracle@centos8 ~]$ ps -ef | grep -i ora_ # 查看Oracle相关进程 # 相关的后台进程从数据库里也是能查到, SQL> select * FROM v$session WHERE type ='BACKGROUND';
|
也可以进到数据库里面看数据库当前状态 select status from v$instance;
,如果 status = open
就说明 oracle 服务已启动。
启动/停止数据库
可以使用上文的脚本启动,也可以使用以下命令启动:
1 2 3 4 5 6 7 8 9
| [oracle@centos8 ~]$ echo $LANG [oracle@centos8 ~]$ export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" [oracle@centos8 ~]$ sqlplus system/123456@orcl [oracle@centos8 ~]$ sqlplus sys/123456@orcl as sysdba [oracle@centos8 ~]$ sqlplus / as sysdba # dba组里的用户无需输入用户和口令,直接以sysdba的身份登陆数据库 SQL> startup SQL> show con_name SQL> select * from v$version; SQL> shutdown immediate
|
启动/停止监听器
1 2 3 4
| [oracle@centos8 ~]$ ps -ef | grep tnslsnr # 查看Oracle Net Listener进程 lsnrctl status # 查看listener状态t lsnrctl start lsnrctl stop
|
配置工具
详解
1 2 3
| dbca # 打开 Database Configuration Assistant (数据库配置助手) netca # 打开 Net Configuration Assistant (网络配置助手) netmgr # 打开 Net Manager
|
TNS配置文件
位置: /u01/app/oracle/product/12.2.0.1/db_1/network/admin
其他安装方式
静默安装
相关文章。
Docker 安装
官方Github: https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance
请先配置好 Docker 镜像加速器!
磁盘不小于 100G 。
1 2 3 4 5 6 7 8 9 10 11 12
| # 构建映像 $ ./buildDockerImage.sh -v 12.2.0.1 -s -i
# 创建文件夹 /opt/oracle/oradata ;更改使用权限为所有使用者:"chmod 777 /opt/oracle" ; 了解chown $ docker run --name oracle-12.2.0.1-se2 \ -p 1521:1521 -p 5500:5500 \ -e ORACLE_SID=orcl \ -e ORACLE_PDB=orclpdb \ -e ORACLE_PWD=123456 \ -e ORACLE_CHARACTERSET=ZHS16GBK \ -v /opt/oracle/oradata:/opt/oracle/oradata \ oracle/database:12.2.0.1-se2
|
2022整理
参考官网:https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/index.html
使用ROOT用户操作
使用ROOT用户进行以下操作。
安装依赖包
适用于红帽企业 Linux 8 的软件包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| # 安装以下软件包的最新发布版本:
yum install bc -y yum install binutils -y yum install elfutils-libelf -y yum install elfutils-libelf-devel -y yum install fontconfig-devel -y yum install glibc -y yum install glibc-devel -y yum install ksh -y yum install libaio -y yum install libaio-devel -y yum install libXrender -y yum install libXrender-devel -y yum install libX11 -y yum install libXau -y yum install libXi -y yum install libXtst -y yum install libgcc -y yum install libnsl -y yum install librdmacm -y yum install libstdc++ -y yum install libstdc++-devel -y yum install libxcb -y yum install libibverbs -y yum install make -y yum install policycoreutils -y yum install policycoreutils-python-utils -y yum install smartmontools -y yum install sysstat -y
# 如果您打算使用 32 位客户端应用程序来访问 64 位服务器,那么您还必须安装(如果可用)此表中列出的最新 32 位版本的软件包。
|
下面安装包可能不在源中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 调用 makefile '/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/lib/ins_rdbms.mk' 的目标 'libasmclntsh19.ohso libasmperl19.ohso client_sharedlib' 时出错。有关详细信息, 请参阅 '/tmp/InstallActions2022-08-30_09-35-50PM/installActions2022-08-30_09-35-50PM.log'。
日志中提示如下: /usr/bin/ld: 找不到 /usr/lib64/libpthread_nonshared.a 原因:glibc升级到2.28版本之后不提供 /usr/lib64/libpthread_nonshared.a 这个静态链接库。glibc-devel包中有libpthread.a 查看软件版本: rpm -q glibc glibc-2.34-40.el9.x86_64
find /usr -name libpthread_nonshared.a 解决方案 https://installati.one/centos/8/compat-libpthread-nonshared/
yum install compat-libpthread-nonshared -y # 这个如果下载失败需要手动下载 CentOS AppStream x86_64 版本的软件包安装
su - root /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o subtype=vmhgfs-fuse,allow_other ls /mnt/hgfs/ rpm -hvi /mnt/hgfs/SharedFolders/compat-libpthread-nonshared-2.36.9000-7.fc38.x86_64.rpm
|
根据您的要求,安装以下软件包的最新发布版本:
1 2 3 4 5
| yum install ipmiutil -y #(用于智能平台管理接口) yum install libnsl2 -y #(仅用于 Oracle 数据库客户端) yum install libnsl2-devel -y #(仅用于 Oracle 数据库客户端) yum install net-tools -y #(用于 Oracle RAC 和 Oracle 集群件) yum install nfs-utils -y #(用于 Oracle ACFS)
|
创建操作系统权限组
1 2 3 4 5 6 7 8 9
| groupadd -g 54321 oinstall # 创建用户组oinstall groupadd -g 54322 dba # 创建用户组dba groupadd -g 54323 oper # 创建用户组oper groupadd -g 54324 backupdba groupadd -g 54325 dgdba groupadd -g 54326 kmdba groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54330 racdba
|
创建操作系统 Oracle 安装用户帐户
1 2 3 4 5 6 7 8 9
| # 创建oracle用户ID为54321,指定所属群组和附加群组(主要组和次要组) useradd -u 54321 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba -m oracle # 把用户添加进入某个附加群组(多个逗号分隔) usermod -a -G oper oracle
passwd oracle # 为oracle用户设置密码123456789
id oracle # 查看新建的oracle用户 uid=1001(oracle) gid=1002(dba) groups=1002(dba)
|
Oracle 软件安装用户的资源限制
修改 /etc/security/limits.conf
文件
1 2 3 4 5 6 7 8
| oracle soft nofile 1024 # 文件数软限制 oracle hard nofile 65536 # 文件数硬限制 oracle soft nproc 2047 # 进程数软限制 oracle hard nproc 16384 # 进程数硬限制 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock unlimited oracle hard memlock unlimited
|
创建 Oracle 数据库文件目录
数据库文件目录,默认位置是 $ORACLE_BASE/oradata
1 2 3
| mkdir -p /u01/oradata/ chown oracle:oinstall /u01/oradata/ chmod 775 /u01/oradata
|
恢复文件目录(快速恢复区),默认位置是 $ORACLE_BASE/fast_recovery_area
1 2 3
| mkdir -p /u01/oradata/rcv_area chown oracle:oinstall /u01/oradata/rcv_area chmod 775 /u01/oradata/rcv_area
|
Oracle 建议您将快速恢复区保留在与数据库文件目录不同的物理磁盘上。如果包含 oradata 的磁盘因任何原因无法使用,此方法使您可以使用快速恢复区来检索数据。
创建 Oracle 基本目录和 Oracle 库存目录
创建 Oracle 基本目录和 Oracle 库存目录。为这些目录指定正确的所有者、组和权限。
1 2 3 4 5
| mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory # 产品清单目录,通常需要150KB的磁盘空间 chown -R oracle:oinstall /u01/app/oracle chown -R oracle:oinstall /u01/app/oraInventory chmod -R 775 /u01/app
|
切换到oracle用户安装
请切换到oracle用户以安装oracle软件。
安装界面中文乱码
参考上文
安装
将 Oracle 数据库安装映像文件 ( db_home.zip
) 解压缩到 Oracle 主目录
1 2 3 4 5 6 7 8
| su - root
/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o subtype=vmhgfs-fuse,allow_other ls /mnt/hgfs/
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 cd /u01/app/oracle/product/19.0.0/dbhome_1 unzip -q /mnt/hgfs/SharedFolders/LINUX.X64_193000_db_home.zip
|
从 Oracle 主目录,运行runInstaller
命令以启动 Oracle 数据库设置向导。
1 2 3 4 5 6 7 8 9 10 11
| # ctrl+d 退出root用户
export CV_ASSUME_DISTID=RHEL8.6 cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller
# [INS-08101] 在以下状态下执行操作时出现意外错误: 'supportedOSCheck' export CV_ASSUME_DISTID=RHEL8.6 # 临时修改 echo "export CV_ASSUME_DISTID=RHEL8.6" /home/oracle/.bash_profile # 永久修改 source /home/oracle/.bash_profile
|