首先說說,數(shù)據(jù)庫是做什么?數(shù)據(jù)庫是用來長久存儲數(shù)據(jù)的,而我們大家都知道內(nèi)存只能臨時存儲,磁盤等才能真正存儲數(shù)據(jù).那你說數(shù)據(jù)庫會放那里呢?肯定是存放在磁盤上,其實數(shù)據(jù)庫就是磁盤上的一個文件.
從上面我們得出結(jié)論:數(shù)據(jù)庫==磁盤上的文件.
既然數(shù)據(jù)庫可以看成磁盤上文件,我們怎么使用數(shù)據(jù)庫呢?
如果說我們可以直接使用數(shù)據(jù)庫,那就等價與直接使用磁盤上的文件.我們知道這樣的一個常識:必須把磁盤上的文件讀入內(nèi)存才能使用.這就與我們以前所知道的一個常識相違背了.
那正確的流程是不是應該這樣呢?把磁盤上文件先讀入內(nèi)存,然后再使用呢.
對了,這個才是使用數(shù)據(jù)庫的正確流程.
數(shù)據(jù)庫如何讀入內(nèi)存呢?
這個時候,就是我們要介紹的instance(實例)了.實例就是內(nèi)存結(jié)構(gòu)和一組后臺進程.
實際上,正常的數(shù)據(jù)庫讀入內(nèi)存的過程是,由實例中一組后臺進程從磁盤上將數(shù)據(jù)文件讀入到實例的內(nèi)存中,然后經(jīng)過在內(nèi)存中對數(shù)據(jù)的操作再從實例的內(nèi)存中經(jīng)過一組后臺進程寫到數(shù)據(jù)庫中.
那實例相對與數(shù)據(jù)庫而言,應該就是數(shù)據(jù)庫的運行環(huán)境(隨不準確但也很貼切).
我們知道了instance和database的區(qū)別后.下面我們做一個Oracle的例子,一塊深刻的理解下這兩個概念.
在Oracle中打開一個數(shù)據(jù)庫,這個時候我們要使用sqlplus了.sqlplus是oracle的一個連接工具,相當于sql server中的查詢分析器.
使用
用戶名:system
密碼:manger(自己在裝Oracle時設定的)
點登錄進入sqlplus.
登錄sqlplus以后,system這個用戶是沒有權(quán)限啟動實例的,所以我們這時要更換登錄用戶.
使用sys用戶連接
的命令如下 :
conn sys as dba
密碼:
輸入完后.可以再輸入如下命令查看當前用戶:
show user;
一:下面就可以打開數(shù)據(jù)庫了
1.啟動實例(instance)
startup nomount
2.將數(shù)據(jù)庫裝載到實例(instance)中
alter database mount
3.打開數(shù)據(jù)庫
alter database open
二:關閉數(shù)據(jù)庫:
1.shutdown immediate(包括三個步驟如下所述:)
首先關閉數(shù)據(jù)庫
然后從實例上卸載數(shù)據(jù)庫
最后關閉實例
通過Oracle打開以及關閉一個數(shù)據(jù)庫的例子我們可以清楚的區(qū)分.數(shù)據(jù)庫(database)和實例(instance)的概念.