在Oracle 11g下安裝配置Scheduler Agent

來源:互聯網
上載者:User

在Oracle 11g下安裝配置Scheduler Agent

Oracle Scheduler是功能強大的定時發送器,不但能調度job在本機資料庫上運行,還能在遠程主機上發起這些job,遠程主機上不一定要安裝Oracle資料庫,但必須安裝有Scheduler Agent,下面是完整的安裝過程

安裝過程中涉及到以下兩部分操作:

1、對於存放remote job資訊、負責發起調度的主要資料庫進行配置

2、在運行remote job的遠程主機上安裝Scheduler Agent,如果這台遠程主機上不安裝Oracle Database,那麼僅可以運行remote external job,如果安裝了Oracle Database那麼還可以運行remote database job

完整的安裝過程如下,在11.2.0.3版本下測試通過

============1、對存放remote job資訊的主要資料庫進行配置============
///////////////////////////////////
///  步驟1:安裝XDB組件
///////////////////////////////////
###安裝前檢測庫裡是否已經安裝過XDB,如果安裝過XDB,需要確認XDB的組件是否均處於有效狀態;
---以下方法檢查XDB組件,如果是VALID那麼XDB組件處於正常狀態
col comp_name format a30
set linesize 130
select comp_name,status from dba_registry where comp_name='Oracle XML Database';

COMP_NAME                      STATUS
------------------------------ ----------------------
Oracle XML Database            VALID

---如果狀態不是VALID,那麼需要運行以下指令碼,根據指令碼的輸出來決定是否要重新安裝
set serveroutput on

DECLARE
    v_xdb_installation_trigger number;
    v_dropped_xdb_instll_trigger number;
    v_dropped_xdb_instll_tab number;

BEGIN
    select count(*) into v_xdb_installation_trigger
    from dba_triggers
    where trigger_name = 'XDB_INSTALLATION_TRIGGER' and owner = 'SYS';

    select count(*) into v_dropped_xdb_instll_trigger
    from dba_triggers
    where trigger_name = 'DROPPED_XDB_TRIGGER' and owner = 'SYS';

    select count(*) into V_dropped_xdb_instll_tab
    from dba_tables
    where table_name = 'DROPPED_XDB_INSTLL_TAB' and owner = 'SYS';

  IF v_xdb_installation_trigger > 0 OR v_dropped_xdb_instll_trigger > 0 OR v_dropped_xdb_instll_tab > 0 then

  IF v_xdb_installation_trigger > 0 THEN

dbms_output.put_line('Please proceed to run the command SQL> drop trigger sys.xdb_installation_trigger');
--  drop trigger sys.xdb_installation_trigger;
  END IF;

  IF v_dropped_xdb_instll_trigger > 0 THEN
  dbms_output.put_line('Please proceed to run the command SQL> drop trigger sys.dropped_xdb_instll_trigger');
--  drop trigger sys.dropped_xdb_instll_trigger;
  END IF;

  IF v_dropped_xdb_instll_tab > 0 THEN
  dbms_output.put_line('Please proceed to run the command SQL> drop table sys.dropped_xdb_instll_tab');
--  drop table sys.dropped_xdb_instll_tab;
  END IF;

  ELSE
  dbms_output.put_line('Please proceed to run the XDB install or upgrade');

  END IF;

END;
/


###安裝XDB的方法歸納如下
---建立XDB專用的資料表空間,如果要使用SecureFile Lobs必須使用segment space management auto
create tablespace xdbts datafile '/oradata06/testaaaaa/xdbts1.dbf' size 500m extent management local segment space management auto;

---運行@?/rdbms/admin/catqm.sql <XDB pwd> <XDB default tbs> <XDB temporary tbs> <YES or NO>
參數值含義如下:
<XDB pwd>:XDB user password
<XDB default tbs>:XDB user default tablespace
<XDB temporary tbs>:XDB user temporary tablespace
<XDB temporary tbs>:YES or NO(YES->使用SecureFile lobs;NO->使用BasicFile Lobs)


---運行catqm.sql指令碼
spool xdb_install.log
set echo on;
@?/rdbms/admin/catqm.sql asdf3_14 xdbts temp YES
@?/rdbms/admin/utlrp.sql
set echo off;
spool off;

---安裝完成後再確認一下XDB組件的狀態
col comp_name format a30
set linesize 130
select comp_name,status from dba_registry where comp_name='Oracle XML Database';

COMP_NAME                      STATUS
------------------------------ ----------------------
Oracle XML Database            VALID

///////////////////////////////////
///  步驟2:安裝Oracle Text組
///////////////////////////////////
Oracle Text組件通常在使用dbca建庫的時候會自動安裝上,但如果是Manual方式建的庫,那麼需要手動安裝。
---使用如下方法確定Oracle Text是否已經安裝,如果安裝了Oracle Text,那麼
col comp_name format a20
set linesize
select comp_name, status, substr(version,1,10) as version from dba_registry where comp_id = 'CONTEXT';

COMP_NAME            STATUS                VERSION
-------------------- ---------------------- --------------------
Oracle Text          VALID                  11.2.0.3.0

###如果沒有安裝Oracle Text,按照以下步驟進行安裝
---在database側安裝Oracle Text組件,配置預設語言
sqlplus '/as sysdba'
SQL> @?/ctx/admin/catctx.sql asdf3_14 SYSAUX TEMP NOLOCK  ---四個參數依次表示:ctxsys使用者的口令、ctxsys使用者的預設資料表空間,ctxsys使用者的暫存資料表空間,ctxsys建立完後是否鎖定(LOCK:鎖定; NOLOCK:不鎖定)

---以ctxsys使用者登陸配置預設語言為英語
sqlplus ctxsys/asdf3_14
SQL> @?/ctx/admin/defaults/dr0defin.sql "AMERICAN";

---最後為安全起見鎖定ctxsys
sqlplus '/as sysdba'
alter user ctxsys account lock password expire;

---在database的OS環境變數中加入$ORACLE_HOME/ctx/lib路徑
export LD_LIBRARY_PATH=$ORACLE_HOME/ctx/lib:$LD_LIBRARY_PATH

---驗證oracle text組件是否成功安裝
SQL> select comp_name, status, substr(version,1,10) as version from dba_registry where comp_id = 'CONTEXT';

COMP_NAME          STATUS  VERSION
------------------- -------- ----------
Oracle Text        VALID    11.2.0.3.0

SQL> select * from ctxsys.ctx_version;

VER_DICT    VER_CODE
----------- -----------
11.2.0.3.0  11.2.0.3.0

SQL> select object_name, object_type, status from dba_objects where owner='CTXSYS' and status != 'VALID' order by object_name;

no rows selected

///////////////////////////////////
/// 步驟3:配置remote jobs運行所需的資料庫環境
///////////////////////////////////
###配置一個HTTP服務連接埠,這個連接埠用於job主要資料庫伺服器和安裝有schedule agent的遠程伺服器間進行通訊,定義的連接埠不要和其它應用重複即可
sqlplus / as sysdba
exec dbms_xdb.sethttpport(30405);
commit;

###db和OS層面檢查配置是否生效
select dbms_xdb.GETHTTPPORT() from dual;
DBMS_XDB.GETHTTPPORT()
----------------------
                30405
               
!netstat -an |grep 30405
tcp        0      0  *.30405                *.*                    LISTEN


###運行prvtrsch.plb指令碼,會建立一個名為REMOTE_SCHEDULER_AGENT使用者
@?/rdbms/admin/prvtrsch.plb

SQL> select username,account_status from dba_users where username='REMOTE_SCHEDULER_AGENT';

USERNAME                      ACCOUNT_STATUS
------------------------------ --------------------------------
REMOTE_SCHEDULER_AGENT        EXPIRED & LOCKED


###設定scheduler agent串連到主要資料庫的口令
exec dbms_scheduler.set_agent_registration_pass(registration_password=>'asdf3_14');

###設定shared_servers為非零,這一步很重要,否則會出現scheduler agent無法註冊成功的問題
alter system set shared_servers=1 scope=both;


###job主伺服器上的lnsrctl status輸出裡能看出PORT=30405的正在被偵聽
STATUS of the LISTENER
------------------------
Alias                    LISTENER
Version                  TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
Start Date                06-FEB-2015 07:49:08
Uptime                    9 days 3 hr. 8 min. 14 sec
Trace Level              off
Security                  ON: Local OS Authentication
SNMP                      ON
Listener Parameter File  /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File        /oracle/app/oracle/diag/tnslsnr/jq570322b/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.141.209)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jq570322b)(PORT=30405))(Presentation=HTTP)(Session=RAW))
 
###/etc/hosts裡加入即將安裝scheduler agent的remote主機IP地址和主機名稱映射,這一步能避免後面註冊時產生ORA-29257
10.10.141.206  jq570321a


至此job主要資料庫伺服器側的配置工作完畢

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

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.