![Oracle Certified Professional 063 - Multitenant 操作文檔手冊(cè)_第1頁(yè)](http://file4.renrendoc.com/view/390f7dd3d195d080e10df49a652aaf0e/390f7dd3d195d080e10df49a652aaf0e1.gif)
![Oracle Certified Professional 063 - Multitenant 操作文檔手冊(cè)_第2頁(yè)](http://file4.renrendoc.com/view/390f7dd3d195d080e10df49a652aaf0e/390f7dd3d195d080e10df49a652aaf0e2.gif)
![Oracle Certified Professional 063 - Multitenant 操作文檔手冊(cè)_第3頁(yè)](http://file4.renrendoc.com/view/390f7dd3d195d080e10df49a652aaf0e/390f7dd3d195d080e10df49a652aaf0e3.gif)
![Oracle Certified Professional 063 - Multitenant 操作文檔手冊(cè)_第4頁(yè)](http://file4.renrendoc.com/view/390f7dd3d195d080e10df49a652aaf0e/390f7dd3d195d080e10df49a652aaf0e4.gif)
![Oracle Certified Professional 063 - Multitenant 操作文檔手冊(cè)_第5頁(yè)](http://file4.renrendoc.com/view/390f7dd3d195d080e10df49a652aaf0e/390f7dd3d195d080e10df49a652aaf0e5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
OracleCertifiedProfessionalTrainingOracleCertifiedProfessionalTrainingOCPTECHNOLOGYCode:1Z0-063Multitenant課程前提:需11g版本內(nèi)容作為支持前言(版本理解)官方文檔引用系列\(zhòng)hOracleDatabaseRelease19c:DatabaseAdministrator'sGuide\hOracleDatabaseRelease19c:BackupandRecoveryReference\hOracleDatabaseRelease19c:BackupandRecoveryUser'sGuide\hOracleDatabaseRelease19c:DatabaseConcepts\hOracleDatabaseRelease19c:DatabaseNewFeaturesGuide\hOracleDatabaseRelease19c:MultitenantAdministrator'sGuide\hOracleDatabaseRelease12c:DatabaseAdministrator'sGuide(PartVIManaginga\hMultitenantEnvironment)\hOracleDatabaseRelease12c:BackupandRecoveryReference\hOracleDatabaseRelease12c:BackupandRecoveryUser'sGuide\hOracleDatabaseRelease12c:DatabaseConcepts第1 章企業(yè)管理器介紹EMDCEnterpriseManagerDatabaseControl針對(duì)12c之前的單實(shí)例數(shù)據(jù)庫(kù),可采用emca–configdbcontroldb–reposrecreate命令進(jìn)行手工創(chuàng)建。EMDEEnterpriseManagerDatabaseExpressEnterpriseManager(EM)DatabaseExpress是一個(gè)輕量級(jí)管理工具。該工具可為單個(gè)OracleDB(或數(shù)據(jù)庫(kù)集群)提供基于Web的現(xiàn)成管理解決方案,包括性能監(jiān)視、配置管理、管理、診斷和優(yōu)化。EMDatabaseExpress的目標(biāo)是公開隨數(shù)據(jù)庫(kù)安裝提供的主要EnterpriseManager數(shù)據(jù)庫(kù)功能,其開發(fā)成本較低并且在數(shù)據(jù)庫(kù)中占用的空間很少。EMDatabaseExpress占用的空間很少,只有50-100MB。它使用最低限度的CPU和內(nèi)存開銷在數(shù)據(jù)庫(kù)內(nèi)運(yùn)行,因?yàn)閿?shù)據(jù)庫(kù)僅運(yùn)行SQL調(diào)用,而在瀏覽器中執(zhí)行UI呈現(xiàn)。EMExpressUI使用基于Web的控制臺(tái)與XMLDB中提供的內(nèi)置Web服務(wù)器進(jìn)行通信。處理來(lái)自控制臺(tái)的請(qǐng)求時(shí),是EMExpressservlet在處理這些請(qǐng)求,包括驗(yàn)證、會(huì)話管理、壓縮和高速緩存。該servlet處理報(bào)告的請(qǐng)求并返回由Web瀏覽器呈現(xiàn)的XML頁(yè)面。通常每個(gè)頁(yè)面只有一個(gè)請(qǐng)求,以減少與數(shù)據(jù)庫(kù)之間的往返次數(shù)。針對(duì)12c之后的單實(shí)例數(shù)據(jù)庫(kù)。配置級(jí)別可在CDB也可以在PDB為CDB配置EMDatabaseExpressDISPATCHERS參數(shù)SQL>showparameterdispatch使用DBMS_XDB_CONFIG.setHTTPsPortSQL>execdbms_xdb_config.sethttpsport(5500);URLDatabaseExpresshttps://localhost:5500/em注意:瀏覽器需要有Flash插件。\h/OracleDatabase12c,EMDatabaseControlDatabaseExpress取代。DatabaseExpressDatabaseConfigurationAssistantDBCA)中通過(guò)一EMGC可以監(jiān)控多臺(tái)服務(wù)器和數(shù)據(jù)庫(kù),12c開始推薦使用EMCC。EMCCEnterpriseManagerCloudControl設(shè)計(jì)的主要目標(biāo)EnterpriseManagerCloudControl包括以下功能:(AWR)AWR報(bào)告ExadataExalogicExadataExalogic系統(tǒng)的完整生命周期管理MyOracleSupportApplicationTesting數(shù)據(jù)庫(kù)管理:提供對(duì)OracleDBFusionMiddlewareFusionApplications的管理CloudControl組件EnterpriseManagerCloudControl包括四個(gè)主要組件,如下所示:OracleManagementRepository(OMR)OracleManagementService(OMS)OracleManagementAgent(OMA或代理)CloudControlConsoleOracleManagementAgentOracleManagementServiceOMSOracleManagementRepositoryOMSOMSOMSCloudControlConsoleWebCloudControl.2CloudControl控制EnterpriseManagerCloudControl框架中的每個(gè)組件都具有自己的實(shí)用程序,可以使用RAC數(shù)據(jù)庫(kù)需要使用ServerControl命令;對(duì)于單個(gè)實(shí)例,可以選擇SQL*Plus或ServerControl。如果安裝了OracleRestart,并向OLR注冊(cè)了數(shù)據(jù)庫(kù),則可以使用ServerControl。要啟動(dòng)和停止監(jiān)聽程序,請(qǐng)使用ServerControl實(shí)用程序或lsnrctl命令。示例:srvctlstopdatabase-dorcl-oimmediatesrvctlstartdatabase-dorcl-oopen.3CloudControl啟動(dòng)要啟動(dòng)整個(gè)EnterpriseManagerCloudControl框架,請(qǐng)執(zhí)行以下步驟:$ORACLE_HOME/bin/lsnrctlstart$ORACLE_HOME/bin/sqlplus/assysdbaSQL>startup啟動(dòng)OM包括OHS和WeLgc:$OMS_HOME/bin/emctlstartoms(在OM/:$AGENT_HOME/bin/emctlstartagent$AGENT_HOME/bin/emctlstartagent注:如果資料檔案庫(kù)具有RAC實(shí)例,請(qǐng)使用SRVCTL命令。1.4.4CloudControl停止要停止整個(gè)要停止整個(gè)EnterpriseManagerCloudControl框架,請(qǐng)執(zhí)行以下步驟:$AGENT_HOME/bin/emctlstopagent(在OM/:$AGENT_HOME/bin/emctlstopagent停止OM包括OHS和WeLgc:$OMS_HOME/bin/emctlstopoms$ORACLE_HOME/bin/sqlplus/assysdbaSQL>shutdownimmediate注:如果資料檔案庫(kù)具有RAC實(shí)例,請(qǐng)使用SRVCTL命令。第2 章容器數(shù)據(jù)庫(kù)體系結(jié)構(gòu)基本概念容器數(shù)據(jù)庫(kù)CDB與非容器數(shù)據(jù)庫(kù)Non-CDB(術(shù)語(yǔ)“非CDB”將用作12.1之前版本的數(shù)據(jù)庫(kù)的一種簡(jiǎn)稱)CDB:ContainerDatabase容器數(shù)據(jù)庫(kù)Non-CDB:非CDB數(shù)據(jù)庫(kù)(特指舊的數(shù)據(jù)庫(kù)12c版本之前的數(shù)據(jù)庫(kù))PDB:PluggableDatabase可插入、插接式的(拔插數(shù)據(jù)庫(kù))目前體系的不足Oracle11gCDB體系結(jié)構(gòu)12.112.1GA的OracleSGA您需要將應(yīng)用程序升級(jí)到新版本時(shí),必須升級(jí)每個(gè)數(shù)據(jù)庫(kù),這會(huì)花費(fèi)DBA很多時(shí)間。新體系結(jié)構(gòu)的變化CDBDBASYSSYS將非CDB插入CDB可避免以下冗余:后臺(tái)進(jìn)程內(nèi)存分配Oracle元數(shù)據(jù)將多個(gè)應(yīng)用程序歸為一組的程、一個(gè)SGAPDB共有的,而每個(gè)PDBCDB幻燈片中的圖顯示了具有四個(gè)容器的CDB:根、種子和兩個(gè)PDB。這兩個(gè)應(yīng)用程序使用單個(gè)實(shí)例并單獨(dú)進(jìn)行維護(hù)。在物理級(jí)別,CDB與非CDB一樣有一個(gè)數(shù)據(jù)庫(kù)實(shí)例和多個(gè)數(shù)據(jù)庫(kù)文件。重做日志文件是整個(gè)CDBPDB識(shí)。CDB中的所有PDB都共享的ARCHIVELOG控制文件是整個(gè)CDBPDB12.2版本之前每個(gè)實(shí)例僅有一個(gè)(12.2版本開始,UNDO可PDB中)根或PDBPDBPDB中本地用戶或公用用戶使用的臨時(shí)表空間。SYSTEM表空間(據(jù))SYSAUXPDBPDBCON_ID新體系的優(yōu)點(diǎn)配置注意事項(xiàng)在OracleDatabase12c中,一個(gè)實(shí)例將與整個(gè)CDB關(guān)聯(lián)。如果同一個(gè)服務(wù)器上有多個(gè)數(shù)據(jù)庫(kù),則每個(gè)非CDB或CDB具有單獨(dú)的相異實(shí)例。實(shí)例不能在非CDB和CDB之間共享。在OracleDatabase12c中,有三個(gè)可能的配置選項(xiàng):多租戶配置:通常每個(gè)CDB有多個(gè)PDBPDBOracle多租戶選項(xiàng)CDBOracleDatabase11gContainer容器V$CONTAINERS中有兩種類型的容器:根容器:在創(chuàng)建CDB它是必需的OracleOracle(PDB):PDB:PDB$SEEDPDB12.2版本之前CDB中(253PDB,12.2版本之后限制一個(gè)CDB中(包括種子)可以有4098個(gè)PDB(SQL>showparametermax_pdbs)限制一個(gè)1024個(gè)服務(wù)(:表空間()方案//已創(chuàng)建//總之,CDB是一個(gè)包含根的OracleDB,并最終包含多個(gè)可插入數(shù)據(jù)庫(kù)。。CDB中僅有一個(gè)種子PDB。種子PDB是用于創(chuàng)建新PDB的系統(tǒng)提供的模板。B.13個(gè)P(28個(gè)子。V$CONTAINERS視圖顯示包括根在內(nèi)的所有容器。第3 章用戶權(quán)限角色公共用戶和本地用戶本地用戶非 CDB中的用戶射到PDB中本地用。在PDBPDBPDB。PDB,在該P(yáng)DBPDB他PDB的應(yīng)用程序。而且,不能在根中定義任何本地用戶。公用用戶rootCDBPDB中復(fù)制的用戶。CDB的每個(gè)PDBPDBPDB、啟動(dòng)CDB或在授予正確權(quán)限時(shí)打開PDB。公共和本地權(quán)限角色本地角色非CDB中的角色映射到PDB中的本地角色。本地角色在PDB自己的數(shù)據(jù)字典中定義,所以在該P(yáng)DB之外不知道該角色,并且只能在其PDB內(nèi)使用該角色。公用角色次創(chuàng)建將在所有PDB本地與公用權(quán)限CONTAINER=CURRENT子句在本地授予權(quán)限或者使用CDB數(shù)據(jù)字典視圖為支持CDBCDB_xxxDBA_xxxCDB_xxxCon_IDPDBCDB_xxxCDB_xxx視CDB_xxx來(lái)自根以及當(dāng)前所有打開的上的相應(yīng)DBA_xxx視圖的結(jié)果的集合PDBCDB_xxxCDB_USERSDBA_USERS(PDBCDB_USERS或DBA_USERSPDB第4 章創(chuàng)建容器數(shù)據(jù)庫(kù)和可插入數(shù)據(jù)庫(kù)創(chuàng)建容器數(shù)據(jù)庫(kù)步驟使用DBCA或SQL*Plus創(chuàng)建新CDB所需的步驟相同。(非CDB或CDB)init.ora第三步是使用命令和新子句ENABLEPLUGGABLE指定數(shù),從而創(chuàng)建CDBSYSTEM(其中包括Oracle)以及針對(duì)的SYSAUX(用于SYSAUX和SYSTEM表空間SEEDFILE_NAME_CONVERTPDBOracleManagedFilescatcdb.sqlSQL*PLUS管理員手冊(cè)中關(guān)于手工創(chuàng)建數(shù)據(jù)庫(kù)章節(jié)管理員手冊(cè)中關(guān)于手工創(chuàng)建數(shù)據(jù)庫(kù)章節(jié):/en/database/oracle/oracle-database/19/admin/creating-and-configuring-an-oracle-database.html#GUID-18B03451-5C74-4B53-A892-656C3E8A2556CreatingaDatabasewiththeCREATEDATABASEStatement多租戶管理員手冊(cè)中關(guān)于手工創(chuàng)建數(shù)據(jù)庫(kù)章節(jié):/en/database/oracle/oracle-database/19/multi/creating-and-configuring-a-cdb.html#GUID-54C5126C-427A-4BFE-81BF-950FB1A062D5Completesteps1-8inthe“CreatingaDatabasewiththeDATABASEStatement”topicinOracleDatabaseAdministrator’sGuide.UsetheCREATEDATABASEstatementtocreateanewCDB.Runthecatcdb.sqlSQLscript.EnterthefollowinginSQL*Plustorunthescript:@?/rdbms/admin/catcdb.sqlWhenpromptedbythescript,enterthelogfiledirectoryforparameter1andthelogfilenameforparameter2.Forfollowingexampleenters/tmpforthefirstpromptandcreate_cdb.logforthesecondprompt:SQL>hostperl-I&&rdbms_admin&&rdbms_admin_catcdb--logDirectory&&1--logFilename&&2Entervaluefor1:Entervaluefor2:create_cdb.logWhenpromptedbythescript,enteranyotherrequiredinformation.Forexample,thescriptspromptsforadministratorpasswordsandthetemporarytablespacename:EnternewpasswordforSYS:********EnternewpasswordforSYSTEM:********Entertemporarytablespacename:TEMPAftercatcdb.sqlcompletes,performsteps12-inthe“CreatingaDatabasewiththeCREATEDATABASEStatement”topicinOracleDatabaseGuide. -割割割 實(shí)驗(yàn):具體例子CDB創(chuàng)建密碼文件cd$ORACLE_HOME/dbs/orapwdfile=orapwNEWCDBformat=12entries=10創(chuàng)建靜態(tài)參數(shù)文件cd$ORACLE_HOME/dbs/viminitNEWCDB.ora 內(nèi)容- db_name=NEWCDBdb_block_size=8192control_files='/u01/app/oracle/oradata/NEWCDB/control01.ctl'db_create_file_dest='/u01/app/oracle/oradata/NEWCDB'enable_pluggable_database=TRUE注意:靜態(tài)參數(shù)文件里面定義的路徑,記得提前在OS系統(tǒng)創(chuàng)建,否則執(zhí)行語(yǔ)句報(bào)錯(cuò)。mkdir/u01/app/oracle/oradata/NEWCDBmkdir/u01/app/oracle/oradata/NEWCDB/pdbseednomountexportORACLE_SID=NEWCDBsqlplus/assysdbastartupnomountpfile='$ORACLE_HOME/dbs/initNEWCDB.ora'執(zhí)行建庫(kù)語(yǔ)句CREATEDATABASENEWCDBUSERSYSIDENTIFIEDBYoracleUSERSYSTEMIDENTIFIEDBYoracleLOGFILEGROUP1('/u01/app/oracle/oradata/NEWCDB/redo01a.log','/u01/app/oracle/oradata/NEWCDB/redo01b.log')SIZE100MBLOCKSIZE512,GROUP2('/u01/app/oracle/oradata/NEWCDB/redo02a.log','/u01/app/oracle/oradata/NEWCDB/redo02b.log')SIZE100MBLOCKSIZE512,GROUP3('/u01/app/oracle/oradata/NEWCDB/redo03a.log','/u01/app/oracle/oradata/NEWCDB/redo03b.log')SIZE100MBLOCKSIZE512MAXLOGHISTORY1MAXLOGFILES16MAXLOGMEMBERS3MAXDATAFILES1024CHARACTERSETAL32UTF8NATIONALCHARACTERSETAL16UTF16EXTENTMANAGEMENTLOCALDATAFILE'/u01/app/oracle/oradata/NEWCDB/system01.dbf'SIZE700MREUSEAUTOEXTENDONNEXT10240KMAXSIZEUNLIMITEDSYSAUX'/u01/app/oracle/oradata/NEWCDB/sysaux01.dbf'SIZE550MREUSEONNEXT10240KMAXSIZEUNLIMITEDdeftbs'/u01/app/oracle/oradata/NEWCDB/deftbs01.dbf'SIZE500MREUSEONMAXSIZEUNLIMITEDDEFAULTTEMPORARYTABLESPACEtempts1TEMPFILE'/u01/app/oracle/oradata/NEWCDB/temp01.dbf'SIZE20MREUSEAUTOEXTENDONNEXT640KMAXSIZEUNLIMITEDUNDOundotbs1'/u01/app/oracle/oradata/NEWCDB/undotbs01.dbf'SIZE200MREUSEONNEXT5120KMAXSIZEUNLIMITEDENABLEPLUGGABLESEEDFILE_NAME_CONVERT=SYSTEMSIZE125MONNEXT10MMAXSIZEUNLIMITEDSYSAUXSIZE100MUSER_DATATABLESPACEusertbsDATAFILE'/u01/app/oracle/oradata/NEWCDB/pdbseed/usertbs01.dbf'SIZE200MREUSEAUTOEXTENDONMAXSIZEUNLIMITED;執(zhí)行腳本這時(shí)候直接執(zhí)行腳本會(huì)報(bào)錯(cuò),提前把問(wèn)題處理好:exportORACLE_SID=NEWCDBexportPATH=.:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin:${PATH}find$ORACLE_HOME-nameUtil.pmvim$ORACLE_HOME/rdbms/admin/catcdb.pl------------把utilqw改為Utilqw------------useTerm::ReadKey;#tonotechopassworduseGetopt::Long;useCwd;useFile::Spec;useData::Dumper;useUtilqw(trim,splitToArray);usecatconqw(catconSqlplus);cd/u01/app/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/Hash/sqlplus/assysdba@$ORACLE_HOME/rdbms/admin/catcdb.sqlSQL>hostperl-I&&rdbms_admin&&rdbms_admin_catcdb--logDirectory&&1--logFilename&&2Entervaluefor1:/tmpEntervaluefor2:abc.logEnternewpasswordforSYS:oracleEnternewpasswordforSYSTEM:oracleEntertemporarytablespacename:TEMP…………..catcon:ALLcatcon-relatedoutputwillbewrittento[/tmp/utlrp_catcon_18009.lst]catcon:See[/tmp/utlrp*.log]filesforoutputgeneratedbyscriptscatcon:See[/tmp/utlrp_*.lst]filesforspoolfiles,ifanycatcon.pl:completedsuccessfullyDBCADBCACreateAsContainerDatabase(。選中“eaeaaaeithaltigtin(”復(fù)選acedM(”復(fù)選新子句SEEDFILE_NAME_CONVERT與傳統(tǒng)非與傳統(tǒng)非CDBCREATEDATABASE語(yǔ)句相比,該語(yǔ)句有哪些新特性?如果您希望數(shù)據(jù)庫(kù)為容器數(shù)據(jù)庫(kù),所需的第一個(gè)重要子句是ENABLEPLUGGABLEDATABASE,而聲明種子數(shù)據(jù)文件目錄的一種方法是使用SEEDFILE_NAME_CONVERT子句。FILE_NAME_CONVERT指定復(fù)制到目標(biāo)種子目錄的根數(shù)據(jù)文件的源目錄。根目錄/u01/app/oradata/CDB1和種子目錄/u01/app/oradata/CDB1/seed必須存在。ENABLEPLUGGABLEOracleManagedFiles如果不使用明確的數(shù)據(jù)文件名,則使用OracleManagedFiles(OMF):SYSTEM、UNDO和錄值設(shè)置實(shí)例參數(shù)。實(shí)例參數(shù)如果不使用SEEDFILE_NAME_CONVERT子句,則需要使用新實(shí)例參數(shù):PDB_FILE_NAME_CONVERT)()/u01/app/oradata/CDB1和/u01/app/oradata/seed目錄必須存在。預(yù)配新的可插入數(shù)據(jù)庫(kù)在CDB中預(yù)配新PDB的方法有多種。從種子(即PDB$SEEDPDB)創(chuàng)建新PDBPDBCDB作為PDBCDBCDB個(gè)CDBCDBCDBCDB的好方法,這讓您有機(jī)會(huì)比較新PDB和原始非CDB的性能,或者至少等到您認(rèn)為PDB可以正常工作為止。從同一CDB的一個(gè)PDBPDBPDBPDBCDB的另一個(gè)PDB克隆一個(gè)PDB將移走的PDBCDBPDBOraclePDBOracleDBPDB,然CDB,而不是將CDBPDB$SEEDPDB用種子創(chuàng)建新PDB幾乎可以即時(shí)完成。此操作會(huì)將數(shù)據(jù)文件從READONLY種子PDB復(fù)制到在CREATEPLUGGABLEDATABASE語(yǔ)句中定義的目標(biāo)目錄。還會(huì)創(chuàng)建表空間,例如用于存儲(chǔ)完整目錄(其中包括指向Oracle提供的對(duì)象的元數(shù)據(jù))的SYSTEM,用于本地輔助數(shù)據(jù)的SYSAUX,用于臨時(shí)數(shù)據(jù)的TEMP。會(huì)創(chuàng)建存在于種子PDB中的默認(rèn)方案和公用用戶,繼續(xù)擁有所有超級(jí)用戶權(quán)限的SYSPDBSYSTEMPDB_DBAPDBSYSPDB_DBAPDBAPDB此外,還會(huì)為PDB創(chuàng)建新的默認(rèn)服務(wù)。使用位置子句從種子創(chuàng)建新PDB的步驟如下所示:以擁有PLUGGABLE執(zhí)行PLUGGABLE從種子創(chuàng)建新PDB的步驟如下所示:以擁有PLUGGABLE執(zhí)行PLUGGABLE語(yǔ)句。ADMINUSERCONNECT和空PDB_DBA角色定義在PDB中創(chuàng)建的PDBA用戶。如果使用ManagedFiles(OMF)PDB的數(shù)據(jù)文件的目標(biāo)目錄。子句為PDBCDB如果不使用OMF,F(xiàn)ILE_NAME_CONVERTPDB3. PDBCDB_PDBS視圖顯示PDB列表,CDB_TABLESPACES視圖顯示新PDB的表空間列表(M、X。以任何PDB中都存在的SYS用戶或以admin1用戶身份連接到PDB。實(shí)驗(yàn):具體例子使用FILE_NAME_CONVERT參數(shù)mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod1createpluggabledatabasepdbprod1adminuserhenryidentifiedbyhenryroles=(connect)file_name_convert=('/u01/app/oracle/oradata/CDBOCP/pdbseed','/u01/app/oracle/oradata/CDBOCP/pdbprod1');使用CREATE_FILE_DEST參數(shù)mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod2createpluggabledatabasepdbprod2adminuserhenryidentifiedbyhenryroles=(connect)create_file_dest='/u01/app/oracle/oradata/CDBOCP/pdbprod2';不使用位置子句如果使用OMF或PDB_FILE_NAME_CONVERT,首先以SYS身份連接到CDB的根。使用OMF時(shí),在init.oraPDB的數(shù)據(jù)文件的目標(biāo)目錄。不使用OMFPDB_FILE_NAME_CONVERTPDB/CDBS/CDB1/pdb1和/CDBS/CDB1/pdb2目錄都必須存在。然后,使用cdb_pdbs視圖驗(yàn)證新PDB及其表空間是否存在:SQL>SELECT*FROMcdb_pdbs;SQL>SELECT*FROMcdb_tablespaces;實(shí)驗(yàn):具體例子使用DB_CREATE_FILE_DEST參數(shù)先定義DB_CREATE_FILE_DEST參數(shù),指定其具體路徑。mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod3atlersystemsetdb_create_file_dest='/u01/app/oracle/oradata/CDBOCP/pdbprod3'createpluggabledatabasepdbprod3adminuserhenryidentifiedbyhenryroles=(connect);使用PDB_FILE_NAME_CONVERT參數(shù)先定義PDB_FILE_NAME_CONVERT參數(shù),指定其具體路徑。mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod4altersystemsetpdb_file_name_convert='/u01/app/oracle/oradata/CDBOCP/pdbseed','/u01/app/oracle/oradata/CDBOCP/pdbprod4';createpluggabledatabasepdbprod4adminuserhenryidentifiedbyhenryroles=(connect);CDB有三種方法可以將非CDB數(shù)據(jù)庫(kù)插入CDB。無(wú)論使用哪種方法,您都必須讓非CDB進(jìn)入事務(wù)處理一致狀態(tài),并在受限模式下將其打開。(TTS)/(TDB),在使用可DBMS_PDBCDBXMLCDB作為PDB插入CDB。此方法的前提條件是,非CDB必須為Oracle12cDB。GoldenGateDBMS_PDB如果不使用DBMS_PDB程序包,則使用導(dǎo)出/導(dǎo)入通常比使用GoldenGate復(fù)制更簡(jiǎn)單,但使用導(dǎo)出/導(dǎo)入時(shí),從非CDB切換到PDB期間所需的停機(jī)時(shí)間可能更長(zhǎng)。如果選擇使用導(dǎo)出/導(dǎo)入并且將整個(gè)非CDB移動(dòng)到CDB,可傳輸數(shù)據(jù)庫(kù)(TDB)通常是最佳選擇。如果選擇將部分非CDB導(dǎo)出并導(dǎo)入CDB,可傳輸表空間(TTS)則是最佳選DBCADBCACDB:PROD5在用DBMS_PDB程序包的方法從OracleDatabase12c非CDB創(chuàng)建移走的PDB。然后,將移走的PDB作為新PDB插入CDB。在非CDB上運(yùn)行DBMS_PDB.DESCRIBE過(guò)程Th成一個(gè)XML文件,描述未來(lái)的PDB。您可以使用XML文件和非CDB數(shù)據(jù)文件,按照插入移走的PDB的方式插入此移走的PDB。具體步驟如下所示:連接到非CDBORCLCDBORCL執(zhí)行DBMS_PDB.DESCRIBEThXMLXMLXMLPDB。連接到目標(biāo)ORCLPDB2插入移走的PDB過(guò)程將其插入CDBUSING'XMLfile.xml'PLUGGABLE。ORCLXMLPDB2$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sqlPDBSYSTEM表空間里不需要的元數(shù)據(jù)。此腳本必須在首次打開PDB之前運(yùn)行。僅在插入非CDB時(shí)才需要運(yùn)行此腳本。7. 打開PDB2PDB2中。實(shí)驗(yàn):具體例子CDBXML.oraenvPROD5sqlplus/assysdbashutdownimmediate;startupmount;alterdatabaseopenreadonly;execdbms_pdb.describe('/tmp/PROD5.xml');CDBPDB插入.oraenvCDBOCPsqlplus/assysdbashowpdbs!mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod5altersystemsetdb_create_file_dest='/u01/app/oracle/oradata/CDBOCP/pdbprod5';createpluggabledatabasepdbprod5using'/tmp/PROD5.xml';執(zhí)行腳本并清尾工作sqlplussys/oracle@pdbprod5assysdba@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sqlalterpluggabledatabasepdbprod5openreadwrite;execdbms_service.delete_service('PROD5XDB');alterpluggabledatabasepdbprod5close;alterpluggabledatabasepdbprod5open;CDBPROD5.PROD5sqlplus/assysdbashutdownimmediate;startupPDBPDB此方法從CDB復(fù)制PDB并將其插入CDB。源PDB可以位于本地CDB或遠(yuǎn)程CDB中。在同一CDB中克隆PDB的步驟如下所示:PDB3dir'(OMF)PDB_FILE_NAME_CONVERT='P',P'非MR_F_DT子句。以擁有PLUGGABLECDBPDBPLUGGABLECLOSE克隆PDB后使用命令A(yù)LTERPLUGGABLEDATABASEpdb1READONLY。使用命令PLUGGABLE從pdb1PDBpdb3。然后,使用PLUGGABLEPDBpdb3。PDBpdb1。如果不使用OMF,則使用CREATEPLUGGABLEDATABASE命令和FILE_NAME_CONVERT=('pdb1dir','pdb3dir')子句定義要從PDB1復(fù)制的源文件的目錄和PDB3的新文件的目標(biāo)目錄。實(shí)驗(yàn):具體例子隆本地PDB和下面的克隆非CDB或遠(yuǎn)程PDB方法流程一樣,具體細(xì)節(jié)請(qǐng)注意兩點(diǎn):1.創(chuàng)建DBLINK;2.注意FROM子句的變化FROMNON$CDB@dblink;CDBPDBOCM12c考題:轉(zhuǎn)換Non-CDB為PDB(將某個(gè)非CDB數(shù)據(jù)庫(kù)作為PDB插入到CDB里面)此方法復(fù)制非此方法復(fù)制非CDB或遠(yuǎn)程PDB并將副本插入CDB。將非CDB或遠(yuǎn)程PDB克隆到CDB中的步驟如下所示:將非CDBPDB以擁有PLUGGABLECDB的根。數(shù)據(jù)庫(kù)鏈接PLUGGABLECDBPDB。PLUGGABLE命令克隆非CDB如果克隆遠(yuǎn)程名代替NON$CDBPDBCDB$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql腳本。然后,使用PLUGGABLEPDB。CDBPDB。實(shí)驗(yàn):具體例子實(shí)驗(yàn)步驟:CDB.oraenvPROD5sqlplus/assysdbashutdownimmediate;startupmount;alterdatabaseopenreadonly;CDBDBLinkcreatedatabaselinkmemedaconnecttosystemidentifiedbyoracleusing'PROD5';注意:關(guān)鍵字USING后面使用的連接字符串,必須在tnsnames.ora里面配置。CDB!mkdir/u01/app/oracle/oradata/CDBOCP/pdbprod5altersystemsetdb_create_file_dest='/u01/app/oracle/oradata/CDBOCP/pdbprod5';createpluggabledatabasepdbprod5fromNON$CDB@prod5;注意:這里我們提前把路徑給定義出來(lái)了,如果不想提前定義db_create_file_dest路徑,可以直接在語(yǔ)句里面使用create_file_dest參數(shù)指定。例如:createpluggabledatabasepdbprod5fromNON$CDB@prod5create_file_dest='/u01/app/oracle/oradata/CDBOCP/pdbprod5';PDBPROD5跑腳本sqlplussys/oracle@pdbprod5assysdba@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sqlPDBPROD5alterpluggabledatabasepdbprod5openreadwrite;PDBCDB您可以通過(guò)移走/插入方法在CDB中創(chuàng)建PDB。移走PDB可以解除PDB與CDB的關(guān)聯(lián)關(guān)系。當(dāng)您想將PDB移動(dòng)到不同的CDB時(shí),或者當(dāng)您不再想讓PDB可用時(shí),您可以移走PDB。第一步是將PDB1從CDB1移走。第二步是將PDB1插入CDB2。要將PDB1從CDB1CDB1PDBPLUGGABLE及UNPLUGXML文PDB從CDBCDBPDBPDB。將PDB1插入CDB2之前,您可以選擇使用DBMS_PDB.CHECK_PLUG_COMPATIBILITY函數(shù)檢查移走的PDB是否與CDB2兼容。要將PDB1插入CDB2,請(qǐng)以公用用戶的身份連接到CDB2根并使用CREATEPLUGGABLEDATABASEpdb1USING'xmlfile1.xml'。最后一步是打開PDB。實(shí)驗(yàn):具體例子環(huán)境:將CDBOCP下面的PDBPROD2,移到NEWCDB下面。CDBOCPPDBPROD2alterpluggabledatabasepdbprod2close;UNPLUGINTO命令alterpluggabledatabasepdbprod2unpluginto'/u01/app/oracle/backup/pdbprod2.xml';PDBPROD2droppluggabledatabasepdbprod2;注意:默認(rèn)刪除是保留物理路徑數(shù)據(jù)文件的。具體刪除操作請(qǐng)移至4.2.5小節(jié)。NEWCDB[oracle@henry~]$.oraenvORACLE_SID=[CDBOCP]?NEWCDBTheOraclebaseremainsunchangedwithvalue/u01/app/oracle[oracle@henry~]$sqlplus/assysdbaSQL>createpluggabledatabasepdb2using'/u01/app/oracle/backup/pdbprod2.xml'nocopy;Pluggabledatabasecreated.SQL>showpdbsCON_IDCON_NAME OPENMODE RESTRICTED - - PDB$SEED READWRITEYESPDB2 MOUNTEDPDB2(CDBOCPPDBPROD2)SQL>alterpluggabledatabasepdb2open;Pluggabledatabasealtered.注意創(chuàng)建語(yǔ)句:可以和原來(lái)數(shù)據(jù)庫(kù)名一致,也可以自定義createpluggabledatabasepdb2using'/u01/app/oracle/backup/pdbprod2.xml'nocopy;PDB當(dāng)您不再需要PDB中的數(shù)據(jù)時(shí),您可以刪除PDB。您也可以將其移走,然后將其刪除,同時(shí)指定KEEPDATAFILES,以便在刪除PDB后保留與PDB相關(guān)的數(shù)據(jù)文件。KEEPDATAFILES為默認(rèn)行為。將移走的PDB插入另一個(gè)CDB時(shí),保留數(shù)據(jù)文件可能有用。刪除PDB時(shí),如果指定INCLUDINGDATAFILES,控制文件中列出的所有數(shù)據(jù)文件均會(huì)刪除。是否使用子句INCLUDINGPLUGGABLE語(yǔ)句都會(huì)修改控制文件,消除所有對(duì)所刪除PDB的引用具體實(shí)驗(yàn)例子可參考4.2.4小節(jié)刪除PDB語(yǔ)句數(shù)據(jù)庫(kù)遷移至CDB中兩種方法可以將非容器兩種方法可以將非容器11g數(shù)據(jù)庫(kù)移植到12cCDB。第一種方法包括兩個(gè)步驟:將11g12c非CDB。將12c非CDBCDBDBMS_PDB.DESCRIBETh成XMLPDB插入CDB。第二種方法也包括兩個(gè)步驟:在CDB中從種子PDB預(yù)創(chuàng)建PDBPDB中建立Database12c字典。使用導(dǎo)出/11gCDBPDB中。第5 章管理容器數(shù)據(jù)庫(kù)和可插入數(shù)據(jù)庫(kù)連接到CDB或PDB要連接到OSORACLE_SID設(shè)置為CDB實(shí)例名并使用命令CONNECT/ASSYSDBA,則會(huì)以授予系統(tǒng)權(quán)限的公用SYS用戶的身份連接至根,以管理和維護(hù)所有PDB。如果使用服務(wù)名,則可以使用EasyConnect語(yǔ)法或tnsnames.ora中的別名。使用EasyConnect時(shí),輸入以下連接字符串:SQL>CONNECTusername@hostname:portnumber/service_name使用tnsnames.ora文件時(shí),輸入以下連接字符串:SQL>CONNECTusername@net_service_namePDB或tnsnames.oratnsnames.ora中的net_service_name創(chuàng)建服務(wù)如果數(shù)據(jù)庫(kù)不是由OracleRestart或OracleClusterware管理,可以使用DBMS_SERVICE程序包為每個(gè)PDB創(chuàng)建或修改服務(wù)。在這種情況下,PDB屬性設(shè)置為當(dāng)前執(zhí)行操作的PDB。SQL>CONNECTsystem@salespdbSQL>EXECDBMS_SERVICE.CREATE_SERVICE('salesrep','salesrep')SQL>EXECDBMS_SERVICE.START_SERVICE('salesrep')CDBPDB11gEZconnecttnsnames.ora配置字符串。連接工具可以是SQL*PLUSPL/SQLDEVELOPER、SQLDEVELOPERCDBSqlplussys/oracle@x.x.x.x/newcdb注意:采用EZCONNECTIP(1521)name,ServicenamelsnrctlstatusOracleNet062體系結(jié)構(gòu)第三章:OracleNet網(wǎng)絡(luò)這章狠狠狠重要!)。如果在本機(jī)客戶端配置了如果在本機(jī)客戶端配置了tnsnames.ora,也可以通過(guò)字符串連接方式:Sqlplussys/oracle@newcdbassysdbaPDBCDBPDB~~~EZCDBOCP里面的PDB1通過(guò)通過(guò)tnsnames.ora連接Sqlplussys/oraccle@aaaassysdbaCDBCDBPDB[oracle@henry~]$sqlplus/sysdba(CDB$ROOT)PDB2altersessionsetcontainer=pdb2;查看當(dāng)前所在容器:PDBCDBconn/sysdbaaltersessionsetcontainer=cdb$root;或直接conn/assysdbaPDBPDBPDB之間如何切換CDBPDB,還是PDBPDB字為:CDB$ROOT,種子容器的名字為:PDB$SEED,從con_id=3開始,都為用戶自定義的容器。從CDB根容器切換到PDB2:altersessionsetcontainer=pdb2;從PDB2切換到PDB$SEED:altersessionsetcontainer=pdb$seed;從PDB$SEED切換到根容器:服務(wù)名實(shí)驗(yàn)CDB:NEWCDBPDB2hehedaPDB中SQL>altersessionsetcontainer=pdb2;Sessionaltered.添加新服務(wù)名SQL>execDBMS_SERVICE.CREATE_SERVICE('heheda','heheda');PL/SQLproceduresuccessfullycompleted.SQL>execDBMS_SERVICE.start_service('heheda');PL/SQLproceduresuccessfullycompleted.查看監(jiān)聽服務(wù)狀態(tài)[oracle@henry~]$lsnrctlstatus測(cè)試通過(guò)服務(wù)名連接測(cè)試通過(guò)服務(wù)名連接PDB2sqlplussys/oracle@00/hehedaassysdbaCDB容器數(shù)據(jù)庫(kù)啟動(dòng)流程、關(guān)閉模式和之前版本流程一致:在CDB(根容器)里面可以直接執(zhí)行行startupup;startupnomount;startupmount;alterdatabasemount;atlerdatabseopen;shutdownimmediate;shutdownnormal;shutdowntransactional;shutdownabort;在非在非RAC環(huán)境中,CDB用一個(gè)實(shí)例運(yùn)行。此實(shí)例的啟動(dòng)方式與非CDB數(shù)據(jù)庫(kù)的實(shí)例啟動(dòng)方式完全相同,都使用STARTUPNOMOUNT語(yǔ)句。您需要以SYSDBA的身份連接到CDB的根,才能啟動(dòng)實(shí)例??墒褂肰$PDBS視圖查看PDB的打開模式。身份連接到CDB的根,才能啟動(dòng)實(shí)例??墒褂肰$PDBS視圖查看PDB的打開模式。載命令相同,都使用STARTUPMOUNT語(yǔ)句。同樣,您需要以SYSDBA的身份連接到CDB的根,才能執(zhí)行此操作。CDB裝載時(shí)根也會(huì)裝載,這意味著控制文件已打開,PDB已裝載。可使用V$PDBS視圖中的open_mode列驗(yàn)證所有PDB都已裝載。CDBCDBPDBPDB在STARTUPDATABASEPDB。V$PDBSopen_modePDBPDB。CDBPDB當(dāng)PDB關(guān)閉時(shí),這意味僅PDB的數(shù)據(jù)文件會(huì)關(guān)閉。PDB要打開一個(gè)PDB或打開部分或全部PDB,請(qǐng)以SYSOPER或SYSDBA的身份連接到根,然后發(fā)出ALTERPLUGGABLEDATABASE…OPEN語(yǔ)句,以指定一個(gè)或多個(gè)PDB名稱或指定ALLEXCEPT或ALL。此操作將打開所打開PDB的數(shù)據(jù)文件,使其可供用戶使用??墒褂肰$PDBS視圖中的open_mode列驗(yàn)證所有PDB都處于READWRITE打開模式,但仍然處于READONLY打開模式的種子除外。您也可以在以SYSDBA身份連接的PDB中打開PDB。在這種情況下,不必命名要打開的PDB。如果是位于CDB根下面,可以指定具體的PDB進(jìn)行啟動(dòng):PDB啟動(dòng)alterpluggabledatabasepdbprod1open;PDB啟動(dòng)alterpluggabledatabaseallopen;PDBPDBalterpluggabledatabaseallexceptpdbprod1open;如果本身位于某個(gè)如果本身位于某個(gè)PDB里面,啟動(dòng)方式和CDB一致:注意:PDB關(guān)閉后的狀態(tài)為MOUNT,因?yàn)榭刂莆募钦麄€(gè)CDB共享的。要關(guān)閉一個(gè)要關(guān)閉一個(gè)PDB或關(guān)閉部分或全部PDB,請(qǐng)以SYSOPER或SYSDBA的身份連接到根,然后發(fā)出ALTERPLUGGABLEDATABASECLOSE語(yǔ)句,以指定一個(gè)或多個(gè)PDB名稱或指定ALLEXCEPT或ALL。如果使用CLOSEIMMEDIATE子句,所選PDB中的事務(wù)處理將回退,且會(huì)話將斷開。如果省略IMMEDIATE子句,語(yǔ)句將掛起,直到所有會(huì)話全部斷開為止。PDBPDBPDBPDB。連接到PDB時(shí),語(yǔ)句SHUTDOWNIMMEDIATE等同于ALTERPLUGGABLEDATABASECLOSE。它將關(guān)閉PDB。注:盡管SHUTDOWNIMMEDIATE會(huì)發(fā)出傳統(tǒng)消息ORACLEinstanceshutdown,但這并不意味著實(shí)例已關(guān)閉。請(qǐng)將其理解成PDB已關(guān)閉。如果PDB已關(guān)閉,則消息將清楚地說(shuō)明具體情況:SQL>shutdownimmediateORA-65020:Pluggabledatabasealreadyclosed如果是位于CDB根下面,可以指定具體的PDB進(jìn)行PDB關(guān)閉alterpluggabledatabasepdbprod1close;CLOSEIMMEDIATEPDB中的事務(wù)處理將回退,且會(huì)話將斷開IMMEDIATEPDB關(guān)閉alterpluggabledatabaseallclose;5.3.4關(guān)閉除某個(gè)PDB以外的所有PDBatlerpluggabledatabaseallexceptpdbprod1close;PDBCDB一致:PDB打開模式重新啟動(dòng)重新啟動(dòng)CDB實(shí)例后,默認(rèn)情況下,PDB會(huì)一直保持在裝載模式下。如果您希望PDB在CDBALTERPLUGGABLEDATABASESTATE子句PDBSAVESTATE子PDB的最后打開狀態(tài)。PDBCDBPDBSAVESTATE要恢復(fù)默認(rèn)行DISCARDSTATE子句。Alterpluggabledatabaseallsavestate;Startupforce;Alterpluggabledatabasealldiscardstate;Startupforce;PDB您可以更改每個(gè)您可以更改每個(gè)PDB的模式,執(zhí)行特定管理操作。第一個(gè)示例在RESTRICTEDREADWRITE模式下打開PDB。此模式僅允許擁有RESTRICTEDSESSION權(quán)限的用戶進(jìn)行連接。而且,此模式允許PDB的本地管理員管理文件移動(dòng)、備份以及阻止會(huì)話訪問(wèn)數(shù)據(jù)??墒褂肰$PDBS視圖驗(yàn)證PDB是否處于RESTRICTEDREADWRITE打開模式。第二個(gè)示例在READONLY模式下打開所有PDB。連接到PDB的所有會(huì)話都只能執(zhí)行只讀事務(wù)處理。要更改打開模式,請(qǐng)首先關(guān)閉PDB。您可以將同一打開模式應(yīng)用于全部或部分PDB。您不必更改PDB的模式就可以修改每個(gè)PDB的設(shè)置。您必須在PDB中連接,才能更改設(shè)置。第一個(gè)示例使用DATAFILE子句使數(shù)據(jù)文件聯(lián)機(jī)。PDBpdb1_tbs。PDBtemp_tbs第四個(gè)示例將屬于PDB的所有表空間的存儲(chǔ)限制設(shè)為2GB。PDBpdbAPP1PDB而且此操作只能在受限模式下執(zhí)行。參數(shù)值更改的影響CDBSPFILE您可以在PDB中為參數(shù)設(shè)置不同的值,前提是V$PARAMETER中的列ISPDB_MODIFIABLE為TRUE。這些值全部在PDB作用域內(nèi)設(shè)置,在PDB關(guān)閉再打開后以及在CDB實(shí)例關(guān)閉又啟動(dòng)后都會(huì)相應(yīng)地保留。執(zhí)行克隆和移走/插入操作后,也會(huì)保留。其他初始化參數(shù)只能針對(duì)根設(shè)置。SQL>selectPDB_UID,NAME,VALUE$frompdb_spfile$;PDB_UIDNAMEVALUE$3100074415optimizer_use_sql_plan_baselinesFALSE2862146267optimizer_use_sql_plan_baselinesFALSE2862146267ddl_lock_timeout10打開后,更改的值會(huì)保留。V$SYSTEM_PARAMETER打開后,更改的值會(huì)保留。V$SYSTEM_PARAMETER視圖中的新列CON_ID顯示每個(gè)容器(即根、pdb1和pdb2)中的DDL_LOCK_TIMEOUT值。第6 章管理CDB和PDB中表空間和用戶在本例中,pdb2中為DDL_LOCK_TIMEOUT參數(shù)設(shè)置了不同的值。PDB關(guān)閉再在非CDB中,所有表空間都屬于一個(gè)數(shù)據(jù)庫(kù)。在CDB中,一組表空間屬于根容器,并且每個(gè)PDB都有一組其自己的表空間。在根容器的表空間中創(chuàng)建公共對(duì)象并存儲(chǔ)其數(shù)據(jù)。公共對(duì)象在PDB中通過(guò)鏈接可見。CREATEDATABASE命令中存在新的子句。使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)時(shí),可通過(guò)USER_DATATABLESPACE指定USERS以外的默認(rèn)表空間。該表空間也將用于XDB選項(xiàng)。12.1版本中UNDO表空間對(duì)于所有PDB是公用的,即每個(gè)CDB實(shí)例只有一個(gè)活動(dòng)UNDO表空間,稱之為共享UNDO。12.2版本中UNDO表空間可以應(yīng)用到每個(gè)PDB中,也就是每個(gè)PDB也可以有自己的UNDO表空間,稱之為本地UNDO。CDBPDB中的永久表空間您對(duì)您對(duì)CREATETABLESPACE命令應(yīng)該十分熟悉。該命令的行為在CDB中已更改為:在執(zhí)行該命令的容器中創(chuàng)建表空間。通過(guò)PDB將數(shù)據(jù)文件分隔成不同的目錄可幫助確定哪些文件屬于哪個(gè)PDB,但這不是必需的。根中不應(yīng)存在任何應(yīng)用程序數(shù)據(jù)。所有應(yīng)用程序數(shù)據(jù)都應(yīng)位于PDB中。盡管可以在根和PDB中執(zhí)行相同的表空間操作,但所有對(duì)象都應(yīng)存儲(chǔ)在PDB中。為具有適當(dāng)權(quán)限的用戶連接到根容器,并發(fā)出DATABASE該操作不會(huì)更PDB的默認(rèn)永久表空間。PDBPDBPLUGGABLEDATABASE連接到PDB后,ALTERDATABASE和ALTERPLUGGABLEDATABASE命令執(zhí)行對(duì)PDB的相同修改。允許使用ALTERDATABASE命令,以實(shí)現(xiàn)向后兼容。CDBPDB中的臨時(shí)表空間根或根或PDB只能有一個(gè)默認(rèn)臨時(shí)表空間或表空間組。與非CDB一樣,每個(gè)容器可以容納可向其分配用戶的其他臨時(shí)表空間。每個(gè)PDB可以具有供該P(yáng)DB中本地用戶或公用用戶使用的臨時(shí)表空間。移走PDBPDBCDB中創(chuàng)建臨時(shí)表空間或臨時(shí)表空間組:sqlplussys/oracle@CDBOCPsysdbacreatetemporarytablespacecdb_xxxtempfile'/u01/app/oracle/oradata/CDBOCP/temp02.dbf'size100m;createtemporarytablespacecdb_xxxtempfile'/u01/app/oracle/oradata/CDBOCP/temp02.dbf'size100mtablespacegroupxxx_cdbgrp;在PDB中創(chuàng)建臨時(shí)表空間或臨時(shí)表空間組:sqlpplussys/oracle@PDB1assysdbacreatetemporarytablespacepdb_xxxtempfile'/u01/app/oracle/oradata/CDBOCP/PDB1/temp02.dbf'size100m;createtemporarytablespacepdb_xxxtempfile'/u01/app/oracle/oradata/CDBOCP/PDB1/temp02.dbf'size100mtablespacegroupxxx_pdbgrp;根的默認(rèn)臨時(shí)表空間在根容器級(jí)別進(jìn)行設(shè)置。可能存在多個(gè)臨時(shí)表空間,根的默認(rèn)臨時(shí)表空間在根容器級(jí)別進(jìn)行設(shè)置。可能存在多個(gè)臨時(shí)表空間,但僅有一個(gè)可以是默認(rèn)臨時(shí)表空間??梢詾槊總€(gè)PDB(或表空間組。PDB表空間,但每個(gè)PDB僅有一個(gè)默認(rèn)臨時(shí)表空間。創(chuàng)建用戶時(shí),可以指定該用戶要使用的臨時(shí)表空間。如果未指定臨時(shí)表空間,則使用PDB的默認(rèn)表空間。公共用戶和本地用戶SQL>SQL>createuserc##jimidentifiedbyjimcontainer=all;存在且僅存在于一個(gè)PDBPDB公用用戶的名稱不能與所有PDB用用戶是在根和每個(gè)現(xiàn)有和將來(lái)的PDB用戶。本地用戶不能創(chuàng)建公用用戶。具有適當(dāng)權(quán)限的公用用戶可以使用CONTAINER=ALL子句創(chuàng)建公用用戶。要?jiǎng)?chuàng)建公用用戶,公用用戶必須針對(duì)所有PDB具有SETCONTAINER權(quán)限。公用用戶可以連接到特定的PDB,并且可以利用PDB中的適當(dāng)權(quán)限通過(guò)CONTAINER=CURRENT子句創(chuàng)建本地用戶。注:如果PDB已關(guān)閉,則該P(yáng)DB的公用用戶和本地用戶將不可見,因?yàn)樵獢?shù)據(jù)是從PDBSYSTEM表空間檢索的。在在PDB中具有CREATEUSER和SETCONTAINER權(quán)限的公用用戶可以在該P(yáng)DB中創(chuàng)建本地用戶。所創(chuàng)建的用戶類型由CONTAINER子句確定。C##PDB如果省略容器子句,則默認(rèn)值取決于上下文。如果公用用戶連接到根容器,則默認(rèn)值為CONTAINER=ALL。如果公用用戶連接到PDB,則默認(rèn)值為ONTAINER=CURRENT。創(chuàng)建公用用戶時(shí),在CREATE命令中指定的任何表空間、表空間組或概要文件必須存在于每個(gè)PDB中。如果未指定上述任何一項(xiàng),系統(tǒng)將使用PDB的默認(rèn)TABLESPACE、TEMPORARYTABLESPACE和PROFILE。注:DROPUSER和ALTERUSER命令與非CDB中的命令相同。公共角色和本地角色創(chuàng)建的創(chuàng)建的跨所有容器的角色是公用角色。在本幻燈片中的示例中,使用CONTAINER=ALL子句以全局方式創(chuàng)建c##r1角色。在所有容器中復(fù)制CREATE操作。因此,會(huì)在每個(gè)容器中創(chuàng)建同一角色c##r1。在特定的PDB中創(chuàng)建的角色是本地角色。在本幻燈片中的示例中,在本地創(chuàng)建了l_role1角色。不在所有容器中復(fù)制CREATE操作。因此,僅在PDB_SALES容器中創(chuàng)建l_role1角色。所用的語(yǔ)法和權(quán)限與非CDB中的語(yǔ)法和權(quán)限相同。如果用戶對(duì)所有PDB都具有CREATEROLE和SETCONTAINER權(quán)限,則該用戶可以創(chuàng)建公用角色。如果公用用戶對(duì)該P(yáng)DB具有CREATEROLE和SETCONTAINER權(quán)限,則該公用用戶可以創(chuàng)建本地角色。CONTAINER子句確定角色是公用角色還是本地角色。公用角色必須以C##字符開頭。例如,使用公用權(quán)限CREATESESSION創(chuàng)建公用角色C##R1。將C##R1角色授予公用用戶C##TEST時(shí),該用戶可以連接到任何PDB。但是,將C##R1角色授予在PDB_HR中定義的lu_PDB1時(shí),該本地用戶只能連接到PDB_HR。公共權(quán)限和本地權(quán)限PDB公用用戶和本地用戶可以行使在其連接的PDB上下文中授予的公用權(quán)限和本地權(quán)限。(OCM12c創(chuàng)建用戶user1PDB)創(chuàng)建用戶user2PDB1role1PDB)role2PDB1授予用戶user1CDB(PDB)授予用戶user2在PDB1role1PDB)createtableuser1。role2PDB1createviewuser2。SQL>createuserc##user1identifiedbyuser1container=all;SQL>altersessionsetcontainer=pdb1;SQL>createuseruser2identifiedbyuser2;SQL>conn/assysdbaSQL>createrolec##role1container=all;SQL>altersessionsetcontainer=pdb1;SQL>createrolerole2;SQL>conn/assysdbaSQL>grantcreatesessiontoc##user1container=all;SQL>connsys/oracle@pdb1assysdbaSQL>grantcreatesessiontouser2;SQL>conn/assysdbaSQL>grantcreatetabletoc##role1container=all;SQL>grantc##role1toc##user1;SQL>connsys/oracle@pdb1assysdbaSQL>grantcreateviewtorole2;SQL>grantrole2touser2;請(qǐng)問(wèn):能否將公共角色c##role1授權(quán)給本地用戶user2?SQL>grantc##role1touser2;第7 章CDB和PDB的備份與恢復(fù)RMAN可以使用RecoveryManager(RMAN
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年合伙企業(yè)策劃干股加入?yún)f(xié)議書格式
- 2025年典范個(gè)人土地交易合同模板
- 2025年雙方自愿離婚協(xié)議書模板(兩個(gè)孩子)
- 2025年化工公司員工合同書
- 2025年企業(yè)園區(qū)租賃合同策劃樣本
- 2025年甲方與協(xié)作單位合同范文
- 2025年辦公設(shè)備維修保養(yǎng)服務(wù)合同范本
- 2025年土地使用權(quán)出讓合同樣本
- 2025年招投標(biāo)流程中合同風(fēng)險(xiǎn)防范與控制實(shí)踐
- 2025年供應(yīng)鏈協(xié)作協(xié)議樣本
- 包裝材料及紙制品生產(chǎn)建設(shè)項(xiàng)目可行性實(shí)施報(bào)告
- 財(cái)務(wù)收支月報(bào)表excel模板
- 國(guó)標(biāo)充電協(xié)議報(bào)文整理
- 水餃類產(chǎn)品質(zhì)量檢驗(yàn)作業(yè)指導(dǎo)書
- 電力變壓器計(jì)算單
- 紅外測(cè)溫培訓(xùn)
- 新型城市化建設(shè)中城鄉(xiāng)結(jié)合部存在的問(wèn)題及解決方案
- 質(zhì)性研究(陳向明)PPT精選文檔
- 市政小三線施工方案(共22頁(yè))
- 靜壓樁機(jī)、鉆孔灌注樁、沉槽機(jī)CAD圖形
- 野外土名描述實(shí)例
評(píng)論
0/150
提交評(píng)論