Oracle學習筆記 七

2021-05-25 23:23:30 字數 4050 閱讀 7238

1.oracle管理員(dba)的職責

(1)安裝和公升級oracle資料庫

(2)建庫、表空間、表、檢視、索引

(3)指定並實施備份與恢復計畫

(4)資料庫許可權管理,調優,故障排除

(5)對於高階dba,要求能參與專案開發,會編寫sql語句、儲存過程、觸發器、規劃、約束、包

-----------

2.管理資料庫的使用者主要是sys和system

區別:(1)最重要區別,儲存的資料的重要性不同。

sys:所有oracle的資料字典的基表和檢視都存放在此使用者中,這些東西對於oracle的執行至關重要,由資料庫自己維護,任何使用者都不能手動改動。sys使用者擁有

dba(資料庫管理員),sysdba(系統管理員),sysoper(系統操作員)角色或許可權,是oracle許可權最高的使用者。

system:用於存放次一級的內部資料,如oracle的一些特性或工具的管理資訊,它擁有dba(資料庫管理員),sysdba(系統管理員)角色或系統許可權。

(2)次要區別,許可權的不同

sys使用者必須以as sysdba 或as sysoper形式登陸,不能以normal方式登陸資料庫。

//sys使用者的登入方式conn sys/change_on_install as sysdba或sysoper

system如果正常登入,它其實就是乙個普通的dba使用者,但是如果以as sysdba登入,其結果實際上就是最為sys使用者登入的。

system的特殊登入方式//conn system/yzh as sysdba;

-----------

級別:dbauserid=system/yzh@oral tables=(student,classes) file=d:/e1.dmp

特別說明:在匯入和匯出的時候,要到oracle目錄的bin目錄下。exp.exe檔案//本人的安裝目錄是d:/oracle/product/10.1.0/db_1/bin

切換目錄:如何切換到d目錄:先輸入cd d:後輸入d

(2)匯出其他方案的表

需要是dba的許可權或是exp_full_datebase的許可權。比如system就可以匯出使用者scott的表。exp userid=system/yzh@oral table(scott.emp) file=d:/e2.dmp

(3)匯出表結構

exp userid=system/yzh@oral tables=(student) file=d:/e3.dmp rows=n

(4)直接匯出方式//用於處理大表

exp userid=system/yzh@oral tables=(emp) file=d:/e4.dmp direct=y

匯出方案:

(1)匯出自己的方案

exp userid=system/yzh@oral owner=system file=d:/system.dmp

(2)匯出其他方案

需要是dba的許可權或是exp_full_datebase的許可權。比如system就可以匯出任何方案。

exp userid=system/yzh@oral owner=(system,scott) file=d:/system.dmp//owner=(system,scott)表示用匯出system和scott的方案

匯出資料庫:

要求該使用者有dba的許可權或是exp_full_datebase的許可權

exp userid=system/yzh@oral full=y inctype=complete file=d:/x.dmp

-------------------------------------------

匯入表:

(1)匯入自己的表//scott匯出的表,也可以匯入到system使用者下

imp userid=system/yzh@oral tables=(student) file=d:/aa.dmp

(2)匯入表到其他使用者:

需要是dba的許可權或是exp_full_datebase的許可權

imp userid=system/yzh@oral tables=(emp) file=d:/aa.dmp touser=scott

(3)匯入表結構

imp userid=system/yzh@oral tables=(emp) file=d:/aa.dmp rows=n

(4)匯入資料

如果物件(表)已經存在可以只匯入表的資料

imp userid=system/yzh@oral tables=(emp) file=d:/aa.dmp ignore=y

匯入方案:

(1)匯入自身的方案

imp userid=system/yzh file=d:/***.dmp

(2)匯入其他方案

imp userid=system/yzh file=d:/***.dmp fromuser=system touser=scott

匯入資料庫:

imp userid=system/yzh full=y file=d:/***.dmp

---------------------------------------------

資料字典:它提供資料庫的一些系統資訊。存放在sys使用者的方案中。它包括資料字典基表(存放靜態資料)和資料字典動態檢視(存放動態資料)。

動態效能檢視記載了例程啟動後的相關資訊。主要包括user_***,all_***,dba_***三種型別。啟動oracle server時,建立它,停止oracle server時,刪除它。

user_tables:顯示當前使用者所擁有的所有表,它返回使用者所對應方案的所有表。

select table_name from user_tables;

all_tables:用於顯示當前使用者可以訪問的所有表,它不僅會返回當前使用者方案的所有表,還會返回當前使用者可以訪問的其他方案的表。

select table_name from all_tables;

dba_tables:顯示所有方案擁有的資料庫表,但是查詢這種資料庫字典檢視,要求是dba角色或是select any table系統許可權。

-----------------

使用者名稱,許可權,角色

dba_users顯示所有資料庫的詳細資訊.desc dba_users; select username from dba_users;

dba_sys_privs:顯示使用者所具有的系統許可權

dba_tab_privs:顯示使用者所具有的物件許可權

dba_col_privs:顯示使用者所具有的列許可權

dba_role_privs:顯示使用者所具有的角色

檢視scott的使用者所具有的角色?

desc dba_role_privs;

select * from dba_role_privs where grantee='scott';

查詢oracle所有的系統許可權,一般是dba

select * from system_privilege_map order by name;

查詢oracle中所有物件許可權,一般是dba

select distinct privilege from dba_tab_privs;

如何查詢乙個角色所包含的許可權?物件許可權,系統許可權

a.乙個角色所具有的系統許可權?

select * from dba_sys_privs where grantee='connect';

或select * from role_sys_privs where role='dba';

b.乙個角色所具有的物件許可權?

select * from dba_tab_privs where grantee='connect';

oracle究竟有多少種角色?

select * from dba_roles;

如何檢視某個使用者具有什麼樣的角色?

select * from dba_role_privs where grantee='dba';

顯示當前使用者可以訪問的所有資料字典檢視:

select * from dict where comments like '%grant%';

顯示當前資料庫的全稱:

select * from global_name;

Oracle學習筆記七 控制檔案管理

1.1 control file是乙個較小的二進位制檔案,描述資料庫結構,包括 1.2 記錄控制檔名及路徑的引數為 control files show parameter control3.1 案例說明 由於目前控制檔案只有2個,請再增加乙個控制檔案。1 在伺服器上執行中輸入cmd開啟命令提示符。...

oracle筆記七(游標變數)

游標變數 游標變數是動態的,而游標是靜態的。游標只能與指定的查詢相連,即固定指向乙個查詢的記憶體處理區域,而游標變數則可與不同的查詢語句相連,它可以指向不同查詢語句的記憶體處理區域 但不能同時指向多個記憶體處理區域,在某一時刻只能與乙個查詢語句相連 只要這些查詢語句的返回型別相容即可 declare...

oracle學習筆記 第七章 匿名塊

建立語法格式 declare 申明變數 begin 語句塊 end 常用語句 1,if 語句 if exp then elsif else end if 2,loop end loop語句 loop exit when exp 或用exit無條件退出,必須有退出條件,否則死迴圈 end loop 3...