1. 程式人生 > >Oracle進階二

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’