資料庫同步方式(二)

2021-09-30 05:07:27 字數 1496 閱讀 9404

exp/imp總結

用命令列的方式進行匯出(exp)和匯入(imp),可以進行全域性匯出(入)、按使用者匯出(入)、按表匯出(入)、按資料匯出(入)等方式。

--匯出--

1.全域性匯出

exp system/manager@orcl file=e:/test_bak_full.dmp full=y

將資料庫orcl完全匯出,使用者名稱system,密碼manager,匯出到e:/test_bak_full.dmp中。

2.按使用者匯出

exp system/manager@orcl file=e:/test_bak_user.dmp owner=(system,sys)

將資料庫orcl中system使用者與sys使用者的物件匯出到e:/test_bak_user.dmp中。

3.按表匯出

exp test/test@orcl file=e:/test_bak_table.dmp tables=(t_test1,t_test2)

將資料庫orcl中test使用者(密碼test)的表t_test1和t_test2匯出到e:/test_bak_table.dmp中。

4.按表中資料匯出

exp test/test@orcl file=e:/test_bak_data.dmp tables=(t_test1) query=/" where id > 100 and id < 200 /"

將資料庫orcl中test使用者(密碼test)的表t_test1中id大於100並小於200的記錄匯出到e:/test_bak_data.dmp中。

--匯入--

1.全部匯入

imp test/test@orcl2 file=e:/test_bak_table.dmp full=y

將e:/test_bak_table.dmp全部匯入到資料庫orcl2中的test使用者下(密碼test)。

如果test使用者下已有dmp中的表等物件,會報錯,需要在命令列中增加引數ignore=y,會保留原表中資料,增量匯入。

2.按表匯入

imp test/test@orcl2 file=e:/test_bak_table.dmp tables=(t_test1)

將e:/test_bak_table.dmp中表t_test1匯入到資料庫orcl2的test使用者下(密碼test)。

匯入時會按照登入使用者進行匯入,如執行imp test2/test2@orcl2 file=e:/test_bak_table.dmp tables=(t_test1),則t_test1將會匯入到test2使用者下。

匯入前,需要先建立使用者,並對匯入使用者賦予相應的許可權,常用的sql為:

create user 使用者名稱 identified by 密碼

grant create user,drop user,alter user,create any view,drop any view,

exp_full_database,imp_full_database,connect,resource,create session to 使用者名稱

SQL 資料庫 同步(二)

二 受到老同事資料庫同步軟體的啟發,我製作了乙個基於觸發器的同步。基本風格和老同事的一樣,我們還是先來看介面 繼續沿用了前人的智慧型。第一次介面跳轉時,需要的時間比較長。後台工作比較多 剛剛幾個圖形不好擷取,就是工具裡面的,包括 表比較,完整備份,差異備份和增量備份。這個資料庫同步實現的原理是 在主...

資料庫同步

sql server 2005 同步複製技術 以下實現複製步驟 以快照複製為例 執行平台sql server 2005 一 準備工作 1 建立乙個 windows 使用者,設定為管理員許可權,並設定密碼,作為發布快照檔案的有效訪問使用者。2 在sql server下實現發布伺服器和訂閱伺服器的通訊正...

資料庫同步

上次發布訂閱實現資料庫同步,這次用觸發器 實現了按表的同步。思路是 1,需同步的a。b兩個表都建立觸發器,和同步表a trigger,b trigger。在對錶增刪改的時候,用觸發器記錄存放在同步表中。2,定時讀取兩個同步表,然後將更改記錄更新到對方的表中。實現 1 觸發器 建立乙個和a結構一樣的同...