亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle中Database name、Instance Name、ORACLE_SID的區別是什么

發布時間:2021-11-12 15:11:15 來源:億速云 閱讀:301 作者:柒染 欄目:關系型數據庫

本篇文章為大家展示了Oracle中Database name、Instance Name、ORACLE_SID的區別是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

數據庫名、實例名、數據庫域名、全局數據庫名、服務名  

一、數據庫名

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

2、數據庫名的作用
        數據庫名是在安裝數據庫、創建新的數據庫、創建數據庫控制文件、修改數據結構、備份與恢復數據庫時都需要使用到的。
        有很多Oracle安裝文件目錄是與數據庫名相關的,如:
            winnt: e:/oracle/product/10.1.0/oradata/DB_NAME/...
            Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...

        參數文件pfile:
        winnt: e:/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/...
        如果控制文件損壞或丟失,數據庫將不能加載,這時要重新創建控制文件,方法是以nomount方式啟動實例,然后以create controlfile命令創建控制文件,當然這個命令中也是指指DB_NAME。還有在備份或恢復數據庫時,都需要用到數據庫名。總之,數據庫名很重要,要準確理解它的作用。

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

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

二、數據庫實例名

1、什么是數據庫實例名?
        實例是訪問oracle數據庫所需的一部分計算機內存和輔助處理后臺進程,是由進程和這些進程所使用的內存(SGA)所構成的一個集合,它根本不需要一個與其相關的數據庫,沒有任何數據文件也可以啟動實例。
        啟動過程如下:
         sqlplus / as sysdba
         sql>startup nomount        #啟動了一個實例,現在SGA分配了,進程在運行,除數據庫所有的東西都啟動了     
         sql>alter database mount  #查找以及加載控制文件(init.ora文件中指定),然后利用控制文件定位重做日志文件、數據文件、臨時文件     
         sql>alter database open   #oracle將打開所有聯機的數據文件及重做日志文件,供用戶訪問。
          大家訪問oracle都是訪問一個實例,但這個實例如果關聯了數據庫文件,就是可以訪問的,如果沒有,就會得到實例不可用的錯誤。
           實例名指的是用于響應某個數據庫操作的數據庫管理系統的名稱,它同時也叫sid。實例名是由參數instance_name決定的。如果這個參數不被制定(即instance_name沒有被指定任何值),那么實例的名字由該用戶的環境變量ORACLE_SID(注意這里是大寫)決定。
         
2、實例和數據庫
        實例和數據庫的區別:
        1)實例是臨時的,它只在相關的進程和內存集合存在時存在,數據庫是永久的,只要文件存在它就存在。
        2)一個實例在生存周期內可安裝和打開單個數據庫;數據庫可以被很多實例安裝和打開,或者一個接一個的實例安裝和打開,每個實例都打開同一個數據庫。
        數據庫實例名用于對外部連接。在操作系統中要取得與數據庫的聯系,必須使用數據庫實例名。要去連接一個數據庫服務器,就必須知道其數據庫實例名,只知道數據庫名是沒有用的。與數據庫名不同,在數據庫安裝或創建數據庫之后,實例名可以被修改。數據庫名和實例名可以相同也可以不同。一般情況下,數據庫名和實例名是一對一的關系,但如果在oracle并行服務器架構(oracle實時應用集群)中,數據庫名和實例名是一對多的關系(一個數據庫對應多個實例,同一時間內用戶只有一個實例相聯系,當某一實例出現故障,其它實例自動服務,以保證數據庫安全運行)。

3、查詢當前數據庫實例名
    方法一:select instance_name from v$instance;
    方法二:show parameter instance;


三、ORALCE_SID

        在實際中,對于數據庫實例的標識有時使用實例名,有時使用ORACLE_SID,它們有什么區別? 
          (ORACLE_SID)
        OS<---------------->; ORACLE 數據庫 <--------(Instance_name(實例名))
        上圖表示實例instance_name、ORACLE_SID與數據庫及操作系統之間的關系,雖然這里列出的兩個參數都是數據庫實例名,但是instance_name參數是ORACLE數據庫的參數,此參數可以在參數文件中查到;而ORACLE_SID參數則是操作系統環境變量,與ORACLE_BASE、ORACLE_HOME用法相同,用于和操作系統交互。也就是說,在操作系統中要想得到實例名,就必須使用ORACLE_SID。切ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在UNIX平臺,是“ORACLE not available ” ,在winnt平臺,是“TNS協議適配器錯誤”。

上述內容就是Oracle中Database name、Instance Name、ORACLE_SID的區別是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒙城县| 桐梓县| 汉中市| 黎城县| 阳谷县| 五寨县| 刚察县| 虞城县| 二连浩特市| 从化市| 柏乡县| 保靖县| 苗栗市| 淄博市| 晋宁县| 锡林浩特市| 筠连县| 万全县| 海门市| 余干县| 信宜市| 湘乡市| 临沭县| 新龙县| 红河县| 江口县| 始兴县| 保康县| 芜湖县| 灵璧县| 搜索| 资中县| 翁源县| 信丰县| 通榆县| 股票| 延长县| 庆元县| 乐东| 平原县| 治多县|