[20180529]克隆資料庫與dblinks注意.txt
[20180529]克隆資料庫與dblinks注意.txt
--//在做資料庫克隆,一般情況下給開發做測試,要注意一個細節問題,就是資料庫內建立的dblink.
--//有可能導致一些異常情況,特別是國內環境生產資料庫與測試資料庫沒有分開的情況下,很有可能導致
--//無意中竄改生產系統的資料.
--//還是透過例子說明問題:
1.環境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
--//說明一下,現在許多dba或者開發習慣使用ezconnect模式配置dblink,這樣的好處不需要修改tnsnames.ora檔案.
--//特別在rac環境這種優勢更加明顯.因為rac要修改多臺機器的配置檔案.但是正是這樣,在克隆時也把dblink的配置
--//帶到克隆環境,如果你開發與生產環境沒有很好的隔離,很可能在克隆資料庫執行dml語句時,出發一些job做更新
--//別的資料庫的操作....
--//我先測試其它情況:
CREATE PUBLIC DATABASE LINK TEST
CONNECT TO SCOTT
IDENTIFIED BY book
USING 'test';
--//在tnsnames.ora配置如下:
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.40)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bookdg)
)
)
SCOTT@book> select sysdate from dual@test;
SYSDATE
-------------------
2018-05-30 08:31:52
SCOTT@book> select INSTANCE_NAME from v$instance@test;
INSTANCE_NAME
----------------
bookdg
--//說明一下:IP=192.168.100.40是我測試資料庫的dataguard.
2.如果在dg上執行:
SCOTT@bookdg> select INSTANCE_NAME from v$instance@test;
--//掛起,因為在dg上沒有配置test的tns別名.假設配置如下:
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = book)
)
)
SCOTT@bookdg> select INSTANCE_NAME from v$instance@test;
INSTANCE_NAME
----------------
book
--//這樣你克隆的機器實際上訪問不同的資料庫.而且有一些還與環境變數TNS_ADMIN有關.不再測試.
--//另外說明一下,我在dg上如果訪問的tns的別名的資料庫是10g的,會出現如下錯誤.
SCOTT@bookdg> select sysdate from dual@test;
select sysdate from dual@test
*
ERROR at line 1:
ORA-16000: database open for read-only access
--//因為dg只能以read only開啟.訪問11g的資料庫沒有問題.
--//另外如果sql語句出現2個訪問dblink的情況,也會報錯.參考連結:
http://blog.itpub.net/267265/viewspace-2138879/=>[20170511]DBLINK跨庫查詢遇到ORA-16000
3.繼續測試:
--//如果你使用ezconnect方式配置,這樣的好處不需要修改tnsnames.ora檔案.
--//特別在rac環境這種優勢更加明顯.因為rac要修改多臺機器的配置檔案.但是正是這樣,在克隆時也把dblink的配置
--//帶到克隆環境,如果你開發與生產環境沒有很好的隔離,很可能在克隆資料庫執行dml語句時,出發一些job做更新
--//別的資料庫的操作....
4.總之:
--//在做克隆時要注意這個細節,最好在引數檔案設定job_queue_processes=0,open_links,open_links_per_instance=0
--//確定那些dblink是否需要或者改正.不需要的刪除,尤其要重視ezconnect配置的dblink.避免出現意外.
--//還有1個習慣設定開發與生產系統的連線使用者口令不一樣,也一定程度減少這樣的錯誤.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2155317/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2.10 克隆資料庫資料庫
- 使用duplicate克隆資料庫資料庫
- 靜默建立oracle資料庫及克隆資料庫Oracle資料庫
- [20121108]關於克隆資料庫的問題.txt資料庫
- 2.10.1.2 使用CloneDB克隆資料庫資料庫
- 克隆資料庫之RMAN複製(二)資料庫
- 克隆資料庫之RMAN複製(一)資料庫
- 2.10.1.3 使用 CloneDB克隆資料庫後續資料庫
- 2.10.1.1 有關使用CloneDB克隆資料庫資料庫
- 資料庫克隆資料庫
- [20180529]模擬會話引數變化.txt會話
- 第6章:複製資料庫之克隆開啟的risenet資料庫資料庫SENet
- oracle之dblinksOracle
- rman 可否克隆rac資料庫到另外一個rac環境的資料庫中?資料庫
- MySQL 資料庫-索引注意事項MySql資料庫索引
- 克隆資料庫之使用者管理複製(三)資料庫
- 克隆資料庫之使用者管理複製(二)資料庫
- 克隆資料庫之使用者管理複製(一)資料庫
- oracle資料庫使用sqlldr命令匯入txt資料Oracle資料庫SQL
- vue 對資料的克隆Vue
- 9i 克隆+data guard 實現資料庫搬遷資料庫
- oracle資料庫調優描述(三).txtOracle資料庫
- oracle資料庫調優描述(五).txtOracle資料庫
- oracle資料庫調優描述(二).txtOracle資料庫
- oracle資料庫調優描述(一).txtOracle資料庫
- Oracle 資料庫升級注意事項Oracle資料庫
- 資料庫程式設計注意事項資料庫程式設計
- MySQL的clone(克隆)要注意的點MySql
- js中深克隆與淺克隆JS
- 2.10.3 使用 Oracle Automatic Storage Management (Oracle ASM) 克隆資料庫OracleASM資料庫
- 【配置上線】Linux克隆安裝Oracle資料庫軟體LinuxOracle資料庫
- 實驗-shell執行資料庫命令.TXT資料庫
- MySQL 資料庫設計和注意事項MySql資料庫
- Nagois監控oracle資料庫注意的地方GoOracle資料庫
- java 資料庫設計 需要注意的Java資料庫
- MySQL匯入CSV/TXT等資料來源中資料操作流程及注意事項MySql
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- 實時資料庫與時序資料庫資料庫