Oracle 12 Container,簡(jiǎn)稱CDB,是指容器數(shù)據(jù)庫(kù),是Oracle 12c中的新特性。它可以讓多個(gè)數(shù)據(jù)庫(kù)共享同一個(gè)實(shí)例,從而在提供更好的資源共享的同時(shí),減少了數(shù)據(jù)庫(kù)數(shù)量,并且可以減少軟硬件的成本。此外,容器數(shù)據(jù)庫(kù)還可以讓用戶通過(guò)容器方式來(lái)管理和維護(hù)數(shù)據(jù)庫(kù)。
在容器數(shù)據(jù)庫(kù)中,有兩種概念:容器和插件數(shù)據(jù)庫(kù)。容器是一種特殊的數(shù)據(jù)庫(kù),它包含了多個(gè)插件數(shù)據(jù)庫(kù)。插件數(shù)據(jù)庫(kù)則是一種普通的數(shù)據(jù)庫(kù),它是由容器創(chuàng)建的,并且只能在容器中運(yùn)行。
假設(shè)我們有三個(gè)應(yīng)用程序:App1,App2和App3,它們都需要使用數(shù)據(jù)庫(kù)。在沒(méi)有容器數(shù)據(jù)庫(kù)的情況下,我們需要為每個(gè)應(yīng)用程序都創(chuàng)建一個(gè)獨(dú)立的數(shù)據(jù)庫(kù),然后配置和管理這些數(shù)據(jù)庫(kù)。這將會(huì)增加我們的成本和復(fù)雜度。但是如果我們使用容器數(shù)據(jù)庫(kù),我們可以只創(chuàng)建一個(gè)容器數(shù)據(jù)庫(kù),并在其中創(chuàng)建三個(gè)插件數(shù)據(jù)庫(kù),分別給每個(gè)應(yīng)用程序使用。
CREATE PLUGGABLE DATABASE plug1 ADMIN USER pdb_admin IDENTIFIED BY password1; CREATE PLUGGABLE DATABASE plug2 ADMIN USER pdb_admin IDENTIFIED BY password1; CREATE PLUGGABLE DATABASE plug3 ADMIN USER pdb_admin IDENTIFIED BY password1;
容器數(shù)據(jù)庫(kù)可以讓多個(gè)插件數(shù)據(jù)庫(kù)運(yùn)行在同一個(gè)實(shí)例中,這樣可以減少資源的浪費(fèi),降低硬件成本。不僅如此,它還可以讓用戶以容器方式來(lái)管理數(shù)據(jù)庫(kù)。例如,我們可以使用SQL命令“alter system set container =
ALTER SYSTEM SET CONTAINER=plug1;
在容器數(shù)據(jù)庫(kù)中,有一個(gè)特殊的插件叫做根插件。根插件是容器數(shù)據(jù)庫(kù)的管理組件,它包含了所有的共享資源和元數(shù)據(jù)。當(dāng)您創(chuàng)建一個(gè)容器數(shù)據(jù)庫(kù)時(shí),Oracle會(huì)自動(dòng)為您創(chuàng)建一個(gè)根插件。所有插件數(shù)據(jù)庫(kù)都必須連接到根插件。如果您需要管理容器數(shù)據(jù)庫(kù),您需要連接到根插件。
CONN sys/password@//: / AS SYSDBA
總的來(lái)說(shuō),Oracle 12容器數(shù)據(jù)庫(kù)是一個(gè)非常有用的工具,它可以讓多個(gè)數(shù)據(jù)庫(kù)共享同一個(gè)實(shí)例,從而減少資源的浪費(fèi)和增加資源利用率。此外,它還可以讓用戶以容器方式來(lái)管理和維護(hù)數(shù)據(jù)庫(kù),從而提高了效率和便捷性。