如下這些東西是個人麥庫上存的當時學Oracle的學習筆記今天拿出來和你們分享一下,轉載請註明出處,下面用的Oracle的版本是10g,用的時WinServer2003的操做系統,可能有些命令和Oracle11g的有所不一樣,但大部分是同樣的,接下來還會陸續的分享一下Oracle中對用戶的管理,對錶的管理,還有Oracle中的存儲過程和PL/SQL編程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,歡迎你們批評指正。sql
1.數據庫管理員的職責:數據庫
1.安裝和升級Oracle數據庫
2.建立數據庫,表空間,表,視圖,索引
3.制定並實施備份和恢復數據庫計劃
4.數據庫權限管理,調優,故障排除
5.對於高級的dba能夠參與項目的開發,會編寫sql語句,存儲過程,觸發器,規則,約束,包
2.管理數據庫的主要用戶主要是sys和system: 例如:sys是董事長,system是總經理
1.二者尊重要的區別:存儲數據的重要性不一樣。
sys:全部oracle數據字典的基表和視圖都存放在sys用戶中,這些基表和視圖對oracle的運行是相當重要的
由數據庫本身維護,任何用戶都不可手動更改,sys擁有dba,sysdba,sysoper角色或權限是oracle權限的最高用戶。
system:用於存放次一級的內部數據,system擁有dba,sysoper角色或權限
2.第二個區別
sys:必須以sysdba 或 sysoper的角色登陸,不能以normal方式登陸
3.對初始化參數的修改:
1.顯示初始化參數
show parameter
2.如何修改參數
能夠到文件oracle\admin\orcl\pfile\init.ora 下修改;編程
4.數據庫的邏輯備份:
邏輯備份是指使用工具export將數據對象的結構和數據導出到文件的過程。
邏輯回覆是指當數據庫被誤操做後利用工具import利用備份的數據導入到數據庫的過程。
物理備份便可在數據庫open下操做也能夠在關閉下操做。
但邏輯備份只能在數據庫的open下操做。
數據的導出:!!!--在導入導出的時候要到oracle目錄的bin目錄下執行命令;
導出具體的分爲:導出表,導出方案,導出數據庫
導出用exp命令來實現,該命令經常使用的選項有:
userid:用於指定執行導出操做的用戶名,口令,鏈接字符串;
tables:用於指定導出操做的表;
owner: 用於指定導出操做的方案;
full=y:用於指定導出的數據庫;
inctype:用於指定導出操做的增量類型;
rows:執行導出操做是否導出表中的數據;
file:用於指定導出文件名;oracle
1).導出表:導出scott用戶下數據庫實例orcl中emp的表,存放的文件路徑爲e:/emp.dmp;
在cmd的控制檯下執行:工具
C:\Documents and Settings\Administrator.WEB-A93B1E61669>exp userid=scott/tiger@orcl tables=(emp,dept) file=e:\emp.dmp;
2)導出其餘方案的表
若是要導出其餘方案的表則須要dba權限或者exp_full_database權限學習
SQL>userid=system/system@orcl tables=(scott.emp) file=e:\emp1.dmp;
3)導出表的結構沒有其數據spa
exp userid=scott/tiger@orcl tables=(emp,dept) file=e:\emp.dmp rows=n;
4)直接導出表結構(適合表中有大量的數據,速度比 rows=n 要快的多)操作系統
exp userid=scott/tiger@orcl tables=(emp.dept) file=e:\emp2.dmp direct=y;
2.導出方案:
1)導出scott的方案: exp scott/tiger@orcl owner=scott file=e:\scott.dmp;code
C:\Documents and Settings\Administrator.WEB-A93B1E61669>exp userid=scott/tiger@orcl owner=scott file=e:\scott.dmp
2).導出別的方案:若是要導出其餘方案的表則須要dba權限或者exp_full_database權限orm
exp userid=system/system@orcl owner=(system,scott) file=e:\syscott.dmp; 導出數據庫 inctype=complete;增量備份--第二次備份時只會添加新增的數據庫 exp userid=system/system@orcl full=y inctype=complete file=e:\orcl.dmp;
5.數據庫的導入:import 將文件中的數據導入到數據庫中,但導入的數據文件必須是用工具export導出的文件
導入也分導入表,導入方案,導入數據庫三種方式
imp經常使用的命令有:
userid:用於指定導入操做的用戶名,口令,鏈接字符串;
tables:用於執行導入表操做
fromuser:用於指定源用戶
touser:用於指定目標用戶
file:用於指定導入文件名
full=y:用於指定導入整個文件
inctype:用於指定導入文件的增量類型
rows:指定是否要導入錶行(數據)
ignore:若是表存在則只導入表數據
--刪除表是同時會刪除以前建立的savepoint,因此刪除表是沒法rollback
1.導入該用戶下的表:
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp;
2.導入表到其餘用戶要求DBA權限或者imp_full_database的權限;
imp userid=system/system@orcl tables=(emp) file=e:\orcl.dmp touser=scott;
3.只導入表結構而不導入數據
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp rows=n;
4.若是表已存在則只導入數據
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp ignore=y;
5.導入自身方案
imp userid=scott/tiger@orcl file=e:\scott.dmp;
6.導入其餘方案
imp userid=system/system@orcl file=e:\scott.dmp fromuser=system touser=scott;
7.導入數據庫
imp userid=system/system@orcl full=y file=e:\orcl.dmp;
6.數據字典:
數據字典記錄了數據庫的系統信息,它是隻讀表和視圖的集合,數據字典的全部者是sys用戶
用戶只能在表上執行查詢操做(select操做),而其維護和修改是系統自動完成的
數據字典包括數據基表和數據視圖,數據基表裏存儲的是數據庫的基本信息,普通用戶不能直接訪問數據庫基表的信息,數據字典裏的視圖是基於
基本表建立起來的虛表,用戶能夠經過查詢視圖裏的信息來查詢系統的信息
數據字典裏的視圖主要包括user_XXX,all_XXX和dba_XXX三種類型;
1.user_tables顯示當前用戶所擁有的表
sql>select table_name from user_tables;
2.all_tables 顯示當前用戶能夠訪問到的全部表,不只是該方案下的,也顯示其餘方案下的
sql>select table_name from all_tables;
3.dba_tables 顯示全部方案所擁有的表,要求用戶必須有dba角色或者有select_any_tables的權限如system用戶。
sql>select owner,table_name from dba_tables;
4.經過查詢dba_users來顯示數據庫中全部的用戶(視圖)
sql>select username from dba_users;
5.經過查詢dba_sys_privs視圖能夠查詢用戶所具備的系統權限
SQL>select * from dba_sys_privs where grantee='SYS'
6.經過查詢dba_tab_privs視圖能夠查詢用戶所具備的對象權限
SQL> select * from dba_tab_privs where grantee='SCOTT';
7.經過查詢dba_col-Privs視圖能夠查詢用戶所具備的列權限
8.經過查詢dba_role_privs 視圖能夠查詢用戶的角色;
SQL> select * from dba_role_privs where grantee='SCOTT'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ------------------------------ ------------------------------ ------------ ------------ SCOTT RESOURCE NO YES
9.查詢Oracle中的全部角色
SQL> select * from dba_roles;
10.查詢系統權限
SQL> select * from system_privilege_map;
11.查詢對象權限
SQL> select distinct privilege from dba_tab_privs;
12.查詢角色擁有的系統權限
SQL>select * from dba_sys_privs where grantee='CONNECT';
13.查詢角色擁有的對象權限
SQL>select * from dba_tab_privs where grantee='CONNECT';