书山有路勤为径,学海无涯苦作舟

0%

OCP 0002 19c Standalone Oracle Restart

19c Standalone(Oralce Restart)

19c Standalone(Oralce Restart)

操作系统配置

关闭防火墙

1
2
3
4
# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable iptables
# systemctl stop iptables

禁用 Selinux

临时关闭

1
# setenforce 0

持久化修改

1
# sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

用户、组、目录和环境变量

添加 oracle 和 grid 用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid

echo <password> | passwd --stdin oracle
echo <password> | passwd --stdin grid

创建安装目录

1
2
3
4
5
6
7
8
9
10
11
mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

配置 grid 和 oracle 用户的环境变量文件

oracle 用户

1
$ vi /home/oracle/.bash_profile

未完待续……

grid 用户

1
$ vi /home/grid/.bash_profile

未完待续……

配置 root 用户的环境变量

1
# vi /etc/profile
1
2
3
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export GRID_HOME=$ORACLE_HOME

依赖包的检查

参考官方文档(Database Installation Guide)

安装 Oracle 需要的软件包参考

http://blog.itpub.net/26736162/viewspace-2133603/

检查命令

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libgcc \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
libXext \
libXtst \
libX11 \
libXau \
libxcb \
libXi \
make \
elfutils-libelf-devel \
sysstat | grep "not installed"
1
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' compat-libstdc++-33

安装缺失的包

1
2
3
4
yum install -y elfutils-libelf-devel*
yum install -y compat-libstdc++*
yum install -y libaio-devel*
yum install -y ksh*

最后重新检查,确保所有的包已安装。需要注意的是,有的时候由于版本的问题导致检查有问题,所以需要用rpm -qa | grep libstdc来检查。

1
yum install binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc.i686 glibc-devel ksh libgcc.i686 libstdc++-devel libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat unixODBC unixODBC-devel zlib-devel zlib-devel.i686 compat-libcap1 -y

配置内核参数

修改 /etc/sysctl.conf 文件

1
# vi /etc/sysctl.conf

添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
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
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.panic_on_oops = 1
net.ipv4.conf.enp0s8.rp_filter = 2
net.ipv4.conf.enp0s9.rp_filter = 2
net.ipv4.conf.enp0s10.rp_filter = 2

生效

1
# sysctl -p

修改 /etc/security/limits.conf 文件

修改 OS 用户 grid 和 oracle 资源限制

1
# cp /etc/security/limits.conf /etc/security/limits.conf.`date +%Y%m%d`
1
2
3
4
5
6
7
8
9
10
11
12
13
# echo "grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
root soft nproc 2047 " >> /etc/security/limits.conf

修改 /etc/pam.d/login 文件

1
# echo "session   required    pam_limits.so" >> /etc/pam.d/login

修改 /etc/profile 文件

1
# vi /etc/profile
1
2
3
4
5
6
7
8
9
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

配置 /dev/shm 大小

不配置会报错:ORA-00845: MEMORY_TARGET not supported on this system,是因为 /dev/shm 的可用空间(非 shm 的总大小)小于了参数文件中设置的 MEMORY_TARGET 值。

增大/dev/shm

1
# vi /etc/fstab
1
tmpfs /dev/shm tmpfs defaults,size=11G 0 0

重新挂载

1
# mount -o remount /dev/shm

配置 ASM 磁盘

Faking 方式

用文件假冒 ASM 磁盘

1
2
3
# raw -qa
# losetup -a
# mknod -m 0660 /dev/loop9 b 7 9
1
2
3
4
mkdir /asmdisk
dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=2000

Add the following entries to the file “/etc/rc.local”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3

raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3

chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chown grid:asmadmin /dev/raw/raw1
chown grid:asmadmin /dev/raw/raw2
chown grid:asmadmin /dev/raw/raw3

VMware Workstation 软件(可做 rac 共享盘)

直接添加磁盘,然后做 udev 绑定即可

缺点:只能整块盘绑定

openfiler(可做 rac 共享盘)

需要部署 openfiler,用来模拟存储

http://blog.itpub.net/26736162/viewspace-2132858/

ASMLIB(可做 rac 共享盘)

5.x:http://blog.itpub.net/26736162/viewspace-1401193/

安装 asmlib

先安装 kmod-oracleasm,再安装 oracleasmlib 和 oracleasm-support

kmod-oracleasm

1
# yum install -y kmod-oracleasm

oracleasmlib 和 oracleasm-support

1
2
3
# wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el7.x86_64.rpm
# wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el7.x86_64.rpm
# rpm -ivh *.rpm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
systemctl enable oracleasm.service

oracleasm configure -i # grid,asmadmin,y,y
oracleasm configure -d
oracleasm configure -e

oracleasm init #若初始化失败,则尝试重启OS
oracleasm status

vgreduce vg_orasoft /dev/sdb8
pvremove /dev/sdb8 /dev/sdb9


fdisk -l | grep dev
oracleasm createdisk ASMLIB01 /dev/sdb8
oracleasm createdisk ASMLIB02 /dev/sdb9
oracleasm listdisks
# oracleasm renamedisk -f /dev/sdf1 asmdisk3

oracleasm 常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/usr/sbin/oracleasm configure -i
/usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
/etc/init.d/oracleasm enable
/etc/init.d/oracleasm restart
/etc/init.d/oracleasm status
/etc/init.d/oracleasm init

/usr/sbin/oracleasm enable
/usr/sbin/oracleasm restart
/usr/sbin/oracleasm createdisk DISKNAME devicename
/usr/sbin/oracleasm deletedisk DISKNAME
/usr/sbin/oracleasm querydisk {DISKNAME | devicename}
/usr/sbin/oracleasm listdisks
/usr/sbin/oracleasm scandisks
1
ls -l /dev/oracleasm/disks

asmlib 配置文件

1
2
cat /etc/sysconfig/oracleasm
oracleasm configure

oracleasm 日志

1
tail -f /var/log/oracleasm

查询 ASM 磁盘

1
2
# $GRID_HOME/bin/kfod disks=all st=true ds=true cluster=true
asm_diskstring='/dev/raw/raw*','/dev/asm-*','/dev/oracleasm/disks/*'
1
SQL> alter system set asm_diskstring='/dev/raw/raw*','/dev/asm-*','ORCL:*';

iSCSI 方式(可做 rac 共享盘)

1
2
3
4
# iscsiadm -m node -T iqn.2018-10.org.linux-iscsi.cos73lhr.x8664:sn.lhraxxt20180917 -p 192.168.59.53 –logout
# iscsiadm -m node --logoutall=all
# rm -rf /var/lib/iscsi/*
# rm -rf /etc/udev/rules.d/99-oracle-asmdevices.rules
1
2
3
4
5
6
7
8
9
targetcli
> ls
> cd /iscsi/iqn.2003-01.org.linux-iscsi.cos73lhr.x8664:sn.7435eaf5ae5d/tpg1/portals
> delete 192.168.59.51 3260
# create 0.0.0.0
> create 192.168.59.52
> cd /
> saveconfig
> exit
1
2
vi /etc/iscsi/initiatorname.iscsi
# iqn.2003-01.org.linux-iscsi.cos73lhr.x8664:sn.7435eaf5ae5d
1
2
3
# systemctl start target
# systemctl enable iscsid
# systemctl status iscsid
1
2
iscsiadm -m discovery -t st -p 192.168.59.52
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.cos73lhr.x8664:sn.7435eaf5ae5d -p 192.168.59.52 --login

udev 绑定

1
# fdisk -l | grep dev
1
2
# while scsi_id
/usr/lib/udev/scsi_id
1
2
3
for i in c d e f g h i j k l m n; do 
echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
1
2
3
4
5
6
7
8
9
10
11
12
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405d8e73735d6e44e1d9a5f3f461", RUN+="/bin/sh -c 'mknod /dev/asm-diskc b  $major $minor; chown grid:asmadmin /dev/asm-diskc; chmod 0660 /dev/asm-diskc'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405315cda11ab7d4f1f9f7d36085", RUN+="/bin/sh -c 'mknod /dev/asm-diskd b $major $minor; chown grid:asmadmin /dev/asm-diskd; chmod 0660 /dev/asm-diskd'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014055beb5701c4f54803b0c9b43b6", RUN+="/bin/sh -c 'mknod /dev/asm-diske b $major $minor; chown grid:asmadmin /dev/asm-diske; chmod 0660 /dev/asm-diske'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="3600140598d211f7135f447993f791450", RUN+="/bin/sh -c 'mknod /dev/asm-diskf b $major $minor; chown grid:asmadmin /dev/asm-diskf; chmod 0660 /dev/asm-diskf'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405fdd6814654ed4e3289bca25dc", RUN+="/bin/sh -c 'mknod /dev/asm-diskg b $major $minor; chown grid:asmadmin /dev/asm-diskg; chmod 0660 /dev/asm-diskg'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014054e87839630c742749c47cfbbe", RUN+="/bin/sh -c 'mknod /dev/asm-diskh b $major $minor; chown grid:asmadmin /dev/asm-diskh; chmod 0660 /dev/asm-diskh'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014051a51f44f304c4779a4dc1db5b", RUN+="/bin/sh -c 'mknod /dev/asm-diski b $major $minor; chown grid:asmadmin /dev/asm-diski; chmod 0660 /dev/asm-diski'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405c54256a24d134511a2728470b", RUN+="/bin/sh -c 'mknod /dev/asm-diskj b $major $minor; chown grid:asmadmin /dev/asm-diskj; chmod 0660 /dev/asm-diskj'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014059692987bb6644c7b94a12ebc3", RUN+="/bin/sh -c 'mknod /dev/asm-diskk b $major $minor; chown grid:asmadmin /dev/asm-diskk; chmod 0660 /dev/asm-diskk'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405dc34ba4b43de468bb0e742bf0", RUN+="/bin/sh -c 'mknod /dev/asm-diskl b $major $minor; chown grid:asmadmin /dev/asm-diskl; chmod 0660 /dev/asm-diskl'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36001405b2d80fc6807b4bf6950c8ce78", RUN+="/bin/sh -c 'mknod /dev/asm-diskm b $major $minor; chown grid:asmadmin /dev/asm-diskm; chmod 0660 /dev/asm-diskm'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="360014051d939f0d61b04d40b0be5a313", RUN+="/bin/sh -c 'mknod /dev/asm-diskn b $major $minor; chown grid:asmadmin /dev/asm-diskn; chmod 0660 /dev/asm-diskn'"

重启服务

1
2
# /sbin/udevadm trigger --type=devices --action=change
# /sbin/udevadm control --reload

另一种方式

1
2
3
for i in f g h i j k l m; do
echo "KERNEL==\"dm-*\", BUS==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",NAME=\"asm-disk$i\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\""
done
1
2
3
4
5
6
7
8
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="3600140598d211f7135f447993f791450",NAME="asm-diskf",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36001405fdd6814654ed4e3289bca25dc",NAME="asm-diskg",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360014054e87839630c742749c47cfbbe",NAME="asm-diskh",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360014051a51f44f304c4779a4dc1db5b",NAME="asm-diski",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36001405c54256a24d134511a2728470b",NAME="asm-diskj",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360014059692987bb6644c7b94a12ebc3",NAME="asm-diskk",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36001405dc34ba4b43de468bb0e742bf0",NAME="asm-diskl",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*", BUS=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36001405b2d80fc6807b4bf6950c8ce78",NAME="asm-diskm",OWNER="grid",GROUP="asmadmin",MODE="0660"

数据库软件准备

上传安装文件

上传至 /soft

解压文件

1
2
# su - grid
$ unzip /soft/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid
1
2
# su - oracle
$ unzip /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1

注意:18c 起解压缩的文件所在目录就是 grid home,所以解压的时候,就要把文件解压到之前定的 GRID_HOME 下。

卸载

1
2
3
4
5
# kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`
# rm -rf /etc/ora*
# rm -rf /var/tmp/.oracle
# rm -rf /tmp/*
# rm -rf /u01/app/*

清除 OCR、Voting 及数据库使用过的磁盘

1
2
3
# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=1
# dd if=/dev/zero of=/dev/asm-diski bs=1024 count=1
# dd if=/dev/zero of=/dev/sdb8 bs=1024 count=1
1
# hexdump -n 1024 -C /dev/asm-diski
1
# oracleasm querydisk -p asmlib1

图形化安装 grid 和 db

http://blog.itpub.net/26736162/viewspace-2637602/

grid

1
2
3
# su - grid
$ export DISPLAY=10.0.8.200:0.0
$ /u01/app/19.3.0/grid/gridSetup.sh

db

1
2
3
4
# su - oracle
$ cd $ORACLE_HOME
$ export DISPLAY=10.0.8.200:0.0
$ ./runInstaller

静默安装 grid

安装

响应文件:/u01/app/19.3.0/grid/inventory/response/grid_install.rsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# su - grid
$ /u01/app/19.3.0/grid/gridSetup.sh -silent -force -noconfig -ignorePrereq \
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 \
INVENTORY_LOCATION=/u01/app/oraInventory \
oracle.install.option=HA_CONFIG \
ORACLE_BASE=/u01/app/grid \
oracle.install.asm.OSDBA=asmdba \
oracle.install.asm.OSOPER=asmoper \
oracle.install.asm.OSASM=asmadmin \
oracle.install.asm.SYSASMPassword=<password> \
oracle.install.asm.monitorPassword=<password> \
oracle.install.crs.config.scanType=LOCAL_SCAN \
oracle.install.crs.config.ClusterConfiguration=STANDALONE \
oracle.install.crs.config.configureAsExtendedCluster=false \
oracle.install.crs.config.useIPMI=false \
oracle.install.asm.storageOption=ASM \
oracle.install.asm.diskGroup.name=OCR \
oracle.install.asm.diskGroup.redundancy=EXTERNAL \
oracle.install.asm.diskGroup.AUSize=4 \
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/raw/raw1,,/dev/raw/raw2,,/dev/raw/raw3, \
oracle.install.asm.diskGroup.disks=/dev/raw/raw1,/dev/raw/raw2,/dev/raw/raw3 \
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw* \
oracle.install.crs.rootconfig.executeRootScript=false

根据提示,使用 root 跑脚本

1
2
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/19.3.0/grid/root.sh

在使用 grid 跑脚本

1
$ /u01/app/19.3.0/grid/gridSetup.sh -silent -executeConfigTools -responseFile /u01/app/19.3.0/grid/install/response/grid_2020-03-27_03-19-28PM.rsp

创建 ASM 实例

图形化创建

1
2
# su - grid
$ /u01/app/19.3.0/grid/bin/asmca

静默

1
2
3
4
5
6
7
8
# su - grid
$ /u01/app/19.3.0/grid/bin/asmca -silent -configureASM \
-sysAsmPassword <password> \
-asmsnmpPassword <password> \
-diskString '/dev/raw/raw*' \
-diskGroupName OCR \
-diskList /dev/raw/raw1,/dev/raw/raw2,/dev/raw/raw3 \
-redundancy EXTERNAL

创建监听

1
2
3
4
# su - grid
$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp -instype custom -listener LISTENER -lisport 1521
$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp -instype custom -listener LISTENER_1522 -lisport 1522

创建 DATA 和 FRA 磁盘组

查询 ASM 磁盘

1
# $GRID_HOME/bin/kfod disks=asm  st=true ds=true cluster=true
1
2
3
4
5
6
7
sql> alter system set asm_diskstring='/dev/raw/raw*','/dev/asm-*';

sql> col name format a10
sql> set line 9999
sql> col path format a25
sql> select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;
sql> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
1
2
3
4
# su - grid
$ asmcmd
ASMCMD> create diskgroup DATA external redundancy disk '/dev/asm-diski','/dev/asm-diskj','/dev/asm-diskk' ATTRIBUTE 'compatible.rdbms' = '19.0', 'compatible.asm' = '19.0';
ASMCMD> create diskgroup FRA external redundancy disk '/dev/asm-diskl','/dev/asm-diskm','/dev/asm-diskn' ATTRIBUTE 'compatible.rdbms' = '19.0', 'compatible.asm' = '19.0';

静默安装 db 软件

1
2
# su - oracle
$ cd $ORACLE_HOME
1
2
3
4
5
6
7
8
9
10
11
12
13
$ /u01/app/oracle/product/19.3.0/dbhome_1/runInstaller -silent  -force -noconfig  -ignorePrereq \
oracle.install.responseFileVersion=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.install.db.InstallEdition=EE \
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 用户,执行脚本

1
# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

dbca 静默建库

PDB

1
2
3
4
5
6
7
8
9
10
11
12
# su - oracle
$ dbca -silent -ignorePreReqs -ignorePrereqFailure -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname ocp19cdb -sid ocp19cdb \
-createAsContainerDatabase TRUE \
-sysPassword <password> -systemPassword <password> -pdbAdminPassword <password> -dbsnmpPassword <password> \
-datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
-storageType ASM \
-characterset AL32UTF8 \
-sampleSchema true \
-totalMemory 1024 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE

CDB

1
2
3
4
5
6
7
8
9
10
11
12
# su - oracle
$ dbca -silent -ignorePreReqs -ignorePrereqFailure -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname ocp19sdb -sid ocpsdb \
-createAsContainerDatabase FALSE \
-sysPassword <password> -systemPassword <password> -dbsnmpPassword <password> \
-datafileDestination '/u01/app/oracle/oradata' -recoveryAreaDestination '/u01/app/oracle/flash_recovery_area' \
-storageType FS \
-characterset ZHS16GBK \
-sampleSchema true \
-totalMemory 600 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE