轉自:https://blog.csdn.net/kepa520/article/details/78958029
dba的職責:
1、安裝和升級oracle數據庫
2、建庫、表空間、表、視圖、索引...
3、制定並實施備份與恢復計划
4、數據庫權限管理,調優,故障排除
5、對於高級dba,要求能參與項目開發,會編寫sql語句、存儲過程、觸發器、規則、約束、包
管理數據庫的用戶主要是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用戶登錄的。
sysdba和sysoper權限區別
sysdba和sysoper具體的權限可以看下表:
| 系統權限 |
sysdba |
sysoper |
| 區別 |
startup(啟動數據庫) |
startup |
| shutdown(關閉數據庫) |
shutdown |
|
| alter database open/mount/backup |
alter database open/mount/backup |
|
| 改變字符集 |
none |
|
| create database(創建數據庫) |
none不能創建數據庫 |
|
| drop database(刪除數據庫) |
none |
|
| create spfile |
create spfile |
|
| alter database archivelog(歸檔日志) |
alter database archivelog |
|
| alter database recover(恢復數據庫) |
只能完全恢復,不能執行不完全恢復 |
|
| 擁有restricted session(會話限制) |
擁有restricted session權限 |
|
| 可以讓用戶作為sys用戶連接 |
可以進行一些基本的操作,但不能查看用戶數據 |
|
| 登錄之后用戶是sys |
登錄之后用戶是public |
dba權限的用戶
dba用戶是指具有dba角色的數據庫用戶。特權用戶可以執行啟動實例,關閉實例等特殊操作,而dba用戶只有啟動數據庫后才能執行各種管理工作。
管理初始化參數
初始化參數用於設置實例或是數據庫的特征,oracle11g提供了300多個初始化參數,並且每個初始化參數都有默認值。
顯示初始化參數命令
show parameter
如何修改參數
需要說明的如果你希望修改這些初始化的參數,可以到文件:
盤符:\oracle目錄\admin\數據庫實例\pfile\init.ora文件中去修改。
數據庫(表)的邏輯備份與恢復
邏輯備份是指使用工具export將數據對象的結構和數據導出到文件的過程;
邏輯恢復是指當數據庫對象被誤操作而損壞后使用工具import利用備份的文件把數據對象導入到數據庫的過程。
物理備份既可在數據庫open的狀態下進行也可在關閉數據庫后進行;
但是邏輯備份和恢復只能在open的狀態下進行。
導出
導出具體的分為:導出表、導出方案、導出數據庫三種方式。
導出使用exp命令來完成的,該命令常用的選項有:
userid:用於指定執行導出操作的用戶名、口令、連接字符串;
tables:用於指定執行導出操作的表;
owner:用於指定執行導出操作的方案;
full=y:用於指定執行導出操作的數據庫;
inctype:用於指定執行導出操作的增量類型;
rows:用於指定執行導出操作是否要導出表中的數據;
file:用於指定導出文件名。
導出表
1、導出自己的表
exp userid=用戶名/密碼@數據庫實例名 tables=(表名1,表名2,..) file=備份路徑
例:exp userid=scott/tiger@orcl tables=(emp,dept) file=d:/scott_emp_dept.dmp
2、導出其它方案的表
如果用戶要導出其它方案的表,則需要DBA的權限或是exp_full_database的權限,比如system就可以導出scott的表
exp useris=用戶名/密碼@數據庫實例名 tables=(方案名.表名1,方案名.表名2,..) file=備份路徑
例:exp userid=system/orcl@orcl tables=(scott.emp,scott.dept) file=d:/scott_emp_
dept2.dmp
特別說明:備份文件的后綴名一般是.dmp,但是這不是必須的。
3、導出表的結構
exp userid=用戶名/密碼@數據庫實例名 tables(表名1,表名2,..) file=備份路徑 rows=n
例:exp userid=system/orcl@orcl tables(scott.emp,scott.dept) file=d:/scott_em
p_dept.demp rows=n
4、使用直接導出方式
exp userid=用戶名/密碼@數據庫實例名 tables(表名1,表名2,..) file=備份路徑 direct=y
例:exp userid=system/orcl@orcl tables(scott.emp,scott.dept) file=d:/scott_em
p_dept.demp direct=y
這種方式比默認的常規方式速度要快,當數據量大時,可以考慮使用這樣的方法。
這時需要數據庫的字符集要與客戶端字符集完全一致,否則會報錯。
導出方案
導出方案是指使用export工具導出一個方案或是多個方案中的所有對象(表、索引、約束..)和數據,並存放到文件中。
1、導出自己的方案
exp 用戶名/密碼@數據庫實例名 owner=所有者 file=備份路徑
例:exp scott/tiger@orcl owner=scott file=d:/scott_owner.dmp
2、導出其它方案
如果用戶要導出其它方案,則需要dba的權限或者exp_full_database的權限。例如system用戶就可以導出任何方案
exp 用戶名/密碼@數據庫實例名 owner=(所有者1,所有者2,..) file=備份路徑
例:exp system/orcl@orcl owner=scott,system file=d:/system_scott_owner.dmp
特別注意:如果用戶的權限夠大,則可一次性導出多外用戶的方案。比如system。
導出完整數據庫
需要dba的權限或者exp_full_database的權限。
exp 用戶名/密碼@數據庫實例名 full=y file=備份路徑
例:exp system/orcl@orcl full=y file=d:/orcl_full.dmp
導入表
導入自身表
imp 用戶名/密碼@數據庫實例名 file=備份路徑 tables=(表名1,表名2,..)
例:imp scott/tiger@orcl file=d:/emp_dept.dmp
特別注意:如果目的地有相同的表,則導入不成功。
導入其它方案的表
需要有dba權限或者imp_full_database的權限。
imp 用戶名/密碼@數據庫實例名 file=備份路徑 tables=(表名1,表名2,..) fromuser=方案名 touser=system
例:imp system/orcl@orcl file=d:/scott_emp_dept.demp tables=emp,dept fromuser=scott touser=system
注意:提示成功,但警告,表示此對象有scott導出,而不是當前用戶。
導入方案
導入自身方案
imp 用戶名/密碼@數據庫實例名 file=備份路徑
例:imp scott/tiger@orcl file=scott_owner.dmp
導入其它方案
需要有dba權限或者imp_full_database權限
imp 用戶名/密碼@數據庫實例名 file=備份路徑 fromuser=方案名 touser=system
例:imp system/orcl@orcl file=scott.dmp fromuser=scott touser=system
導入完整數據庫
需要有dba權限或者imp_full_database權限
imp 用戶名/密碼@數據庫實例名 file=備份路徑 full=y
例:imp system/orcl@orcl file=orcl_full.dmp full=y
