標籤:企業管理 const rowid 無法 鎖定 user 檢查 color nmp
一、Oracle內部結構
1.資料表空間
資料表空間是資料庫的邏輯劃分,一個資料表空間只屬於一個資料庫,每個資料表空間由一個或多個資料檔案組成,資料表空間中其他的邏輯結構的資料存放區在這些資料檔案中,一般oracle系統安裝後,會自動建立多個資料表空間,
oarcle11g 的主要資料表空間 //附(10 g 也是一樣的)
1).example :樣本資料表空間,用於存放樣本資料庫的方案對象資訊及其培訓資料
2).system: 是系統資料表空間,用於存放oracle系統內部表和資料字典的資料,如表名,列名,使用者名稱等,一般不贊成將使用者建立的表,索引等存放在system資料表空間中
3).sysaux: 是輔助系統資料表空間,主要存放oracle系統內部的常用範例使用者的對象,如存放cmr使用者的表和索引等。從而減少系統資料表空間的負苛,它一般不存諸使用者的資料,由oracle系統內部自動維護
4).undotbsi: 是重做資料表空間,存放資料庫中有關重做的相關資訊資料,當使用者對資料表進行修改(insert,update,delete)。oracle系統自動用重做資料表空間來臨時存放修改前的資料,當所做的修改完成並提交後,系統根據需要保留,修改前資料的時間長短來釋放重做資料表空間的部分空間。
5).users: 是使用者資料表空間,存放永久性使用者物件的資料和私人資訊,因此也稱為資料資料表空間,每個資料庫都應該有一個使用者資料表空間,以便在建立使用者時將其分配給使用者。
除了oracle系統預設建立的資料表空間以外,使用者可以根據應用系統的規模及其所要存放的對象的情況建立多個資料表空間,以區分使用者資料和系統資料。
/* 以下略
2.表
存放使用者資料的對象
3.約束條件
可以為表的一個列建立約束條件(Constraint)
1).主鍵約束
2).預設約束
3).檢查
4).唯一
5).外鍵
4.分區 (Partition)
在大型資料庫中,可以通過把一個大表的資料分成多個小表來簡化資料庫的管理,這些小表叫做分區,除了對錶分區外,還可以對索引進行分區,分區不僅簡化了資料庫的管理,還改善了其應用效能,在oracle中,能夠細分分區,建立子分區,例如,可以根據一組值分割一個表,然後再根據另外一種方法分割分區。
5.索引
為了能夠找到資料,表中的每一行都要用一個RowID表標識,RowID告訴資料庫這一行的準確位置,包擴所在的檔案,該檔案中的塊和該塊中行地址。
6.使用者
使用者帳號雖然不是資料庫中的一個物理結構,但它於資料庫中的對象有著重要的關係,這是因為使用者擁有資料對象,例如sys使用者擁有資料字典表,使用者system擁有訪問資料字典表的視圖
為資料庫建立對象必須(例如表)必須在使用者帳號下進行,可以對每一個使用者帳號進行自訂,以便將一個特定的資料表空間做為它的預設資料表空間
7.方案
使用者帳號擁有的對象集稱為使用者的方案(Schmea)
8.同義字
為了給不同的使用者使用資料庫物件時提供一個簡單的唯一標識資料庫物件的名稱,可以為資料庫物件建立同義字,
9.許可權及角色
10.段,盤區和資料區塊
依照不同的資料處理性質,可能需要在資料資料表空間內劃分出不同的地區,以存放不同資料,這些地區稱為段(Segment),例如,存放資料的地區稱為"資料區段",存放索引的稱為"索引區段",由於段是一個物理實體,所以必須它把分配到資料庫的一個資料表空間中(放在資料表空間的一個資料檔案中),而段其實就是由許多盤區(Exctent)給合而成的,當段中的空間用完時,該段就獲得另外的盤區。資料區塊(Data Block) 是最小的儲存單元,Oracle 資料庫是作業系統塊的倍數。
二、 Oracle外部結構
1.資料檔案
每個oracle資料庫都有一個或多個資料檔案(dataFile),而一個資料檔案只能屬於一個資料表空間,資料檔案建立後可以改變大小,建立新的資料表空間要建立新的資料檔案,資料檔案一旦加入資料表空間,就不能從這個資料表空間移走,也不能和其他資料表空間發生聯絡
2.重做記錄檔 (Redo Log Files)
oracle儲存所有資料庫事務的日誌,這些事務被記錄在聯機記錄檔(OnLine Rodo Log FIle)中,資料破壞了可以用這些日誌來恢複。一個資料庫至少需要兩個重做志檔案,oracle以迴圈的形式向記錄檔寫入,第一個日誌被添滿後,就向第二個寫入,然後依次類推,所有記錄檔被寫滿後,又回到第一個,用新的事務的資料進行重寫。
3.控制檔案 (Control Files)
用以記錄與描述資料庫的外部結構,它包括
1) oracle資料庫名稱與建立時間
2) 資料檔案與重設記錄檔名稱及所在位置
3) 記錄檔記錄序列碼( log sequence Nmuber)
每當資料庫被啟用時,oracle會在執行個體啟用後立刻讀取控制檔案內容,待所有資料庫外部結構檔案的在資訊都收集完比,資料庫才會啟動,為避兔控制檔案毀壞導致資料庫系統停止,建議使用者至少配置兩個控制檔案,並存放在不同的磁碟上。
三、Oracle 中的使用者(這裡是學習的重點)
--- sys 使用者
超級使用者,最有最高許可權,具有sysdba 角色,資料字典的擁有者,超級許可權擁有者(SYSDBA),它具有 createDatabase 許可權(只有它有!)
初始密碼是 change_on_install,此使用者不能刪除。
--- system 使用者
管理操作員,許可權非常大,具有sysopert 角色,但沒有 createDatabase 許可權
它預設的密碼是 manager ,此使用者不能被刪除。
--- scott 使用者
含有範例表 EMP 與 DEPT ,可以修改密碼,使用者可以被刪除,在產品環境下,建議刪除或鎖定,它是一個普通使用者。
預設密碼是 tiget,預設是鎖定的,可以將其解鎖後使用。
解鎖方式 :
使用 高許可權使用者登入, alter user scott account unlock;
與scott平級的還有:ADAMS/WOOD, JONES/STEEL, CLARK/CLOTH and BLAKE/PAPER.
--- outln使用者
最佳化計劃的儲存大綱使用者,密碼是outln
建議建立後立即修改密碼,此使用者不能被刪除。
--- HR/HR使用者
(Human Resources), OE/OE (Order Entry), SH/SH (Sales History).
實驗、測試使用者,含有例表EMPLOYEES與DEPARTMENTS
可以修改密碼,使用者可以被刪除,在產品環境建議刪除或鎖定。
--- DBSNMP使用者
密碼:DBSNMP
資料庫中用於智能代理(Intelligent Agent)的使用者,用來監控和管理資料庫相關效能的使用者,如果停止該使用者,則無法提取相關的資料資訊;可以改變密碼,需要放置新密碼到snmp_rw.ora檔案,如果不需要Intelligent Agents,可以刪除。
--- SYSMAN使用者
是Oracle資料庫中用於EM管理的使用者,如果你不用該使用者,也可以刪除。(EM:enterprise manage 網頁形式的 圖形化 管理方式,類似SqlServer的企業管理器可以對oracle進行管理、最佳化等)
四、初始使用者和資料表空間的建立
開啟sqlplus
建立資料表空間,建立一個使用者
1) 先在磁碟上建立目錄 f:/my_oracle_data2
2) 建立暫存資料表空間
SQL> create temporary tablespace user_temp //暫存資料表空間的名字(user_temp)是自己取的tempfile ‘f:\\my_oracle_data2\user_temp.dbf‘size 50m //初始大小autoextend on //設定自增next 50m maxsize 20480m //設定暫存資料表空間 每次自增50兆 最大值是20480兆extent management local; //表示資料表空間採用本地資料表空間管理 ,與之對應的是資料字典資料表空間管理(缺點多,9i以後廢棄)
3) 建立資料表空間
create tablespace user_data2loggingdatafile ‘f:\\my_oracle_data2\user_data.dbf‘size 50mautoextend onnext 50m maxsize 20480mextent management local;
4) 建立使用者,並指定了資料表空間
create user sa identified by "sa" default tablespace user_data2 temporary tablespace user_temp;//建立使用者的密碼 指定使用者是哪個資料表空間的 使用者預設的暫存資料表空
這裡如果用這個使用者登入 conn sa/sa 將出現如下錯誤
ORA-01045: user SA lacks CREATE SESSION privilege; logon denied 原因是沒許可權
授權 grant connect,resource to sa;
最後將會在指定的目錄裡找到我們建立的資料表空間:
附註: connect,resource 是角色名稱,有了它們可以串連資料庫,並在資料表空間中建表了
附:查詢所有的資料表空間和資料檔案對應情況
select * from DBA_DATA_FILES
Java基礎——Oracle(三)