#Oracle #19c #手工建庫
手工創建Oracle數據庫(也稱為手工建庫)是指在已經安裝了Oracle數據庫軟件的基礎上,通過手動執行一系列命令和步驟來創建一個新的數據庫實例。這種方法與使用Database Configuration Assistant (DBCA)等工具自動創建數據庫相對,它提供了更高的靈活性和控制度,允許數據庫管理員根據特定的需求精細調整數據庫配置。
本文的實例基于CDB模式創建,非CDB模式有興趣的小伙伴自行研究。
一、創建參數文件
數據庫軟件安裝完成后,在$ORACLE_HOME/dbs目錄下有一個參數文件模版init.ora
接下來編輯創建實例所需要的參數文件
db_name='testdb'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/testdb/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
#db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
#db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=testdbXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/oradata/testdb/control1.ctl, /oradata/testdb/ora_control2.ctl)
compatible ='19.0.0'
enable_pluggable_database=true
*注意*
如果要創建CDB,參數enable_pluggable_database要設置為true,否則會報ORA-65093: multitenant container database not set up properly
二、創建相關目錄
根據參數文件中涉及的目錄,創建對應的目錄
mkdir -p /u01/app/oracle/admin/testdb/adump
mkdir -p /oradata/testdb#這里是針對pdbseed庫的目錄
mkdir -p /oradata/testdb/pdbseed/
三、將數據庫啟動到nomount狀態
startup nomount pfile=inittestdb.ora
四、配置創建數據庫腳本
createdb.sql內容如下
CREATE DATABASE testdb
USER SYS IDENTIFIED BY 123456
USER SYSTEM IDENTIFIED BY 123456
LOGFILE GROUP 1 ('/oradata/testdb/redo01a.log','/oradata/testdb/redo01b.log') SIZE 100M BLOCKSIZE 512,GROUP 2 ('/oradata/testdb/redo02a.log','/oradata/testdb/redo02b.log') SIZE 100M BLOCKSIZE 512,GROUP 3 ('/oradata/testdb/redo03a.log','/oradata/testdb/redo03b.log') SIZE 100M BLOCKSIZE 512
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT
LOCAL DATAFILE '/oradata/testdb/system01.dbf' SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SYSAUX DATAFILE '/oradata/testdb/sysaux01.dbf' SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TABLESPACE deftbs
DATAFILE '/oradata/testdb/deftbs01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/oradata/testdb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE undotbs1
DATAFILE '/oradata/testdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
ENABLE PLUGGABLE DATABASESEEDFILE_NAME_CONVERT = ('/oradata/testdb/','/oradata/testdb/pdbseed/')SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDSYSAUX DATAFILES SIZE 100MUSER_DATA TABLESPACE usertbsDATAFILE '/oradata/testdb/pdbseed/usertbs01.dbf'SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
;
五、在sqlplus中執行腳本
sqlplus / as sysdba
SQL> @createdb.sql
六、執行創建數據字典腳本
以SYS用戶執行下面的腳本:
sqlplus / as sysdba
--->創建數據字典視圖、動態性能視圖和同義詞
SQL>@?/rdbms/admin/catalog.sql--->運行所有PL/SQL需要或使用的腳本
SQL>@?/rdbms/admin/catproc.sql--->重新編譯失效狀態的PL/SQL模塊,包括包、過程或類型
SQL> @?/rdbms/admin/utlrp.sql
以SYSTEM用戶執行下面的腳本:
SQL> conn system/123456--創建一些必要的表和視圖,這些對象支持SQLPlus的一些高級功能
SQL> @?/sqlplus/admin/pupbld.sql