淺談Oracle12c 資料庫、用戶、CDB與PDB之間的關係

来源:http://www.cnblogs.com/peasant/archive/2017/02/07/6374014.html
-Advertisement-
Play Games

淺談Oracle12c 資料庫、用戶、CDB與PDB之間的關係名詞介紹:資料庫:資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生 於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以 後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管 理 ...


淺談Oracle12c 資料庫、用戶、CDB與PDB之間的關係

名詞介紹:
資料庫:資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生 於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以 後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管 理的方式。
C D B:CDB全稱為Container Database,中文翻譯為容器資料庫。
P D B:PDB全稱為Pluggable Database,中文翻譯為可插拔資料庫。

首先,我來談一下資料庫、user和schema之間的關係。在我看,資料庫就像是含有好多小房間的一個大大的倉庫,然後我們把這個大倉庫分了好幾塊,這就是schema。分出來的小倉庫得有人管理啊,管理的就叫做user。當然了,用戶可以在這些小倉庫內放置許多許多的貨物,這個貨物就是表和數據。至於很多人不懂user和schema之間的區別,我在此引用網上的一段話來解釋下他們之間的關係:
“user即Oracle中 的用戶,和所有系統的中用戶概念類似,用戶所持有的是系統的許可權及資源;而schema所涵蓋的是各種對象,它包含了表、函數、包等等對象的“所在地”, 並不包括對他們的許可權控制。好比一個房子,裡面放滿了傢具,對這些傢具有支配權的是房子的主人(user),而不是房子(schema)。你可以也是一個 房子的主人(user),擁有自己的房子(schema).可以通過alter session的方式進入別人的房子。如果你沒有特別指定的話,你所做的操作都是針對你當前所在房子中的東西。至於你是否有許可權使用(select)、搬 動(update)或者拿走(delete)這些傢具就看這個房子的主人有沒有給你這樣的許可權了,或者你是整個大廈(DB)的老大(DBA)。alter session set schema可以用來代替synonyms。如果你想調用其他schema的對象(有許可權的前提下),但並沒有建synonym,同時又不想把其他 schema名字放入代碼中,就可以首先使用alter session set schema=<其他schema名字>。”
這段話形象的闡釋了user和schema的區別和聯繫。
下麵我再談一下12c與之前的版本中的區別,那麼大家來猜猜最“Strongly”的區別是什麼呢。Bingo,就是pdb和cdb概念的引入。
這裡引用一下Oracle12c新特性的文檔中的一張圖來更方便的解釋CDB和PDB的關係。

CDB都有什麼組成部分呢。其實通過上圖我們可以清楚的看到:
1、ROOT:root,又名CDB$ROOT,用來存儲Oracle提供的metadata和common user 的。metadata的一個例子是Oracle提供的PL/SQL包的源代碼。Common user 指的是一個所有容器都知道的資料庫用戶(註意,當我們想在資料庫中創建 用戶的時候,一般是不能往ROOT中創建的。我們需要先通過語句alter session set container = PDB’s name 轉換到相應名稱的PDB下再創建用戶, 要想詳細瞭解關於common user 和 local user 的區別的話,請參考Oracle 官方文檔《Oracle Database Security Guide》)。 一個CDB只能有一個根。
2、SEED:seed,又名PDB$SEED,是用來創建新的PDB的模版。但是,你不能在seed 里添加或者修改對象,一個CDB只能有一個SEED。
3、PDB:PDB展現給用戶和應用的形象就像是一個沒有CDB的普通資料庫一樣。例 如,一個PDB可以包括支持一個特定應用程式所需的所有數據和代碼。PDB 完全向後相容Oracle12c之前版本的所有資料庫。
以上的每個組成部分都被稱為容器(container),ROOT、SEED、PDB都是容器。而這些容器在CDB中都有他們自己唯一的容器ID和名稱。我們可以很輕鬆的向CDB中插入一個PDB或者從CDB中拔出一個PDB。當我們將一個PDB插入CDB中時,相當於將這個PDB與CDB連接起來。反之則解除關係。
什麼?你問我Oracle為什麼這麼乾,這令你感到麻煩並且困擾。那麼,我告訴你。這其實大大方便了數據的遷移。我們可以很方便的將一個特定的PDB從一個CDB挪到另一個CDB上面而不改變裡面的任何數據和架構。這難道不是很wonderful嗎?當然,一個PDB只能在同一時間內插入一個CDB而不是多個。每一個PDB都有自己獨一無二的全局唯一標識符(GUID)來預防PDB的錯亂使用。
這篇文章到此結束啦~Hope can help~~


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

-Advertisement-
Play Games
更多相關文章
  • LostFindActivity.java 下邊是設置嚮導: BaseSetupActivity.java Setup1Activity.java styles.xml btn_green_selector.xml //狀態選擇器(selector)設置給view,點擊會有相應的效果 .9.png( ...
  • 記憶體溢出 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory;比如申請了一個integer,但給它存了long才能存下的數,那就是記憶體溢出。 記憶體泄露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體泄露危害可 ...
  • ### 需求:1. textView 需要placeholder用來提示輸入2. textView 要做字數限制 3. textView 禁止表情符號的輸入### 思考:因為需求比較通用,便想通過自定義SJTextView來實現:1. placeholder 通過在textView上添加一個透明的l... ...
  • `ConstraintLayout`讓你可以在很平的view結構(沒有多層佈局嵌套)中構建一個複雜的佈局結構. 有點像`RelativeLayout`, 所有的view都是根據它和兄弟View和父layout的關係佈局的, 但是它比`RelativeLayout`要更加靈活, 在Layout Edi... ...
  • 1. 功能介紹 1.1. Volley Volley 是 Google 推出的 Android 非同步網路請求框架和圖片載入框架。在 Google I/O 2013 大會上發佈。 名字由來:a burst or emission of many things or a large amount at ...
  • 備份: 還原: 導入 導出數據: 參數說明: h:指明資料庫宿主機的IP u:指明資料庫的用戶名 p:指明資料庫的密碼 d:指明資料庫的名字 c:指明collection的名字 f:指明要導出那些列 o:指明到要導出的文件名 q:指明導出數據的過濾條件 ...
  • 1.安裝 brew install mongodb 2.啟動 mongod config /usr/local/etc/mongod.conf 3.顯示資料庫列表 show dibs 4.顯示當前資料庫中的集合(類似關係資料庫中的表) show collections 5.顯示用戶 show use ...
  • 下麵,列出一些實用的表達式: 1,路徑取文件名 2,空字元設置預設值 1 LEN([STRING_COLUMN]) == 0 ? "default value" : [STRING_COLUMN] 2 ISNULL([STRING_COLUMN]) ? "default value" : [STRI ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...