環境:sql
Windows 2008 服務器,Oracle 11g r2 數據庫數據庫
任務要求:瀏覽器
有三個數據庫實例,一個實例供管理子系統使用,一個實例供利用子系統使用,還有一個實例專門作備份。服務器
選擇的技術:oracle
Oracle Stream Replication(流複製)ide
建立另外兩個實例spa
源實例:orcl命令行
目標1:target日誌
目標2:target2code
中止應用服務器,防止用戶由於使用應用服務器而對數據庫作出的改變。
並導出 orcl 實例中用戶的數據,用 exp 命令
例如 exp nt_gxt/oais@orcl file=E:\nt_gxt_201508140923.dmp
環境設置
使用命令行登陸數據庫
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原理圖