隨筆-2  評論-1  文章-10  trackbacks-0
          . 探索 RAC 數據庫環境

          現在,您已經成功安裝了虛擬雙節點 RAC 數據庫,下面我們來探究一下您剛剛配置的環境。

          檢查應用程序資源的狀態。

          這個crs_stat 命令本來找不到,which后發現就在安裝目錄下面.于是env 查看環境變量,發現oracle_crs_home和ora_crs_home寫的不對,改掉后ok.
          rac1-> crs_stat -t

          Name Type Target State Host
          ------------------------------------------------------------
          ora.devdb.db application ONLINE ONLINE rac1
          ora....b1.inst application ONLINE ONLINE rac1
          ora....b2.inst application ONLINE ONLINE rac2
          ora....SM1.asm application ONLINE ONLINE rac1
          ora....C1.lsnr application ONLINE ONLINE rac1
          ora.rac1.gsd application ONLINE ONLINE rac1
          ora.rac1.ons application ONLINE ONLINE rac1
          ora.rac1.vip application ONLINE ONLINE rac1
          ora....SM2.asm application ONLINE ONLINE rac2
          ora....C2.lsnr application ONLINE ONLINE rac2
          ora.rac2.gsd application ONLINE ONLINE rac2
          ora.rac2.ons application ONLINE ONLINE rac2
          ora.rac2.vip application ONLINE ONLINE rac2

          rac1-> srvctl status nodeapps -n rac1
          VIP is running on node: rac1
          GSD is running on node: rac1
          Listener is running on node: rac1
          ONS daemon is running on node: rac1

          rac1-> srvctl status nodeapps -n rac2
          VIP is running on node: rac2
          GSD is running on node: rac2
          Listener is running on node: rac2
          ONS daemon is running on node: rac2

          rac1-> srvctl status asm -n rac1
          ASM instance +ASM1 is running on node rac1.

          rac1-> srvctl status asm -n rac2
          ASM instance +ASM2 is running on node rac2.

          rac1-> srvctl status database -d devdb
          Instance devdb1 is running on node rac1
          Instance devdb2 is running on node rac2

          rac1-> srvctl status service -d devdb
          rac1->
          檢查 Oracle 集群件的狀態。
          rac1-> crsctl check crs
          CSS appears healthy
          CRS appears healthy
          EVM appears healthy

          rac2-> crsctl check crs
          CSS appears healthy
          CRS appears healthy
          EVM appears healthy

          在命令行執行 crsctl 以查看所有可用選項。

          列出 RAC 實例。
          SQL> select
          2 instance_name,
          3 host_name,
          4 archiver,
          5 thread#,
          6 status
          7 from gv$instance;

          INSTANCE_NAME HOST_NAME ARCHIVE THREAD# STATUS
          -------------- --------------------- ------- -------- ------
          devdb1 rac1.mycorpdomain.com STARTED 1 OPEN
          devdb2 rac2.mycorpdomain.com STARTED 2 OPEN
          檢查連接。

          驗證您能夠連接到每個節點上的實例和服務。

          sqlplus system@devdb1
          sqlplus system@devdb2
          sqlplus system@devdb
          檢查數據庫配置。
          rac1-> export ORACLE_SID=devdb1
          rac1-> sqlplus / as sysdba

          SQL> show sga

          Total System Global Area 209715200 bytes
          Fixed Size 1218556 bytes
          Variable Size 104859652 bytes
          Database Buffers 100663296 bytes
          Redo Buffers 2973696 bytes


          SQL> select file_name,bytes/1024/1024 from dba_data_files;

          FILE_NAME BYTES/1024/1024
          ------------------------------------------- ---------------
          +DG1/devdb/datafile/users.259.606468449 5
          +DG1/devdb/datafile/sysaux.257.606468447 240
          +DG1/devdb/datafile/undotbs1.258.606468449 30
          +DG1/devdb/datafile/system.256.606468445 480
          +DG1/devdb/datafile/undotbs2.264.606468677 25


          SQL> select
          2 group#,
          3 type,
          4 member,
          5 is_recovery_dest_file
          6 from v$logfile
          7 order by group#;

          GROUP# TYPE MEMBER IS_
          ------ ------- --------------------------------------------------- ---
          1 ONLINE +RECOVERYDEST/devdb/onlinelog/group_1.257.606468581 YES
          1 ONLINE +DG1/devdb/onlinelog/group_1.261.606468575 NO
          2 ONLINE +RECOVERYDEST/devdb/onlinelog/group_2.258.606468589 YES
          2 ONLINE +DG1/devdb/onlinelog/group_2.262.606468583 NO
          3 ONLINE +DG1/devdb/onlinelog/group_3.265.606468865 NO
          3 ONLINE +RECOVERYDEST/devdb/onlinelog/group_3.259.606468875 YES
          4 ONLINE +DG1/devdb/onlinelog/group_4.266.606468879 NO
          4 ONLINE +RECOVERYDEST/devdb/onlinelog/group_4.260.606468887 YES


          rac1-> export ORACLE_SID=+ASM1
          rac1-> sqlplus / as sysdba

          SQL> show sga

          Total System Global Area 92274688 bytes
          Fixed Size 1217884 bytes
          Variable Size 65890980 bytes
          ASM Cache 25165824 bytes


          SQL> show parameter asm_disk

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          asm_diskgroups string DG1, RECOVERYDEST
          asm_diskstring string


          SQL> select
          2 group_number,
          3 name,
          4 allocation_unit_size alloc_unit_size,
          5 state,
          6 type,
          7 total_mb,
          8 usable_file_mb
          9 from v$asm_diskgroup;

          ALLOC USABLE
          GROUP UNIT TOTAL FILE
          NUMBER NAME SIZE STATE TYPE MB MB
          ------ ------------ -------- ------- ------ ------ -------
          1 DG1 1048576 MOUNTED NORMAL 6134 1868
          2 RECOVERYDEST 1048576 MOUNTED EXTERN 2047 1713


          SQL> select
          2 name,
          3 path,
          4 header_status,
          5 total_mb free_mb,
          6 trunc(bytes_read/1024/1024) read_mb,
          7 trunc(bytes_written/1024/1024) write_mb
          8 from v$asm_disk;

          NAME PATH HEADER_STATU FREE_MB READ_MB WRITE_MB
          ----- ---------- ------------ ---------- ---------- ----------
          VOL1 ORCL:VOL1 MEMBER 3067 229 1242
          VOL2 ORCL:VOL2 MEMBER 3067 164 1242
          VOL3 ORCL:VOL3 MEMBER 2047 11 354
          創建表空間。
          SQL> connect system/oracle@devdb
          Connected.
          SQL> create tablespace test_d datafile '+DG1' size 10M;

          Tablespace created.

          SQL> select
          2 file_name,
          3 tablespace_name,
          4 bytes
          5 from dba_data_files
          6 where tablespace_name='TEST_D';

          FILE_NAME TABLESPACE_NAME BYTES
          ---------------------------------------- --------------- ----------
          +DG1/devdb/datafile/test_d.269.606473423 TEST_D 10485760
          創建在線重做日志文件組。
          SQL> connect system/oracle@devdb
          Connected.
          SQL> alter database add logfile thread 1 group 5 size 50M;

          Database altered.

          SQL> alter database add logfile thread 2 group 6 size 50M;

          Database altered.

          SQL> select
          2 group#,
          3 thread#,
          4 bytes,
          5 members,
          6 status
          7 from v$log;

          GROUP# THREAD# BYTES MEMBERS STATUS
          ---------- ---------- ---------- ---------- ----------------
          1 1 52428800 2 CURRENT
          2 1 52428800 2 INACTIVE
          3 2 52428800 2 ACTIVE
          4 2 52428800 2 CURRENT
          5 1 52428800 2 UNUSED
          6 2 52428800 2 UNUSED

          SQL> select
          2 group#,
          3 type,
          4 member,
          5 is_recovery_dest_file
          6 from v$logfile
          7 where group# in (5,6)
          8 order by group#;

          GROUP# TYPE MEMBER IS_
          ------ ------- ---------------------------------------------------- ---
          5 ONLINE +DG1/devdb/onlinelog/group_5.271.606473683 NO
          5 ONLINE +RECOVERYDEST/devdb/onlinelog/group_5.261.606473691 YES
          6 ONLINE +DG1/devdb/onlinelog/group_6.272.606473697 NO
          6 ONLINE +RECOVERYDEST/devdb/onlinelog/group_6.262.606473703 YES

          10. 測試透明故障切換 (TAF)

          Oracle TAF 中的故障切換機制使任何失敗的數據庫連接能夠重新連接到集群中的其他節點。故障切換對用戶是透明的。Oracle 在故障切換實例上重新執行查詢并繼續向用戶顯示余下的結果。

          創建一個新的數據庫服務。首先,創建一個名為 CRM 的新服務??梢允褂?DBCA 或 srvctl 實用程序來創建數據庫服務。這里,您將使用 DBCA 在 devdb1 上創建 CRM 服務。


          服務名 數據庫名 首選實例 可用實例 TAF 策略
          CRM devdb devdb1 devdb2 BASIC

          在 rac1 上,以 oracle 用戶身份執行

          rac1-> dbca
          1. 歡迎頁面:選擇 Oracle Real Application Clusters database
          2. 操作:選擇 Services Management。
          3. 集群數據庫列表:單擊 Next。
          4. 數據庫服務:單擊 Add。
            • 添加服務:輸入“CRM”。
              • 選擇 devdb1 作為首選實例。
              • 選擇 devdb2 作為可用實例。
              • TAF 策略:選擇 Basic
            • 單擊 Finish。

          圖 14

          1. 數據庫配置助手:單擊 No 退出。

          數據庫配置助手將在 tnsnames.ora 中創建以下 CRM 服務名項:

          CRM =
          (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
          (LOAD_BALANCE = yes)
          (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = CRM)
          (FAILOVER_MODE =
          (TYPE = SELECT)
          (METHOD = BASIC)
          (RETRIES = 180)
          (DELAY = 5)
          )
          )
          )


          SQL> connect system/oracle@devdb1
          Connected.
          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb, CRM


          SQL> connect system/oracle@devdb2
          Connected.
          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb
          使用 CRM 服務連接第一個會話。如果 failover_type 和 failover_mode 返回的輸出為“NONE”,則驗證是否在 tnsnames.ora 中正確配置了 CRM 服務。
          SQL> connect system/oracle@crm
          Connected.
          SQL> select
          2 instance_number instance#,
          3 instance_name,
          4 host_name,
          5 status
          6 from v$instance;

          INSTANCE# INSTANCE_NAME HOST_NAME STATUS
          ---------- ---------------- --------------------- ------------
          1 devdb1 rac1.mycorpdomain.com OPEN


          SQL> select
          2 failover_type,
          3 failover_method,
          4 failed_over
          5 from v$session
          6 where username='SYSTEM';

          FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
          ------------- --------------- ----------------
          SELECT BASIC NO
          從其他會話中關閉該實例。在 CRM 實例上以 sys 用戶身份連接,并關閉該實例。
          rac1-> export ORACLE_SID=devdb1
          rac1-> sqlplus / as sysdba

          SQL> select
          2 instance_number instance#,
          3 instance_name,
          4 host_name,
          5 status
          6 from v$instance;


          INSTANCE# INSTANCE_NAME HOST_NAME STATUS
          ---------- ---------------- --------------------- ------------
          1 devdb1 rac1.mycorpdomain.com OPEN

          SQL> shutdown abort;
          ORACLE instance shut down.
          驗證會話已經完成故障切換。從您先前打開的同一 CRM 會話執行以下查詢,以驗證該會話已經故障切換到其他實例。
          SQL> select
          2 instance_number instance#,
          3 instance_name,
          4 host_name,
          5 status
          6 from v$instance;


          INSTANCE# INSTANCE_NAME HOST_NAME STATUS
          ---------- ---------------- --------------------- ------------
          2 devdb2 rac2.mycorpdomain.com OPEN


          SQL> select
          2 failover_type,
          3 failover_method,
          4 failed_over
          5 from v$session
          6 where username='SYSTEM';


          FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
          ------------- --------------- ----------------
          SELECT BASIC YES
          將 CRM 服務重新定位到首選實例。恢復 devdb1 之后,CRM 服務不會自動重新定位到首選實例。您必須手動將服務重新定位到 devdb1。
          rac1-> export ORACLE_SID=devdb1
          rac1-> sqlplus / as sysdba

          SQL> startup
          ORACLE instance started.

          Total System Global Area 209715200 bytes
          Fixed Size 1218556 bytes
          Variable Size 104859652 bytes
          Database Buffers 100663296 bytes
          Redo Buffers 2973696 bytes
          Database mounted.
          Database opened.
          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb


          rac2-> export ORACLE_SID=devdb2
          rac2-> sqlplus / as sysdba

          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb, CRM


          rac1-> srvctl relocate service -d devdb -s crm -i devdb2 -t devdb1


          SQL> connect system/oracle@devdb1
          Connected.
          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb, CRM


          SQL> connect system/oracle@devdb2
          Connected.
          SQL> show parameter service

          NAME TYPE VALUE
          ------------------------------ ----------- ------------------------
          service_names string devdb

          11. 數據庫備份與恢復

          使用 Oracle 恢復管理器 (RMAN) 備份和恢復 Oracle RAC 數據庫的過程與單實例數據庫的備份和恢復過程相同。

          在本部分中,您將看到一個非常簡單的備份和恢復案例:

          1. 執行完整的數據庫備份。
          2. 在 test_d 表空間中創建 mytable 表。
          3. 在 t1 時間,向 mytable 中插入第一個記錄。
          4 在 t2 時間,向 mytable 中插入第二個記錄。
          5. 在 t3 時間,刪除 mytable 表。
          6. 將 test_d 表空間恢復到某個時間點。
          7. 驗證恢復結果。

          執行完整的數據庫備份。

          rac1-> rman nocatalog target /

          Recovery Manager: Release 10.2.0.1.0 - Production on Mon Nov 13 18:15:09 2006

          Copyright (c) 1982, 2005, Oracle. All rights reserved.

          connected to target database: DEVDB (DBID=511198553)
          using target database control file instead of recovery catalog

          RMAN> configure controlfile autobackup on;

          RMAN> backup database plus archivelog delete input;

          在 test_d 表空間中創建 mytable 表。

          19:01:56 SQL> connect system/oracle@devdb2
          Connected.
          19:02:01 SQL> create table mytable (col1 number) tablespace test_d;

          Table created.

          在 t1 時間,向 mytable 中插入第一個記錄。

          19:02:50 SQL> insert into mytable values (1);

          1 row created.

          19:02:59 SQL> commit;

          Commit complete.

          在 t2 時間,向 mytable 中插入第二個記錄。

          19:04:41 SQL> insert into mytable values (2);

          1 row created.

          19:04:46 SQL> commit;

          Commit complete.

          在 t3 時間,刪除 mytable 表。

          19:05:09 SQL> drop table mytable;

          Table dropped.

          將 test_d 表空間恢復到某個時間點。

          為輔助數據庫創建輔助目錄。

          rac1-> mkdir /u01/app/oracle/aux


          RMAN> recover tablespace test_d
          2> until time "to_date('13-NOV-2006 19:03:10','DD-MON-YYYY HH24:MI:SS')"
          3> auxiliary destination '/u01/app/oracle/aux';

          RMAN> backup tablespace test_d;

          RMAN> sql 'alter tablespace test_d online';

          驗證恢復結果。

          19:15:09 SQL> connect system/oracle@devdb2
          Connected.
          19:15:16 SQL> select * from mytable;

          COL1
          ----------
          1

          12. 探索 Oracle 企業管理器 (OEM) 數據庫控制臺

          Oracle 企業管理器數據庫控制臺提供了一個非常好的集成式綜合 GUI 界面,用于管理集群數據庫環境。您可以在控制臺內執行幾乎所有的任務。

          要訪問數據庫控制臺,請打開 Web 瀏覽器并輸入下面的 URL。
          以 sysman 用戶身份登錄,并輸入您先前在數據庫安裝期間選擇的口令。

          http://rac1:1158/em

          圖 15

          啟動和停止數據庫控制臺。

          rac1-> emctl stop dbconsole
          TZ set to US/Eastern
          Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
          Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
          http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
          Stopping Oracle Enterprise Manager 10g Database Control ...
          ... Stopped.

          rac1-> emctl start dbconsole
          TZ set to US/Eastern
          Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
          Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
          http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
          Starting Oracle Enterprise Manager 10g Database Control
          ................... started.
          ------------------------------------------------------------------
          Logs are generated in directory
          /u01/app/oracle/product/10.2.0/db_1/rac1_devdb1/sysman/log

          驗證數據庫控制臺的狀態。

          rac1-> emctl status dbconsole
          TZ set to US/Eastern
          Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
          Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
          http://rac1.mycorpdomain.com:1158/em/console/aboutApplication
          Oracle Enterprise Manager 10g is running.
          ------------------------------------------------------------------
          Logs are generated in directory
          /u01/app/oracle/product/10.2.0/db_1/rac1_devdb1/sysman/log

          rac1-> emctl status agent
          TZ set to US/Eastern
          Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
          Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
          ---------------------------------------------------------------
          Agent Version : 10.1.0.4.1
          OMS Version : 10.1.0.4.0
          Protocol Version : 10.1.0.2.0
          Agent Home : /u01/app/oracle/product/10.2.0/db_1/rac1_devdb1
          Agent binaries : /u01/app/oracle/product/10.2.0/db_1
          Agent Process ID : 10263
          Parent Process ID : 8171
          Agent URL : http://rac1.mycorpdomain.com:3938/emd/main
          Started at : 2006-11-12 08:10:01
          Started by user : oracle
          Last Reload : 2006-11-12 08:20:33
          Last successful upload : 2006-11-12 08:41:53
          Total Megabytes of XML files uploaded so far : 4.88
          Number of XML files pending upload : 0
          Size of XML files pending upload(MB) : 0.00
          Available disk space on upload filesystem : 71.53%
          ---------------------------------------------------------------
          Agent is Running and Ready

          13. 常見問題

          下面是可能對您有用的問題和解決方法摘要列表。

          問題 1:無法激活以太網設備。
          錯誤消息為“Cannot activate network device eth0!Device eth0 has different MAC address than expected, ignoring.”

          解決方法:
          “ifconfig”報告的 MAC 地址與 /etc/sysconfig/network-scripts/ifcfg-eth0 不匹配。您可以使用新的 MAC 地址更新文件,或者只需通過 system-config-network 工具探測新的 MAC 地址。


          問題 2:無法生成 OCFS2 配置文件。
          在嘗試生成 OCFS2 配置文件時,出現錯誤消息“Could not start cluster stack.This must be resolved before any OCFS2 filesystem can be mounted”。

          解決方法:
          以 root 用戶身份(而非 oracle 用戶身份)執行 ocfs2console。


          問題 3:無法在遠程節點上安裝 Oracle 集群件或 Oracle 數據庫軟件。
          在 Oracle 集群件軟件安裝期間,出現錯誤消息“/bin/tar:./inventory/Components21/oracle.ordim.server /10.2.0.1.0:time stamp 2006-11-04 06:24:04 is 25 s in the future”。

          解決方法:
          通過安裝 VMware 工具來同步客戶 OS 與主機 OS 的時間,并在 /boot/grub/grub.conf 中包含選項“clock=pit nosmp noapic nolapic”。請參閱第 3 部分,以獲得更多信息。


          問題 4:無法掛載 OCFS2 文件系統。
          在嘗試掛載 ocfs2 文件系統時,出現錯誤消息“mount.ocfs2:Transport endpoint is not connected while mounting”。

          解決方法:
          執行 /usr/bin/system-config-securitylevel 以禁用防火墻。


          問題 5:無法啟動 ONS 資源。
          當 VIPCA 嘗試啟動 ONS 應用程序資源時,出現錯誤消息“CRS-0215:Could not start resource ‘ora.rac2.ons’”。

          解決方法:
          ONS 嘗試訪問本地主機,但無法解析 IP 地址。將以下項添加到 /etc/hosts 中。

          127.0.0.1 localhost


          結論

          希望通過本指南的學習,您可以免費、快速地使用 VMware Server 構建集群 Oracle 數據庫環境。利用免費軟件,開始學習并試用 Enterprise Linux 上的 Oracle RAC!

          posted on 2010-12-09 11:38 沉香江南 閱讀(476) 評論(0)  編輯  收藏 所屬分類: 轉載文章
          主站蜘蛛池模板: 乌拉特中旗| 都兰县| 婺源县| 河北省| 曲周县| 丹凤县| 正镶白旗| 苍溪县| 台中市| 新余市| 民权县| 长汀县| 龙岩市| 卢氏县| 定南县| 和平县| 景德镇市| 成武县| 金坛市| 探索| 林芝县| 富源县| 仙桃市| 上高县| 观塘区| 富宁县| 昌图县| 平安县| 重庆市| 湖北省| 泽库县| 横峰县| 凯里市| 乐亭县| 安丘市| 蓝山县| 台山市| 屯昌县| 犍为县| 雅安市| 威信县|