您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Oracle 12c如何實(shí)現(xiàn)手工建庫而非CDB及CDB創(chuàng)建的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
相信大家應(yīng)該都知道,對(duì)于Oracle數(shù)據(jù)庫的創(chuàng)建,Oracle除了支持dbca(GUI界面),同時(shí)也支持手工方式創(chuàng)建數(shù)據(jù)庫,即使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫。使用此語句對(duì)使用DBCA的一個(gè)優(yōu)點(diǎn)是可以從腳本內(nèi)創(chuàng)建數(shù)據(jù)庫。
在Oracle 12c版本中支持12c之前的非CDB數(shù)據(jù)庫以及CDB容器數(shù)據(jù)庫。因此創(chuàng)建方式略有不同。本文同時(shí)描述2種不同數(shù)據(jù)庫的手工創(chuàng)建方法。下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、12c手工創(chuàng)建非CDB數(shù)據(jù)庫
步驟1:指定實(shí)例標(biāo)識(shí)符(SID)
ORACLE_SID的環(huán)境變量用于該實(shí)例從稍后可能創(chuàng)建并同時(shí)在同一主機(jī)計(jì)算機(jī)上運(yùn)行其他Oracle Database實(shí)例區(qū)分開來。
$ export ORACLE_SID=nocdb $ export ORACLE_UNQNAME=nocdb
步驟2:確保設(shè)置所需的環(huán)境變量
根據(jù)您的平臺(tái),在啟動(dòng)SQL * Plus之前(根據(jù)后續(xù)步驟的要求),您可能必須設(shè)置環(huán)境變量,或至少驗(yàn)證它們是否正確設(shè)置。如下查看當(dāng)前已設(shè)定的環(huán)境變量,如果未設(shè)定,請(qǐng)使用export命令方式設(shè)定之。
$ env|grep ORA ORACLE_UNQNAME=nocdb ORACLE_SID=nocdb ORACLE_BASE=/app/oracle/ora12c ORACLE_HOSTNAME=ydq05.ydq.com ORACLE_HOME=/app/oracle/ora12c/db_1
步驟3:選擇數(shù)據(jù)庫管理員身份驗(yàn)證方法
您必須進(jìn)行身份驗(yàn)證并授予相應(yīng)的系統(tǒng)權(quán)限才能創(chuàng)建數(shù)據(jù)庫。
通常情況下,使用以下方式具有所需權(quán)限的管理員進(jìn)行身份驗(yàn)證:
使用密碼文件
具有操作系統(tǒng)認(rèn)證(此演示中使用操作系統(tǒng)認(rèn)證)
$ id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
步驟4:創(chuàng)建初始化參數(shù)文件
當(dāng)Oracle實(shí)例啟動(dòng)時(shí),它讀取一個(gè)初始化參數(shù)文件。該文件可以是文本文件,可以使用文本編輯器或二進(jìn)制文件進(jìn)行創(chuàng)建和修改,該文件由數(shù)據(jù)庫創(chuàng)建和動(dòng)態(tài)修改。優(yōu)選的二進(jìn)制文件稱為服務(wù)器參數(shù)文件。在此步驟中,您將創(chuàng)建一個(gè)文本初始化參數(shù)文件。在后面的步驟中,您可以從文本文件創(chuàng)建一個(gè)服務(wù)器參數(shù)文件。
$ mkdir -pv /app/oracle/ora12c/oradata/nocdb #創(chuàng)建存放數(shù)據(jù)文件的目錄 $ vi $ORACLE_HOME/dbs/initnocdb.ora DB_NAME=nocdb CONTROL_FILES='/app/oracle/ora12c/oradata/nocdb/contorl01.ctl' MEMORY_TARGET=380m
步驟5:(僅限Windows)創(chuàng)建實(shí)例
在Windows平臺(tái)上,連接到實(shí)例之前,必須手動(dòng)創(chuàng)建它,如果它不存在。該ORADIM命令通過創(chuàng)建一個(gè)新的Windows服務(wù)創(chuàng)建一個(gè)Oracle數(shù)據(jù)庫實(shí)例。
oradim -NEW -SID sid -STARTMODE MANUAL -PFILE file
步驟6:連接到實(shí)例
啟動(dòng)SQL * Plus并使用管理權(quán)限連接到Oracle數(shù)據(jù)庫實(shí)例SYSDBA。
$ sqlplus / as sysdba --演示環(huán)境為12.1版本 SQL*Plus: Release 12.1.0.1.0 Production on Wed May 31 10:44:41 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL>
步驟7:創(chuàng)建服務(wù)器參數(shù)文件
服務(wù)器參數(shù)文件使您可以使用該ALTER SYSTEM命令更改初始化參數(shù),并在數(shù)據(jù)庫關(guān)閉和啟動(dòng)時(shí)保留更改。您可以從編輯的文本初始化文件創(chuàng)建服務(wù)器參數(shù)文件。
SQL> create spfile from pfile='/app/oracle/ora12c/db_1/dbs/initnocdb.ora';
步驟8:?jiǎn)?dòng)實(shí)例
啟動(dòng)實(shí)例而不安裝數(shù)據(jù)庫。
SQL> startup nomount; ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2296576 bytes Variable Size 641729792 bytes Database Buffers 419430400 bytes Redo Buffers 5480448 bytes
步驟9:發(fā)出CREATE DATABASE語句
要?jiǎng)?chuàng)建新數(shù)據(jù)庫,請(qǐng)使用該CREATE DATABASE
語句。
SQL> CREATE DATABASE nocdb USER SYS IDENTIFIED BY pass USER SYSTEM IDENTIFIED BY pass LOGFILE GROUP 1 ('/app/oracle/ora12c/oradata/nocdb/redo01a.log', '/app/oracle/ora12c/oradata/nocdb/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/app/oracle/ora12c/oradata/nocdb/redo02a.log', '/app/oracle/ora12c/oradata/nocdb/redo02b.log') SIZE 100M BLOCKSIZE 512 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 1024 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/app/oracle/ora12c/oradata/nocdb/system01.dbf' SIZE 700M SYSAUX DATAFILE '/app/oracle/ora12c/oradata/nocdb/sysaux01.dbf' SIZE 550M DEFAULT TABLESPACE users DATAFILE '/app/oracle/ora12c/oradata/nocdb/users01.dbf' SIZE 500M DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/app/oracle/ora12c/oradata/nocdb/temp01.dbf' SIZE 20M UNDO TABLESPACE undotbs1 DATAFILE '/app/oracle/ora12c/oradata/nocdb/undotbs01.dbf' SIZE 200M USER_DATA TABLESPACE usertbs DATAFILE '/app/oracle/ora12c/oradata/nocdb/usertbs01.dbf' SIZE 200M;
步驟10:創(chuàng)建其他表空間
要使數(shù)據(jù)庫起作用,必須為應(yīng)用程序數(shù)據(jù)創(chuàng)建其他表空間。
SQL> CREATE TABLESPACE apps_tbs LOGGING DATAFILE '/app/oracle/ora12c/oradata/nocdb/apps01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
步驟11:運(yùn)行腳本以構(gòu)建數(shù)據(jù)字典視圖
運(yùn)行構(gòu)建數(shù)據(jù)字典視圖,同義詞和PL / SQL包所必需的腳本,并支持SQL * Plus的正常運(yùn)行。
使用sysdba權(quán)限執(zhí)行以下腳本
SQL> @?/rdbms/admin/catalog.sql --數(shù)據(jù)庫字典,動(dòng)態(tài)視圖創(chuàng)建等 SQL> @?/rdbms/admin/catproc.sql --PL/SQL存過過程相關(guān)代碼 SQL> @?/rdbms/admin/utlrp.sql --編譯
使用SYSTEM用戶執(zhí)行以下腳本
SQL> @?/sqlplus/admin/pupbld.sql --SQL*Plus相關(guān) --驗(yàn)證結(jié)果 SQL> SELECT name, 2 DECODE (cdb, 3 'YES', 'Multitenant Option enabled', 4 'Regular 12c Database: ') 5 "Multitenant Option", 6 open_mode, 7 con_id 8 FROM v$database; NAME Multitenant Option OPEN_MODE CON_ID --------- -------------------------- -------------------- ---------- NOCDB Regular 12c Database: READ WRITE 0
步驟12 :(可選)運(yùn)行腳本以安裝其他選項(xiàng)(此處略)
您可能需要運(yùn)行其他腳本。您運(yùn)行的腳本由您選擇使用或安裝的功能和選項(xiàng)決定。
步驟13:備份數(shù)據(jù)庫對(duì)數(shù)據(jù)庫(此處略)
進(jìn)行完整備份,以確保您有一套完整的文件,如果發(fā)生介質(zhì)故障,可以從中恢復(fù)。
步驟14:(可選)啟用自動(dòng)實(shí)例啟動(dòng)(此處略)
您可能希望將Oracle實(shí)例配置為在其主機(jī)重新啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
二、12c下手工創(chuàng)建CDB數(shù)據(jù)庫
1、CDB創(chuàng)建相關(guān)說明
使用CREATE DATABASESQL
語句創(chuàng)建CDB非常類似于創(chuàng)建非CDB。使用CREATE DATABASESQL
語句創(chuàng)建CDB時(shí),必須啟用PDB并指定根文件和種子文件的名稱和位置。
要?jiǎng)?chuàng)建CDB,CREATE DATABASE語句必須包含ENABLE PLUGGABLE DATABASE
子句。當(dāng)包含此子句時(shí),該語句使用根和種子創(chuàng)建CDB。如果未指定ENABLE PLUGGABLE DATABASE
子句 那新創(chuàng)建的數(shù)據(jù)庫是非CDB。該語句不會(huì)創(chuàng)建根和種子,非CDB永遠(yuǎn)不會(huì)包含PDB。
以下為幾個(gè)主要差異部分
1、CDB數(shù)據(jù)庫創(chuàng)建時(shí)應(yīng)指定ENABLE PLUGGABLE DATABASE
子句
2、CDB數(shù)據(jù)庫應(yīng)指定根文件和種子文件的名稱和位置
??CREATE DATABASE
語句使用根文件(如數(shù)據(jù)文件)生成種子文件的名稱。您必須指定根文件和種子文件的名稱和位置。
??CREATE DATABASE
語句成功完成后,您可以使用種子及其文件創(chuàng)建新的PDB。種子在創(chuàng)建后不能被修改。
??可以通過以下方式之一指定種子文件的名稱和位置
????使用 seed FILE_NAME_CONVERT
子句
????如SEED FILE_NAME_CONVERT = (‘/app/oracle/ora12c/oradata/cdb1/','/app/oracle/ora12c/oradata/pdbseed/')
表示將cdb1目錄下的文件轉(zhuǎn)換到pdbseed目錄下
????基于oracle文件托管方式(OMF)
????使用PDB_FILE_NAME_CONVERT
初始化參數(shù)
3、可以為PDB種子數(shù)據(jù)庫制定不同的屬性
??根SYSTEM和SYSAUX表空間的數(shù)據(jù)文件的屬性可能不適合種子。在這種情況下,您可以使用子句為種子的數(shù)據(jù)文件指定不同的屬性tablespace_datafile。使用這些子句指定所有數(shù)據(jù)文件包含的屬性SYSTEM和SYSAUX表空間中的種子。從根繼承的值用于尚未提供其值的任何屬性。
如下示例
DATAFILE '/u01/app/oracle/oradata/newcdb/system01.dbf' SIZE 325M REUSE SYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf' SIZE 325M REUSE --下面的seed部分使用了不同于上面root容器的配置, --如system數(shù)據(jù)文件此處大小為125M,而root容器中為352M --seed中開啟了自動(dòng)擴(kuò)展,sysaux也同樣使用了一些不同于root容器的屬性 --對(duì)于在seed中未明確指定的屬性,則繼承root容器數(shù)據(jù)文件屬性 SEED SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED SYSAUX DATAFILES SIZE 100M
2、創(chuàng)建cdb數(shù)據(jù)庫
詳細(xì)步驟參考12c下手工創(chuàng)建非cdb數(shù)據(jù)庫,以下部分省略每一步驟詳細(xì)描述,后面列出差異
--設(shè)定環(huán)境變量 $ export ORACLE_SID=cdb1 $ export ORACLE_UNQNAME=cdb1 --創(chuàng)建相應(yīng)目錄 $ mkdir -pv /app/oracle/ora12c/oradata/cdb1 $ mkdir -pv /app/oracle/ora12c/oradata/pdbseed --生成參數(shù)文件 $ vi $ORACLE_HOME/dbs/initcdb1.ora DB_NAME=cdb1 CONTROL_FILES='/app/oracle/ora12c/oradata/cdb1/contorl01.ctl' MEMORY_TARGET=380m ENABLE_PLUGGABLE_DATABASE=true --開始建庫 $ sqlplus / as sysdba SQL> create spfile from pfile='$ORACLE_HOME/dbs/initcdb1.ora'; SQL> startup nomount; SQL> CREATE DATABASE cdb1 USER SYS IDENTIFIED BY pass USER SYSTEM IDENTIFIED BY pass LOGFILE GROUP 1 ('/app/oracle/ora12c/oradata/cdb1/redo01a.log','/app/oracle/ora12c/oradata/cdb1/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/app/oracle/ora12c/oradata/cdb1/redo02a.log','/app/oracle/ora12c/oradata/cdb1/redo02b.log') SIZE 100M BLOCKSIZE 512 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 1024 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/app/oracle/ora12c/oradata/cdb1/system01.dbf' SIZE 700M SYSAUX DATAFILE '/app/oracle/ora12c/oradata/cdb1/sysaux01.dbf' SIZE 550M DEFAULT TABLESPACE deftbs DATAFILE '/app/oracle/ora12c/oradata/cdb1/deftbs01.dbf' SIZE 500M DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/app/oracle/ora12c/oradata/cdb1/temp01.dbf' SIZE 20M UNDO TABLESPACE undotbs1 DATAFILE '/app/oracle/ora12c/oradata/cdb1/undotbs01.dbf' SIZE 200M ENABLE PLUGGABLE DATABASE SEED FILE_NAME_CONVERT = ('/app/oracle/ora12c/oradata/cdb1/', '/app/oracle/ora12c/oradata/pdbseed/') SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED SYSAUX DATAFILES SIZE 100M USER_DATA TABLESPACE usertbs DATAFILE '/app/oracle/ora12c/oradata/pdbseed/usertbs01.dbf' SIZE 200M; --填充數(shù)據(jù)字典,如果是12cR2版本,則直接執(zhí)行catcdb.sql代替以下腳本 --使用sysdba權(quán)限執(zhí)行以下腳本 SQL> @?/rdbms/admin/catalog.sql --數(shù)據(jù)庫字典,動(dòng)態(tài)視圖創(chuàng)建等 SQL> @?/rdbms/admin/catproc.sql --PL/SQL存過過程相關(guān)代碼 SQL> @?/rdbms/admin/utlrp.sql --編譯 --使用SYSTEM用戶執(zhí)行以下腳本 SQL> @?/sqlplus/admin/pupbld.sql #SQL*Plus相關(guān) SQL> select 'Leshami' Author,'http://blog.csdn.net/leshami' Blog, 2 '645746311' QQ from dual; AUTHOR BLOG QQ ------- ---------------------------- --------- Leshami http://blog.csdn.net/leshami 645746311 --驗(yàn)證結(jié)果 SQL> SELECT name, 2 DECODE (cdb, 3 'YES', 'Multitenant Option enabled', 4 'Regular 12c Database: ') 5 "Multitenant Option", 6 open_mode, 7 con_id 8 FROM v$database; NAME Multitenant Option OPEN_MODE CON_ID --------- -------------------------- -------------------- ---------- CDB1 Multitenant Option enabled READ WRITE 0
感謝各位的閱讀!關(guān)于“Oracle 12c如何實(shí)現(xiàn)手工建庫而非CDB及CDB創(chuàng)建”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。