Services in Oracle Database 10g

來源:互聯網
上載者:User

        基於RAC環境中使用的應用程式,有時候希望某個特定的應用程式僅僅運行在RAC的子節點,或者說為某些應用程式分配一個首要節點。對此,Oracle 10g可以使用services來實現。

 

一、叢集配置

在使用services之前,需要首先檢查叢集的配置是否正確。下面的命令輸出了資料庫ORCL運行於三個不同的節點。srvctl config database -d ORCLserver01 ORCL1 /u01/app/oracle/product/10.1.0/db_1server02 ORCL2 /u01/app/oracle/product/10.1.0/db_1server03 ORCL3 /u01/app/oracle/product/10.1.0/db_1這些配置通常在資料庫建立期間完成。也可以通過下面的命令來完成。srvctl add database -d ORCL -o /u01/app/oracle/product/10.1.0/db_1  #添加資料庫ORCL的$ORACLE_HOME到crssrvctl add instance -d ORCL -i ORCL1 -n server01                    #為資料庫ORCL添加相應的instance到crssrvctl add instance -d ORCL -i ORCL2 -n server02srvctl add instance -d ORCL -i ORCL3 -n server03

二、建立service

可以使用srvctl命令,dbca工具以及DBMS_SERVICES包來建立以及修改service。本文僅僅使用srvctl命令列來完成。假定有兩個應用程式希望以以下方式運行:OLTP :主要運行在節點1和節點2,當節點1和2不可用時,則能夠運行在節點3。BATCH :主要運行在節點3,當節點3不可用時,則能夠運行在節點1和2。為滿足上面的需求,我們可以建立以下services# Set environment.export ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1export PATH=$ORACLE_HOME/bin:$PATH# Create services.srvctl add service -d ORCL -s OLTP_SERVICE -r ORCL1,ORCL2 -a ORCL3srvctl add service -d ORCL -s BATCH_SERVICE -r ORCL3 -a ORCL1,ORCL2OLTP_SERVICE 能夠運行在所有的RAC節點,因為ORCL3位於可用列表中,但通常情況下則主要運行在節點1和節點2。(-r 表明為可用節點)BATCH_SERVICE 能夠運行在所有的RAC節點,因為ORCL1與ORCL2位於可用列表中,通常情況下該service運行在節點3。(-r 表明為可用節點)這些services能夠通過以下命令來啟動後停止srvctl start service -d ORCL -s OLTP_SERVICEsrvctl start service -d ORCL -s BATCH_SERVICEsrvctl stop service -d ORCL -s OLTP_SERVICEsrvctl stop service -d ORCL -s BATCH_SERVICE

三、Jobs and Services

--Oracle 10g scheduler允許job和job 類連結,從而使得與services相關的job按job 類運行在RAC環境的指定節點。--為滿足上述的需求,對此可以建立以下兩個job類。-- Create OLTP and BATCH job classes.BEGIN  DBMS_SCHEDULER.create_job_class(    job_class_name => 'OLTP_JOB_CLASS',    service        => 'OLTP_SERVICE');  DBMS_SCHEDULER.create_job_class(    job_class_name => 'BATCH_JOB_CLASS',    service        => 'BATCH_SERVICE');END;/-- Make sure the relevant users have access to the job classes.GRANT EXECUTE ON sys.oltp_job_class TO my_user;GRANT EXECUTE ON sys.batch_job_class TO my_user;--可以為存在的job指派到新建立的job類或在建立job時指派到這個job 類-- Create a job associated with a job class.BEGIN  DBMS_SCHEDULER.create_job (    job_name        => 'my_user.oltp_job_test',    job_type        => 'PLSQL_BLOCK',    job_action      => 'BEGIN NULL; END;',    start_date      => SYSTIMESTAMP,    repeat_interval => 'FREQ=DAILY;',    job_class       => 'SYS.OLTP_JOB_CLASS',    end_date        => NULL,    enabled         => TRUE,    comments        => 'Job linked to the OLTP_JOB_CLASS.');END;/--對於上面的這個job與job類的理解是,service可以運行在一個或多個指定的節點以及可用節點,因此可以基於service來建立Job。--接下來為這個Job指派到基於service的job類,從而使得這個job也可以運行在指定的一個或多個節點。-- Assign a job class to an existing job.EXEC DBMS_SCHEDULER.set_attribute('MY_BATCH_JOB', 'JOB_CLASS', 'BATCH_JOB_CLASS');--Translator: Robinson--Blog: http://blog.csdn.net/robinson_0612

四、Connections and Services

services的使用不會由於使用了job而受到限制。下面的services能夠添加到tnsnames.ora檔案,且列出每一個應用程式可以使用哪一個節點。OLTP =  (DESCRIPTION =    (LOAD_BALANCE = ON)    (FAILOVER = ON)    (ADDRESS = (PROTOCOL = TCP)(HOST = server01)(PORT = 1521))    (ADDRESS = (PROTOCOL = TCP)(HOST = server02)(PORT = 1521))    (ADDRESS = (PROTOCOL = TCP)(HOST = server03)(PORT = 1521))    (CONNECT_DATA =      (SERVICE_NAME = OLTP_SERVICE)      (FAILOVER_MODE =        (TYPE = SELECT)        (METHOD = BASIC)        (RETRIES = 20)        (DELAY = 1)      )    )  )BATCH =  (DESCRIPTION =    (LOAD_BALANCE = ON)    (FAILOVER = ON)    (ADDRESS = (PROTOCOL = TCP)(HOST = server01)(PORT = 1521))    (ADDRESS = (PROTOCOL = TCP)(HOST = server02)(PORT = 1521))    (ADDRESS = (PROTOCOL = TCP)(HOST = server03)(PORT = 1521))    (CONNECT_DATA =      (SERVICE_NAME = BATCH_SERVICE)      (FAILOVER_MODE =        (TYPE = SELECT)        (METHOD = BASIC)        (RETRIES = 20)        (DELAY = 1)      )    )  )#上面為應用程式提供了相應的連結標識符,通過相應的串連標識符將串連到指定的service。

原文連結: Services in Oracle Database 10g

五、更多參考

有關Oracle 網路設定相關基礎以及概念性的問題請參考:
        配置ORACLE 用戶端串連到資料庫
        配置非預設連接埠的動態服務註冊
        配置sqlnet.ora限制IP訪問Oracle
       Oracle 監聽器日誌配置與管理
       設定 Oracle 監聽器密碼(LISTENER)
       Oracle RAC 監聽配置
       ORACLE RAC 下非預設連接埠監聽配置(listener.ora tnsnames.ora)

       Oracle RAC 用戶端串連負載平衡(Load Balance)

       配置RAC負載平衡與容錯移轉

   

有關基於使用者管理的備份和備份恢複的概念請參考

    Oracle 冷備份

    Oracle 熱備份

    Oracle 備份恢複概念

    Oracle 執行個體恢複

    Oracle 基於使用者管理恢複的處理

   SYSTEM 資料表空間管理及備份恢複

    SYSAUX資料表空間管理及恢複

   Oracle 基於備份控制檔案的恢複(unsing backup controlfile)

 

有關RMAN的備份恢複與管理請參考

    RMAN 概述及其體繫結構

    RMAN 配置、監控與管理

    RMAN 備份詳解

    RMAN 還原與恢複

    RMAN catalog 的建立和使用

    基於catalog 建立RMAN儲存指令碼

    基於catalog 的RMAN 備份與恢複

    RMAN 備份路徑困惑

 

有關ORACLE體繫結構請參考

    Oracle 資料表空間與資料檔案

    Oracle 密碼檔案

    Oracle 參數檔案

    Oracle 聯機重做記錄檔(ONLINE LOG FILE)

    Oracle 控制檔案(CONTROLFILE)

    Oracle 歸檔日誌

    Oracle 復原(ROLLBACK)和撤銷(UNDO)

    Oracle 資料庫執行個體啟動關閉過程

    Oracle 10g SGA 的自動化管理

    Oracle 執行個體和Oracle資料庫(Oracle體繫結構) 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.