Oracle資料庫系統中例項名(即instance_name)和ORACLE_SID的區別
instance(Oracle官方給出的定義)
Every running Oracle database is associated with an Oracle instance. When a database is started on a database server (regardless of the type of computer), Oracle allocates a memory area called the System Global Area (SGA) and starts an Oracle process. This combination of the SGA and an Oracle process is called an instance. The memory and the process of an instance manage the associated database's data efficiently and serve the one or more users of the database.
system identifier (SID)(同樣是Oracle官方給出的定義)
A unique name for an Oracle instance.(前面的一句是重點,後面的以我們現在討論的話題沒有直接的關係) To switch between Oracle databases, users must specify the desired SID. The SID is included in theCONNECT DATA parts of the connect descriptor in a tnsnames.ora file, and in the definition of the network listener in a listener.ora file.
ORACLE_SID (同樣是Oracle官方給出的定義)
Specifies name of Oracle9i database instance on host computer. The value of this parameter is the SID for the instance. Default value is specified by entry in the Database Identification window of Oracle Universal Installer.(最後一句說:ORACLE_SID的預設值是你安裝Oracle時在“資料庫標識”視窗所輸入的SID的值)。
ORACLE_SID的值會儲存在registry(登錄檔)中,當你把登錄檔中ORACLE_SID的值清空的時候,系統的預設值是你安裝Oracle時在“資料庫標識”視窗所輸入的SID的值。
從上面的定義,我們可以很清楚地知道:SID是Oracle資料庫例項的唯一名稱標識(A unique name for an Oracle instance.)。
瞭解了上面的概念之後,我們可以來討論一下SID和ORACLE_SID的區別了。首先,我們是通過Oracle例項來完成對Oracle資料庫的管理的。而我們又知道SID是Oracle例項的唯一名字標識。換言而言之,我們是通過SID來指定我們將要進行管理的資料庫是資料庫系統中的哪個資料庫的。這也是為什麼需要SID的一個重要的原因。那麼,ORACLE_SID呢?別急,讓我們再來看一段Oracle的官方提供文字:
Updating ORACLE_SID in the Registry
If this is the first database on the system or if you intend to make the new database the default database, then you must make a change in the registry.
1. Start Registry Editor at the command prompt:
2. C:\> regedt32
The Registry Editor window appears.
2. Choose subkey \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 for the first Oracle home on your computer. For subsequent installations to different Oracle homes on the same computer, the path is \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID where ID is the unique number identifying the Oracle home.
See Also:
"Configuration Parameters and the Registry" in Oracle9i Database Getting Started for Windows for more information on subkey locations for multiple Oracle homes
3. Locate parameter ORACLE_SID on the right side of the Registry Editor window.
4. Double-click the parameter name and change the data to the new SID, which is prod in this example.
If you do not yet have parameter ORACLE_SID, because this is the first database on your system, then you must create it.
To create parameter ORACLE_SID:
1. Choose Add Value from the Edit menu.
The Add Value dialog box appears:
Text description of the illustration addvalue.gif
2. Enter ORACLE_SID in the Value Name text box.
3. Select REG_EXPAND_SZ (for an expandable string) in the Data Type list box.
4. Click OK.
A string editor dialog box appropriate for the data type appears:
Text description of the illustration stringre.gif
5. Enter prod in the String Editor dialog box.
6. Click OK.
Registry Editor adds parameter ORACLE_SID.
7. Choose Exit from the Registry menu.
Registry Editor exits.
看完這段說明,我們可以看到:如果你想讓你新建的資料庫成為Oracle伺服器預設的資料庫(即是當你不指定要連線的資料庫(例項)時,Oracle伺服器預設幫你連線的資料庫(例項)),你必須修改登錄檔中ORACLE_SID的值——把ORACLE_SID的值設定為你新建的資料庫的例項名。(if you intend to make the new database the default database, then you must make a change in the registry.)。從上面的表述,我們不難發現:ORACLE_SID是用來指定Oracle伺服器預設的資料庫(例項)的。
現在,我們可以很清楚地看到SID和ORACLE_SID的區別了。
ps:我是Oracle資料庫初學者,如果上文有什麼錯誤,歡迎各位指出。謝謝!!!
最後,附上Oracle9i Database Online Documentation
(Release 2 (9.2))的連結:http://download.oracle.com/docs/cd/B10501_01/index.htm
oracle sid,instance_name,db_name,oracle_sid之間的關係
【一】對ORACLE_SID的理解
--------------------------------------------------------------------------------
Oracle中SID的作用類似於一個“開關變數”---引導Oracle在例項啟動時如何去預設位置下讀取適當的引數檔案並載入,以正確啟動例項。
我們知道例項的啟動需要指定pfile/spfile(Oracle9i之前是使用pfile--即init檔案,從9i開始就預設使用spfile--即伺服器端引數檔案這兩個檔案的存放位置為:
A.pfile:名字為init<ORACLE_SID>.ora
B.spfile:名字為spfile<ORACLE_SID>.ora
我們看到init檔案和spfile檔案都帶有ORACLE_SID的標識,這就是SID的作用了:
【1】當我們要啟動一個例項時,我們首先通過:set ORACLE_SID = XXX 或者export ORACLE_SID = XXX 的方式告訴Oracle接下來要啟動的例項
【2】當我們執行startup nomount時,由於已經指定了SID,那麼Oracle知道了如何去預設的目錄下查詢該例項對應的引數檔案--就是靠SID去匹配每個init/spfile檔案
【3】當Oracle找到該檔案後(init/spfile),就會讀取該檔案的內容,將一系列引數用於分配記憶體空間,構建後臺程序等例項的啟動過程
【4】當這個例項成功啟動後,我們又可以重新執行 set ORACLE_SID = XXX 或 export ORACLE_SID = XXX 命令再次將“開關撥向”另一個SID,然後重複以上步驟
從上面的過程我們看到Oracle SID的作用是一個明顯的“開關變數”,它拔向那一邊,那麼Oracle就會去找和它對應的引數檔案來啟動例項。其次SID也起到程序隔離的作用--即SID會在例項的一系列後臺程序中得到體現,如ora_dbw0_paullin,ora_dbw0_boblin。通過SID來命名後臺程序。
作業系統也必須通過SID來和Oracle例項打交道,作業系統並不知道什麼INSTANCE_NAME,只知道ORACLE_SID,在Oracle內部由Oracle自己根據這個SID去識別不同的例項。所以ORACLE_SID更多的是“Oracle和外部作業系統溝通的一個視窗”。
【二】對INSTANCE_NAME的理解
--------------------------------------------------------------------------------
相比於ORACLE_SID這樣的“開關變數”,INSTANCE_NAME則是一個實實在在的引數。它是在init/pfile檔案中配置的(db_name)。用於標識資料庫例項的名稱,其預設值就是ORACLE_SID。
INSTANCE_NAME就像一個人的名稱一樣,而SID則是這個人的身份證號碼。通過SID我們找到對應的init/spfile檔案,而init/spfile檔案中又通過instance_name這個引數告訴我們對應的例項叫什麼名字。這樣就把ORACLE_SID、引數檔案、INSTANCE_NAME聯絡起來了。
造成ORACLE_SID不同,但INSTANCE_NAME相同的原因通常是因為複製了原有的引數檔案,但忘記了修改其中的INSTANCE_NAME引數的值。不過在10G之後INSTANCE_NAME這個引數以及從init/spfile中消失了,以免引起混亂。
【三】對DB_NAME的理解
--------------------------------------------------------------------------------
我們已經知道了ORACLE_SID是一個“開關變數”,INSTANCE_NAME是用來描述例項的。那麼DB_NAME則是描述例項掛載的資料庫名稱,通過這個DB_NAME我們可以知道對應的磁碟上的控制檔案、日誌檔案、資料檔案的位置。
DB_NAME在建立資料庫時被指定,預設情況下和ORACLE_SID的名字一樣。但和INSTANCE_NAME一樣。DB_NAME一旦被確定下來就不能修改了,因為它會同時儲存在init/spfie,控制檔案,日誌檔案,資料檔案。你只能修改init/spfile檔案中DB_NAME引數的值,但是不能手工修改其它檔案的值。所以一旦修改後引起幾個檔案的值不匹配那麼資料庫的啟動就會失敗。
A.一個例項可以MOUNT並開啟任何資料庫(通過init/spfile中配置DB_NAME引數),但是同一時間一個例項只能開啟一個數據庫。
B.一個數據庫可以被一個或多個例項所MOUNT並開啟(只能是在RAC環境下,普通環境下一個資料庫只能同時被一個例項MOUNT並開啟)。
那麼如何知道例項應該掛載到那個資料庫並開啟呢?就是靠init/spfile中的“control_files”引數來告訴Oracle去那裡讀取控制檔案,而控制檔案中又記錄了資料檔案的位置。所以最終形成一個完整的鏈條:
ORACLE_SID --> init/spfile檔案 --> instance_name、db_name、control_files --> 例項名、資料庫名、控制檔案 --> 資料檔案 --> 完成掛載並開啟
【四】ORACLE_SID、INSTANCE_NAME、DB_NAME對應關係
--------------------------------------------------------------------------------
我們已經知道ORACLE_SID是用來隔離同一個ORACLE_HOME下不同的例項的。但對於不同的ORACLE_HOME呢?能否有相同名稱的SID呢?
實際上這就和檔案系統的規則是一樣的:在同一個目錄下不允許有同名的檔案存在,但不同的目錄下可以有同名的檔案。同樣的在同一個ORACLE_HOME下不能有相同的SID存在,而不同的ORACLE_HOME下可以有重名的SID(即便是同一臺機,只要ORACLE_HOME不同就可以)。
那麼對於INSTANCE_NAME呢?預設情況下INSTANCE_NAME和ORACLE_SID是相同的,也可以是不同的;而且不同的例項可以具有相同的例項名。這聽起來有點混亂是不?其實我們可以用一個簡單的生活化例子來解析:
在一個班級Class_1裡面,有兩個學生,他們的名稱都叫張三,但他們的學號肯定不同。在這裡“張三”就是INSTANCE_NAME,而學號就是SID。所以INSTANCE_NAME重複沒關係,只要SID不同就可以區分開來。
但是在另外一個班級Class_2裡面,也有學號相同的學生,這時候就出現了我們說的SID相同的問題,那麼如何區分呢?別忘了我們還有班級這個概念啊!對應於ORACLE就是ORACLE_HOME了。
至於INSTANCE_NAME和DB_NAME的對應關係,這個很好理解了,不同的例項可以掛載到不同的DB,也可以掛載到相同的DB嘛。可以把這理解為“多個程序同時對同一份磁碟檔案的競爭性訪問”。
A. 相同ORACLE_HOME下,INSTANCE_NAME可以相同,但ORACLE_SID必須唯一。通過ORACLE_SID來區分不同的例項
B. 不同ORACLE_HOME下,ORACLE_SID可以相同,通過ORACLE_HOME來區分不同的SID
C.不同INSTANCE_NAME可以對應不同的DB_NAME,也可以對應相同的DB_NAME。但是如果不是在RAC環境下,只能同時啟動例項而不能同時掛載
【五】Oracle例項啟動過程的相關引數檔案
--------------------------------------------------------------------------------
前面說到Oracle例項啟動時,需要指定pfile/spfile引數,對應的就是init檔案和spfile檔案。那麼當這兩個檔案同時存在時Oracle如何決定讀取那個呢?
以Oracle 9i為例,由於預設採用了spfile來啟動例項,所以查詢的順序是:
spfile<ORACLE_SID>.ora ---> spfile.ora ---> init<ORACLE_SID>.ora
即預設載入和SID對應的引數檔案,如果找不到則採用預設的引數檔案,再找不到就用舊的init檔案,如果還是找不到則例項無法啟動。
service Name和SID的區別
資料庫名(DB_NAME)、例項名(Instance_name)、以及作業系統環境變數(ORACLE_SID)
在ORACLE7、8資料庫中只有資料庫名(db_name)和資料庫例項名(instance_name)。在ORACLE8i、9i中出現了新的引數,即資料庫域名(db_domain)、服務名(service_name)、以及作業系統環境變數(ORACLE_SID)。這些都存在於同一個資料庫中的標識,用於區分不同資料庫的引數。
一、什麼是資料庫名(db_name)?
資料庫名是用於區分資料的內部標識,是以二進位制方式儲存於資料庫控制檔案中的引數,在資料安裝或建立之後將不得修改。資料庫安裝完成後,該引數被寫入資料庫引數檔案pfile中,格式如下:
.........
db_name="orcl" #(不允許修改)
db_domain=dbcenter.toys.com
instance_name=orcl
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
在每一個執行的ORACLE8i資料庫中都有一個數據庫名(db_name),如果一個伺服器程式中建立了兩個資料庫,則有兩個資料庫名。其控制引數據分屬在不同的pfile中控制著相關的資料庫。
二、什麼是資料庫例項名(instance_name)
資料庫例項名則用於和作業系統之間的聯絡,用於對外部連線時使用。在作業系統中要取得與資料庫之間的互動,必須使用資料庫例項名。例如,要和某一個數據庫server連線,就必須知道其資料庫例項名,只知道資料庫名是沒有用的,與資料庫名不同,在資料安裝或建立資料庫之後,例項名可以被修改。資料庫安裝完成後,該例項名被寫入資料庫引數檔案pfile中,格式如下:
db_name="orcl" #(不允許修改)
db_domain=dbcenter.toys.com
instance_name=orcl #(可以修改,可以與db_name相同也可不同)
service_names=orcl.dbcenter.toys.com
control_file=(........................
資料庫名與例項名之間的關係
資料庫名與例項名之間的關係一般是一一對應關係,有一個數據庫名就有一個例項名,如果在一個伺服器中建立兩個資料庫,則有兩個資料庫名,兩個資料庫例項名,用這兩個標識(資料庫名和例項名)確定一個數據庫,使用者和例項相連線。
但在8i、9i的並行伺服器結構中,資料庫與例項之間不存在一一對應關係,而是一對多關係,(一個數據庫對應多個例項,同一時間內使用者只一個例項相聯絡,當某一例項出現故障,其它例項自動服務,以保證資料庫安全執行。)
三、作業系統環境變數(ORACLE_SID)
在實際中,對於資料庫例項名的描述有時使用例項名(instance_name)引數,有時使用ORACLE_SID引數。這兩個都是資料庫例項名,它們有什麼區別呢?(經常弄混)
(ORACLE_SID)
OS<----------------> ORACLE 資料庫 <--------(Instance_name(例項名))
上圖表示例項名instance_name、ORACLE_SID與資料庫及作業系統之間的關係,雖然這裡列出的兩個引數都是資料庫例項名,但instance_name引數是ORACLE資料庫的引數,此引數可以在引數檔案中查詢到,而ORACLE_SID引數則是作業系統環境變數。
作業系統環境變數ORACLE_SID用於和作業系統互動。也就是說,在作業系統中要想得到例項名,就必須使用ORACLE_SID。此引數與ORACLE_BASE、ORACLE_HOME等用法相同。在資料庫安裝之後,ORACLE_SID被用於定義資料庫引數檔案的名稱。如:
$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora。
定義方法:
export ORACLE_SID=orcl
如果在同一伺服器中建立了多個數據庫,則必然同時存在多個數據庫例項,這時可以重複上述定義過程,以選擇不同例項。
還可以用
[
來切換不同的ORACLE_SID來通過作業系統來啟動不同的例項(instance)
===================================================================================
資料庫名:db_name
資料庫例項名:instance_name
作業系統環境變數:oracle_sid
資料庫服務名:service_names
資料庫域名:db_domain
全域性資料庫名:global_db_name
在oracle7、oracle8資料庫中只有資料庫名以及例項名,在oracle8i、oracle9i中出現了資料庫域名、服務名以及全域性資料庫名。
資料庫名(db_name):用於區分一個數據的內部標識,是oracle的內部標記,是以二進位制方式儲存於資料庫控制檔案的引數。
資料庫名的作用:資料庫名是資料庫的內部管理標記,在安裝資料庫、建立新的的資料庫、建立資料庫控制檔案、修改資料庫結構、使用資料庫備份與恢復工具進行資料庫備份時都需要使用資料名。
資料庫安裝完成後,資料庫名稱儲存在引數檔案(pfile,spfile)中,同時以二進位制方式儲存在控制檔案中,兩者必須匹配。如果兩者不匹配,資料庫在啟動時提示ORA-01103號錯誤。
■ 對資料名稱的查詢:
1、查詢引數檔案 db_name的數值
2、select name from v$database
3、SQL>show parameter db_name
■ 修改資料庫名(修改複雜,建議不要修改)
1、修改引數檔案的資料庫名稱。
2.重建資料庫的控制檔案。
資料庫例項名(instance_name):用於和作業系統之間的聯絡。
作業系統與資料庫之間的互動則必須使用資料庫例項名。資料庫安裝完成後,資料庫例項名稱儲存在引數檔案中,同時儲存在登錄檔中。
資料庫名與例項名一般是一一對應的關係,即:有一個數據庫名就有一個例項名,而在oracle9i的並行伺服器結構中是一對多的關係,即:一個數據庫對應多個例項。
■ 對資料名稱的查詢:
1、查詢引數檔案 instance_name的數值
2、select instance_name from v$instance
3、SQL>show parameter instance_name
作業系統環境變數(oracle_sid):用於與資料庫例項名相對應。instance_name是oracle資料庫引數 -oracle_sid是操做系統環境變數,即在作業系統要得到例項名必須通過操做系統環境變數oracle_sid,oracle_sid與 instance_name必須相同。
是資料庫和作業系統的介面,由作業系統使用,是作業系統區分多個數據庫的依據。oracle_sid儲存在登錄檔中。如果資料庫的oracle_sid與實際的instance_name不同,在作業系統下執行的oracle所有命令將產生錯誤。
■ 對資料例項名的定義:
SQL>set oracle_sid=資料庫例項名
資料庫域名(db_domain):在資料庫名稱後增加域名構成,使得資料庫的取名在整個網路環境中惟一,主要用於oralce分散式環境中資料的遠端複製。資料庫域名儲存在引數檔案中。
以下情況要考慮使用資料庫域名:1、在oracle分散式環境下,兩個資料庫之間要通過資料鏈路進行資料的遠端傳輸。2、在同一網路環境下,兩個資料庫名相同。
■ 對資料庫域名的查詢:
1、查詢引數檔案 db_domain的數值
2、select value from v$parameter where name='db_domain'
3、SQL>show parameter db_domain
■ 修改資料庫域名:
1、關閉資料庫
2、修改資料庫引數檔案中的db_domain、service_names。
資料庫服務名service_names:資料庫名+資料庫域名,意義與全域性資料庫名相同。
資料庫服務名儲存在引數檔案中。
■ 對資料庫服務名的查詢:
1、查詢引數檔案 service_names的數值
2、select value from v$parameter where name='service_names'
3、SQL>show parameter service_names
全域性資料庫名global_db_name:資料庫名+資料庫域名。
資料庫例項名、服務名與網路連線
ORACLE伺服器版本 客戶端網路驅動
ORACLE7 (支援例項名) SQL_NET(支援例項名)
ORACLE8 (支援例項名) NET8 (支援例項名)
ORACLE8i
(支援例項名、服務名) NET8i (支援例項名、服務名)
ORACLE9i
(支援例項名、服務名) ORACLE NET SERVICE
(支援例項名、服務名)
對於網路連線字串使用例項名、服務名的問題,需要根據客戶端驅動的版本和oracle伺服器的版本共同確定,即兩者都支援例項名和服務名的使用服務名,否則使用例項名。
====================================================================================
1. SID是例項名,例項名指的是用於響應某個資料庫操作的資料庫管理系統的名稱。例項名是由初始化引數檔案的引數instance_name決定的。如果這個引數不被指定(即instance_name沒有被指定為任何值),那麼例項的名字由該使用者的環境變數ORACLE_SID(注意這裡是大寫)決定。在windows平臺下,則是登錄檔中oracle_sid值決定。
2. SERVICE_NAME指的是listener中的全域性資料庫名:這個名字是由listener.ora中GLOBAL_DBNAME引數決定的。這個名字代表的是客戶端連線到資料庫時,tnsnames.ora中SERVICE_NAME引數所對應的值。
3. 連線字串
配置tnsname.ora時,可以用SID,也可以用SERVICE_NAME. 注意這兩個值不一定相同,具體要看資料庫伺服器中的配置。
connect_str =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xxxx
)
)
connect_str =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
)
(CONNECT_DATA =
(SID = xxx)
(SERVER = DEDICATED)
)
)
Oracle例項名與ORACLE_SID的區分測試一
windows上的Oracle環境是依賴於服務而存在的。而Oracle環境的初始化是通過oracle.exe <oracle_sid>來完成的,至於例項和資料庫是否隨服務啟動要依賴登錄檔的設定。
我們可以通過手工來初始化任意的Oracle環境。
開啟命令視窗1,建立作業系統服務
C:\Documents and Settings\IBM>oracle julia
Hit any key to exit server:
在命令視窗2中,就可以使用該系統服務了
C:\Documents and Settings\IBM>set oracle_sid=julia
C:\Documents and Settings\IBM>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 3月 11 13:53:52 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已連線到空閒例程。
SQL> startup nomount;
ORA-01078: failure in processing system parameters
LRM-00109: N^7(4r?*2NJ}ND<~ 'D:\ORACLE\ORA92\DATABASE\INITJULIA.ORA'
SQL> startup nomount;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
alter database mount
*
ERROR 位於第 1 行:
ORA-01990: ??????'D:\oracle\ora92\DATABASE\PWDjulia.ORA'???
ORA-27041: ??????
OSD-04002: N^7(4r?*ND<~
O/S-Error: (OS 2) O5M3UR2;5=V86(5DND<~!#
SQL> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\IBM>orapwd
Usage: orapwd file=<fname> password=<password> entries=<users>
where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA and OPERs (opt),
There are no spaces around the equal-to (=) character.
C:\Documents and Settings\IBM>orapwd file=D:\oracle\ora92\DATABASE\PWDjulia.ORA password=oracle entries=5
C:\Documents and Settings\IBM>exit
SQL> alter database mount;
alter database mount
*
ERROR 位於第 1 行:
ORA-01100: ??????
SQL> alter session set nls_language=american;
Session altered.
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01100: database already mounted
SQL> alter database open;
Database altered.
SQL> select name from v$database;
NAME
---------
ORA
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
julia
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string ora
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string orasid
SQL> show parameter service_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string ora
SQL>
可見,ORACLE_SID的作用就是設定一個Oracle環境視窗,通過這個環境變數來標識和命名系統程序,此後Oracle的活動可以由此展開。
我們看一下這裡所出現的所有“xx名”
作業系統服務名:julia
ORACLE_SID:julia
db_name:ora
資料字典v$instance中的instance_name:julia
PFILE中的instance_name:orasid
ORACLE_SID用於標識程序,它所對應的作業系統服務名稱為OracleService<ORACLE_SID>;而INSTANCE_NAME用於標識例項,二者名稱可以不同。而在配置NET SERVICE時,使用的是service_names。
二者的區別大致如此,只是不知道為什麼資料字典v$instance中的例項名也是julia?
相關推薦
Oracle資料庫系統中例項名(即instance_name)和ORACLE_SID的區別
首先介紹幾個關於Oracle的基本概念:instance、SID和ORACLE_SID。 instance(Oracle官方給出的定義) Every running Oracle database is associated with an Oracle instance. When a database i
Spring Boot 初級入門教程(十七) —— 通過 Oracle 資料庫測試已整合 MyBatis(附原始碼)
在文章《Spring Boot 初級入門教程(十五) —— 整合 MyBatis》中,已經對 MyBatis 進行了整合,只是當時是連 MySQL 資料庫進行的測試。這一篇簡單通過 Oracle 資料庫進行測試,確保整合的 MyBatis 在連線 Oracle 資料庫時也是有效的。 一、新增
ORACLE資料庫全量備份指令碼(windows/linux)配置使用說明
ORACLE資料庫全量備份指令碼(windows/linux)配置使用說明 配置資訊 Oracle_All_backup.bat配置資訊如下 需要配置的有四個引數: BACKPATH:備份檔案存放根目錄 USERNAME:使用者名稱
Linux系統中執行.sh(Shell指令碼)檔案
其中,以絕對路徑執行方法: (1)./home/test/shell/hello.sh,可以這樣執行是因為當前登入使用者是root,當前路徑是在/下,. 代表當前路徑。 (2)/home/test/shell/hello
linux系統中交換區間(swap file)的解釋
Swap的調整對Linux伺服器,特別是Web伺服器的效能至關重要。通過調整Swap,有時可以越過系統性能瓶頸,節省系統升級費用。Swap空間的作用可簡單描述為:當系統的實體記憶體不夠用的時候,就需要將實體記憶體中的一部分空間釋放出來,以供當前執行的程式使用。這裡的s
ubuntu14.04系統中安裝tensorflow(gpu版)cuda-8.0 + cudann(5.0 or 6.0)
系統配置:ubuntu14.04 + GTX1060 + i7(7700K) 安裝前準備工作(離線安裝) 一共3個檔案放入U盤,在ubuntu實體機上讀取安裝。這些檔案全部放在/usr/local/WYLdownload目錄下 第一步(可直接跳到第二步):安裝nv
資料庫系統概論——第一章(基礎篇)
資料庫系統概論——第一章 緒論 最近複習一下資料庫,參考書籍《資料庫系統概論》,以下純屬是個人筆記:1、資料庫系統概述 1.1 資料、資料庫、資料庫管理系統、資料庫系統 1.1.1 資
c#中的delegate(委托)和event(事件)
sel 指針 添加 自動 關鍵字 only cnblogs 私有 part 委托: 托付其他人做這件事 ,包括 托付自己 ,即 一個方法 可以 調用 沒有關系的其他方法 , 也可以 將委托傳遞過去 ,回調自己的方法 ,且 可以自定義參數 ,非常方便 互相傳值, 適
例項分割(instance segmentation)和語義分割(semantic segmentation)的區別
本文記錄了例項分割和語義分割這兩個名詞在概念上的不同。更新於2018.12.21。 例項分割(instance segmentation):是在畫素級定位出目標,也就是說把描述目標的所有畫素都標註出來; 語義分割(semantic segmentation):是對一個場
hive中管理表(內部表)和外部表的區別是什麼,及分割槽表使用場景
⑴區別: ①Hive建立內部表時(預設建立內部表),會將資料移動到資料倉庫指向的路徑;建立外部表(需要加關鍵字external),僅記錄資料所在的路徑,不對資料的位置做任何改變; ⑵Hive刪除表時,內部表的元資料和資料會被一起刪除,而外部表只刪除元資料,不刪除資料;
Maven中的-D(Properties屬性)和-P(Profiles配置檔案)
-D代表(Properties屬性) 使用命令列設定屬性-D的正確方法是: mvn -DpropertyName=propertyValue clean package 如果propertyName不存在pom.xml,它將被設定。如果propertyName已經存在pom.xml,其值將被作為引數傳遞
Linux中軟連線(Symbolic Link)和硬連結(Hard Link)的區別(轉)
Linux連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連結。--硬連線硬連線指通過索引節點來進行連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Inde
windows的cmd視窗進入指定資料夾(即目錄)和cmd預設視窗大小設定
在日常開發中我們經常使用windows的cmd命令視窗,下面簡單介紹下如何進入指定目錄下 如進入d盤下的目錄”work“,方法一: 方法二:選中目錄”work“然後按住ctrl+shift右擊”在此處開啟命令視窗“。 個人更喜歡第二種方法,因為有時候目錄名太長又擔心不小心
windows下面 修改oracle資料庫例項名(SID)
SQL*Plus: Release 9.2.0.5.0 - Production on 星期日 11月 21 13:32:34 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Oracle 資料庫 系統常見使用者 以及 使用者的管理(查詢修改建立解鎖刪除)
系統常見使用者 使用者 說明 sys 超級使用者,主要用來維護系統資訊和管理例項,以SYSDBA或SYSOPER角色登入。密碼為在安裝時設定的管理口令,如一般設定為:orcl
查詢oracle資料庫表中是否存在系統關鍵字
今天在工程中遇到“ORA-01747: user.table.column, table.column 或列說明無效”的報錯情況,查了一下是由於資料庫列名起的不好引起的,名字用到了資料庫的關鍵字。 select * from v$reserved_words where keyword in( sel
oracle 資料庫中某個欄位逗號分隔,得到對應列中的個數(列轉行)實現方法
由於各種原因,資料的原則問題,導致某個欄位上出現多個數據(依據分隔符隔開),比如 name 欄位為 張三;李四;王五等等 需求:求一張表中name欄位中出現的個數; 想要得到的結果為: 對
oracle資料庫表中的欄位與系統關鍵字衝突 in jdbc
可以使用雙引號將發生衝突的欄位名稱引起來,還是報異常怎麼辦, 將這個欄位名稱大寫 最保險的方法就是平時寫sql語句時,養成大寫的習慣,這樣既能解決上述錯誤,還有可能解決不同資料庫之間的方言的差異 比如說,現在用的是mysql資料庫,有這麼一條sql語句: insert
windows服務器設置文件屬性設置去掉隱藏已知文件類型的擴展名(即文件後綴名可見)
windows服務 view ref def for ocs href bold com 摘要: 1、文件後綴名不可見,系統運維過程容易發生同名不同後綴的文件操作混淆的情況 2、windows系統默認是文件後綴名不可見 3、所以需要更改一下配置。 4、操作步驟如下圖: (1
分散式資料庫中CAP原理(CAP+BASE)
傳統的ACID 1)原子性(Atomicity): 事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功。 2)一致性(Consistency): 資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。 3)獨立性(Isolation): 指併發的事務之