資料管理員
每個oracle資料庫應該至少有一名資料庫管理員(dba),對於一個小的資料庫,一個dba就夠了,但是對於一個大的資料庫,可能需要多個dba分別擔負不同的管理職責。
*管理員的主要工作:
1)安裝和升級oracle資料庫
2)建庫,資料表空間,表,視圖,索引....
3)制定並實施備份與恢複計劃
4)資料庫許可權管理,調優,故障排除
5)對於進階dba,要求能參與項目開發,會編寫sql語句,預存程序,觸發器,規劃,約束,包
一、資料庫管理員
*資料庫管理員的使用者主要是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使用者登入的,從登入資訊裡面我們可以看出來。
*dba許可權的使用者、
dba使用者是指具有dba角色的資料庫使用者,特權使用者可以執行啟動執行個體,關閉執行個體等特殊操作,而dba使用者只有在啟動資料庫後才能執行各種管理工作。
二、資料庫(表)的邏輯備份與恢複
邏輯備份是指使用工具export將資料對象的結構和資料匯出到檔案的過程。邏輯恢複是指當資料庫物件被誤操作而損壞後使用工具import利用備份的檔案把資料對象匯入到資料庫的過程。物理備份即可在資料庫open的狀態下進行也可在關閉資料庫後進行,但是邏輯備份和恢複只能在open的狀態下進行。
1、匯出
匯出具體的分為匯出表,匯出方案,匯出資料庫三種方式。。
匯出使用exp命令來完成,該命令常用的選項有:
userid:用於指定執行匯出操作的使用者名稱,口令,連接字串
tables:用於指定執行匯出操作的表
owner:用於指定執行匯出操作的方案
full=y:用於指定執行匯出操作的資料庫
inctype:用於指定執行匯出操作的增量類型
rows:用於指定執行匯出來操作是否要匯出表中的資料
file:用於指定匯出檔案名稱
*匯出表
(1)匯出自己的表
exp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott.dnp
其中,'@orcl'的orcl是執行個體名稱,匯出多張表中間用逗號隔開,最後要是有分號的話,那麼匯出表的尾碼就會出現分號。
(2)匯出其他方案的表
如果使用者要匯出其它方案的表,則需要dba的許可權或是exp.full.database的許可權,比如system就可以匯出scott的表
exp userid=system/TGXgt1314@orcl tables=(scott.emp) file=e:\oracle\scott_emp.dnp
其中,tables那裡要指定要匯出誰的表。
提示:
要是匯入匯出命令在PL/SQL Developer裡執行的話,會出現“無效sql語句”的錯誤提示。要成功執行該語句,要到oracle安裝目錄下的bin目
錄下執行。可以用命令列定位到該目錄下,然後執行sql語句。
*匯出表結構
exp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott2.dnp rows=n
*使用直接匯出方式
exp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott3.dnp direct=y
這種方法比預設的常規方式速度要快,當資料量大時,額可以考慮使用這樣的方法。
這時,需要資料庫的字元集要與用戶端字元集要完全一致,否則會報錯。
*匯出方案
匯出方案是指用export工具匯出一個方案或是多個方案中的所有對象(表,索引,約束等)和資料,並存放在一個檔案中。
1)匯出自己的方案
exp userid=scott/scott@arcl owner=scott file=e:\oracle\scott_fangan.dnp
2)匯出其它使用者方案
如果使用者要匯出其它方案,則需要dba的許可權或是exp.full.database的許可權,比如system就可以匯出scott的方案
exp userid=system/TGXgt1314@orcl owner=scott file=e:\oracle\scott_fangan2.dnp
*匯出資料庫
匯出資料庫是指利用export匯出所有資料庫中的對象及資料
需要dba的許可權或是exp.full.database的許可權
exp userid=system/TGXgt1314@orcl full=y inctype=complete file=e:\oracle\database.dnp
其中,full=y inctype=complete是增量備份,好處:第二次備份的時候只要求備份有變化的,速度要快些。
2、匯入
匯入就是使用工具import將檔案中的對象和資料匯入到資料庫中,但是匯入要使用檔案必須是export所匯出的檔案,匯入也分為匯入表,匯入方案,匯入資料庫三種方式。
imp常用的選項有:
userid:用於指定執行匯入操作的使用者名稱,口令,連接字串
tables:用於指定執行匯入操作的表
formuser: 用於指定源使用者
touser:用於指定目標使用者
full=y:用於指定執行匯入整個檔案
inctype:用於指定執行匯入操作的增量類型
rows:用於指定執行匯入來表行(資料)
file:用於指定匯入檔案名稱
ignore:如果表存在,則只匯入資料
1)匯入自己的表
imp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott.dnp
2)匯入表到其它使用者
要求該使用者具有dba的許可權,或是imp.full.database
imp userid=system/TGXgt1314 tables(emp,dept) file=e:\oracle\scott.dnp touser=scott
其中'touser=scott'表示的是指定匯入到scott使用者
3)匯入表的結構
只匯入表的結構而不到入資料
imp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott.dnp rows=n
4)匯入資料
如果對象(如表)已經存在,那可以只匯入表的資料
imp userid=scott/scott@orcl tables=(emp,dept) file=e:\oracle\scott.dnp ignore=y