久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle中Database name、Instance Name、ORACLE

137次閱讀
沒有評論

共計 2851 個字符,預計需要花費 8 分鐘才能閱讀完成。

本篇文章為大家展示了 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 的區別是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計2851字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 连云港市| 肥乡县| 灵宝市| 北宁市| 新龙县| 灯塔市| 临西县| 错那县| 阿瓦提县| 陇南市| 东兴市| 葫芦岛市| 新竹市| 正阳县| 连城县| 同德县| 苍山县| 哈密市| 云安县| 互助| 高密市| 西贡区| 江阴市| 垦利县| 田林县| 双牌县| 宁强县| 新和县| 栾城县| 峨边| 石景山区| 柞水县| 永靖县| 汤阴县| 武威市| 边坝县| 华阴市| 平乐县| 西藏| 青阳县| 紫云|