【轉載】去掉DB_DOMAIN的方法
【轉載地址】http://yangtingkun.itpub.net/post/468/279105
Oracle的GLOBAL_NAME由兩個部分組成:DB_NAME和DB_DOMAIN。如果在建立資料庫的時候不指定DB_DOMAIN的值,則GLOBAL_NAME和DB_NAME的值一樣。
Oracle有一個從來沒有解決的問題,就是DB_DOMAIN一旦加上,就再也去不掉了。
不管是設定透過DB_DOMAIN的方式,還是透過ALTER DATABASE RENAME GLOBAL_NAME TO的方式。一旦GLOBAL_NAME包含了DB_DOMAIN部分。就再也無法去掉了。
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
-------------------------------------------------------------------------
YTK
SQL> SHOW PARAMETER DB_DOMAIN
NAME TYPE VALUE
------------------------------------ ----------- ------------------------
db_domain string
SQL> ALTER DATABASE RENAME GLOBAL_NAME TO YTK.YANGTINGKUN;
資料庫已更改。
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
-------------------------------------------------------------------------
YTK.YANGTINGKUN
SQL> ALTER DATABASE RENAME GLOBAL_NAME TO YTK;
資料庫已更改。
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
-------------------------------------------------------------------------
YTK.YANGTINGKUN
而且這個問題還可能造成以前建立的資料庫鏈不可用的情況。這還不是最鬱悶的,當配置高階複製等環境時,需要將GLOBAL_NAMES引數設定為TRUE,因此如果主站點本身不帶DB_DOMAIN,則帶DB_DOMAIN的資料庫無法加入到這個複製環境中。
因為,這個時候,新增任何不帶DOMAIN的資料庫鏈,Oracle都會自動將本機的DOMAIN加上。
SQL> CREATE DATABASE LINK TESTDATA;
資料庫連結已建立。
SQL> SELECT DB_LINK FROM USER_DB_LINKS;
DB_LINK
----------------------------------------
TESTDATA.YANGTINGKUN
這就要求複製環境中不要出現不同配置的資料庫。要不然全部環境都不帶DB_DOMAIN,要不然全部環境都帶DB_DOMAIN。否則就很容易出現這個問題。
說了半天,這個DB_DOMAIN到底如何才能去掉呢。沒有常規的方法,唯一的方法是修改資料字典。
下面的方法只是實在沒有辦法的時候才使用,個人並不推薦使用這個方式。
SQL> CONN /@YTK AS SYSDBA已連線。
SQL> UPDATE SYS.PROPS$ SET VALUE$ = 'YTK' WHERE NAME = 'GLOBAL_DB_NAME';
已更新 1 行。
SQL> SELECT * FROM GLOBAL_NAME;
GLOBAL_NAME
----------------------------------------------------------------------------
YTK
SQL> COMMIT;
提交完成。
雖然透過SQL_TRACE可以看到,Oracle實際上就是這些了這個操作,不過仍然不推薦採用直接修改資料字典的方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-763458/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 去掉DB_DOMAIN的方法AI
- 去掉Foxmail啟動畫面的方法(轉)AI動畫
- oracle 轉義字元去掉下劃線 _ 的使用方法Oracle字元
- 轉載方法
- 去掉Excel小數點的方法Excel
- 去掉ul li 的自定義格式的方法 的方法
- 轉:複製CSDN的BLOG程式碼,去掉前面行號的方法
- php數字去掉逗號的方法PHP
- 常用的Java類方法【轉載】Java
- DB_DOMAIN Initialization Parameter (88)AI
- JAVA 方法過載(轉)Java
- 衝突處理的方法(轉載)
- 去掉forum.php最有效方法PHP
- 詳解BOM頭以及去掉BOM頭的方法
- [轉載] Java Challengers#1:JVM中的方法過載JavaJVM
- $AJAX方法詳解(轉載)
- 四種IT治理方法(轉載)
- 價值工程的技術方法(轉載)
- Oracle(b_name,db_unique_name, servie_names,db_domain修改方法)OracleAI
- Oracle修改(db_name,db_unique_name, servie_names,db_domain)方法OracleAI
- Python中去掉字串中空格的方法有哪些?Python字串
- android應用中去掉標題欄的方法Android
- Java String 去掉特殊字元之前的內容方法Java字元
- windows10怎麼去掉小箭頭_win10電腦去掉快捷箭頭的方法WindowsWin10
- 供應商管理的策略與方法(轉載)
- 疑似slax掛載usb的解決方法(轉)
- SpingMVC框架中去掉List中重複bean的方法MVC框架Bean
- Laravel 5中去掉URL中的public路徑方法Laravel
- Excel表格底色怎麼去掉?去除Excel表格底色的方法Excel
- oracle 跳脫字元去掉下劃線 _ 的使用方法Oracle字元
- android全屏去掉title欄的多種實現方法Android
- 2.6.2.2 初始化引數DB_DOMAINAI
- win10 如何去掉待機螢幕 win10去掉待機螢幕方法Win10
- 解決ORA-12560的方法(轉載)
- Turbolinux中實現負載均衡的方法(轉)Linux負載
- 【轉載】職場人士日常學習方法
- 8D工作方法(轉載)
- 使用SQL語句去掉重複記錄的兩種方法SQL