# oracle-install-backup **Repository Path**: poenr/oracle-install-backup ## Basic Information - **Project Name**: oracle-install-backup - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-01-03 - **Last Updated**: 2022-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 文档说明 ``` 本项目用于在Centos8服务器上安装oracle23c及实现数据库配置、数据备份等操作 ``` ### 服务器基础环境准备 ``` #检查操作系统类型 cat /etc/redhat-release #主机名 hostnamectl set-hostname ecs-99a6 hostname cat /etc/hostname #域名解析,XX为服务器外网ip sudo cat <<'EOF'>>/etc/hosts XX ecs-99a6 ecs-99a6 EOF #系统语言建议用英文,添加中文语言支持 yum install -y glibc-langpack-zh yum install -y glibc-langpack-en echo "export LC_ALL=en_US.UTF-8" >> /etc/profile source /etc/profile #安全配置,防火墙开启相应的端口,关闭selinux #其他,配置yum安装源 ``` ### oracle安装文件下载 * 下载LINUX.X64_213000_db_home.zip参考 [下载说明](/download/README.md) ### oracle数据库安装 * 可用于恢复数据的目标端机器或者DG的standby机器做初始化 ``` git clone https://gitee.com/poenr/oracle-install-backup.git cd /home/oracle-install-backup/ #默认安装过程包括安装数据库软件及创建第一个数据库实例ORCL # 仅安装数据库软件 sh install.sh # 安装数据库并创建数据库实例 sh install.sh createDatabase #如有必要,修改install.sh如下行,设置需要创建的文件目录 ORACLE_SID=ORCL ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/21.0.0/dbhome_1 ORA_INVENTORY=/u01/app/oraInventory DATA_DIR=/u02/oradata ADUMP_DIR=$ORACLE_BASE/admin/$ORACLE_SID/adump #如有必要,修改install.sh如下行的,设置UNQNAME、ORACLE_SID、PDB_NAME export ORACLE_UNQNAME=ORCL export ORACLE_BASE=$ORACLE_BASE export ORACLE_HOME=$ORACLE_HOME export ORA_INVENTORY=$ORA_INVENTORY export ORACLE_SID=ORCL export PDB_NAME=PDBORCL #如有必要,修改install.sh如下行,设置characterSet、sysPassword、systemPassword -characterSet AL32UTF8 -sysPassword Windows-789 -systemPassword Windows-789 ``` ### 安装rlwrap方便sqlplus使用 ``` sudo yum install autoconf automake sudo yum install -y readline-devel wget -c https://fossies.org/linux/privat/rlwrap-0.45.2.tar.gz tar -xvf rlwrap-0.45.2.tar.gz cd rlwrap-0.45.2 autoreconf --install ./configure make && make install echo "alias sqlplus='rlwrap sqlplus'" >> /home/oracle/.bash_profile su - oracle -c 'source .bash_profile' su - oracle -c 'rlwrap sqlplus / as sysdba' ``` ### oracle数据库打开归档模式 ``` #使用rman工具进行热备份务必打开归档模式,否则只能实现冷备份 su - oracle -c 'sqlplus / as sysdba < /dev/null 2>&1 ``` ### oracle数据库使用rman备份 ``` #源端数据库在root账号下执行 sh rmanBackup.sh # 备份文件及过程日志存放到目录 /home/rman_backup/data/$(date +%Y%m%d%H%M%S) # 备份的文件包括参数文件spfile、控制文件controlfile、DB数据库文件、ARCH归档日志 # 备份过程日志记录在rman-backup.log # 备份日志中可查询到DBID、备份时间节点所在的SCN等关键信息 源端备份文件压缩,2022XXXXXXXXXX为备份所在的目录 cd /home/rman_backup/data/2022XXXXXXXXXX tar -zcvf 2022XXXXXXXXXX.tar.gz 2022XXXXXXXXXX ``` ![rman备份结果](/images/rman_backup_result1.png) ### 异机迁移恢复数据 ``` #异机恢复的前提是安装一个与源端数据库软件版本及安装目录一致的数据库,此处使用脚本安装初始数据库 git clone https://gitee.com/poenr/oracle-install-backup.git cd /home/oracle-install-backup/ # 仅安装数据库软件 sh install.sh #从源端传输备份文件 mkdir -p /home/rman_backup/data/ scp root@XX:/home/rman_backup/data/2022XXXXXXXXXX.tar.gz /home/rman_backup/data/ #修改rmanRestoreFromBackup.sh第6行的还原文件所在目录 #在root账号下执行 sh rmanRestoreFromBackup.sh #还原过程的rman操作记录日志在/home/rman_backup/data/2022XXXXXXXXXX/rman-restore.log # 检查恢复的数据是否正常,用表TST_CRONTB的备份节点所在数据来检查 su - oracle -c "sqlplus C##qms/windows-999 <