一、安装前环境准备
1.1 安装依赖包 yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat openssh-clients compat-libcap1 xorg-x11-utils xorg-x11-xauth elfutils unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686 libXp elfutils-libelf elfutils-libelf-devel expat pdksh smartmontools tcpdump trouceroute iftop lvm2 lrzsz
1.2 创建lvm
pvcreate /dev/vdb
vgcreate vg00 /dev/vdb
lvcreate -l 100%FREE -n oradata vg00
1.3 格式化磁盘 mkfs.xfs /dev/mapper/vg00-oradata
1.4挂在磁盘 mkdir /oracle /oradata /oraredo /oraback
mount /dev/vg00/oradata /oradata
mount /dev/vg01/oraredo /oraredo/
1.5创建swap分区
dd if=/dev/zero of=/swap.img bs=1024 count=1048576
mkswap /swap.img
swapon /swap.img
chmod 0600 /swap.img
swapon -s
swapon -a 1
.6 开机启动
/etc/fstab /swap.img swap swap defaults 0 0 /dev/vg00/oradata /oradata ext4 defaults 0 0 /dev/vg01/oraredo /oraredo ext4 defaults 0 0
1.7 关闭Selinux
sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
setenforce 0
1.8 配置hosts
10.131.159.219 ORACLE_01 oracle1
10.131.156.167 ORACLE_02 oracle2
1.9 配置内核参数
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 65536
oracle hard nproc 65536
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock unlimited
oracle hard memlock unlimited
EOF
1.10 配置sysctl.conf
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 16777216
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 524288
net.core.rmem_max = 4194304
net.core.wmem_default = 524288
net.core.wmem_max = 4194304
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.ipfrag_time = 30
net.ipv4.ipfrag_low_thresh = 524288
net.ipv4.ipfrag_high_thresh = 10485760
fs.file-max = 6815744
fs.aio-max-nr = 3145728
## 大内存需配置大叶,需要根据SGA进行计算
vm.nr_hugepages = 18436
vm.hugetlb_shm_group=501
EOF
1.11 禁用透明大页和内存整理功能
vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
1.12 修改grub
修改/etc/default/grub 文件,添加以下内容到GRUB_CMDLINE_LINUX项
numa=off transparent_hugepage=never elevator=noop
# 执行以下命令生成配置文件后重启操作系统
grub2-mkconfig -o /boot/grub2/grub.cfg
systemctl reboot (linux)
1.13 创建oracle用户
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -u 501 -g oinstall -G dba
oracle chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /oraredo
chown -R oracle:oinstall /oracle
chown -R oracle:oinstall /oraback
chmod -R 775 /oradata
1.14 配置Oracle环境变量
export ORACLE_SID=fat
export ORACLE_UNQNAME=fat
export ORACLE_BASE=/oracle/app/oracle export
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SSXFF AM'
export NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SSXFF AM TZR'
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
alias cddbs='cd $ORACLE_HOME/dbs'
alias cdnet='cd $ORACLE_HOME/network/admin'
alias sys='sqlplus / as sysdba'
alias alert='tail -f -n 500 $ORACLE_BASE/diag/rdbms/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
export ALERT_LOG=$ORACLE_BASE/diag/rdbms/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log
## clean history
>~/.sqlplus_history
>~/.viminfo
>~/.mysql_history
>~/.bash_history history -cw
>~/.sqlplus_history
>~/.viminfo
>~/.mysql_history
>~/.bash_history
history -cw
stty erase ^H
二、Oracle安装 2.1 创建$ORACLE_HOME
mkdir /oracle/app/oracle/product/19.0.0/db_1 2.2
解压数据库包
unzip LINUX.X64_193000_db_home.zip -d /oracle/app/oracle/product/19.0.0/db_1 2.3
配置rsp文件
[oracle@ecs-fat-oracle-01 response]$ grep -v '^\s*#' db_install.rsp |grep -v '^\s*$'
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/oracle/oraInventory
ORACLE_HOME=/oracle/app/oracle/product/19.0.0/db_1
ORACLE_BASE=/oracle/app/oracle oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=
oracle.install.db.rootconfig.configMethod=
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
2.4 静默安装oracle
cd $ORACLE_HOME
./runInstaller -silent -responseFile /oracle/app/oracle/product/19.0.0/db_1/install/response/db_install.rsp
2.5 静默建库 dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname fat -sid fat -responseFile NO_VALUE -characterSet AL32UTF8 -sysPassword Abcd-1234 -systemPassword Abcd-1234 -createAsContainerDatabase false -databaseType MULTIPURPOSE -memoryMgmtType auto_sga -totalMemory 20480 -storageType FS -datafileDestination "/oradata/" -redoLogFileSize 100 -emConfiguration NONE -ignorePreReqs
三、打补丁 3.1 上传补丁包
p36260493_190000_Linux-x86-64.zip
p36582629_190000_Linux-x86-64.zip
p6880880_230000_Linux-x86-64.zip
3.2 备份Opatch
cd $ORACLE_HOME mv Opatch Opatch_bak
3.2 解压补丁包
unzip p36260493_190000_Linux-x86-64.zip -d $ORACLE_HOME
3.3 解压补丁包打包
cd /software unzip p36582629_190000_Linux-x86-64.zip
cd /software/36582629
#检查
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
#应用补丁包
/oracle/app/oracle/product/19.0.0/db_1/OPatch/opatch apply
#检查是否成功
opatch lspatches
应用补丁SQL变更
datapatch --verbose
重新编译无效对象
@$ORACLE_HOME/rdbms/admin/utlrp.sql
检查补丁版本
select patch_id,patch_type,action,status,target_version from dba_registry_sqlpatch;
四、Dataguard配置
4.1 修改监听
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=ecs-fat-oracle-01)(PORT=15210))' SCOPE=BOTH; ALTER SYSTEM REGISTER;
4.2 在$ORACLE_HOME/network/admin下面添加文件listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ecs-fat-oracle-01)(PORT = 15210)) ) )
4.3 增加翻页功能
yum install readline* epel-release rlwrap
五、数据迁移 迁移前准备创建表空间
create tablespace TABLESPACE_JPDEV datafile '/oradata/FAT/jpdev01.dbf' size 3G AUTOEXTEND ON NEXT 1G;
5.1 FAT备份数据
docker exec -it -uroot oracle11 bash
su - oracle
expdp "'/ as sysdba'" directory=tiger dumpfile=fat%U.dmp logfile=fat.log version=11.2 parallel=8
schemas=MKTARENAP &
expdp "'/ as sysdba'" directory=tiger dumpfile=oe.dmp logfile=oe.log version=11.2 schemas=OE &
5.2 从容器cp到宿主机
docker cp oracle11:/home/oracle/tiger/ /tiger
5.3 宿主机压缩数据
tar -czvf 3.tar.gz fat03.dmp
5.4 下载到本地
sz 1.tar.gz
5.5 上传到华为云
5.6导入数据
impdp "'/ as sysdba'" directory=lion dumpfile=fat%U.dmp logfile=impdp.log schemas=C69MKTARENAPLUS, parallel=8 &
impdp "'/ as sysdba'" directory=lion dumpfile=oe.dmp logfile=oe.log schemas=OE &
六、创建用户 alter user system identified by oracle;
alter user sys identified by oracle;




