Oracle 安装和配置

发布于 2024-12-06 19:10:09 字数 13809 浏览 13 评论 0

本案的基本配置信息为:

  • 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 进行安装

一些参考文档如下:

系统准备

操作系统准备

安装并配置好操作系统,特别是网络能够正常访问互联网,并能够正常使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

如痴如狂

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文