

在偶數機上手工創建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的小伙伴們一次性通過!