Oracle 安装和配置
本案的基本配置信息为:
- OS - CentOS X64 7.9, CPU>2 RAM > 3G , HD > 40G (安装、包括下载包和解压包可能需要 25G)
即使是虚拟机,强烈建议 4 CPU+4G RAM, HD> 50G,否则非常影响安装体验
- DB - Oracle 12C 12.2 Enterprise Release 2
- 安装方式- Remote GUI
不直接在服务器上操作安装,而使用 VNC 远程连接服务器实例,并使用 GUI 进行安装
一些参考文档如下:
- https://www.howtoforge.com/tutorial/how-to-install-oracle-database-12c-on-centos-7/
- https://www.tecmint.com/install-oracle-database-12c-on-centos-7/
系统准备
操作系统准备
安装并配置好操作系统,特别是网络能够正常访问互联网,并能够正常使用 yum 安装软件。
其他检查项目包括:
- 时间和时区, 时间应调整,时区为 cst(中国标准时间)
- 可用磁盘空间,在默认文件夹/,超过 30G
- 交换空间,应为内存的 1.5 倍,否则安装过程可能会标识为疑问
创建相关账号和组
groupadd oinstall groupadd dba groupadd asmadmin groupadd asmdba useradd -g oinstall -G dba,asmdba oracle -d /home/oracle id oracle passwd oracle // welc0me@O0202
修改主机 IP 配置信息
// /etc/hostname // /etc/hosts 192.168.9.75 ct-oracle ct-oracle.local ping -c 3 ct-oracle ping -c 3 ct-oracle.local
需要确认,hostname 中配置的主机名称,解析到的 IP 地址为 oracle 侦听主 IP 地址。特别是在具有多 IP 地址的情况下,否则会造成后期安装配置 Net Assistant 出错,提示端口 1521 不可用。
还要注意,如果是带有域名的主机名,则简单主机名和带域名的都需要配置,否则影响 Database Assistant 的运行,提示端口 5000 不可用。
修改配置信息
vim /etc/sysctl.conf fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 kernel.shmmax = 1073741824 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=1048586 // 应用和检查 # sysctl -p # sysctl -a // 限制文件配置 /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
文件夹准备
// 安装文件夹 mkdir /u01 mkdir /u02 chown -R oracle:oinstall /u01 chown -R oracle:oinstall /u02 chmod -R 775 /u01 chmod -R 775 /u02 chmod g+s /u01 chmod g+s /u02 // 安装源文件夹,解压用 mkdir /stage chown -R oracle:oinstall /stage
软件更新和依赖包
使用以下命令检查安装并检查依赖包:
yum update // 开发工具软件包组和服务器 GUI yum -y groupinstall "Development Tools" yum -y groupinstall "Server GUI" yum -y install tigervnc-server yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel \ glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel // 12.2 预安装包和依赖组件 yum install oracle-database-server-12cR2-preinstall -y yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 \ ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 \ libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 \ sysstat.x86_64 zip unzip
安装和配置 vnc
tigervnc-server 和 Server GUI 正常安装完成后,可以用 ssh 远程连接到主机,并执行以下命令,启动对应用户的远程桌面:
vncserver -geometry 1280x800
然后在远程使用 vnc viewer 软件,连接 server:1,就可以远程连接主机的 GUI 桌面了。
下载 Oracle 安装文件
到 Oracle 官方网站下载 Oracle 12C Releae 2 Enterprise ,为一个 3.5G 的 zip 文件名为 linuxx64_12201_database.zip。将此文件上传到服务器上,并解压至/stage 文件夹。
su - oracle unzip linuxx64_12201_database.zip -d /stage/
Oracle 安装过程
启动 GUI 安装
使用 vnc 连接到远程服务器桌面,打开终端,切换到 oracle 账号,执行安装命令,会启动一个 GUI 安装界面。
su - oracle /stage/database/runInstaller // 安装过程中的 root 操作 sudo -i cd /u01/app/oraInventory ./orainstRoot.sh cd /u01/app/oracle/product/12.2.0/dbhome_1 ./root.sh
安装过程启动后,主要的过程和操作如下。
主要安装过程
配置安全更新
需要提供一个支持用的电子邮件地址。
如果订购了 oracle 的支持服务,提供电子邮件地址的同时,提供一个支持系统登录密码。
安装选项
提供了三个安装选项
- 创建和配置数据库(默认)
- 只安装数据库软件
- 升级已有数据库
系统级别
提供了两个选择,应该是相关初始配置和选项不同。
- 桌面级
- 服务器级(默认)
数据库安装选项
提供了三个选项
- 单数据库安装(默认)
- RAC 群集数据库安装
- RAC 节点数据库安装
安装类型
- 典型安装(默认)
- 高级安装,可以配置不同账号的密码、配置字符集/语言,自动备份,定制安装和选择不同的存储类型...
安装配置
这一步在设置中最为重要。
可以设置的重要参数包括(保留默认即可,前面已经配置好了文件夹):
- 基础目录,默认为/u01....
- 软件位置
- 存储类型
- 数据位置
- 数据库版本,企业版
- DBA 用户组
- 全局数据库名,Global Database Name,默认为 orcl
- 密码和确认,只 sys、system 账号密码
- 创建容器数据库,保留默认为 orclpdb
安装元数据目录
称为 inventory,主要包括安装日志,使用 oinstall 组。
总结
会列出本次安装的配置清单。
实际安装过程
分为四个阶段,主要是安装过程,顺利的情况下会自动执行
- 数据库安装,包括准备、复制文件、链接和安装
- 安装 Oracle Base
- 执行 Root 脚本
安装过程会在此处暂停,提示用户使用 root 账号来执行两个安装配置脚本,正常执行后继续后续安装 - 数据库配置
在本阶段,其实主要的安装过程已经完成,但需要做一些个性化的配置。包括 - 执行 Net Configuration Assistant,配置网络
- 执行 Database Configuration Assistant,配置基础数据库
- 执行 Oracle Enterprise Manage Configuration
至此所有 GUI 安装过程会结束,提示用户关闭安装工具。
配置为系统启动
如果我们希望 Oracle 作为系统服务来启动,需要编辑系统服务配置文件 oracle.server 和数据库实例配置文件 oratab:
# /etc/systemd/system/oracle.service # Invoking Oracle scripts to start/shutdown Instances defined in /etc/oratab # and starts Listener [Unit] Description=Oracle Database(s) and Listener Requires=network.target [Service] Type=forking Restart=no ExecStart=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbstart /u01/app/oracle/product/12.2.0/dbhome_1 ExecStop=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbshut /u01/app/oracle/product/12.2.0/dbhome_1 User=oracle [Install] WantedBy=multi-user.target // /etc/oratab Y:yes orcl:/u01/app/oracle/product/12.2.0/dbhome_1:Y
配置完成后,启动和停止 oracle 的命令为:
sudo systemctl start|stop oracle
安装后测试和配置
安装完成后,还需要进行一些设置,并进行一些测试来验证安装和运行的正常。
安装后 Oracle 账号配置
修改 oracle 账号的 ~/.bash_profile
,设置环境变量,要特别注意 sid 和安装设置的匹配。
// ~/.bash_profile TMPDIR=$TMP; export TMPDIR ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME ORACLE_SID=orcl; export ORACLE_SID LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH PATH=$ORACLE_HOME/bin:$PATH; export PATH // 修改后需要重新加载环境变量 source ~/.bash_profile // 也可以注销后,重新使用 oracle 登录 su - oracle
安装后防火墙配置
安装完成后,可能需要打开防火墙相关端口,可以使用以下命令:
firewall-cmd --zone=public --add-port=1521/tcp --add-port=5500/tcp --add-port=5520/tcp --add-port=3938/tcp --permanent firewall-cmd --reload
修改网络侦听参数(可选,如果修改或者需要指定 IP/PORT)
对于需要网络访问的情况,需要编辑侦听设置文件:
$ORACLE_HOME/network/admin/listener.ora
通常需要修改其中的 host 和 port 部分内容,来满足侦听 IP 地址和端口设置要求。
// 测试监听状态、启动、停止 lsnrctl status | start | stop netstat -lpnt
连接和数据测试
可以使用以下操作,验证数据库和连接。
// 使用 oracle 账号登录服务器 su - oracle // 连接数据库系统账号 sqlplus / as sysdba shutdown immediate; // 关闭数据库 startup; // 启动、装载并打开数据库 exit // 通过网络连接数据库 sqlplus sys/pwd@ip:1521/test as sysdba // 查看版本、全局数据库和数据库实例名 select * from V$VERSION; select * from v$database; SELECT * FROM v$services; select instance_name from v$instance; show parameter instance;
如果连接有问题,应当检查系统环境变量,是否符合安装和配置的信息,特别是 home 位置和 sid。如果网络连接有问题,检查网络是否通畅,侦听是否开启。
Enterprise Manager
默认安装情况下,Oracle 会附带安装一个 Enterprise Manager 数据库监管程序。在数据库系统本机,可以通过 https://localhost:5500/em 来进行访问。此程序默认应该会随数据库系统启动而启动。
安装后常见管理
创建表空间
CREATE BIGFILE TABLESPACE ulplat DATAFILE '/opt/oradata/ulplat.dat' SIZE 512M AUTOEXTEND ON; create temporary tablespace ulplat_temp tempfile '/opt/oradata/ulplat_temp.dbf' size 50m autoextend on next 50m maxsize 2048m;
创建用户并关联表空间
create user c##dulsc identified by **** -- 用户名和密码 default tablespace ulplat -- 设置默认表空间 temporary tablespace ulplat_temp; -- 设置默认临时表空间
授予登录和 DBA 权限
grant create session to c##dulc; grant dba to c##dulsc;
在用户账号下创建数据库表
conn c##dulsc CREATE TABLE TB_WHAT ( ID VARCHAR2(20) NOT NULL , NAME VARCHAR2(50) , FLAG NUMBER(2) DEFAULT 0, PRIMARY KEY(ID) ); select count(1) from TB_WHAT;
增加和设置 pdb
Oracle 12C 引入了多租户的可插拔数据库机制(PDB)。一般使用 PDB 作为实际生产用的数据库,而不用默认的容器数据库。
创建 PDB
创建一个新的 PDB,可以来自一个种子数据库,也可以来自已有的 PDB。
下面的命令可以用于检查当前 PDB 的状态和 PDB 所使用的数据文件
// 显示当前的 PDB 列表 show pdbs // 切换到特定 PDB alter session set container=PDB; // 显示当前连接信息 show con_name // select file_name from dba_data_files;
使用种子数据库的方式如下:
CREATE PLUGGABLE DATABASE ulptdb ADMIN USER ulpt IDENTIFIED BY Ulsc_0202 STORAGE (MAXSIZE 8G) DEFAULT TABLESPACE ulpt DATAFILE '/opt/oradata/ulpt/ulpt.dbf' SIZE 200M AUTOEXTEND ON PATH_PREFIX = '/opt/oradata/ulpt/' FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/orcl/pdbseed', '/opt/oradata/ulpt');
通常一个正确的安装,系统会正常设置 pdbseed 文件夹,文件夹内有数据库模板文件。执行 PDB 创建文件即可。
克隆一个已有 PDB 的方式如下(有时候会遇到种子数据库无法使用的情况):
create pluggable database ulptdb from PDB FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/B58BFF88F73431A8E0557FA24C201AAA/datafile/o1_mf_','/opt/oradata/ulpt'); // 打开或关闭 pdb alter pluggable database ulptdb open|close;
注意这里需要先检查到要克隆的 PDB 数据文件所在位置,如果使用 OMF(Oracle Manage File, Oracle 文件管理,比如那种文件夹有 UUID 的),需要加前缀 o1_mf_
PDB 的连接
通常 PDB 创建完成之后,数据库系统会自动在侦听中创建相关的条目,可以通过以下方式检查(是否包括新建 PDB 的条目,可能名字会加上域名后缀)。如果没有或者出现错误,可能需要在 listerner.ora 中编辑并增加 SID 的项目。
// 检查 SID sqlplus / as sysdba show parameter db_name select name from v$database; // 查看侦听状态 lsnrctl status // edit $ORACLE_HOME/network/admin/listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (SID_NAME = orcl) ) ) // 重启 lsnrctl stop|start
服务信息的创建,可能需要一段时间(几分钟)。服务信息如果正常,在 sql develper 或者程序就可以通过 service name 方式连接 PDB 数据库了。
在 sqlplus 中,可以通过 alter session 方式切换 PDB。
//
使用 sqlplus 远程连接数据库:
// 连接系统数据库 sqlplus sys/password@192.168.9.71/ulptdb as sysdba // 连接容器数据库 sql ulpt/password@192.168.9.71:1521/ulptdb.ulsc.local
可能有用的附加信息
可能需要注意的问题
- hosts 的主机解析设置错误,可能会导致侦听器配置错误而无法启动
- 需要特别注意 sid 的配置,和 oracle 账号中环境变量匹配,否则无法正常连接
重新或恢复安装
Oracle 的安装程序的使用体验比较差,经常遇到出现配置或设置不符合要求,导致安装失败的情况,重新安装是需要注意首先做好清理工作,否则旧的安装文件,仍然会影响新的安装过程。这些内容可能包括:
- /u01 文件夹,需要清理干净
- /tmp 文件夹,和 oracle 相关的安装文件夹,都应该清理干净
VM 增加磁盘和分区
如果在 VM 中使用 Oracle,可能会遇到磁盘空间不足的问题。通常情况下,Centos 使用 LVM 来管理磁盘,只需要增加一个虚拟磁盘,就可以无缝扩展磁盘空间。可能的操作和命令如下:
// 查看磁盘 lsblk // 新磁盘分区设置, 假设新磁盘是 sdb fdisk /dev/sdb // n 创建磁盘分区 // p 选择为主分区 // t 设置磁盘分区类型,为 8e linux lvm // w 写入分区信息 // lsblk 应该看到 /dev/sdb1 // 创建一个 pv pvcreate /dev/sdb1 // 列出当前 vg vgs // 扩展当前 vg vgextend centos /dev/sdb1 // 查看当前逻辑卷 lvdisplay // 扩展到逻辑卷 -L 扩展大小 lvresize -L +10G /dev/centos/root // 扩展文件系统(如果为 xfs 系统) xfs_growfs /dev/mapper/centos-root // ext4 文件系统 resize2fs /dev/mapper/centos-root // 查看磁盘空间 df -h
响应文件安装,也称指令安装
如果不方便或者不想使用 GUI 来进行安装,可以通过远程命令行和响应文件的方式,来进行安装。
响应文件的模板,在安装文件解压后的 database/response 文件夹中。有三个响应文件,分别对应 dbca.rsp(数据库配置助手),db_install.rsp(数据库安装助手) 和 netca.rsp(网络配置助手) 三种方式。将其复制到方便的位置进行编辑修改,适应当前的安装要求和环境。
db_install.rsp 主要有用的参数如下:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba INVENTORY_LOCATION=/u01/app/oracle/oraInventory ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE2 oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=dba oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba
这里的响应文件,只用作安装数据库软件,后面的网络和数据库可能还需要后续手段配置。
启动安装过程:
./runInstaller -silent -noconfig -responseFile ~/db_install.rsp
过程中会遇到需要使用 root 账号运行脚本的情况,需要事先准备好一个额外的终端。
oracle 安装过程可能比较长,可以考虑使用 screen 作为安装 session。
SWAP 管理
Oracle 安装对系统的要求较高,可能会遇到 SWAP 空间不足的问题,通常由两种解决方式。
扩展 SWAP 分区
首先使用 lvm 扩展 SWAP 分区(假设 lvm 已经扩展)
lvresize -L +3G /dev/centos/swap // 查看和关闭当前 swap 分区 free -g swapoff -v /dev/centos/swap mkswap /dev/centos/swap // 启动 swap swapon -va // 关闭和删除 SWAP 文件 swapoff /var/swap rm /var/swap nano /etc/fstab // 检查状态 swapon -s
增加 SWAP 文件
// 创建一个空文件 dd if=/dev/zero of=/var/swap bs=2G count=1 // 修改权限 chmod 600 /var/swap // 创建 swap mkswap /var/swap // 启动 swap swapon /var/swap // edit /etc/fstab /var/swap swap swap defaults 0 0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: CockroachDB 系统部署和应用
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论