資料庫使用實例
㈠ 舉一個應用領域應用資料庫的例子,以及是怎樣用的,可以用來干什麼,詳細一點
通俗點說資料庫(database)就相當與一個倉庫,用來存儲數據的.比如說一個學校有成千上萬個學生,每個學生都有自己的個人信息,如果用紙一個個記下來那這個工程的浩大是可想而知的,所以就可以把數據存儲在資料庫中,這樣也沒有紙張文件形式的麻煩了.通常我們使用的資料庫有:sql
,oracle,access
,vf自帶的資料庫等好多種資料庫.lz想學啊,很好學的,偶就是計算機的.
㈡ 什麼是資料庫的實例instance
Oracle資料庫,實際上應該是說,我們使用的是Oracle服務server。
Oracle服務server包括有兩個部分:
一個部分是Oracle資料庫database
一個部分是資料庫實例instance。
Oracle資料庫database,包括有數據文件、控制文件、重做日誌文件,都是一些物理上的文件。
資料庫實例instance,包括有資料庫後台進程(PMON、SMON、DBWR、LGWR、CKPT等)和內存區域SGA(包括shared pool、db buffer cache、redo log buffer等)。實例是一系列復雜的內存結構和操作系統進程
嚴格的說:一個Oracle服務,只包括一個Oracle實例和一個資料庫(不考慮雙機並行等這樣的情況)。但是一個實例只能對應一個資料庫,一個資料庫有可能對應多個實例。除非使用並行O r a c l e伺服器選項,否則每個O r a c l e資料庫都有一個實例與之相關,一個資料庫被唯一的一個實例裝載。
資料庫與實例之間是1對1/n的關系,在非並行的資料庫系統中每個Oracle資料庫與一個實例相對應;在並行的資料庫系統中,一個資料庫會對應多個實例,同一時間用戶只與一個實例相聯系,當某一個實例出現故障時,其他實例自動服務,保證資料庫正常運行。在任何情況下,每個實例都只可以對應一個資料庫。
在實際的開發應用中,關於Oracle資料庫,經常聽見有人說建立一個資料庫,建立一個Instance,啟動一個Instance之類的話。 其實問他們什麼是資料庫,什麼是Instance,很可能他們給的答案就是資料庫就是Instance,Instance就是資料庫啊,沒有什麼區別。在這里,只能說雖然他們Oracle用了可能有了一定的經驗,不過基礎的概念還是不太清楚。
什麼是資料庫,其實很簡單,資料庫就是存儲數據的一種媒介。比如常用的文件就是一種,在Oracle10G中,數據的存儲有好幾種。第一種是文件形式,也就是在你的磁碟中創建一批文件,然後在這些文件中存儲信息。第二種就是磁碟陣列形式,這個是什麼意思呢,這個就是說明資料庫不是存放為某個文件,而是把一個或者多個磁碟格式化成Oracle的一種格式了,等於整個磁碟就是存放Oracle資料庫的,不能作為別的用途。這樣的優點是存儲性能高,因為不再藉助別的文件格式了,而是把整個磁碟都成為Oracle最適應的文件系統格式。當然還可能有別的形式,比如網路什麼的。不過我們最常用的還是文件格式的,在文件格式中,資料庫指的就是那些數據文件,控制文件以及REDO文件等等一系列文件。
而什麼是Instance呢,Instance其實就是指的操作系統中一系列的進程以及為這些進程所分配的內存塊。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進程還有SGA等一系列的內存快,但是這個時候並沒有把資料庫文件讀取進來。所以只是一個實例,在後來,你可以通過命令手動或者自動地把資料庫文件載入進我們的資料庫Instance中,這個時候的資料庫才可以讓我們真正的開始訪問操作。
所以說,資料庫的應用如果想實現,資料庫和資料庫Instance是缺一不可的,如果只有資料庫的那些文件,那麼,只能代表數據在這個文件中,但是我們無法直接進行操作。而如果只有資料庫Instance,那麼我們雖然可以急性操作,但是也不知道操作哪些數據,操作生成的數據也無法保存等等。所以,當一個Oracle Instance真正Load了一個Oracle Database了以後,資料庫才可以被我們使用。
在這里要注意一點的是,Oracle的實例在啟動以後,只能load一次資料庫,如果想把資料庫與Instance斷開,然後再重新掛在一個資料庫Instance,那麼就需要你首先把資料庫Instance進程結束,然後重新建立這個instance的一個進程,再load另外一個資料庫。否則肯定要拋除ORA-16169錯誤,說資料庫已經被打開。因為一個資料庫Instance在其生存期中最多隻能load和打開一個instance。
㈢ 如何創建資料庫實例
按照DBCA給出的提示,很容易創建一個新資料庫實例。
在創建資料庫的時候,DBCA還提供了兩個選項,讓你可以根據剛剛設置好的參數生成一個資料庫實例模板和一份資料庫實例創建腳本。這兩個東西是非常好,非常有用的東西,資料庫模板由Oracle自己管理維護,已經創建好的資料庫實例模板可以在DBCA圖形程序新建資料庫實例時作為模板來使用,另外在DBCA使用responseFile文件或者命令行參數創建資料庫時也需要用到(見後面介紹);資料庫創建腳本是一組腳本,包括shell腳本和sql腳本,這些腳本共同實現一個功能,那就是按照你之前在DBCA中設置好的那樣創建一個資料庫實例(後面也會有介紹),你需要做的只是將這些腳本在你的代碼中調用起來。當然,你也可以選擇只生成資料庫模板或者資料庫腳本,而不用去創建一個真的資料庫(這通常很費時間)。
DBCA是一個非常強大的工具,上面看到的只是DBCA最常用的創建一個資料庫實例的使用,其實DBCA還提供另外兩種使用方法,分別是responseFile和命令行帶參調用。
先說DBCA的responseFile使用方法,responseFile這個東東並不陌生,前文講的Oracle自動安裝就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安裝程序的responseFile使用方法基本一致。但DBCA的responseFile的來源只能是Oracle安裝包中提供的模板文件,而不能向Oracle安裝程序的responseFile一樣,先自己record一個,然後再用這個record去指導Oracle的自動安裝。從Oracle安裝包中獲取到DBCA的responseFile模板文件後,你可以根據自己的需要編輯修改該模板文件,以完成對資料庫實例的某些參數設置(DBCA圖形界面所提供的參數設置,responseFile中都可以設置,而且該responseFile模板文件的注釋寫的很好,你完全不用擔心無法搞定那些繁雜的資料庫實例參數設置,贊Oralce一個!)。該模板文件在Oracle安裝包中的位置一般在${ORACLE_PACKAGE}/response目錄下。
有了responseFile之後,你只需在調用DBCA的時候指定responseFile的位置和另外一些參數:
dbca [-silent|-progressOnly] -responseFile responseFile名稱
其中-silent|-progressOnly選項意義和Oracle安裝程序命令行參數中的同名選項一樣,表示完全字元界面自動安裝或者帶圖形提示界面的半自動化安裝。
responseFile名稱當然就是responseFile的具體位置了。
但是,有一點不是很好,那就是使用DBCA的responseFile方式創建Oracle資料庫實例,需要事先已經存在一個資料庫實例模板了,在responseFile中再指定該資料庫實例模板名,然後DBCA再依據這個已有的資料庫實例模板完成新資料庫實例的創建,所以就會有前面講到的DBCA圖形界面創建資料庫實例時提供生成資料庫實例模板的選項(資料庫實例模板也可以從一個已有資料庫實例生成),就是在這要用到的。
從上面調用DBCA使用responseFile的命令中,應該已經看到了DBCA是提供一些命令行參數選項的,其實DBCA提供的命令行參數選項遠比你想像的強大,甚至可以這么說,所有DBCA圖形界面和responseFile能夠辦到的事,通過DBCA豐富的命令行參數選項都可以辦到。你在DBCA圖形界面上設置的參數或者在responseFile中指定的參數值都可以通過DBCA的命令行參數選項來進行設置,所以你完全可以只通過DBCA的命令行帶參調用來完成一個資料庫實例的創建(當然也包括刪除、修改資料庫實例等所有DBCA圖形界面所能提供的功能)。其實,我更願意這樣認為,DBCA的responseFile應用也是一種DBCA命令行帶參調用的使用。需要注意的是,當DBCA的命令行參數和responseFile同時設置一個參數時,命令行參數的優先順序是比responseFile要高的。另外,使用DBCA命令行帶參調用新建資料庫實例和使用responseFile新建資料庫實例一樣,也是需要事先已經存在一個資料庫實例模板,才能完成新資料庫實例的創建。一份非常詳細的DBCA所有命令行參數選項列表,你可以通過執行dbca -help獲得。
到現在你可能已經發現,DBCA圖形界面、DBCA的responseFile使用以及DBCA的命令行帶參調用,其實是三個分別具備完全資料庫實例設置功能的工具或者介面,分別對應不同的應用場景,它們可以滿足你幾乎所有的應用需求(使用這樣的工具來幫助構建自己的軟體真是非常愜意的一件事情,再贊Oracle一個!)。
第二種是通過腳本(是否稱為命令行方式更合適,下文描述的腳本方式其實都是命令行方式的非互動式方法,或者說命令行的自動化方式,但其實所有腳本方式都可以將shell腳本或sql腳本中的shell命令、sqlplus命令拆分出來,手工在shell中或者sqlplus界面中進行互動式的輸入執行,這可以稱為命令行的手工方式)來完成資料庫實例的代碼中自動創建。這里說的腳本包括shell腳本和sql腳本,這種方式可以說是最適合與編程結合的,因為這些shell腳本或者sql腳本都可以直接在shell命令中調用執行,所以可以很好與shell編程相結合。而這其實是基於一個非常重要的事實,即Oracle提供了一個互動式的命令行工具sqlplus(類似與DB2的db2cmd),這個工具可以認為是一個Oracle資料庫管理工具,通過它可以執行一些Oracle的資料庫管理命令,來完成一些資料庫管理工作(這當然就包括資料庫實例的創建),同時你也可以把它當作一個SQL語句執行器,直接在里邊執行你想要執行的SQL語句或者存儲過程等,並獲取執行結果。並且,更重要的是,sqlplus可以直接在shell命令行中進行非互動式的調用執行(通常是調用執行一段sqlplus語句,或者是一個由一些sqlplus語句組成的sql腳本,我所說的sqlplus語句包括Oracle資料庫管理維護命令、SQL語句和存儲過程等),這就為在shell編程中使用sqlplus完成資料庫實例自動創建工作提供了可能。
shell命令行中非互動式調用sqlplus執行一段sqlplus語句是利用shell編程中重定向命令的一個特性,即分隔符重定向輸入。一般用法如下:
command<<任意自定義分隔符
>(換行)內容
>(換行)內容
>自定義分隔符
shell中遇到<<則會自動將下一個單詞認作分隔符,並將分隔符後面的文本當作command命令執行的內容傳遞給command依次全部執行直至遇到下一個分隔符單詞才結束。這里的分隔符可以是任意自定義的單詞,通常使用EOF,舉例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
這段shell程序調用sqlplus執行了若干sqlplus語句,用來啟動資料庫實例,查詢資料庫版本信息,然後關閉資料庫實例,退出sqlplus。
shell命令行中非互動式調用sqlplus執行一個sql腳本是利用sqlplus本身提供的命令行參數。在sqlplus界面中可以通過start命令和@命令來執行一個sql腳本,兩者功效相同,用法如下:
SQL>start sql腳本絕對路徑;
SQL>@sql腳本絕對路徑;
而在shell命令行中可以使用@來完成sqlplus對sql腳本的調用執行,舉例:
sqlplus / as sysdba @./MySQL.sql
以上命令會調用sqlplus執行當前目錄下的MySQL.sql腳本。
使用腳本來完成資料庫實例的創建工作,也分為兩種情況。
一種是誠如前文所述的那樣,在使用DBCA圖形工具創建資料庫實例的同時生成一份資料庫實例創建腳本(包括若干shell腳本和sql腳本),那麼你就可以使用這份腳本,在shell中進行調用,完成資料庫實例的代碼自動創建。使用這份資料庫實例創建腳本創建的新資料庫實例和原資料庫實例是完全一樣,當然,你可以將生成的腳本進行修改,以完成你對資料庫實例的某些設置,但是請在你對腳本內容已經足夠了解,並且知道你自己在干什麼的情況下修改腳本,否則你很有可能使用修改後的腳本無法正確創建資料庫實例。這種方法中shell腳本對sqlplus的使用,更多的是使用sqlplus來執行一些Oracle生成的sql腳本(這些sql腳本的內容是就是一些sqlplus語句的集合,它們的任務就是完成資料庫實例的創建以及設置)。
另一種情況則是不依靠DBCA生成的腳本,完全由自己來編寫實現一份shell腳本,在腳本中你可以調用sqlplus執行一段sqlplus語句或者其它一些sql腳本,以完成資料庫實例的創建和設置,這完全取決於你的實現;而最常用的用來創建資料庫實例的一個方法就是在sqlplus中使用create database語句,create database語句提供了許多豐富的選項和參數設置,確保你能完全創建一個自己所需要的資料庫實例。當然,還有一些其它方法可以創建資料庫實例,比如調用執行oracle提供某些存儲過程等。
至於create database語句的詳細介紹可以參考oracle的sql reference。
第三種嚴格來說不能算作一種創建Oracle資料庫實例的方法,它是通過已有的資料庫實例為基礎來完成新資料庫實例的創建的。這種方法是首先通過第一種或者第二種方法來創建好一個資料庫實例,然後將該資料庫實例的物理文件進行備份,然後直接使用備份的物理文件恢復出一個與原資料庫實例完全一樣新的資料庫實例,所以這種方法需要和第一、二種方法相配合才能使用。這種方法其實已經屬於Oracle數據備份與恢復的范疇了,就是Oracle數據備份恢復方式中的物理備份恢復,所以這種方法可以叫做物理恢復法。
簡單介紹物理恢復法,首先將一個已經存在資料庫實例(最好已關閉)進行物理備份,所謂物理備份其實就是復制該資料庫實例所使用的操作系統文件,這些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(這些文件一般存在於$ORACLE_HOME/oradata目錄下),進行資料庫實例恢復的時候只需將備份的操作系統文件復制到新的oradata目錄下即可,可以直接啟動使用恢復後的該資料庫實例。不難看出,這種備份恢復是依賴於操作系統平台的。
詳細的物理備份和恢復介紹可以參考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
說完了資料庫實例的創建,現在來說說資料庫實例的刪除和修改。其實介紹完了資料庫實例的創建,資料庫實例的刪除和修改就非常簡單了。基本和前文資料庫實例創建的內容相一致,且比較而言更簡單。
資料庫實例的刪除從上文中資料庫實例的創建不難得到,大致有兩種方法,DBCA工具和命令行方式。
DBCA工具除了能夠用來創建資料庫實例,當然也能夠用來刪除資料庫實例了,且同樣可以用使用responseFile或者命令行帶參調用等方法來完成資料庫實例的刪除,請參考資料庫實例創建部分。
命令行刪除資料庫實例的方式,嚴格來講,是使用一組sqlplus命令來完成資料庫實例的刪除,這組sqlplus命令可以組織在一個sql腳本中,然後在shell命令行中調用sqlplus程序來執行該sql腳本,或者直接在shell命令行中利用shell程序重定向特性調用sqlplus依次完全執行這組sqlplus命令,再或者使用手工的互動式輸入執行,使用方法請參考資料庫實例創建部分。
其中涉及到的sqlplus命令參考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令刪除資料庫實例,必須先以restrict mount方式將資料庫實例載入(但不打開),然後使用drop database語句刪除該資料庫實例。
資料庫實例的修改和資料庫實例的創建,情況類似,DBCA方式或者命令行方式。只要是DBCA方式能夠修改的資料庫實例參數,命令行方式也都能辦到。
㈣ 舉出5個資料庫在各行業應用的實例
工商銀行,普通存取款業務,資料庫informix,軟體自行開發,前台頁面java
興業銀行,風險監測系統,資料庫informix,軟體自行開發,前台頁面java
興業銀行風險監測二期,資料庫informix,報表系統非奈特產品
上交所數據清洗a部,資料庫oracle,系統自行開發
寶鋼進銷存管理,寶信軟體,資料庫oracle,語言plsql,工具oracle develope
現在所有的公司都要用的,隨便你找,到處都有
㈤ 什麼是資料庫的實例
所謂「資料庫實例」,實際上就是資料庫伺服器引擎。每個SQL Server資料庫引擎實例各有一套不為其他實例共享的系統及用戶資料庫。
在一台計算機上,可以安裝多個SQL SERVER,每個SQL SERVER就可以理解為是一個實例。
有兩種類型的 SQL Server 實例:
1)默認實例:默認實例僅由運行該實例的計算機的名稱唯一標識,它沒有單獨的實例名。如果應用程序在請求連接 SQL Server 時只指定了計算機名,則 SQL Server 客戶端組件將嘗試連接這台計算機上的資料庫引擎默認實例。
2)命名實例:除默認實例外,所有資料庫引擎實例都由安裝該實例的過程中指定的實例名標識。應用程序必須提供准備連接的計算機的名稱和命名實例的實例名。
計算機名和實例名以格式computer_name\instance_name指定。 一台計算機上可以運行多個命名實例。
㈥ 資料庫具體應用的實例有哪些
資料庫的應用領域
1、多媒體資料庫: 這類資料庫主要存儲與多媒體相關的數據,如聲音、圖像和視頻等數據。多媒體數據最大的特點是數據連續,而且數據量比較大,存儲需要的空間較大。
2、移動資料庫: 該類資料庫是在移動計算機系統上發展起來的,如筆記本電腦、掌上計算機等。該資料庫最大的特點是通過無線數字通信網路傳輸的。移動資料庫可以隨時隨地地獲取和訪問數據,為一些商務應用和一些緊急情況帶來了很大的便利。
3、空間資料庫: 這類資料庫目前發展比較迅速。它主要包括地理信息資料庫(又稱為地理信息系統,即GIS)和計算機輔助設計(CAD)資料庫。其中地理信息資料庫一般存儲與地圖相關的信息數據;計算機輔助設計資料庫一般存儲設計信息的空間資料庫,如機械、集成電路以及電子設備設計圖等。
4、信息檢索系統: 信息檢索就是根據用戶輸入的信息,從資料庫中查找相關的文檔或信息,並把查找的信息反饋給用戶。信息檢索領域和資料庫是同步發展的,它是一種典型的聯機文檔管理系統或者聯機圖書目錄。
5、分布式信息檢索: 這類資料庫是隨著Internet的發展而產生的資料庫。它一般用於網際網路及遠距離計算機網路系統中。特別是隨著電子商務的發展,這類資料庫發展更加迅猛。
許多網路用戶(如個人、公司或企業等)在自己的計算機中存儲信息,同時希望通過網路使用發送電子郵件、文件傳輸、遠程登錄方式和別人共享這些信息。分布式信息檢索滿足了這一要求。
6、專家決策系統: 專家決策系統也是資料庫應用的一部分。由於越來越多的數據可以聯機獲取,特別是企業通過這些數據可以對企業的發展作出更好的決策,以使企業更好地運行。由於人工智慧的發展,使得專家決策系統的應用更加廣泛。
(6)資料庫使用實例擴展閱讀
對資料庫系統的基本要求是:
①能夠保證數據的獨立性。數據和程序相互獨立有利於加快軟體開發速度,節省開發費用。
②冗餘數據少,數據共享程度高。
③系統的用戶介面簡單,用戶容易掌握,使用方便。
④能夠確保系統運行可靠,出現故障時能迅速排除;能夠保護數據不受非受權者訪問或破壞;能夠防止錯誤數據的產生,一旦產生也能及時發現。
⑤有重新組織數據的能力,能改變數據的存儲結構或數據存儲位置,以適應用戶操作特性的變化,改善由於頻繁插入、刪除操作造成的數據組織零亂和時空性能變壞的狀況。
⑥具有可修改性和可擴充性。
⑦能夠充分描述數據間的內在聯系。
㈦ 資料庫實例如何理解呢
實例(instance):一組Oracle 後台進程/線程以及一個共享內存區,這些內存由同一個計算機上運行的線程/進程所共享。這里可以維護易失的、非持久性內容(有些可以刷新輸出到磁碟)。就算沒有磁碟存儲,資料庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助於對實例和資料庫劃清界線。
實例和資料庫之間的關系是:資料庫可以由多個實例裝載和打開,而實例可以在任何時間點裝載和打開一個資料庫。實際上,准確地講,實例在其整個生存期中最多能裝載和打開一個資料庫!
一般來說,我們的一個資料庫對應一個實例,但在集群RAC情況下,共享資料庫文件時,一個資料庫是可以被多個實例同時使用的。
㈧ 什麼是資料庫實例
多個 SQL Server 實例 ,Microsoft SQL Server 2000 支持在同一台計算機上同時運行多個 SQL Server 資料庫引擎實例。每個 SQL Server 資料庫引擎實例各有一套不為其它實例共享的系統及用戶資料庫。 有兩種類型的 SQL Server 實例:1)默認實例 默認實例僅由運行該實例的計算機的名稱唯一標識,它沒有單獨的實例名。如果應用程序在請求連接 SQL Server 時只指定了計算機名,則 SQL Server 客戶端組件將嘗試連接這台計算機上的資料庫引擎默認實例。2)命名實例 除默認實例外,所有資料庫引擎實例都由安裝該實例的過程中指定的實例名標識。應用程序必須提供准備連接的計算機的名稱和命名實例的實例名。計算機名和實例名以格式computer_name\instance_name指定。 一台計算機上可以運行多個命名實例 所謂「SQL實例」,實際上就是SQL伺服器引擎,每個SQL Server資料庫引擎實例各有一套不為其他實例共享的系統及用戶資料庫。 在一台計算機上,可以安裝多個SQL SERVER,每個SQL SERVER就可以理解為是一個實例。實例又分為「默認實例」和「命名實例」,如果在一台計算機上安裝第一個SQL Server,命名設置保持默認的話,那這個實例就是默認實例。 一台計算機上最多隻有一個默認實例,也可以沒有默認實例,默認實例名與計算機名相同。 所以說,默認實例的名稱是與計算機名相同,而不是稱為local,但一般情況下,如果要訪問本機上的默認SQL伺服器實例,使用計算機名、(local)、localhost、127.0.0.1、. 、本機IP地址,都可以達到相同的目的。