Oracle進階二
資料庫管理員(DBA):
1. 安裝升級Oracle資料庫
2. 建庫、表空間、表、試圖、索引
3. 制定並實施備份與恢復資料
4. 資料庫許可權管理、調優、故障排除
5. 對於感激的dba、要求參與專案開會編寫sql語句。儲存過程、觸發器、規則、約束、包。
Sys使用者:
資料系統的基表和試圖,擁有dba、sysdba、sysoper這些許可權 sysdba》sysoper
system使用者:
擁有次一級的內部資料,如oracle一些特性和工具管理資訊,system使用者擁有dba、sysdba角色或者系統許可權
區別:
sys使用者必須以as sysdba或者sysoper形式登陸,不能用nurmal方式登陸資料庫
system可以使用normal形式登陸,如果以normal登陸,那麼他就是一個普通使用者,如果用sysdba登陸,那麼他就是資料庫管理員使用者
資料庫管理員:
管路初始化操作:初始化操作引數用於設定例項或者是資料庫特性。
Show parameter命令//顯示初始化引數
修改引數:
E://oracle/admin/orcl/pfile/init.ora檔案中修改 比如要修改例項名
備份
邏輯備份:是指使用export將資料物件的結構和資料匯出到穩健的過程,邏輯恢復是指利用import工具把資料從檔案匯入到資料庫的過程。
匯出:匯出表、匯出方案、匯出資料庫
exp命令+選項:
userid:用於匯出使用者名稱、口令、連線字串
tables:匯出表//expuserid=scott/[email protected] table=(emp) file=E:/orcltanle/emp.dmp
owner:匯出操作的方案 expuserid=system/kyeecis scott/[email protected] ower=scott file=d:/scott.dmp
full=y:匯出資料庫//expuserid=system/[email protected] full=y inctype=complete file=d:/orcl.dmp // inctype:匯出操作的增量型別
rows:指定匯出的操作是否要匯出表中的資料rows=n//匯出表結構
file:用於指定匯出的檔案
direct=y//後面新增這個,速度會快
匯入:
使用工具import將檔案匯入到資料庫之中,但是使用的檔案必須是export所匯出的檔案,與匯出相似,匯入也分為匯出庫、匯出方案、匯出資料庫方式。
Imp常用的選項:
Userid:指定指定執行操作的使用者名稱和口令,連線字串;
Tables:用於指定執行匯入操作的表
Formuser:用於指定源使用者
Touser:指定目標使用者
Full=y:用於執行匯入整個檔案
Inctype:指定執行的整個檔案
Rows:指定要匯入行
Ignore:如果表存在只匯入資料
匯入自己的表:
imp userid=kyeecis/[email protected](emp) file=d:/emp.dmp
匯入其他使用者的表(要具有dba許可權):
imp useridsystem/[email protected](emp) file=d:/emp.dmp
匯入表結構但是不倒入資料:
imp userid=soctt/[email protected] tables(emp)file=d:/emp.dmp rows=n;
匯入資料:
如果表已經存在只需要倒入資料
imp userid=scott/[email protected] table=(emp) file=d:/emp.dmpignore=y
匯入方案:
匯入自己的方案:
imp userid=soctt/tiger fole=d:/xxx.dmp
匯入其他方案(dba許可權):
imp userid=system/kyeecis file=d:/xxx.dmp fromuser=systemtouser=scocct
匯入資料庫:
在預設情況下會匯入所有的物件結構和資料
imp userid=system/manager full=y file=d:/xxx.dmp;
資料字典/動態效能試圖、基表
資料字典是oracle資料庫中最重要的組成部分,他提供列資料庫的一些系統資訊,資料字典的所有者是sys。使用者只有檢視功能。
基表存放資料庫的靜態資訊。
動態效能試圖記載歷程啟動後的相關資訊。
user_tables:用於顯示當前使用者自己所建立的表
select table_name from user_tables;
all_tables:用於顯示當前使用者可以訪問的所有表,
select table_name from all_tables;
dba_tables:它會顯示所有方案用於的資料庫庫。許可權必須是dba角色或者擁有select any table系統許可權
使用者名稱、許可權、角色
在建立使用者時會把使用者的資訊存放到資料字典中,資訊包括許可權和角色等;
通過查詢dba_users可以顯示所有資料庫使用者的詳細資訊;
資料字典試圖顯示使用者所具有的系統許可權:dba_sys_privs
資料字典試圖顯示使用者所具有的物件許可權:dba_tab_privs
資料字典顯示所具有的列許可權:sys_col_privs
資料字典試圖:dba_role_privs顯示使用者所具有的角色
//檢視soctt使用者的使用者角色
select * from dba_role_privs where GRANTEE=’socct’
//查詢oracle所有角色
select * from dba_roles;
//查詢oracle中所有的系統許可權
select * from system_privilege_map order by name;
// 查詢所有的物件許可權
select distinct privilede from dba_tab_privs;
//一個角色包含的系統許可權
select * from dba_sys_privs wheregrantee=’CONNECT’;
SELECT * FROM ROLE_SYS_PRIVS WHEREROLE=’CONNECT’;
//查詢一個角色對應的物件許可權
select * from dba_tab_privs wheregrantee=’CONNECT’
顯示當前使用者可以訪問的所有資料字典
select * from dict where comment like ‘%grant%’’
查詢資料庫的全稱:select* from global_name;
管理表空間和資料檔案
表空間:是資料庫的邏輯組成部分,從物理上資料庫資料時存放在檔案中的,從邏輯上講資料則是存放在表空間的,表空間是一個或者多個數據檔案組成
oracle中的邏輯結構包括表空間、表空間包括段、區、塊。最小的單元是塊,這樣邏輯結構有利於oracle管理
表空間的作用:
1. 控制資料庫所佔用的磁碟空間
2. dba可以將不同資料型別部署到不同的位置,這樣有利於提高i/o效能,同時有利於備份和恢復等管理操作。
建立表空間:
create tablespace命令完成,在一般情況下,建立表空間是特權使用者或者dba來執行,如果利用其他使用者建立表空間,則需要create tablespace 的系統許可權
create tablespace lkspace datafile‘d:/oracdata/lkspace.dbf’ size 200m uniform size 128k;
使用表空間
create lktable (id number(4),dname varchar2(10),snovarchar2(10)) tablespace lkspace;//建立表的時候使用表空間
改變表空間的狀態
在建立表空間時,表空間處於聯機狀態(online),此時表空間可以訪問,並且該表空間時可以讀寫的,可以在表空間中執行各種語句。
使表空間離線:
alter tablespace 表空間名 users offline
聯機:alter tablespace 表空間名usersonline
只讀:alter tablespace 表空間名 readonly;
可讀可寫:alter tablespace 表空間名 readwrite;
//查詢表空間中的所有表
select * from all_tables where tablespace_name=’表空間名’
//查詢表屬於那個表空間
select *tablespace_name,table_name from user_tables wheretable_name=’EMP’
//刪除表空間(dba許可權)
drop tablespace ‘表空間名’ includingcontents and datafiles;
including contents表示刪除表空間時刪除所有資料庫物件。Datafiles表示資料庫檔案也刪除
擴充套件表空間
1. 增加資料檔案
alter tablespace 表空間名 add datafile‘d:/lkspace’ size 200m;
2. 增加資料檔案的大小
alter tablespace 表空間名 ‘d:/test/lkspace.dnf’ reize 200m;//注意不要超多500m;
3. 設定檔案的增長
alter tablespace 表空間名‘d:/test/lkspace.dbf’ autoextend on next 10m maxsize 500m;
移動資料檔案
host move ‘舊的表空間檔案’‘新的表空間檔案’
alter tablespace lkspace rename datafile ‘d:/lkspace.dbf’