Oracle入门到精分——No.1安装部署Oracle包会版

420 阅读4分钟

亲爱的oracle是一个具有内涵的关系型数据库,虽说关系型数据库的底层本质是相同(相通的),但oracle其复杂&麻烦程度仅次于DB2。

在市场"去oracle"的呼声中,oracle DBA显得弥足珍贵,如果您再来那么两三句英语,那就更是"珍馐“。

想用oracle,想知道oracle究竟怎么用,首先要安装oracle服务。

那么,接下来我们一起安装oracle 19c

一 磁盘分区

1.1查看磁盘情况 :

fdisk -lsblk

1.2划分区

fdisk /dev/sdb

1.3再次检查磁盘分区

lsblk

二 创建逻辑卷-OS可操作

2.1 创建物理卷

pvcreate /dev/vdb1

2.2 创建逻辑卷组

vgcreate vg00 /dev/vdb1

2.3 查看逻辑卷组

vgdisplay

2.4 创建逻辑卷

lvcreate -l 12799 -n lv00 vg00

2.5 创建文件系统

mkfs -t ext4 /dev/mapper/vg00-lv00

2.6 查看磁盘情况

fdisk -l

2.7 创建逻辑盘

mkdir /u01

2.8 mount 逻辑卷 

mount /dev/mapper/vg00-lv00  /u01

2.9 查看磁盘大小

df -lh

2.10 加载启动项

vim /etc/fstab

三准备Oracle环境

1 登录并检查服务器环境

1.1查看操作系统版本和修改hosts文件信息

cat /etc/redhat-release

cat /etc/hosts

1.2查看内存和磁盘信息

df -h

1.3 关闭selinux 和 防火墙

vim /etc/selinux/config

SELINUX=disabled

1.4 设置网络

vim /etc/sysconfig/network-scripts/ifcfg-eth0

service network restart

2 安装需要的RPM 包

yum -y install compat-libstdc++-33 glibc-* glibc-*.i686 libXpm-*.i686 libXp.so.6 libXt.so.6 libXtst.so.6 libgcc_s.so.1 ksh libXp libaio-devel numactl numactl-devel unixODBC unixODBC-devel

3 修改内核参数/etc/sysctl.conf

在 sysctl.conf  中加入以下内容,sysctl -p使其生效

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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
kernel.shmmax =42949672960 #大于等于物理内存一半
kernel.shmall =10485760 #shmmax/4096

4 设置 Oracle 用户的 Shell 限制

在 /etc/security/limits.conf 中添加如下内容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
* soft memlock 52428800
* hard memlock 52428800

注:

limits.conf 文件发生更改时,这些更改立即生效。

但是,如果Oracle用户已登录,则这些更改将在注销这些用户并重新登录之后生效。必须先完成此操作,然后再使用这些帐户进行安装。

5 设置ulimit-可选

/etc/profile中添加以下行:

if [ USER = "oracle" \]; then    if \[ SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

6 创建Oracle用户和组

groupadd oinstall
groupadd dbagroupadd oper
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
useradd -g oinstall -G oper,dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
passwd oracle

7 创建目录

# mkdir -p /u01/app/oracle/product/19.3.0/db_home_1 
# mkdir -p /u01/app/oraInventory 
# mkdir -p /u01/software 
# chown -R oracle.oinstall /u01 
# chmod -R 755 /u01

8 设置oracle用户的环境变量

vim ~/.bash_profile ,并编译source ~/.bash_profile(oracle用户执行)

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_home_1
export ORACLE_SID=ORCL
export PATH=ORACLE_HOME/bin:ORACLE\_HOME/bin:PATHexport LD_LIBRARY_PATH=ORACLE_HOME/lib:/lib:/usr/libexportCLASSPATH=ORACLE\_HOME/lib:/lib:/usr/lib export CLASSPATH=ORACLE_HOME/JRE:ORACLE_HOME/jlib:ORACLE\_HOME/jlib:ORACLE_HOME/rdbms/jlib
export PATH=ORACLE_HOME/bin:ORACLE\_HOME/bin:ORACLE_HOME/OPatch:PATHexportNLS_DATE_FORMAT="YYYYMMDDHH24:MI:SS"exportTNS_ADMIN=PATH export NLS\_DATE\_FORMAT="YYYY-MM-DD HH24:MI:SS" export TNS\_ADMIN=ORACLE_HOME/network/admin
export ORACLE_PATH=.:ORACLE_BASE/dba_scripts/sql:ORACLE\_BASE/dba\_scripts/sql:ORACLE_HOME/rdbms/admin
export SQLPATH=$ORACLE_HOME/sqlplus/admin
**export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"
**umask=022

四 安装Oracle

1上传EEenterprise版本oracle安装文件并解压缩

2调整swap

查看内存

grep MemTotal /proc/meminfo                                                                                                                    

查看swap

grep SwapTotal /proc/meminfo

查看可用内存和swap

free

swap:

物理内存

< = 4G, swap=8G

物理内存

**>4G , swap=内存
**

#开一个swapfile 4096Byte * 1000000

dd if=/dev/zero of=/swapfile bs=4096 count=1000000

mkswap /swapfile

swapon /swapfile

3静默安装19c软件

响应文件$ORACLE_HOME/install/response/db_install.rsp

/u01/app/oracle/product/19.3.0/db_home_1/runInstaller -silent -force -noconfig -ignorePrereq \
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_BASE=/u01/app/oracle \
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_home_1 \
oracle.install.db.InstallEdition=EE  \  #根据lisence
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba
#root账号 执行以下文件
#oracle.install.db.rootconfig.executeRootScript=true
#oracle.install.db.rootconfig.configMethod=ROOT

执行过程如下:

Launching Oracle Database Setup Wizard...

[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.

ACTION: It is recommended to provide an empty location for the inventory.

Enter password for 'root' user:

[WARNING] [INS-13014] Target environment does not meet some optional requirements.

CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2020-07-29_09-45-58PM.log

ACTION: Identify the list of failed prerequisite checks from the log: installActions2020-07-29_09-45-58PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.

The response file for this session can be found at:

/u01/app/oracle/product/19.3.0/dbhome_1/install/response/db_2020-07-29_09-45-58PM.rsp

You can find the log of this install session at:

/tmp/InstallActions2020-07-29_09-45-58PM/installActions2020-07-29_09-45-58PM.log

Successfully Setup Software with warning(s).

Moved the install session logs to:

/u01/app/oraInventory/logs/InstallActions2020-07-29_09-45-58PM

4 dbca静默方式创建FS存储方式的单实例(含一个PDB):

dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname SIT02 -sid SIT02 \
-sysPassword oracle123 \
-systemPassword oracle123 \
-datafileDestination '/u01/app/oracle/oradata' \
-recoveryAreaDestination '/u01/app/oracle/flash_recovery_area' \
-redoLogFileSize 50 \ #
-storageType FS \
-characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
-sampleSchema true \
-totalMemory 2048 \
-databaseType OLTP \
-emConfiguration NONE

执行过程如下:

8% complete

Copying database files

31% complete

Creating and starting Oracle instance

32% complete

36% complete

40% complete

43% complete

46% complete

Completing Database Creation

51% complete

53% complete

54% complete

Creating Pluggable Databases

58% complete

77% complete

Executing Post Configuration Actions

100% complete

Database creation complete. For details check the logfiles at:

/u01/app/oracle/cfgtoollogs/dbca/ORCL.

Database Information:

Global Database Name:ORCL

System Identifier(SID):ORCL

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.

5 静默配置监听

-- vim $ORACLE_HOME/netca.rsp

[GENERAL]
RESPONSEFILE_VERSION="19.0"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}

-- 配置监听

ORACLE_HOME/bin/netca/silent/responsefileORACLE\_HOME/bin/netca /silent /responsefile ORACLE_HOME/netca.rsp

-- 查看监听状态

lsnrctl status

6 设置数据库开机启动

cd ORACLE_HOME/binvidbstartORACLE_HOME_LISTNER=ORACLE\_HOME/bin vi dbstart ORACLE\_HOME\_LISTNER=ORACLE_HOME

vim /etc/oratab
ORCL:/u01/app/oracle/product/19.3.0/dbhome_1:Y

-- vim /usr/bin/oracle.sh  #Root权限

#! /bin/bash
# script For oracle19c.service
/u01/app/oracle/product/19.3.0/db_home_1/bin/lsnrctl start
/u01/app/oracle/product/19.3.0/db_home_1/bin/dbstart

chmod 555 /usr/bin/oracle.sh

-- 设置成系统服务oracle19c.service

vim /etc/systemd/system/oracle19c.service
[Unit]
Description=Oracle19c
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_home_1"
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target

-- 开机自启动oracle服务

systemctl enable oracle19

-- 重启服务器reboot,验证oracle是否自启动

Systemctl status oracle

七 登陆数据库

Sqlplus / as sysdba                                                                                                                                 

Desc v$database

Archive log list

八碎碎念

os参数配置,oracle官方网站有提供。