每门考试通过分数
第一天上午
第一门:General Database and Network Administration,120分钟,约10大题,强度较大,不考脚本建库
- 多种方式创建pdb:
(1)pdbprod3和pdbprod4、pdbprod5分别从已存在的pdb、pdbseed和non-cdb创建
(2)从已存在的pdb中,创建pdbprod3,设置pdbprod3随PRODCDB实例启动而启动,并保证两个pdb均为read write状态
(3)从pdbseed中创建的pdbprod4需要导入DB11G的HR、SH、OE用户(注意预先在pdbprod4中创建example和users表空间)
(4)non-cdb(PROD4)创建pdbprod5,保证PROD4最终为read write状态
- cdb、pdb用户创建赋权
(1)cdb创建用户user1和role1(题目中指出如有必要修改用户名即加c##前缀),将role1赋权给user1,保证user1能在所有pdb中登录(grant unlimited tablespace,create session to c##role1 container=all; grant c##role1 to c##user1 container=all;)
(2)某已存在的pdb中创建user2、role2,保证user2能登录次pdb(grant unlimited tablespace,create session to role2;grant role2 to user1;)
(3)已存在package -- sys.sec_pack,cdb创建sec_user和app_role题目中指出如有必要修改用户名即加c##前缀),使用已存在的sec_pack将app_role赋予sec_user,此题需要使用dbms_metadata.get_ddl得出sec_pack的定义,然后使用exec sec_pack.h1赋权(但是此题我没执行成功)
3、controlfile管理
修改为3个,第三个置于$ORACLE_HOME/dbs下(不确定是ORACLE_HOME还是dbs了)
4、配置EM Express,端口为5501
- 修改undo_retention为90分钟
- 监听和tnsname管理
创建lsnr2(端口1525),并监听PRODCDB(修改local_listener,记得1521和1525的监听都加上)
创建dedicated tnsname:pdbprod1,pdbprod2,pdbprod3,pdbprod4,pdbprod5,emrep,连接1521端口
创建shared tnsname:prod_s,连接pdbprod1的1525端口(需要修改cdb的dispatchers参数,将XDB去掉)
- Shared Server Configuration
(1)设置tcp的dispatcher为3,max_dispacher为10
alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=3)' scope=both;
alter system set max_dispachers=10 scope=both;
(2)配置shared参数
Minimum of 10 shared server processes.
Maximum of 30 shared server processes.
alter system set SHARED_SERVERS=10 scope=both;
alter system set MAX_SHARED_SERVERS=30 scope=both;
(3)设置process、session
设置session为500,dedicated session为100
alter system set sessions=500 scope=spfile;
alter system set processes=320 scope=spfile;
alter system set SHARED_SERVER_SESSIONS=400 scope=spfile;
- 修改utl_file_dir为/home/oracle/scripts和/home/oracle/temp
- 配置dnfs并在dnfs目录创建表空间
/u02/***,已经被mount,需要配置$ORACLE_HOME/dbs/oradnfstab并执行dnfs_on,重启实例即可创建表空间
make -f ins_rdbms dnfs_on
10、创建表空间
(1)创建2个临时表空间temp1、temp2,将他们置于temp_grp的表空间组,并将数据库默认临时表空间设为temp_grp
(2)创建bigfile表空间
11、修改diagnostic_dest为$ORACLE_HOME
第一天下午
第二门:Manage Database Availability,约7大题,约90分钟
- 安装agent 并将实例注册到gc
- catalog注册实例
将prod4、prod5、prodcdb注册到emrep下的rc_admin(密码为RC_ADMIN)已存在的catalog中,但此catalog版本是11g的版本,需要先升级catalog(upgrade catalog)、再register database
平常练习时可以使用11G的库创建catalog,再执行12c ORACLE_HOME/rdbms/admin/dbmsrmansys.sql,即可upgrade catalog
- pdbprod1中的tpir_tbs表空间使用tablespace point-in-time recover技术恢复
由于我list backup没发现此表空间的备份,使用recover tablespace *** until scn *** auxiliary destination '/u01/app/oracle/tmp'也无法恢复,就放弃了此题
- prodcdb的rman参数设置
- 设置recover window为14天
- 没有更新的数据文件不备份(optimization on)
- 并行通道设为4(parallelism 4)
5、尽量加快增量备份、减少增备的overhead(开启block change tracking)
6、rman备份并全部使用catalog记录(rman target / catalog rc_admin/RC_ADMIN@emrep)
(1)备份prodcdb加tag,保证complete recovery under all circumstances,需要plus archivelog
(2)0级增备prod4(backup incremental level 0 database)
(3)prod5加tag全量备份并keep for long time(注意此时要显式指定备份路径,长时间保留的备份不能存在fra中,且prod5的归档没开,需要先开启归档)
(4)多通道备份pdbprod1的example表空间并指定最大备份集不超过30M(allocate channel)
7、所有redolog复制到/u01/app/oracle/MREDO下
8、配置recovery相关参数和DB_FLASHBACK_RETENTION_TARGET参数
9、创建program\chain\job,使得Task2只有在Task1成功时再运行
(1)创建名Task1和Task2的program,分别对应两个已存在的.sh脚本
(2)创建名为backup_***的chain,添加Task1和Task2,并添加rule,Task1 SUCCEEDED,START Task2
(3)为chain创建job,名为JOB_BACKUP,schedule设为2分钟后执行(不要设为immediate)
(4)监控job执行是否成功
RECOVER TABLESPACE 'TSPITR' until scn 3055657 AUXILIARY DESTINATION '/u01/app/oracle/backup/tspitr';
alter tablespace tspitr online;
第三门:DatawareHouse management约5大题,约85分钟
- pdbprod1创建到prod4的dblink,但是prod4没起,手动起库报controlfile不存在,需要
恢复controlfile
rman target / catalog@emrep
list backup of controlfile
restore controlfile
alter database mount;
restore database;
recover database;
alter database open resetlogs;
- PDBPROD1 数据库,使其中的物化视图支持查询重写,即使在约束没有被验证的情况下
alter session set container=pdbprod1;
alter system set query_rewrite_enabled=true;
alter system set query_rewrite_integrity=trusted;
enable mv的query rewrite (
create materialized view log on employees with sequence,rowid,primary key including new values;
create materialized view prod_mview refresh fast enable query rewrite as select employee_id from hr.employees;
select employee_id from hr.employees;