OracleDBA之數據庫管理

  如下這些東西是個人麥庫上存的當時學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';
相關文章
相關標籤/搜索