oracle數據庫多實例實時同步(利用oracle管理平臺實現)

  1. 環境:sql

    Windows 2008 服務器,Oracle 11g  r2 數據庫數據庫

  2. 任務要求:瀏覽器

    有三個數據庫實例,一個實例供管理子系統使用,一個實例供利用子系統使用,還有一個實例專門作備份。服務器

  3. 選擇的技術:oracle

    Oracle Stream Replication(流複製)ide

  4. 建立另外兩個實例spa

    源實例:orcl命令行

    目標1:target日誌

    目標2:target2code

  5. 中止應用服務器,防止用戶由於使用應用服務器而對數據庫作出的改變。

    並導出 orcl 實例中用戶的數據,用 exp 命令

    例如 exp nt_gxt/oais@orcl file=E:\nt_gxt_201508140923.dmp

  6. 環境設置

    使用命令行登陸數據庫


  7. sqlpus sys/orcl@orcl as sysdba
    alter system set global_names=true scope=both;
    alter system set job_queue_processes=10 scope=both;
    alter system set parallel_max_servers=20 scope=both;
    alter system set undo_retention=3600 scope=both;
    alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;
    alter system set streams_pool_size=512M scope=spfile;
    alter system set utl_file_dir='*' scope=spfile;
    alter system set open_links=4 scope=spfile;
    --下面爲設置歸檔模式的命令:(注意:修改路徑)
    alter system set log_archive_dest_1='location=E:\DevProgramsFile\Oracle\archive\target' scope=spfile;
    alter system set log_archive_start=TRUE scope=spfile;
    alter system set log_archive_format='arch%t_%s_%r.arc' scope=spfile;
    shutdown immediate;
    startup mount;

(若是startup mount報如上錯誤,須要對實例進行靜態註冊,在listener.ora文件中添加以下內容,並從新啓動監聽服務)

alter database archivelog;
alter database open;
--若是要查看歸檔模式是否設置成功能夠用命令:
archive log list 
--若是出現以下截圖內容則說明設置成功,

      


    8. 建立 stream 管理用戶

        1). 建立主環境管理用戶

        

Sqlplus sys/orcl@orcl as sysdba
#建立主環境的 stream 專用表空間(注意修改路徑)
create tablespace tbs_stream datafile 'E:\DevProgramsFile\Oracle\oradata\orcl\tbs_stream01.dbf' size 100m autoextend on maxsize unlimited segment space management auto;
#將logminer的數據字典從system表空間轉移到新建的表空間,防止撐滿system表空間
execute dbms_logmnr_d.set_tablespace('tbs_stream');
#建立Stream管理用戶 
create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp; 
#受權Stream管理用戶
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => 'strmadmin',
grant_privileges => true);
end;
/


        2). 建立從環境的 stream 管理用戶

Sqlplus sys/orcl@target as sysdba
#建立Stream專用表空間
create tablespace tbs_stream datafile 'E:\DevProgramsFile\Oracle\oradata\target\tbs_stream01.dbf' size 100m autoextend on maxsize unlimited segment space management auto;
#一樣,將logminer的數據字典從system表空間轉移到新建的表空間,防止撐滿system表空間 
execute dbms_logmnr_d.set_tablespace('tbs_stream');
#建立Stream管理用戶 
create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp;
#受權Stream管理用戶 
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => 'strmadmin',
grant_privileges => true);
end;
/


        3). 建立 DBlink

            3.1) 建立主數據庫數據鏈

                根據Oracle 10gR2 Stream官方文檔,針對主數據庫創建的數據庫鏈的名字必須和從數據庫的global_name

                相同。若是須要修改global_name,執行「alter database rename global_name to xxx」。

#以strmadmin身份,登陸主數據庫。
Sqlplus strmadmin/strmadmin@orcl
create database link target connect to strmadmin identified by strmadmin using 'target';
create database link target2 connect to strmadmin identified by strmadmin using 'target2';

        

        3.2)建立從數據庫的數據鏈

#以strmadmin身份,登陸從數據庫。
Sqlplus strmadmin/strmadmin@target
create database link orcl connect to strmadmin identified by strmadmin using 'orcl';


        4). 啓動歸檔日誌   

alter database add supplemental log data;


    8. 使用oracle自帶的管理器來建立流複製相關的進程

        1). 啓動orcl 實例的dbconsole

        


        2). 點擊 Database Control – orcl, 啓動em


        3). 在打開的瀏覽器窗口中用 strmadmin 用戶登陸


        4). 點擊數據移動

        5). 選擇 ‘流’ – '設置' 


        6). 選擇 複製方案,下面的主機身份證實輸入計算機管理員的用戶名和密碼,並勾選另存爲首選身份證實。

             而後點擊繼續。


        7).  在包含方案中選擇館系統用戶(個人是 nt_gxt)

        8). 進行配置


        9). 設置當即啓動


        10). 若是最後一步提交時報以下錯誤

執行語句(execute MGMT_USER.MAKE_EM_USER('STRMADMIN');),用系統用戶登陸orcl實例執行。


已一樣的方法爲target2建立進程。實現多實例實時同步。


注意:

11g數據庫空表導出問題。

Sql代碼

查看

show parameter deferred_segment_creation;

修改

alter system set  deferred_segment_creation=false;

三個實例都完成後,服務啓動狀況,如圖所示

最後一張oracle原理圖

相關文章
相關標籤/搜索