#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 DATABASE
SEED
FILE_NAME_CONVERT = ('/oradata/testdb/',
'/oradata/testdb/pdbseed/')
SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
SYSAUX DATAFILES SIZE 100M
USER_DATA TABLESPACE usertbs
DATAFILE '/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