創(chuàng)新新互聯,憑借10年的網站制作、成都網站建設經驗,本著真心·誠心服務的企業(yè)理念服務于成都中小企業(yè)設計網站有上1000+案例。做網站建設,選創(chuàng)新互聯。
以下這些東西是我的麥庫上存的當時學Oracle的學習筆記今天拿出來和大家分享一下,轉載請注明出處,下面用的Oracle的版本是10g,用的時WinServer2003的操作系統(tǒng),可能有些命令和Oracle11g的有所不同,但大部分是一樣的,接下來還會陸續(xù)的分享一下Oracle中對用戶的管理,對表的管理,還有Oracle中的存儲過程和PL/SQL編程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,歡迎大家批評指正。
1.數據庫管理員的職責:
1.安裝和升級Oracle數據庫
2.創(chuàng)建數據庫,表空間,表,視圖,索引
3.制定并實施備份和恢復數據庫計劃
4.數據庫權限管理,調優(yōu),故障排除
5.對于高級的dba可以參與項目的開發(fā),會編寫sql語句,存儲過程,觸發(fā)器,規(guī)則,約束,包
2.管理數據庫的主要用戶主要是sys和system: 例如:sys是董事長,system是總經理
1.兩者尊重要的區(qū)別:存儲數據的重要性不同。
sys:所有oracle數據字典的基表和視圖都存放在sys用戶中,這些基表和視圖對oracle的運行是至關重要的
由數據庫自己維護,任何用戶都不可手動更改,sys擁有dba,sysdba,sysoper角色或權限是oracle權限的最高用戶。
system:用于存放次一級的內部數據,system擁有dba,sysoper角色或權限
2.第二個區(qū)別
sys:必須以sysdba 或 sysoper的角色登錄,不能以normal方式登錄
3.對初始化參數的修改:
1.顯示初始化參數
show parameter
2.如何修改參數
可以到文件oracle\admin\orcl\pfile\init.ora 下修改;
4.數據庫的邏輯備份:
邏輯備份是指使用工具export將數據對象的結構和數據導出到文件的過程。
邏輯回復是指當數據庫被誤操作后利用工具import利用備份的數據導入到數據庫的過程。
物理備份即可在數據庫open下操作也可以在關閉下操作。
但邏輯備份只能在數據庫的open下操作。
數據的導出:!!!--在導入導出的時候要到oracle目錄的bin目錄下執(zhí)行命令;
導出具體的分為:導出表,導出方案,導出數據庫
導出用exp命令來實現,該命令常用的選項有:
userid:用于指定執(zhí)行導出操作的用戶名,口令,連接字符串;
tables:用于指定導出操作的表;
owner: 用于指定導出操作的方案;
full=y:用于指定導出的數據庫;
inctype:用于指定導出操作的增量類型;
rows:執(zhí)行導出操作是否導出表中的數據;
file:用于指定導出文件名;
1).導出表:導出scott用戶下數據庫實例orcl中emp的表,存放的文件路徑為e:/emp.dmp;
在cmd的控制臺下執(zhí)行:
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)導出表的結構沒有其數據
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;
C:\Documents and Settings\Administrator.WEB-A93B1E61669>exp userid=scott/tiger@orcl owner=scott file=e:\scott.dmp
2).導出別的方案:如果要導出其他方案的表則需要dba權限或者exp_full_database權限
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:用于執(zhí)行導入表操作
fromuser:用于指定源用戶
touser:用于指定目標用戶
file:用于指定導入文件名
full=y:用于指定導入整個文件
inctype:用于指定導入文件的增量類型
rows:指定是否要導入表行(數據)
ignore:如果表存在則只導入表數據
--刪除表是同時會刪除之前創(chuàng)建的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.數據字典:
數據字典記錄了數據庫的系統(tǒng)信息,它是只讀表和視圖的集合,數據字典的所有者是sys用戶
用戶只能在表上執(zhí)行查詢操作(select操作),而其維護和修改是系統(tǒng)自動完成的
數據字典包括數據基表和數據視圖,數據基表里存儲的是數據庫的基本信息,普通用戶不能直接訪問數據庫基表的信息,數據字典里的視圖是基于
基本表創(chuàng)建起來的虛表,用戶可以通過查詢視圖里的信息來查詢系統(tǒng)的信息
數據字典里的視圖主要包括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視圖可以查詢用戶所具有的系統(tǒng)權限
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.查詢系統(tǒng)權限
SQL> select * from system_privilege_map;
11.查詢對象權限
SQL> select distinct privilege from dba_tab_privs;
12.查詢角色擁有的系統(tǒng)權限
SQL>select * from dba_sys_privs where grantee='CONNECT';
13.查詢角色擁有的對象權限
SQL>select * from dba_tab_privs where grantee='CONNECT';