<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    狂淘

    www.kuangtao.net

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      6 隨筆 :: 185 文章 :: 68 評論 :: 0 Trackbacks

    一、數據庫名
    什么是數據庫名?

    數據庫名就是一個數據庫的標識,就像人的身份證號一樣。他用參數DB_NAME表示,如果一臺機器上裝了多全數據庫,那么每一個數據庫都有一個數據庫名。在數據庫安裝或創建完成之后,參數DB_NAME被寫入參數文件之中。格式如下:
    DB_NAME=myorcl
    ...
    在創建數據庫時就應考慮好數據庫名,并且在創建完數據庫之后,數據庫名不宜修改,即使要修改也會很麻煩。因為,數據庫名還被寫入控制文件中,控制文件是以二進制型式存儲的,用戶無法修改控制文件的內容。假設用戶修改了參數文件中的數據庫名,即修改DB_NAME的值。但是在Oracle啟動時,由于參數文件中的DB_NAME與控制文件中的數據庫名不一致,導致數據庫啟動失敗,將返回ORA-01103錯誤。

    數據庫名的作用
    數據庫名是在安裝數據庫、創建新的數據庫、創建數據庫控制文件、修改數據結構、備份與恢復數據庫時都需要使用到的。
    有很多Oracle安裝文件目錄是與數據庫名相關的,如:
    winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...
    Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
    pfile:
    winnt: d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora
    Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
    跟蹤文件目錄:
    winnt: /home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
    另外,在創建數據時,careate database命令中的數據庫名也要與參數文件中DB_NAME參數的值一致,否則將產生錯誤。
    同樣,修改數據庫結構的語句alter database,當然也要指出要修改的數據庫的名稱。
    如果控制文件損壞或丟失,數據庫將不能加載,這時要重新創建控制文件,方法是以nomount方式啟動實例,然后以create controlfile命令創建控制文件,當然這個命令中也是指指DB_NAME。
    還有在備份或恢復數據庫時,都需要用到數據庫名。
    總之,數據庫名很重要,要準確理解它的作用。

    查詢當前數據名
    方法一:select name from v$database;
    方法二:show parameter db
    方法三:查看參數文件。

    修改數據庫名
    前面建議:應在創建數據庫時就確定好數據庫名,數據庫名不應作修改,因為修改數據庫名是一件比較復雜的事情。那么現在就來說明一下,如何在已創建數據之后,修改數據庫名。步驟如下:
    1.關閉數據庫。
    2.修改數據庫參數文件中的DB_NAME參數的值為新的數據庫名。
    3.以NOMOUNT方式啟動實例,修建控制文件(有關創建控制文件的命令語法,請參考oracle文檔)

    二、數據庫實例名
    什么是數據庫實例名
    數據庫實例名是用于和操作系統進行聯系的標識,就是說數據庫和操作系統之間的交互用的是數據庫實例名。實例名也被寫入參數文件中,該參數為instance_name,在winnt平臺中,實例名同時也被寫入注冊表。
    數據庫名和實例名可以相同也可以不同。
    在一般情況下,數據庫名和實例名是一對一的關系,但如果在oracle并行服務器架構(即oracle實時應用集群)中,數據庫名和實例名是一對多的關系。這一點在第一篇中已有圖例說明。

    查詢當前數據庫實例名
    方法一:select instance_name from v$instance;
    方法二:show parameter instance
    方法三:在參數文件中查詢。

    數據庫實例名ORACLE_SID
    雖然兩者都表是oracle實例,但兩者是有區別的。instance_name是oracle數據庫參數。而ORACLE_SID是操作系統的環境變量。ORACLD_SID用于與操作系統交互,也就是說,從操作系統的角度訪問實例名,必須通過ORACLE_SID。在winnt不臺,ORACLE_SID還需存在于注冊表中。
    ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平臺,是“ORACLE not available”,在winnt平臺,是“TNS:協議適配器錯誤”。

    數據庫實例名與網絡連接
    數據庫實例名除了與操作系統交互外,還用于網絡連接的oracle服務器標識。當你配置oracle主機連接串的時候,就需要指定實例名。當然8i以后版本的網絡組件要求使用的是服務名SERVICE_NAME。這個概念接下來說明。

    三、數據庫域名
    什么是數據庫域名?

    在分布工數據庫系統中,不同版本的數據庫服務器之間,不論運行的操作系統是unix或是windows,各服務器之間都可以通過數據庫鏈路進行遠程復制,數據庫域名主要用于oracle分布式環境中的復制。舉例說明如:
    全國交通運政系統的分布式數據庫,其中:
    福建節點: fj.jtyz
    福建廈門節點: xm.fj.jtyz
    江西: jx.jtyz
    江西上饒:sr.jx.jtyz
    這就是數據庫域名。
    數據庫域名在存在于參數文件中,他的參數是db_domain.

    查詢數據庫域名
    方法一:select value from v$parameter where name = 'db_domain';
    方法二:show parameter domain
    方法三:在參數文件中查詢。

    全局數據庫名
    全局數據庫名=數據庫名+數據庫域名,如前述福建節點的全局數據庫名是:oradb.fj.jtyz

    四、數據庫服務名
    什么是數據庫服務名?
    oracle9i版本開始,引入了一個新的參數,即數據庫服務名。參數名是SERVICE_NAME。
    如果數據庫有域名,則數據庫服務名就是全局數據庫名;否則,數據庫服務名與數據庫名相同。

    查詢數據庫服務名
    方法一:select value from v$parameter where name = 'service_name';
    方法二:show parameter service_name
    方法三:在參數文件中查詢。

    數據庫服務名與網絡連接
    oracle8i開如的oracle網絡組件,數據庫與客戶端的連接主機串使用數據庫服務名。之前用的是ORACLE_SID,即數據庫實例名

    posted on 2009-08-24 17:41 狂淘 閱讀(93) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品无码免费专区毛片| 亚洲av成人综合网 | a级毛片无码免费真人久久| 国产精品无码永久免费888| 国产成人免费ā片在线观看老同学| 性无码免费一区二区三区在线| 成年人网站免费视频| 免费人成网站在线播放| 国产亚洲av片在线观看16女人| 亚洲精品成人网站在线播放| 亚洲AV成人精品一区二区三区| 免费无码作爱视频| AV免费网址在线观看| 亚洲国产精品一区二区九九| 亚洲电影中文字幕| 亚洲精品亚洲人成在线播放| 一区二区三区在线观看免费| 国产精品久久永久免费| 激情综合亚洲色婷婷五月| 在线播放免费播放av片| 亚洲人成亚洲精品| 色婷婷精品免费视频| 中文字幕成人免费视频| 亚洲色偷拍区另类无码专区| 亚洲三级在线视频| 日韩在线免费播放| 亚洲成a人片7777| 98精品全国免费观看视频| 中文字幕在线亚洲精品 | 亚洲AV无码国产剧情| 亚洲午夜激情视频| 老汉精品免费AV在线播放| 亚洲最大中文字幕| 免费播放特黄特色毛片| 久久久精品免费视频| 亚洲无av在线中文字幕| 粉色视频在线观看www免费| 午夜一级免费视频| 亚洲熟妇无码一区二区三区导航| 嫩草影院在线播放www免费观看| 亚洲国产日韩在线|