instance

在java中instance的用法【instance】是instanceof還是instance?
instanceof是Java的一個二元操作符,和==,>,<是同一類東東 。由于它是由字母組成的,所以也是Java的保留關鍵字 。它的作用是測試它左邊的對象是否是它右邊的類的實例,返回boolean類型的數據 。舉個例子:
String
s
=
"I
AM
an
Object!";
boolean
isObject
=
s
instanceof
Object;
我們聲明了一個String對象引用,指向一個String對象,然后用instancof來測試它所指向的對象是否是Object類的一個實例,顯然 , 這是真的,所以返回true,也就是isObject的值為True 。
instanceof有一些用處 。比如我們寫了一個處理賬單的系統 , 其中有這樣三個類:
public
class
Bill
{//省略細節}
public
class
PhoneBill
extends
Bill
{//省略細節}
public
class
GasBill
extends
Bill
{//省略細節}
在處理程序里有一個方法,接受一個Bill類型的對象,計算金額 。假設兩種賬單計算方法不同,而傳入的Bill對象可能是兩種中的任何一種,所以要用instanceof來判斷:
public
double
calculate(Bill
bill)
{
if
(bill
instanceof
PhoneBill)
{
//計算電話賬單
}
if
(bill
instanceof
GasBill)
{
//計算燃氣賬單
}
...
}
這樣就可以用一個方法處理兩種子類 。
然而 , 這種做法通常被認為是沒有好好利用面向對象中的多態性 。其實上面的功能要求用方法重載完全可以實現,這是面向對象變成應有的做法,避免回到結構化編程模式 。只要提供兩個名字和返回值都相同 , 接受參數類型不同的方法就可以了:
public
double
calculate(PhoneBill
bill)
{
//計算電話賬單
}
public
double
calculate(GasBill
bill)
{
//計算燃氣賬單
}
所以 , 使用instanceof在絕大多數情況下并不是推薦的做法 , 應當好好利用多態 。
instance的話,不知道
,一般我們定義獲取實例的時候
寫個
getInstance的方法//

java中Instance的作用什么?這是單例模式,一般用于比較大,復雜的對象,只初始化一次,應該還有一個private的構造函數,使得不能用new來實例化對象,只能調用getInstance方法來得到對象 , 而getInstance保證了每次調用都返回相同的對象

Java中什么是instance,希望有實例說明 。Calendar calendar = Calendar.getInstance();這就是個instance日歷

java中,什么是instance method 中文是什么實例方法,要創建對象(即 先要new ) , 才能調用 。
對應的是 static method 靜態方法,不需要創建對象就可以調用 , 直接 類名.方法名() 調用 。

java 中 , 什么是實例變量(Instance Variables)實例變量就是實例化該類對象才調用的非靜態變量!
class A{
int i;//實例變量
public void mack() {
int m =1;//局部變量
}
}
單你new 一個A的對象的時候!對象就會在內存中為i分配一個內存!你就可以調用該變量!單你調用mack方法時候才會為m分配內存進行調用!

java關于instance的定義

instance

文章插圖

java中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例 。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例 。用法: result = object instanceof class 參數: Result:布爾類型 。Object:必選項 。任意對象表達式 。Class:必選項 。任意已定義的對象類 。說明: 如果 object 是 class 的一個實例,則 instanceof 運算符返回 true 。如果 object 不是指定類的一個實例,或者 object 是 null,則返回 false 。但是instanceof在Java的編譯狀態和運行狀態是有區別的:在編譯狀態中,class可以是object對象的父類,自身類,子類 。在這三種情況下Java編譯時不會報錯 。在運行轉態中 , class可以是object對象的父類,自身類 , 不能是子類 。在前兩種情況下result的結果為true,最后一種為false 。但是class為子類時編譯不會報錯 。運行結果為false 。擴展資料例子:接口Personpublic interface Person {public void eat();}實現類Peoplepublic class People implements Person {private int a=0;@Overridepublic void eat() {System.out.println("======"+a);}}子類xiaoming:public class xiaoming extends People {private String name;@Overridepublic void eat() {System.out.println("+++++++++");}}主函數public static void main(String[] args) {People p=new People();xiaoming x=new xiaoming();System.out.println(p instanceof Person);System.out.println(p instanceof xiaoming); -----2System.out.println(x instanceof Person);System.out.println(x instanceof People);}注意:上面2處的代碼在編譯時不會報錯 。運行結果:truefalsetruetrue參考資料:百度百科:Java百度百科:instance
Java中什么是instance,希望有實例說明 。實例變量就是實例化該類對象才調用的非靜態變量!
class
a{
int
i;//實例變量
public
void
mack()
{
int
m
=1;//局部變量
}
}
單你new
一個a的對象的時候!對象就會在內存中為i分配一個內存!你就可以調用該變量!單你調用mack方法時候才會為m分配內存進行調用!

java中instanceof的用法類型不兼容的情況下不能直接使用instanceof來進行判斷 , 如果這兩個類型是基本數據類型可以使用a.getClass().equals(B.class)(其中a是基本數據類型A的一個變量,相當于你這里的s,B是你想要比較的那個數據類型,這里相當于Boolean);如果這兩個類型是你自己創建的普通類 , 則可以讓他倆繼承一個共同的類,或者實現同一個接口 。你這個屬于第一種情況 , 程序如下:public class JudgeType{public static void main(String[] args){String s="true";Boolean b=true;System.out.println(s.getClass().equals(Boolean.class));//輸出為false}}再舉一個第二種的情況,程序如下:public class Test{public static void main(String[] args){ Person p=new Teacher(); //使用多態boolean b=p instanceof Student; System.out.println(b);//輸出為false}}class Person{}class Student extends Person{ }class Teacher extends Person{ }

java中getInstance()的用法getinstance這個方法在單例模式用的甚多 , 為了避免對內存造成浪費,直到需要實例化該類的時候才將其實例化 , 所以用getInstance來獲取該對象 , 至于其他時候 , 也就是為了簡便而已 , 為了不讓程序在實例化對象的時候,不用每次都用new關鍵字,索性提供一個instance方法,讓程序員書寫簡潔方便!比如下例:private static Control ControlAdapter = null;public static Control getInstance(){if(ControlAdapter == null)ControlAdapter = new ControlAdapter();return ControlAdapter;}

instance20 是什么意思?instance 10 vlan 10-20 (實例10 包括10、20 兩個vlan )

instance 20 vlan 30-40(實例20 包括30、40 兩個vlan )

exit (退出并保存)

然后按題目要求設置優先級

spanning-tree mst 20(上面設置的實例名稱) priority 4096

instance是什么意思instance等于example
含義:例子,范例,實例

for instance 例如

云計算中的instance是什么意思?您好,云計算中的instance通常都是指:虛擬機

instance+name是什么意思instance name
實例名;實例名稱;實體名稱
例句篩選
1.
However, the instance name must be unique across the system.
但是,在整個系統中實例名必須是惟一的 。


2.
The instance name cannot contain quotation marks, because quotation marks arenot permitted in the name of a Windows service.
實例名稱不能包含引號 , 因為Windows服務名稱不允許包含引號 。

for instance 和 for example什么區別相同點:他們后面可以接句子也可以放名詞,但是通常放句子比較常見,后面放名詞的通常也只放一個,這兩個短語都可以放在句子的前面,句子的中間,或者句子的后面,在引出的例子前面可以用逗號隔開 。
不同點:for example 和 for instance的區別很小 , 即使外國人也很難說清楚區別,通常看個人的喜好,但是在讀書和日常交流的時候 , 會發現 for instance更加書面話和學究話,在嚴謹的學術上用的更多些 。

for instance 和 for example什么區別
instance

文章插圖

1、側重點不同For example是側重通過示例(更傾向于項目列表),讓受眾易于理解,For instance側重給出一個佐證的案例(一個事件的經過) 。2、使用對象不同for example是列舉整體中的一個為例 。如:A few simple precautions can be taken, for example ensuring that desks are the right height.可以采取一些簡單的預防措施,比如確保桌子的高度合適 。for instance 主要用于列舉表示事例情況的例子 , 后接具體的事物 。如:Ethiopia, for instance uses the equivalent of just twenty kilos of oil per head a year. 比如說,埃塞俄比亞每年的人均消費支出僅相當于20公斤的石油 。3、程度不同for example使用更加日常和廣泛,而for instance則更加學術化和正式 。
for instance 和 for example什么區別for instance 和 for example區別如下:
1.for example是列舉整體之中的一個為例,在句子中多用作插入語,用逗號與主句隔開,for example之后也有逗號 。for example作插入語,位置可以在句首、句中或句末 。如:

For example , air is invisible and of no smell.
例如,空氣是無色無味的物質 。

2.for instance主要用于列舉表示事例情況的例子 。有時,相當于like/such as,后接具體的事物 。如:

There are jobs more dangerous than truck driving,for instance,training tigers,fire fighting;
還有比開卡車更危險的工作 , 例如訓虎、滅火 。
You Can choose any one of them.for instance,this one on the left.
你可以選擇其中任何一個,例如靠左邊的這個 。

相同點:他們后面可以接句子也可以放名詞 。但是通常放句子比較常見 。后面放名詞的通常也只放一個 。這兩個短語都可以放在句子的前面,句子的中間,或者句子的后面 。在引出的例子前面可以用逗號隔開 。
不同點:for example 和 for instance的區別很小 。即使外國人也很難說清楚區別,通常看個人的喜好 。但是在讀書和日常交流的時候,會發現 for instance更加書面話和學究話 。在嚴謹的學術上用的更多些 。

for instance 和 for example什么區別相同點:他們后面可以接句子也可以放名詞.但是通常放句子比較常見.后面放名詞的通常也只放一個.這兩個短語都可以放在句子的前面,句子的中間,或者句子的后面.在引出的例子前面可以用逗號隔開.
不同點:for example 和 for instance的區別很小.即使外國人也很難說清楚區別,通常看個人的喜好.但是在讀書和日常交流的時候,會發現 for instance更加書面話和學究話.在嚴謹的學術上用的更多些.

求PHP大神,如圖調用getInstance()方法的時候,他是以怎樣的形式以$class_name,為鍵值 , $class_name 是傳入的 字符串啊,如代碼中的 ‘Mysqldb’和 ‘student’

php問題 。$class = $class::instance($handler['driver']); 這里的instance是什么意思 。靜態調用instance方法獲取該類的實例

$_SERVER['REQUEST_METHOD'] == 'POST' 在php中是什么意思啊$_SERVER['REQUEST_METHOD'] == 'POST'

是判斷提交的數據是否是POST方式傳來的

菜鳥一只 , 求PHP批量上傳圖片的整個代碼 。搜索swfupload

菜鳥問題,PHP向數據庫寫入數據,顯示成功,但數據庫還是空的,怎么回事?把這幾個變量分別echo一下,看看有沒有接收值$_POST[user],$_POST[title],$_POST[txt]');把sql也echo一下 。
$sql="INSERT INTO test (user,title,txt) VALUES ('$_POST[user]','$_POST[title]','$_POST[txt]');";
mysql_query($sql);
echo "Success";
改成
$sql="INSERT INTO test (user,title,txt) VALUES ('$_POST[user]','$_POST[title]','$_POST[txt]');";
$query = mysql_query($sql);
if($query>0){
echo "Success";}
else{
echo "false";}

python中的instance是什么對象類型在python2中,如果定義類時繼承了object,那么實例化后對象的type就是該類
>>> class Apple(object): pass
...
>>> red_apple = Apple()
>>> type(red_apple)

>>>

但如果定義類的時候沒有繼承object , 實例化后對象的type將會是 instance
>>> class Apple(): pass
...
>>> green_apple = Apple()
>>> type(Apple)

>>>

去看urllib2的源代碼,你會發現build_opener返回的對象是從這個東西繼承而來的:
class BaseHandler:
def add_parent(self, parent):
self.parent = parent
def close(self):
self.parent = None

它沒有繼承object,所以,它的type是instance

繼承object的類的寫法叫做 New-style classes , 是在 python 2.2 中引入的,之前的寫法被稱作 Old clasess或 Classic classes

python 中instance是什么類型在Python中只需要使用內置的函數isinstance,使用起來非常簡單 , 比如下面的例子:


復制代碼代碼如下:

class objA:
pass

A = objA()
B = 'a','v'
C = 'a string'

print isinstance(A, objA)
print isinstance(B, tuple)
print isinstance(C, basestring)

輸出結果:
True
True
True

python中的instance是什么對象類型在python2中,如果定義類時繼承了object , 那么實例化后對象的type就是該類
>>>
class
Apple(object):
pass
...
>>>
red_apple
=
Apple()
>>>
type(red_apple)
<class
'__main__.Apple'>
>>>
但如果定義類的時候沒有繼承object,實例化后對象的type將會是
instance
>>>
class
Apple():
pass
...
>>>
green_apple
=
Apple()
>>>
type(Apple)
<type
'instance'>
>>>
去看urllib2的源代碼 , 你會發現build_opener返回的對象是從這個東西繼承而來的:
class
BaseHandler:
def
add_parent(self,
parent):
self.parent
=
parent
def
close(self):
self.parent
=
None
它沒有繼承object,所以,它的type是instance
繼承object的類的寫法叫做
New-style
classes,是在
python
2.2
中引入的,之前的寫法被稱作
Old
clasess或
Classic
classes

python 是什么類型的語言
instance

文章插圖

Python是一種面向對象的解釋型計算機程序設計語言 。Python是純粹的自由軟件 ,  源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進 。Python具有豐富和強大的庫 。它常被昵稱為膠水語言 , 能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯結在一起 。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調用的擴展類庫 。需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現 。Python已經成為最受歡迎的程序設計語言之一 。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言 。自從2004年以后,python的使用率呈線性增長。
如何查看db2 instance主要是區分一下數據庫database和實例instance
數據庫database是一個文件集合(包括數據文件、臨時文件、重做日志文件和控制文件)
實例Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊 。
如果只有數據庫 , 沒有instance只能代表數據存儲在文件中,無法直接進行操作,如果沒有數據庫,只有instance雖然可以急性操作,但是也不知道操作那些數據,操作后的數據也無法保存 。

windows系統怎樣配置db2instance環境變量本文詳細地介紹了如何在客戶端配置DB2forWindows的ODBC數據源,然后又以“萬能數據庫查詢分析器”的中文版本《DB查詢分析器》為工具,通過配置的ODBC數據源來訪問遠程基于Windows2000Server操作系統的DB2數據庫服務器 。本文同樣適應用在客戶端配置遠程DB2forOtherOS,如Aix、Linux、或者Solaris等等 。1.獲得DB2端口號首先要獲得遠程基于Winows2000Server操作系統的DB2的端口號 。在遠程Winows主機上運行DB2命令行處理器,然后接著輸入命令“DB2getdbmcfg|find"SVCENAME"”,執行后找到“SVCENAME”來獲得DB2的TCP/IP服務名db2c_DB2 。點擊開始菜單,在“運行”處輸入“drivers”,在打開資源管理器中找到子目錄etc(整體目錄Winows2000中為c:\winnt\system32\drivers\etc、WinXP或者Win7中為c:\windows\system32\drivers\etc)就可以找到文件services并打開它在文件services中找到TCP/IP服務名db2c_DB2對應的端口號50000 。2客戶端上配置ODBC數據源在客戶端打開DB2的配置助手,然后按照以下步驟來建立ODBC數據源 。選擇遠程DB2數據庫主機的操作系統,如Windows,Aix、Linux、或者Solaris等 。最后,點擊“完成“按鈕結束整個配置工作 。3DB查詢分析器通過ODBC訪問DB2數據庫中國本土程序員馬根峰推出的個人作品----萬能數據庫查詢分析器,中文版本《DB查詢分析器》、英文版本《DBQueryAnalyzer》 。它具有強大的功能、友好的操作界面、良好的操作性、跨越各種數據庫平臺乃至于EXCEL和文本文件 。你可以通過它查詢ODBC數據源(包括世面上所有的數據庫、TXT/CSV文件、EXCEL文件)的數據 。你可以同時執行多條DML語句乃至存貯過程,結果會以你設定的表格、文本框、文件來返回 。從數據庫導出千萬條數據時 , 效率與DBMS沒有什么區別 。在《程序員》2007第2期的“新產品&工具點評”部分 , 編輯“特別推薦”了“萬能數據庫查詢分析器”發布 。下載安裝《DB查詢分析器》并運行它 , 輸入建立的ODBC數據源名稱“MGF_DB1”、用戶名和口令 。備注:如果您的計算機上安裝有“萬能數據庫查詢分析器”以前的版本 , 請先將舊版本Uninstall,然后再安裝新版本,

db2里attch to instance_name與set instance=instance_name的區別?set db2instance命令的作用是指定默認實例,即打開windows cmd或shell的時候默認操作的實例

db2安裝不成功提示: DB29501E DB2 檢測到不一致環境 。請檢查:“DB2INSTANCE: -2029059916”是什么原因這個是官方信息
當啟動控制中心時,報錯誤DB29501E:

DB29501E DB2 檢測到不一致的環境 。請檢查以下錯誤:""
說明:
檢測到操作環境中的錯誤 。
用戶響應:
此錯誤可能是由于不一致的 DB2 或操作系統環境引起的 。嘗試更正錯誤消息中標識的問題,并重新發出該命令 。
解答
DB29501E DB2 檢測到不一致的環境
這個錯誤發生的原因是環境變量DB2INSTANCE沒有設置為一個有效值 。在WINDOWS環境中,啟動控制中心或JDBC Applet服務器服務時,需要DB2INSTANCE變量 。
要避免DB29501E錯誤,確保環境變量DB2INSTANCE被設置為一個有效值 。可以通過以下途徑來設置此變量:
打開 控制面板->系統->高級->環境變量 窗口 , 在系統環境變量找到DB2INSTANCE,編輯并設定正確值也可以通過執行命令來設置,命令是
set db2instance=(實例名)
如:
set db2instance=DB2
請注意命令行設置只影響當前CMD或CLP窗口 。命令db2 get instantce
可以得到當前命令窗口的 DB2INSTANCE 值
完全修改系統級的DB2INSTANCE環境變量的值必須使用前面所述的第一個方法 。如果為了JDBC APPLET服務能成功啟動,則需要重新啟動機器 。

db2常用命令
instance

文章插圖

操作數據庫命令1、 啟動數據庫實例#db2start2、 停止數據庫實例#db2stop如果你不能停止數據庫由于激活的連接,在運行db2stop前執行db2 force application all就可以了 /db2stop force3、 創建數據庫#db2 create db [dbname]4、 連接到數據庫#db2 connect to [dbname] user[username] using [password]5、 斷開數據庫連接#db2 connect reset操作數據表命令1、 列出所有用戶表#db2 list tables2、列出所有系統表 #db2 list tables for system3、列出所有表#db2 list tables for all4、 列出系統表#db2 list tables for system5、列出用戶表#db2 list tables for user6、 列出特定用戶表#db2 list tables for schema[user] 參考資料來源:百度百科—DB2
Oracle中的Instance實例和數據庫的區別oracle數據庫:
數據庫指與Oracle相關的一些文件的集合(包括數據文件, 控制文件, redo等)
oracle的instance:
實例指與Oracle相關的一些進程(SMON, PMON, DBWR等)和共享內存(SGA)的集合.


一個數據庫可以同時被多個實例掛載和打開.
一個實例可以掛載和打開任何數據庫, 但是一次只能打開一個數據庫.
Difference between DB_NAME and Instance_Name

P11_QUESTION_ID:533422350794)

A database is a set of files (data, redo, ctl and so on)
An instance is a set of processes (SMON, PMON, DBWR, etc) and a shared memory segment
(SGA).


A database may be mounted and opened by many INSTANCES (Parallel Server) concurrently.

An instance may mount and open ANY database -- however it may only open a single database
at any time.

Oracle中的Instance實例和數據庫的區別在Oracle10G中 , 數據的存儲有好幾種 。第一種是文件形式,也就是在你的磁盤中創建一批文件,然后在這些文件中存儲信息 。第二種就是磁盤陣列形式,這個是什么意思呢,這個就是說明數據庫不是存放為某個文件,而是把一個或者多個磁盤格式化成Oracle的一種格式了,等于整個磁盤就是存放Oracle數據庫的,不能作為別的用途 。

Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊 。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進程還有SGA等一系列的內存快 , 但是這個時候并沒有把數據庫文件讀取進來 。所以只是一個實例,在后來,你可以通過命令手動或者自動地把數據庫文件加載進我們的數據庫Instance中 , 這個時候的數據庫才可以讓我們真正的開始訪問操作 。

Oracle中的Instance實例和數據庫的區別Oracle中Instance實例和數據庫的區別是:1、數據庫實例指數據庫服務器的內存及相關處理程序,它是Oracle的心臟 。與Oracle性能關系最大的是SGA(System Global Area,即系統全局區活共享內存區),SGA包含三個部分:1、數據緩沖區,可避免重復讀取常用的數據;2、日志緩沖區,提升了數據增刪改的速度,減少磁盤的讀寫而加快速度;3、共享池,使相同的SQL語句不再編譯,提升了SQL的執行速度 。oracle數據庫實例的另一部分就是一些后臺進程了 , 他主要包括:1.系統監控進程2.進程監控3.數據庫寫進程4.日志寫進程5.檢驗點進程6.其他進程這些后臺進程合起來完成數據庫管理任務在訪問數據庫的時候 。器后臺先啟動實例 。啟動實例前要先分配內存區 。然后在啟動后臺進程 。數據庫啟動過程中必須啟動上面的前五個進程 。否則實例無法創建 。注意:在啟動oracle數據庫的時候 。因為有些進程是在開機啟動項中自動啟動的 。所以占用了很大一部分內存 。如果您電腦上還有一些其他占用內存比較大的程序 。在啟動oracle數據庫的時候有可能會因內存不足而啟動失敗 。2、在Oracle中,數據的存儲有好幾種 。第一種是文件形式,也就是在你的磁盤中創建一批文件,數據控制文件,聯機重做日志文件等構成,外加臨時文件,是靜態存儲的 。oracle體系結構:
Oracle中的Instance實例和數據庫的區別Oracle中Instance實例和數據庫的區別



什么是數據庫,其實很簡單,數據庫就是存儲數據的一種媒介 。比如常用的文件就是一種,在Oracle10G
中,數據的存儲有好幾種 。第一種是文件形式 , 也就是在你的磁盤中創建一批文件,然后在這些文件中存儲信息 。第二種就是磁盤陣列形式,這個是什么意思呢 , 這
個就是說明數據庫不是存放為某個文件,而是把一個或者多個磁盤格式化成Oracle的一種格式了,等于整個磁盤就是存放Oracle數據庫的,不能作為別
的用途 。

www.2cto.com

這樣的優點是存儲性能高,因為不再借助別的文件格式了,而是把整個磁盤都成為Oracle最適應的文件系統格式 。當然還可能有別的形式,比如網絡什么的 。不過我們最常用的還是文件格式的,在文件格式中,數據庫指的就是那些數據文件,控制文件以及REDO文件等等一系列文件 。



而什么是Instance呢,Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊 。在Oracle中,我們
可以新建一個Oracle的Instance,這個時候雖然有了進程還有SGA等一系列的內存快,但是這個時候并沒有把數據庫文件讀取進來 。所以只是一個
實例,在后來,你可以通過命令手動或者自動地把數據庫文件加載進我們的數據庫Instance中,這個時候的數據庫才可以讓我們真正的開始訪問操作 。

www.2cto.com

所以說,數據庫的應用如果想實現,數據庫和數據庫Instance是缺一不可的,如果只有數據庫的那些文件,那么 , 只能代表數據在這個文件
中,但是我們無法直接進行操作 。而如果只有數據庫Instance,那么我們雖然可以急性操作,但是也不知道操作哪些數據 , 操作生成的數據也無法保存等
等 。所以,當一個Oracle Instance真正Load了一個Oracle Database了以后,數據庫才可以被我們使用 。



在這里要注意一點的是 , Oracle的實例在啟動以后,只能load一次數據庫,如果想把數據庫與Instance斷開,然后再重新掛在一
個數據庫Instance,那么就需要你首先把數據庫Instance進程結束 , 然后重新建立這個instance的一個進程,再load另外一個數據
庫 。否則肯定要拋除ORA-16169錯誤,說數據庫已經被打開 。因為一個數據庫Instance在其生存期中最多只能load和打開一個
instance 。



ORACLE實例 = 進程 + 進程所使用的內存(SGA)

實例是一個臨時性的東西,你也可以認為它代表了數據庫某一時刻的狀態!

數據庫 = 重做文件 + 控制文件 + 數據文件 + 臨時文件

數據庫是永久的,是一個文件的集合 。

ORACLE實例和數據庫之間的關系

1.

臨時性和永久性

2.

實例可以在沒有數據文件的情況下單獨啟動 startup nomount , 通常沒什么意義

3.

一個實例在其生存期內只能裝載(alter database mount)和打開(alter database open)一個數據庫

4.

一個數據庫可被許多實例同時裝載和打開(即RAC),RAC環境中實例的作用能夠得到充分的體現!

下面對實例和數據庫做詳細的詮釋:

在Oracle領域中有兩個詞很容易混淆,這就是“實例”(instance)和“數據庫”(database) 。作為Oracle術語,這兩個詞的定義如下:

q

數據庫(database):物理操作系統文件或磁盤(disk)的集合 。使用Oracle 10g的自動存儲管理(Automatic Storage Management , ASM)或RAW分區時,數據庫可能不作為操作系統中單獨的文件,但定義仍然不變 。

q

實例(instance):一組Oracle后臺進程/線程以及一個共享內存區,這些內存由同一個計算機上運行的線程/進程所共享 。這里可以維
護易失的、非持久性內容(有些可以刷新輸出到磁盤) 。就算沒有磁盤存儲,數據庫實例也能存在 。也許實例不能算是世界上最有用的事物,不過你完全可以把它想
成是最有用的事物,這有助于對實例和數據庫劃清界線 。



這兩個詞有時可互換使用,不過二者的概念完全不同 。實例和數據庫之間的關系是:數據庫可以由多個實例裝載和打開,而實例可以在任何時間點裝載和打開一個數據庫 。實際上,準確地講,實例在其整個生存期中最多能裝載和打開一個數據庫!稍后就會介紹這樣的一個例子 。



是不是更糊涂了?我們還會做進一步的解釋,應該能幫助你搞清楚這些概念 。實例就是一組操作系統進程(或者是一個多線程的進程)以及一些內存 。這
些進程可以操作數據庫;而數據庫只是一個文件集合(包括數據文件、臨時文件、重做日志文件和控制文件) 。在任何時刻,一個實例只能有一組相關的文件(與一
個數據庫關聯) 。大多數情況下,反過來也成立:一個數據庫上只有一個實例對其進行操作 。不過 , Oracle的真正應用集群(Real
Application
Clusters,RAC)是一個例外,這是Oracle提供的一個選項,允許在集群環境中的多臺計算機上操作,這樣就可以有多臺實例同時裝載并打開一個
數據庫(位于一組共享物理磁盤上) 。由此,我們可以同時從多臺不同的計算機訪問這個數據庫 。Oracle
RAC能支持高度可用的系統,可用于構建可擴縮性極好的解決方案 。

ORACLE_SID、INSTANCE_NAME和服務名的區別數據庫名(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@Datacent]$ . oraenv

來切換不同的ORACLE_SID來通過操作系統來啟動不同的實例(instance)

java中,什么是instance method 中文是什么instance是實例的意思,應該是實例方法 , 與之對應的是類方法(靜態方法,有static關鍵字修飾的).實例方法是必須由對象才能調用的方法,如:
public void test1(){}
類方法(靜態方法)是可以直接用類名來調用的方法 , 如:
public static void test2(){}