- 完成Oracle数据库软件的安装。
- 设置环境变量ORACLE_SID
ORACLE_SID可以理解为,要创建的根容器名,也是实例名。例如:
export ORACLE_SID=CDB
- 创建密码文件
cd $ORACLE_HOME/dbs
orapwd file=orapwCDB password=123456 entries=5 format=12
password=123456 是设置SYS用户的密码,安装完Oracle软件后,没有创建任何用户,然而要执行CREATE DATABASE需要一个有足够权限的用户,SYS就是第一个用户。format=12是指12c格式的密码文件,对密码字符的要求并不严格。这个密码文件名必须是orapw+实例名的格式,Oracle才可以找到,本例就是orapwCDB。
- 创建初始化文件,在$ORACLE_HOME/dbs下创建初始化文件,存储创建数据库时的默认参数,文件名需遵守规则orapw+实例名,例如,如果ORACLE_SID是CDB,则初始化文件名为initCDB.ora。这个初始化文件的类型称为pfile。
db_block_size=8192 open_cursors=300 db_domain="io" db_name="CDB" control_files=("/u01/app/oracle/oradata/CDB/control01.ctl", "/u01/app/oracle/oradata/CDB/control02.ctl") compatible=19.0.0 diagnostic_dest=/u01/app/oracle enable_pluggable_database=true nls_language="AMERICAN" nls_territory="AMERICA" processes=300 sga_target=600m audit_file_dest="/u01/app/oracle/admin/CDB/adump" audit_trail=db remote_login_passwordfile=EXCLUSIVE pga_aggregate_target=200m undo_tablespace=UNDOTBS1 - 连接数据库
sqlplus / as sysdba
- 从PFILE创建SPFILE,将第4步的创建初始化文件转为spfile格式,以后就使用这个spfile存储参数信息了。
CREATE SPFILE FROM PFILE;
对于本例,上面命令执行完,在$ORACLE_HOME/dbs会多出spfileCDB.ora
- 启动实例进入nomount状态
STARTUP NOMOUNT
可能有初始化文件里指定的目录没有创建,会报No such file or directory,创建相应目录。
mkdir -p /u01/app/oracle/oradata/CDB/pdbseed
mkdir -p /u01/app/oracle/admin/CDB/adump
查看状态select status from v$instance;
- 执行创建数据库的SQL
CREATE DATABASE CDB USER SYS IDENTIFIED BY 123456 USER SYSTEM IDENTIFIED BY 123456 LOGFILE GROUP 1 ('/u01/app/oracle/oradata/CDB/redo01a.log','/u01/app/oracle/oradata/CDB/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/u01/app/oracle/oradata/CDB/redo02a.log','/u01/app/oracle/oradata/CDB/redo02b.log') SIZE 100M BLOCKSIZE 512, GROUP 3 ('/u01/app/oracle/oradata/CDB/redo03a.log','/u01/app/oracle/oradata/CDB/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 '/u01/app/oracle/oradata/CDB/system01.dbf' SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SYSAUX DATAFILE '/u01/app/oracle/oradata/CDB/sysaux01.dbf' SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED DEFAULT TABLESPACE deftbs DATAFILE '/u01/app/oracle/oradata/CDB/deftbs01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/CDB/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE undotbs1 DATAFILE '/u01/app/oracle/oradata/CDB/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED ENABLE PLUGGABLE DATABASE SEED FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/CDB/', '/u01/app/oracle/oradata/CDB/pdbseed/') SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED SYSAUX DATAFILES SIZE 100M USER_DATA TABLESPACE usertbs DATAFILE '/u01/app/oracle/oradata/CDB/pdbseed/usertbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED ; - 创建数据字典和视图
以sysdba权限执行
@?/rdbms/admin/catcdb.sql
提示时,如下输入:SQL> host perl -I &&rdbms_admin &&rdbms_admin_catcdb --logDirectory &&1 --logFilename &&2 Enter value for 1: /tmp Enter value for 2: create_cdb.log Enter new password for SYS: ******** Enter new password for SYSTEM: ******** Enter temporary tablespace name: TEMP - 手工删库
数据库必须处于mount状态,且设置了restricted session。
startup restrict force mount;
drop database;
查看状态
select status from v$instance;
执行drop database命令后,Oracle自动删除控制文件,(控制文件中记录的)数据文件和在线重做日志文件,如果数据库使用了spfile,spfile文件也会被删除。这个命令不会删除归档文件和备份文件。
OCP Oracle手工创建CDB(多租户)数据库
于 2021-06-01 11:23:19 首次发布
本文介绍了Oracle数据库的安装及相关操作。包括设置环境变量、创建密码文件、初始化文件,连接数据库,从PFILE创建SPFILE,启动实例进入nomount状态,执行创建数据库的SQL,创建数据字典和视图,还提及了手工删库的操作及注意事项。
1374

被折叠的 条评论
为什么被折叠?



