oracle ocp 上机实践
这份《Oracle OCP 19c 上机实操手册》是为你量身定制的备考与实战指南。
手册完全覆盖19c 考试核心考点,并将繁杂的命令整理成可直接复制运行的实操脚本。建议配合实验环境,按模块沉浸式练习。
📘 Oracle OCP 19c 上机实操手册
📌 前言
- 适用版本:Oracle Database 19c (19.3.0)
- 核心目标:通过OCP认证,掌握企业级运维、备份恢复、RAC与ASM核心技能。
- 环境要求:一台安装好Oracle 19c的Linux服务器(如Oracle Linux 7.9),具备
sysdba权限。
模块一:数据库安装与升级(静默安装)
1. Linux 环境准备(必做)
# 1. 安装依赖包
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
# 2. 修改内核参数
cat >> /etc/sysctl.conf << EOF
fs.file-max = 6815743
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
sysctl -p
# 3. 创建用户组与用户
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle
# 4. 设置资源限制
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF
2. 静默安装数据库
# 1. 解压安装包
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
# 2. 创建响应文件(db_install.rsp)
cat > /home/oracle/db_install.rsp << EOF
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
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=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ORCLCDB
oracle.install.db.config.starterdb.SID=ORCLCDB
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryLimit=2048
oracle.install.db.config.starterdb.password.ALL=Oracle#123
SECURITY_UPDATES_VIA_MYORACLE_SUPPORT= false
DECLINE_SECURITY_UPDATES=true
EOF
# 3. 执行安装
su - oracle
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller -silent -responseFile /home/oracle/db_install.rsp
注意:安装过程中会提示执行
root.sh脚本,按提示在另一个终端执行。
模块二:ASM 与 存储管理
1. ASM 实例创建与管理
-- 1. 启动ASM实例(手动)
export ORACLE_SID=+ASM
sqlplus / as sysdba
STARTUP;
-- 2. 查看磁盘组
SELECT NAME, STATE, TYPE FROM V$ASM_DISKGROUP;
-- 3. 创建新磁盘组(考试常考)
CREATE DISKGROUP DG_DATA NORMAL REDUNDANCY
FAILGROUP FG1 DISK '/dev/sdb1' NAME DISK1
FAILGROUP FG2 DISK '/dev/sdb2' NAME DISK2
ATTRIBUTE 'au_size' = '4M', 'compatible.asm' = '19.0', 'compatible.rdbms' = '19.0';
-- 4. 添加故障域磁盘
ALTER DISKGROUP DG_DATA ADD FAILGROUP FG3 DISK '/dev/sdb3' NAME DISK3;
模块三:网络配置与监管理
1. 监听器配置 (listener.ora)
# 编辑 $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:/u01/app/oracle/product/19.0.0/dbhome_1/bin/oraclr19.so")
)
)
2. 本地命名服务 (tnsnames.ora)
# 编辑 $ORACLE_HOME/network/admin/tnsnames.ora
ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
3. 监听器控制命令
lsnrctl start LISTENER
lsnrctl stop LISTENER
lsnrctl status
模块四:RMAN 备份与恢复(重中之重)
1. 配置 RMAN 环境
-- 1. 连接到RMAN
rman target /
-- 2. 配置备份保留策略(恢复目录考试常考)
CONFIGURE RETENTION POLICY TO REDUNDANCY 2; -- 保留2份备份
-- 3. 配置通道(并行度)
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%U.bkp';
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
-- 4. 配置控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/ctl_%F.bkp';
2. 全量与增量备份
-- 1. 全量备份数据库
BACKUP DATABASE PLUS ARCHIVELOG;
-- 2. 差异增量备份(常用,考试考)
BACKUP INCREMENTAL LEVEL 1 DATABASE;
-- 3. 备份归档日志
BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
3. 恢复场景实操(模拟故障)
场景 A:丢失数据文件(system01.dbf)
-- 1. 启动到mount状态
STARTUP MOUNT;
-- 2. 恢复数据文件
RESTORE DATAFILE 1; -- 1是system文件编号
RECOVER DATAFILE 1;
-- 3. 打开数据库
ALTER DATABASE OPEN;
场景 B:误删表(闪回表,OCP 19c 新特性)
-- 1. 开启行移动
ALTER TABLE emp ENABLE ROW MOVEMENT;
-- 2. 闪回到指定时间点
FLASHBACK TABLE emp TO TIMESTAMP TO_TIMESTAMP('2024-03-27 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
模块五:高可用性与数据卫士 (Data Guard)
1. 主库配置(准备备库)
-- 1. 主库强制归档
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u01/arch' SCOPE=SPFILE;
-- 2. 配置DG远程归档 dest(备库地址)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'SERVICE=STDBY VALID_FOR=(ALL_LOGFILES, ALL_ROLES)' SCOPE=SPFILE;
-- 3. 开启归档模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- 4. 创建备库 redo log 文件(建议组)
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4 ('/u01/oradata/ORCLCDB/redo04.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5 ('/u01/oradata/ORCLCDB/redo05.log') SIZE 50M;
2. 备库创建与启动
# 1. 复制主库密码文件、pfile到备库
scp oracle@primary:/u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwORCLCDB /u01/app/oracle/product/19.0.0/dbhome_1/dbs/
scp oracle@primary:/u01/app/oracle/product/19.0.0/dbhome_1/dbs/initORCLCDB.ora /u01/app/oracle/product/19.0.0/dbhome_1/dbs/
# 2. 备库修改pfile
echo "*.db_unique_name=STDBY" >> $ORACLE_HOME/dbs/initORCLCDB.ora
# 3. 启动备库(NOMOUNT)
export ORACLE_SID=ORCLCDB
sqlplus / as sysdba
STARTUP NOMOUNT PFILE=$ORACLE_HOME/dbs/initORCLCDB.ora;
# 4. RMAN duplicate 复制备库
rman target sys/Oracle#123@primary auxiliary /
DUPLICATE TARGET DATABASE TO STDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
模块六:性能调优(AWR/ASH报告)
1. 生成 AWR 报告
# 1. 执行脚本
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba @?/rdbms/admin/awrrpt.sql
# 2. 交互输入
# 输入报告类型:html
# 输入起始快照ID:1
# 输入结束快照ID:10
# 输入报告名称:awr_report.html
2. 分析 Top 10 等待事件
-- 查看实例整体等待情况
SELECT EVENT, TOTAL_WAITS, TIME_WAITED_MICRO
FROM V$SYSTEM_EVENT
ORDER BY TIME_WAITED_MICRO DESC
FETCH FIRST 10 ROWS ONLY;
-- 查看当前会话等待
SELECT SID, SERIAL#, EVENT, STATE, WAIT_TIME
FROM V$SESSION
WHERE WAIT_CLASS <> 'Idle';
📝 备考建议(Cheat Sheet)
- 重点抓分:RMAN恢复、Data Guard切换、ASM磁盘组管理是OCP考试的必考实操题。
- 命令熟练度:对于
CREATE DISKGROUP、FLASHBACK TABLE、RMAN RESTORE这些命令,做到盲打不出错。 - 排错思维:实验中遇到
ORA-1503(磁盘组无法挂载),先检查asm_diskstring参数;遇到ORA-16047(DG归档失败),先检查LOG_ARCHIVE_DEST_2连通性。
浙公网安备 33010602011771号