每個oracle數據庫應該至少有一名數據庫管理員(dba),對於一個小的數據庫,一個dba就夠了,但是對於一個大的數據庫可能需要多個dba分別擔負不同的管理職責
(1)數據庫管理員(dba)的職責
<1安裝和升級oracle的數據庫
<2建庫,表空間,表,視圖,索引
<3制定並實施備份與恢復計劃
<4數據庫權限管理,調優,故障排除
<5對於高級dba,要求能擦怒項目開發,會編寫sql語句,存儲過程,觸發器,規則,約束,包。
(2)管理數據庫的用戶主要是sys和system
sys相當於董事長,system相當於總經理,他們的主要區別是
<1最重要的區別,存儲的數據的重要性不同
sys:所有oracle的數據字典的基表和動態視圖都存放在sys用戶中,這些基表和視圖對於oracle的運行是至關重要的,由數據庫自己維護,任何用戶都不能手動更改。sys用戶擁有dba,sysdba,sysoper角色或權限,是oracle權限最高的用戶。
system:用於存放一級的內部數據,如oracle的一些特性或工具的管理信息,system用戶擁有dba,sysdba角色或系統權限
<2其次的區別,權限的不同
sys用戶必須以as sysdba或 as sysoper形式登錄,不能以normal方式登錄數據庫,system如果正常登陸,它其實是一個普通的dba用戶,但是如果以as sysdba登錄,其結果實際上他是以sys用戶登錄的,從登錄信息裏面我們可以看出來
(3)三種權限的大小一般而言sysdba>sysoper>dba
(4) dba權限的用戶
dba用戶是指具有dba角色的數據庫用戶,特權用戶可以執行啓動實例,關閉實例等特殊操作,而dba用戶只能在啓動數據庫後才能執行各種管理工作
(5)管理初始化參數
初始化參數用於設置實例或是數據庫的特徵,oracle9i提供了200多個初始化參數,並且每個初始化參數都有默認值
顯示初始化參數
<1show parameter命令
需要說明的是如果你希望修改這些初始化的參數,可以到文件安裝路徑XXXXX\pfile\init.ora文件中去修改
(6)邏輯備份與物理備份
邏輯備份是指使用工具export將數據的結構和數據導出到文件的過程,邏輯恢復是指當數據庫對象被誤操作 而損壞後使用工具import利用備份文件把數據對象導入到數據庫的過程。物理備份即可在數據庫open(正在運行)的狀態下進行也可在關閉數據庫後進行,但是邏輯備份和恢復只能在open的狀態下進行
(7)導出
導出具體分爲:導出表,導出方案,導出數據庫三種方式。導出使用exp命令來完成,該命令常用的選項有:
userid:用於指定執行導出操作的用戶名,口令,連接字符串
tables:用於指定執行導出操作的表
owner:用於指定執行導出操作的方案
full=y:用於指定執行導出操作的數據庫
inctype:用於執行導出操作的增量類型
rows:用於制定執行導出操作是否要導出表中的數據
file:用於指定導出文件名
關於方案的說明:一個用戶對應一個方案,方案名與用戶名相同,一個方案由表,視圖,索引等等組成。一個數據庫由多個方案組成
需要到dos界面下的oracle的的bin文件夾下敲打以下命令
<1導出表
exp userid=scott/tiger@orcl tables(emp,dept) file=d:\e1.dmp //後綴名不限
<2導出其它方案的表
如果用戶要導出其它方案的表,則需要dba的權限或是exp_full_database的權限,比如system就可以導出scott的表
exp userid=system/admin@orcl tables=(scott.emp) file=d:\e2.dmp
<3導出表的結構
exp userid=scott/tiger@orcl tables(emp,dept) file=d:\e1.dmp rows=n
<4使用直接導出方式
exp userid=scott/tiger@orcl tables(emp,dept) file=d:\e1.dmp direct=y
這種方式比默認的常規方式速度快,當數據量大時,可以考慮使用這樣的方式
這時需要數據庫的字符集要與客戶端字符集完全一樣,否則會報錯
<5導出方案
導出方案是指使用export工具導出一個方案或是多個方案中的所有對象(表,索引,約束。。)數據,並存放到文件中
<6導出自己的方案
exp scott/tiger@orcl owner=scott file=d:\scott.dmp
<7導出其它方案
如果用戶要導出其它方案,則需要dba的權限或是exp_full_database的權限,比如system就可以導出任何方案
exp system/admin@orcl owner=(system,scott) file=d:\system.dmp
<8導出數據庫
到處數據庫是指利用export導出所有數據庫中的對象及數據,要求該用戶具有dba的權限或exp_full_database的權限,因爲數據量大,所以耗用的時間會比較長
exp userid=system/manager@orcl full=y inctype=complete file=d:\schema.dmp
(8)導入
<1導入自己的表
imp userid=scott/tiger@orcl tables=(emp) file=d:\xx.emp
<2導入表到其它用戶
要求該用戶具有dba的權限或imp_full_database的權限
導入表的時候被導入的表不能有主外鍵關係
imp userid=system/admin@orcl tables=(emp) file=d:\xxx.dmp touser=scott
<3導入表的結構
只導入表的結構而不導入數據
imp userid=scott/tiger@crol tables=(emp) file=d:\xxx.dmp rows=n
<4.導入數據
如果對象(比如表)已經存在可以只導入表的數據
imp userid=scott/tiger@orcl tables=(emp) file=d:\xxx.dmp ignore=y
<5導入方案
導入方案是指使用import工具將文件中的對象和數據導入到一個或多個方案中。如果要導入其它方案,要求改用戶具有dba的權限,或是imp_full_database權限
<5.1導入自身的方案
imp userid=scott/tiger file=d:\xxx.dmp
<5.2導入其它方案
imp userid=system/admin file=d:\xxx.dmp fromuser=system touser=scott //這個fromuser指的是導出方案時所使用的用戶名
<6.導入數據庫
在默認的情況下,當導入數據庫時,會導入所有對象結構和數據,案例如下:
imp userid=system/admin full=y file=d;\xxxx.dmp
(9)刪除某個用戶下面的所有表
drop user 用戶名 cascade
這樣該用戶包括該用戶下的表,試圖,同義詞,過程,索引,及相關的一切就都不見了。
然後再新建一個同名用戶,賦予相應權限就可以了