Java基礎——Oracle(三)

来源:http://www.cnblogs.com/1693977889zz/archive/2017/10/17/7684362.html
-Advertisement-
Play Games

一、Oracle內部結構 1.表空間 表空間是資料庫的邏輯劃分,一個表空間只屬於一個資料庫,每個表空間由一個或多個數據文件組成,表空間中其他的邏輯結構的數據存儲在這些數據文件中,一般oracle系統安裝後,會自動建立多個表空間, oarcle11g 的主要表空間 //附(10 g 也是一樣的) 1) ...


一、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_data2
logging
datafile 'f:\\my_oracle_data2\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent 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

輸出如下:

SQL> conn system/aaaaaaaa as sysdba
已連接。
SQL> select * from DBA_DATA_FILES;

FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
         4 USERS                             5242880        640 AVAILABLE
           4 YES 3.4360E+10    4194302          160    5177344         632
ONLINE


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
         3 SYSAUX                          272629760      33280 AVAILABLE
           3 YES 3.4360E+10    4194302         1280  272564224       33272
ONLINE


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
         2 UNDOTBS1                         73400320       8960 AVAILABLE
           2 YES 3.4360E+10    4194302          640   73334784        8952
ONLINE


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
         1 SYSTEM                          503316480      61440 AVAILABLE
           1 YES 3.4360E+10    4194302         1280  503250944       61432
SYSTEM


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
         5 EXAMPLE                         104857600      12800 AVAILABLE
           5 YES 3.4360E+10    4194302           80  104792064       12792
ONLINE


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\MY_ORACLE_DATA\USER_DATA.DBF
         6 USER_DATA                        52428800       6400 AVAILABLE
           6 YES 2.1475E+10    2621440         6400   52363264        6392
ONLINE


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\MY_ORACLE_DATA2\USER_DATA.DBF
         7 USER_DATA2                       52428800       6400 AVAILABLE
           7 YES 2.1475E+10    2621440         6400   52363264        6392
ONLINE


已選擇7行。

SQL>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. Operation 設置依賴關係 先看看如何設置operation的依賴關係。 啥叫依賴關係?有啥用啊?打個比方咱們要做一個聽音樂的付費App項目,需要經過登陸、付費、下載、播放四個步驟。其實一看就明白,這四個操作是有先後順序的,但假如所有的操作都是多線程,咱們怎麼控制順序?通過設置“優先順序” ...
  • 上一篇博客描述了一個簡單的串口應用程式和驅動程式,瞭解了應用程式訪問串口的基本操作,如打開串口,設置串口,寫串口,讀串口,關閉串口等。和Linux串口驅動的基本框架。這裡將瞭解Android下的串口系統框架,仍然使用上一篇博客中的tiny_serial.c作為本例的驅動,本例實現的功能不變,無論應用 ...
  • 關註react native這個技術很久了,去年就做了一個簡單的Demo,最近有時間,重新瞭解了一下react native的現狀,發現已經有很大的進步,現在完善了一下原有的項目,並重新開源共用一下。 背景 對react native這個技術關註很久了,去年也花了很長時間學習,但中途因為時間問題沒有 ...
  • DEVELOPER.XIAOYAOLI 技術筆記 簡單的利用UIImagePickerController調用iPhone攝像頭獲取照片的方法,同時介紹了怎麼添加overlay,用於自定義預覽界面 UIImagePickerController是一種獲取攝像頭照片取景器的方法,簡單的實現方法如下,我 ...
  • 1. 進程和線程 1.1 進程 進程:正在運行的應用程式叫進程 進程之間都是獨立的,運行在專用且受保護的記憶體空間中 兩個進程之間無法通訊 通俗的理解,手機上同時開啟了兩個App。這兩個App肯定是在不同的進程中的。所以這兩個App之間是獨立的,記憶體中的數據不能互相竄來竄去,兩個App之間也沒有辦法進 ...
  • 隨著信息時代的到來,數據開始急劇膨脹,業務也變得很複雜,我們每個人都是個數據源,每時每刻都在產生著數據與個性化、實時化的需求,原本的人力以及伺服器已經不足以支撐數據處理平臺的業務。由此,流式數據處理便應運而生。 ...
  • Oracle sql: 4天 plsql: 2天 proc: 2天 1. 資料庫介紹 1.1 資料庫簡介 1.1.1 數據管理技術的發展 人工管理階段:20世紀50年代中期之前 文件管理階段:20世紀的50年代末期到60年代中期 缺點:數據冗餘 數據的不准確 數據之間的聯繫弱 資料庫管理階段: 數據 ...
  • PLSQL 1.常用的訪問資料庫的相關技術 1) plsql 過程化的sql 2) proc/c++ 在c/c++語言中訪問oracle資料庫的技術 3) ado/odbc vc中訪問資料庫的技術 4) oci oracle底層提供的客戶端的連接介面 5) sql j/jdbc java訪問資料庫的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...