ORACLE_SID,INSTANCE_NAME和DB_NAME
我們知道例項啟動的時候必須制定pfile/spfile:
pfile:init
spfile:spfile
當我們啟動一個例項的時候,會執行export ORACLE_SID=XXX,這時候oracle根據ORACLE_SID就可以在預設路徑下找到對應的引數檔案進行讀取,根據引數檔案的內容就可以分配記憶體啟動後臺程式,例項成功啟動。
所以,ORACLE_SID是一個作業系統環境變數,用於和作業系統互動,可以看做是orale和作業系統溝通的一個視窗。
INSTANCE_NAME:
這是一個實實在在存在的引數,用於識別資料庫的例項名。在oracle10g之前,這個引數還存在引數檔案當中,10g之後就從引數檔案中消失了。
來看看官方文件是如何描述這一引數的:
Property | Description |
---|---|
Parameter type | String |
Syntax | INSTANCE_NAME = instance_id |
Default value |
The instance's SID
Note: The SID identifies the instance's shared memory on a host, but may not uniquely distinguish this instance from other instances. |
Modifiable | No |
Range of values | Any alphanumeric characters and the underscore (_) character |
Basic | No |
In a Real Application Clusters environment, multiple instances can be associated with a single database service. Clients can override Oracle's connection load balancing by specifying a particular instance by which to connect to the database. INSTANCE_NAME specifies the unique name of this instance.
In a single-instance database system, the instance name is usually the same as the database name.
可以看到,在RAC環境中,不同的例項用於連線不同的資料庫服務,INSTANCE_NAME標誌了一個唯一的例項名。而在單例項環境中,例項名通常和資料庫的名字相同。
資料庫名和例項名通常都是一對一的關係,有一個資料庫名那麼對應的就有一個例項名,如果有兩個資料庫,那麼必然存在兩個例項名。
DB_NAME:
就是資料庫的名稱,透過DB_NAME,我們可以找到資料庫對應的控制檔案,日誌檔案和資料檔案的位置。
看看官方文件對於這一引數的描述:
Property | Description |
---|---|
Parameter type | String |
Syntax | DB_NAME = database_name |
Default value | There is no default value. |
Modifiable | No |
Basic | Yes |
Oracle RAC | You must set this parameter for every instance. Multiple instances must have the same value, or the same value must be specified in the STARTUP OPEN SQL*Plus command or the ALTER DATABASE MOUNT SQL statement. |
DB_NAME specifies a database identifier of up to 8 characters. This parameter must be specified and must correspond to the name specified in the CREATE DATABASE statement.
If you have multiple databases, the value of this parameter should match the Oracle instance identifier of each one to avoid confusion with other databases running on the system. The value of DB_NAME should be the same in both the standby and production initialization parameter files.
The database name specified in either the STARTUP command or the ALTER DATABASE ... MOUNT statement for each instance of the cluster database must correspond to the DB_NAME initialization parameter setting.
The following characters are valid in a database name: alphanumeric characters, underscore (_), number sign (#), and dollar sign ($). No other characters are valid. Oracle removes double quotation marks before processing the database name. Therefore you cannot use double quotation marks to embed other characters in the name. The database name is case insensitive.
可以看到,如果你的系統上執行著多個資料庫,那麼透過DB_NAME這個引數,就可以找到對應的資料庫資料檔案日誌檔案等而不會造成混淆。DB_NAME是在建立資料庫的時候就被指定的,一旦確定了就不能修改,因為DB_NAME會同時儲存在pfile/spfile,控制檔案,資料檔案,日誌檔案中。
我們只能手動修改pfile/spfile中DB_NAME的值,卻不能修改控制檔案,資料檔案和日誌檔案中的值,所以一旦修改了之後就會引起與其他檔案中的值不匹配的問題,
從而導致資料庫無法正常啟動。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29800581/viewspace-1307517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- instance_name、db_name、ORACLE_SID、db_name等的區別Oracle
- oracle sid,instance_name,db_name,oracle_sid之間的關係Oracle
- 關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- (轉)關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- [轉]ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAMEOracle
- ORACL中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介紹Oracle
- ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介紹Oracle
- 轉貼:關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- SID、ORACLE_SID、INSTANCE_NAME、DB_NAME、SERVER_NAMES、GLOBAL_DBNAME等區別OracleServer
- 關於ORACLE_SID和DB_NAME的理解Oracle
- 利用nid工具修改db_name和instance_name
- 關於db_name,instance_name等近似概念的理解????
- DB_NAME、DB_UNIQUE_NAME、SERVICE_NAME和INSTANCE_NAME等的區別
- Oracle修改instance_name、db_name、db_unique_name、service_namesOracle
- How to Rename Database/Change DB_NAME or ORACLE_SID/Instance Name-15390.1DatabaseOracle
- CUUG 筆記ORACLE db_name instance_name gobal_name service_name db_unique_name分析筆記OracleGo
- 關於db_name,oracle_sid,service_names,global_names等的總結說明Oracle
- db_name和db_unique_name的區別
- 更改資料庫SID名和db_name名資料庫
- DB_NAME DB_UNIQUE_NAME 和 SID 的理解
- Rename db_name for OracleOracle
- DB_NAME Initialization Parameter (87)
- export ORACLE_SID=founder exportExportOracle
- linux下設定ORACLE_SID和ORACLE_HOME變數LinuxOracle變數
- 修改oracle例項名(sid)和資料庫名(db_name)Oracle資料庫
- 修改資料庫db_name的方法資料庫
- 檢視window下預設ORACLE_SIDOracle
- shell 指令碼讀多個oracle_sid指令碼Oracle
- ERROR: failed to establish dependency between database db_name and diskgroupErrorAIDatabase
- oracle_sid與netmgr listener的sidOracle
- 利用nid工具修改db_name時hang住
- windows下異機恢復---改變db_nameWindows
- 關於service_name,instance_name的結論性理解
- Oracle - 資料庫名、例項名、服務名、ORACLE_SID 的說明和區別Oracle資料庫
- dataguard 搭建 oracle_sid不同 2節點 primary+standbyOracle
- dataguard 搭建 oracle_sid相同 2節點 primary+standbyOracle
- 解決客戶資料庫oracle_sid問題資料庫Oracle
- What is the $ORACLE_HOME/dbs/hc_<ORACLE_SID>.dat fileOracle