發表文章

目前顯示的是 3月, 2020的文章

如何解決ORA-600 [kcratr_nab_less_than_odr]

圖片
問題 : 最近朋友因為更新 Windows 的防毒軟體,導致資料庫無法使用,雖然重開機二次,資料庫卻開不起來。 原因 : 從Oracle官網的ORA600/7445 lookup工具,查出是 Oracle redo file 已經損毀。 解決方法 : 1.      首先查出 current 的 redo log 位置。 2.      強制關閉 Oracle 資料庫,使資料庫內部咬住的資源,得以釋放。 3.      再把資料開啟在 Mount 狀態。 4.      使用 recover 指令修復檔案。 5.      強制資料庫清除所有 redo log 並開啟資料庫。

如何解決SharePlex和Datapump 整合問題?

圖片
問題 : 客戶說從來源端資料庫匯入資料, SharePlex 不會複製到目標端。 原因 : 經過測試,如果是 oracle 傳統 exp/imp 會直接傳送到目標端資料庫, 如果是 datapump 則不會。 解決方法 : 在來源端需先打開 SP_OCT_ALLOW_DP_DDL= 1 參數 , 匯入 ddl 指令時, 才會傳送到 target 端建立 table 。 步驟一: Stop capture 步驟二: set param SP_OCT_ALLOW_DP_DDL 1 步驟三: start capture 實際測試如下 : 步驟一:刪除來源端 test1 table 。 步驟二:匯入 test1 table 資料。 impdp system/oracle123@pdborcl directory=datapumpdir    dumpfile=test1.dmp    tables=testuser.test1   sqlfile=test.sql; 步驟三:確認資料有匯入來源端。 步驟四:確認資料有傳到目標端。

如何知道Oracle datapump背後做了哪些事?

圖片
問題 : 朋友問執行 Datapump 時,如何知道 Oracle datapump 背後做了哪些事 ? 解決方法 : 匯入語法如下,只需再增加一個 sqlfile 參數,就能讓 Oracle 將 SQL 語法寫入到檔案,這樣可以知道 Oracle 背後做了哪些事。 impdp system/oracle123@pdborcl directory=datapumpdir    dumpfile=test1.dmp    tables=testuser.test1   sqlfile=test.sql; 打開該 sqlfile ,會發現指令如下 :