![](https://img2018.cnblogs.com/blog/1555171/201812/1555171-20181206160718276-870436605.png)
![](https://img2018.cnblogs.com/blog/1555171/201812/1555171-20181206160732331-631506311.png)
在偶数机上手工创建PROD3数据库
--创建PROD3目录
mkdir -p /u01/app/oracle/oradata/PROD3
--生成密码文件
orapwd file=$ORACLE_HOME/dbs/orapwPROD3 password=oracle entries=5;
--添加PROD3的.ora文件(试验过最简单写法)
vi /home/oracle/3.ora
db_create_file_dest='/u01/app/oracle/oradata/PROD3'
db_block_size=8192
db_name=PROD3
sga_target=500m
control_files='/u01/app/oracle/oradata/PROD3/control01.ctl'
--切环境变量
. oraenv
PROD4
export ORACLE_SID=PROD3
sqlplus / as sysdba
SQL>startup nomount pfile='/home/oracle/3.ora'
SQL>create database PROD3 character set al32utf8 extent management local;
SQL>@?/rdbms/admin/catalog.sql
SQL>@?/rdbms/admin/catproc.sql
SQL>alter user system identified by oracle;
SQL>conn system/oracle
SQL>@?/sqlplus/admin/pupbld.sql
SQL>conn / as sysdba
--最后记得生成spfile文件
SQL>create spfile from memory;
奇数机创建EM,为后面的操作做铺垫
SQL>alter user dbsnmp identified by oracle account unlock;
emca -config dbcontrol db -repos recreate
emctl status dbconsole
--访问方式:此IP根据环境不同进行调整,端口为1158
https://10.190.104.111:1158/em
表空间管理
--PROD1上创建临时表空间组
SQL>create temporary tablespace temp1 tempfile '/u01/app/oracle/oradata/PROD1/temp1.dbf' size 50m autoextend on tablespace group temp_grp;
SQL>create temporary tablespace temp2 tempfile '/u01/app/oracle/oradata/PROD1/temp2.dbf' size 50m autoextend on tablespace group temp_grp;
SQL>alter database default temporary tablespace temp_grp;
--在PROD1上创建大文件表空间
SQL>create bigfile tablespace test datafile '/u01/app/oracle/oradata/PROD1/test01.dbf' size 400m autoextend on next 1m maxsize 4t extent management local uniform size 1m;
--在PROD1上创建indx表空间:
SQL>create tablespace indx datafile '/u01/app/oracle/oradata/PROD1/indx1.dbf' size 40m;
--在PROD1上创建tools表空间:
SQL>create tablespace tools datafile '/u01/app/oracle/oradata/PROD1/tools1.dbf' size 10m;
--在PROD1上创建初始区大小为2M的oltp表空间:
SQL>create tablespace oltp datafile '/u01/app/oracle/oradata/PROD1/oltp1.dbf' size 48m autoextend on next 2m extent management local uniform size 2m segment space management auto;
UNDO管理
--配置UNDO参数,注意时间单位是秒:S
SQL>alter system set undo_retention=5400;
SQL>alter system set undo_management=auto scope=spfile;
SQL>alter system set processes=135 scope=spfile;
创建监听
均使用netmgr图形化根据题意创建即可,在此不赘述,注意:在奇数机上配置PROD1的共享服务器:并使用prod_S通过1526的监听连接到prod1,创建名为:LSNR2 端口:1526的监听
设置utl_file_dir
SQL>alter system set utl_file_dir='/home/oracle','/home/oracle/temp','/home/oracle/scripts' scope=spfile;
设置session,根据题意直接设置即可
alter system set sessions=300 scope=spfile;
alter system set shared_server_sessions=200;
alter system set dispatchers='(PROTOCOL=TCP) (DISPATCHER=3)';
alter system set max_dispatchers=10;
alter system set local_listener='prod_s','prod1';
alter system set shared_servers=10;
alter system set max_shared_servers=30;
一定要把LSNR2启动起来:lsnrctl start lsnr2,监听启动起来之后,最好测试一下连接
sqlplus system/oracle@prod_s
select server,count(*) from v$session group by server;
在PROD1上配置控制文件多路复用
sqlplus / as sysdba
SQL>select name from v$controlfile;
SQL>alter system set control_files='/u01/app/oracle/oradata/PROD1/control01.ctl','/u01/app/oracle/oradata/PROD1/control02.ctl','/u01/app/oracle/oradata/PROD1/control03.ctl' scope=spfile;
SQL>shutdown immediate
SQL>!cp /u01/app/oracle/oradata/PROD1/control01.ctl /u01/app/oracle/oradata/PROD1/control03.ctl
SQL>!cp /u01/app/oracle/oradata/PROD1/control01.ctl /u01/app/oracle/oradata/PROD1/control02.ctl
SQL>startup
开启PROD1和PROD2的归档,并编写全备脚本
--创建四个目录
mkdir /home/oracle/arch1 /home/oracle/arch2 /u01/app/oracle/bak /home/oracle/bak
--PROD1开启归档
PROD1:
sqlplus / as sysdba
SQL>startup mount
SQL>alter system set log_archive_dest_1='location=/home/oracle/arch1';
SQL>alter database archivelog;
SQL>alter database open;
--PROD2开启归档
PROD2:
sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup mount
SQL>alter system set log_archive_dest_1='location=/home/oracle/arch2';
SQL>alter database archivelog;
SQL>alter database open;
为保险起见我们把控制文件自动备份打开
rman target /
rman>CONFIGURE CONTROLFILE AUTOBACKUP ON;
编写全备脚本,以当前环境变量是PROD1时就备份的PROD1,当前环境变量是PROD2时备份的就是PROD2
vi rman.sh
rman target / <<EOF
run{
backup database format '/u01/app/oracle/bak/%d_%U.FULL';
sql 'alter system archive log current';
backup archivelog all format '/u01/app/oracle/bak/%d_%U.arc' delete input;
backup current controlfile format '/u01/app/oracle/bak/%d_%U.CTL';
}
EOF
PROD1、PROD2执行全备脚本(注意切换环境变量)
chmod +x rman.sh
./rman.sh
收集hr用户的统计信息
exec dbms_stats.gather_schema_stats('HR');
修改ADR目录
--先查看ORACLE_HOME
!echo $ORACLE_HOME
--根据ORACLE_HOME进行设置
SQL>show parameter diag
SQL>alter system set diagnostic_dest='/u01/app/oracle/product/11.2.0/dbhome_1';
配置DNFS
cd $ORACLE_HOME/rdbms/lib/
make -f ins_rdbms.mk dnfs_on
SQL>startup force;
在nfs目录上创建一个表空间
SQL>create tablespace shared_data datafile '/u02/oradata/prod1/shared_data1.dbf' size 10m;
--可以查询下面视图验证
SQL>select * from v$dnfs_servers;
在PROD4上安装Opatch,使用OPatch安装一个补丁
cd /home/oracle
--解压补丁包
unzip p1283480.....zip
cd 12834800
--使用OPatch安装一个补丁
/u01/app/oracle/product/11.2.0/db_1/Opatch/opatch apply online -connectString PROD4:::
偶数机启动高可用服务并设置为开机自启
cd /u01/app/oracle/product/11.2.0/grid/bin
./crsctl start has
./crsctl enable has
把PROD4/EMREP两个实例注册到GI中,注意:需要先将PROD4/EMREP两个实例停掉
--切环境变量
. oraenv
PROD4
srvctl add database -d PROD4 -o /u01/app/oracle/product/11.2.0/db_1
srvctl add database -d EMREP -o /u01/app/oracle/product/11.2.0/db_1
srvctl start database -d PROD4
srvctl start database -d EMREP
--检查是否把实例都添加至GI中
srvctl config database
根据题意创建DATA、FRA两个磁盘组
./asmca
DATA "normal redundancy" disks1- 4
FRA "external redundancy" disks 5 - 8
把监听注册到GI中
. oraenv
PROD4
lsnrctl stop
srvctl add listener -l listener -o /u01/app/oracle/product/11.2.0/db_1 -p 1521
srvctl config listener
srvctl start listener
lsnrctl status
答完题,nohup ./rman.sh & 将PROD1和PROD2全部做全备
至此,Oracle 11G OCM第一场考试的全部内容就都结束了。
考试总结:
第一场考试的答题时间很充裕,涉及的知识点很多、很杂,同时也是考试分值占比重最大的一场,做题时一定要阅读仔细,不漏掉一道题,不要随便送分,这种考试分分必争,我在考前做练习的时候,第一场考试,最快47mins完成,满分(26分),真实考试的时候可能会根据考场环境、做题机器性能问题,时间会比自己练习的时候长一点。我真实考试的时候,总共花费65mins左右,剩下时间很充裕,所以一定做好检查和备份,切记不要早交卷!!! 切记不要早交卷!!!切记不要早交卷!!!重要的事情说三遍。其中题目中也有几个需要注意的地方:LSNR2监听的端口是1526;PROD_S监听类型是共享;LSNR2创建完成后一定要记得启动,最好测试一下PROD_S通过1526的监听连接到PROD;控制文件多路复用时一定记得先shutdown immediate;再拷贝;RMAN配置为保险起见我们把控制文件自动备份打开;全备脚本按照我这种方式书写是最简单的,没有多余的内容。最后,祝愿想考OCM的小伙伴们一次性通过!