上篇介紹了Oracle數據庫的基本操作指令:增、刪、改、查下面針對數據庫的管理進行介紹
數據管理員: 至少有一個數據庫管理員dba,
職責:安裝和升級oracel數據庫
建庫,表空間,表,視圖,索引
制定並實施備份和恢復計劃
數據庫權限管理,調優,故障排除
對於高級dba,要求能參與項目開發,會編寫sql語句,存儲過程,觸發器,規則,約束,包
Sys 和system區別
1、 最重要,存儲的數據的重要性不同
Sys:所有oracle的數據字典的基表和視圖都存放在sys用戶中,這些基表和視圖對於oracle的運行至關重要,有數據庫自己維護,任何用戶都不能手動更改,sys擁有dba,sysdba,sysoper角色或權限,是oracle權限的最高用戶
System :用戶存放次一級的內部數據,如oracle的一些特性或工具的管理信息,擁有dba,sysdba角色或系統權限
2、 其次區別
Sys必須以as sysdba或as sysyoper形式登錄,不能以normal方式登錄數據庫
System如果正常登錄,其實就是一個普通的dba,但如果以as sysdba登錄,其結果實際上它是作為sys用戶登錄的。
數據庫的邏輯備份和恢復
導出 導出表,導出方案,導出數據庫
使用exp命令完成
Userid:用戶指定執行導出操作員的用戶名,口令,鏈接字符串
Tables:導出操作的表
Owner:導出操作的方法
Full=y:導出操作的數據庫
Inctype:導出操作的增量類型
Rows :
Exp userid=scott/tiger@ myoraltables=(emo,dept) file=d:\e1.dmp
導出自己的方案
Exp scott/tiger@myoral owner= scottfile=d:\scott.dmp
導出其他的方案
Exp system/manager@myoralowner=(system,scott) file=d:\system.dmp
導出數據庫
Exp userid=system/manager@myyoral full=yinctype=complete file =x.dmp
導入自己表
Imp userid=scott.tiger@myortables=(emp) file =d:\xx.dmp
導入表到其他用戶
Imp userid =system/manager@myortables=(emp) file = d:\xx.demp rows =n
導入數據
Imp userid =scott/tiger@myor tables=(emp)file =d:\xx.dmp igore=y
Db 提供數據庫的一些系統信息包括數據字典基表和數據字典視圖,
動態性能視圖:記載了例程啟動後的相關信息
Sql>select table_name from user_tables 查詢該用戶建立的所有的所有表格
All_tables 可訪問到的所有表
Dba_tables 顯示所有方案擁有的數據庫表
查詢表
Desc dba_users
查詢有多少匯總角色?
Select* from dba_roles
查詢某個用戶,具有怎樣的角色
Select * from dba_role_privs wheregrantee=’用戶名’
當前數據庫的全稱 :Select * from global_name
表空間:數據庫的邏輯組成部分,物理上,數據庫數據存放在數據文件中,邏輯上將,數據庫則是存放在表空間中,表空間由一個或是多個數據文件組成
數據庫的邏輯結構包括表空間,段,區和塊
表空間:控制數據庫占用的磁盤空間
Dba 可以將不同數據類型部署到不同的位置,有利於提高I/O性能,有利於備份和恢復等管理操作
建立表空間 create tablespace
建立數據庫表空間
Create tablespace data01 datafile‘d:\test\data01.dbf’ size 20m uniform size 128k
使表空間脫機:Alter tablespace users offline
聯機:Alter tablespace users online
只讀為read only
包括not null,unique,primay key ,foreign key ,check
表跟表的關系 references
刪除約束:alter table 表名 drop primary key cascade.
用於加速數據存取的數據對象。
單列索引:Create index 索引名 on 表名(列名)
復合索引:Create index emp_indes on emp(ename,job );
缺點:
占用硬盤和內存 1.2倍
額外更新索引
顯示索引
Select index_name ,index_type formuser_indexes where table_name=’表名’
查詢權限
Select * from system_privilege_map order byname
查詢某個角色包括哪些權限
Select * from dba_sys_privs wheregrantee=’DBA’
以上主要介紹了數據庫管理員的職責以及權限,數據庫完整性中的增加索引的利弊等管理。這部分雖然每個開發人員都常用的到功能,但是作為數據庫管理,項目開發的管理人員確實必須要考慮並且做好的一項重要職責。