- 完成Oracle数据库软件的安装。
- 设置环境变量ORACLE_SID
ORACLE_SID可以理解为,要创建的数据库的名,也是实例名。例如:
export ORACLE_SID=ORCL
- 创建密码文件
cd $ORACLE_HOME/dbs
执行命令:
orapwd file=orapwORCL password=123456 entries=5 format=12 password=123456
这是是设置SYS用户的密码,安装完Oracle软件后,没有创建任何用户,然而要执行CREATE DATABASE需要一个有足够权限的用户,SYS就是第一个用户。format=12是指12c格式的密码文件,对密码字符的要求并不严格。文件名必须是orapw+SID,Oracle才可以找到,例如orapwORCL。
- 创建参数文件,在$ORACLE_HOME/dbs下创建参文件,存储创建数据库时的默认参数,文件名需遵守规则init+实例名,例如,如果ORACLE_SID是ORCL,则初始化文件名为initORCL.ora。这个文件的类型称为pfile。
db_block_size=8192 open_cursors=300 db_domain="io" db_name="ORCL" control_files=("/u01/app/oracle/oradata/ORCL/control01.ctl", "/u01/app/oracle/oradata/ORCL/control02.ctl") compatible=19.0.0 diagnostic_dest=/u01/app/oracle enable_pluggable_database=false nls_language="AMERICAN" nls_territory="AMERICA" processes=300 sga_target=600m audit_file_dest="/u01/app/oracle/admin/ORCL/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会多出spfileORCL.ora
- 启动实例进入nomount状态
STARTUP NOMOUNT
可能有初始化文件里指定的目录没有创建,会报No such file or directory,创建相应目录。
查看状态select status from v$instance;
- 执行创建数据库的SQL:
CREATE DATABASE ORCL USER SYS IDENTIFIED BY 123456 USER SYSTEM IDENTIFIED BY 123456 LOGFILE GROUP 1 ('/u01/app/oracle/oradata/ORCL/redo01a.log','/u01/app/oracle/oradata/ORCL/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/u01/app/oracle/oradata/ORCL/redo02a.log','/u01/app/oracle/oradata/ORCL/redo02b.log') SIZE 100M BLOCKSIZE 512, GROUP 3 ('/u01/app/oracle/oradata/ORCL/redo03a.log','/u01/app/oracle/oradata/ORCL/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/ORCL/system01.dbf' SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SYSAUX DATAFILE '/u01/app/oracle/oradata/ORCL/sysaux01.dbf' SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/ORCL/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE undotbs1 DATAFILE '/u01/app/oracle/oradata/ORCL/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED USER_DATA TABLESPACE usertbs DATAFILE '/u01/app/oracle/oradata/ORCL/usertbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
- 创建额外的表空间(可选)|
CREATE TABLESPACE apps_tbs LOGGING DATAFILE '/u01/app/oracle/oradata/ORCL/apps01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL; CREATE TABLESPACE indx_tbs LOGGING DATAFILE '/u01/app/oracle/oradata/ORCL/indx01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
- 创建数据字典和视图
以sysdba权限执行 @?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql 或执行 $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d $ORACLE_HOME/rdbms/admin -n 2 catpcat.sql 以sysdba权限执行 @?/rdbms/admin/utlrp.sql 以system用户执行 @?/sqlplus/admin/pupbld.sql
- 手工删库
数据库必须处于mount状态,且设置了restricted session。
startup restrict force mount;
drop database;
查看状态
select status from v$instance;
执行drop database命令后,Oracle自动删除控制文件,以及控制文件中记录的数据
文件和在线重做日志文件,如果数据库使用了SPFILE,SPFILE文件也会删除。这个命令不会删除归档文件和备份文件。
- 参考
https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/creating-and-configuring-an-oracle-database.html#GUID-0306126A-D63C-41E0-8D6E-48020FC18697
OCP手工建库(non-CDB)
于 2021-06-01 10:31:23 首次发布