[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 克隆資料庫資料庫
- 2.10.1.2 使用CloneDB克隆資料庫資料庫
- [20180529]模擬會話引數變化.txt會話
- 2.10.1.3 使用 CloneDB克隆資料庫後續資料庫
- 2.10.1.1 有關使用CloneDB克隆資料庫資料庫
- [20210326]Disk file operations IO與檔案型資料庫.txt資料庫
- 2.10.3 使用 Oracle Automatic Storage Management (Oracle ASM) 克隆資料庫OracleASM資料庫
- MySQL 資料庫-索引注意事項MySql資料庫索引
- [20210428]資料庫連線加密.txt資料庫加密
- 【配置上線】Linux克隆安裝Oracle資料庫軟體LinuxOracle資料庫
- vue 對資料的克隆Vue
- [20200102]資料庫安裝問題.txt資料庫
- [20201112]nid改變資料庫名字.txt資料庫
- [20210529]延遲開啟資料庫.txt資料庫
- MySQL的clone(克隆)要注意的點MySql
- js中深克隆與淺克隆JS
- Oracle 12.2 新特性:線上PDB資料庫克隆(Pluggable Hot Clone)Oracle資料庫
- [20210401]使用bbed讀取資料塊恢復注意6.txt
- MySQL 資料庫設計和注意事項MySql資料庫
- [20181224]使用odbc連線oracle資料庫.txtOracle資料庫
- MySQL匯入CSV/TXT等資料來源中資料操作流程及注意事項MySql
- 資料庫與資料庫管理系統概述資料庫
- 實時資料庫與時序資料庫資料庫
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- [20230425]注意snapshot standby與activate standby的區別.txt
- [20190527]注意表與索引的並行屬性.txt索引並行
- Laravel 使用 PostgreSQL 資料庫需要注意的點LaravelSQL資料庫
- JAVA 基礎 – clone淺克隆與深克隆Java
- [20181128]toad連線資料庫的問題.txt資料庫
- [20180718]拷貝資料檔案從dg庫.txt
- [20180606]如何dump資料庫裡面的漢字.txt資料庫
- [20200814]8K資料庫最大行號.txt資料庫
- [20191227]別把資料庫當作垃圾場.txt資料庫
- [20221128]dg資料庫最佳化問題.txt資料庫
- 2.10.1 在non-CDB(非多租戶)環境中克隆資料庫資料庫
- [20181102]資料檔案改名與awr.txt
- 深入理解Java的淺克隆與深克隆Java
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫