CREATE DATABASE¶
说明¶
创建一个新数据库
语法¶
create_database ::=
log_file_clause ::=
ctrl_file_clause ::=
arch_log_clause ::=
temp_file_clause ::=
rac_clause ::=
log_file_spec ::=
data_file_spec ::=
size_clause ::=
opt_max_size ::=
encoding_clause ::=
rac_node_info ::=
encrypt_option ::=
locale_option ::=
pagesize_option ::=
sensitive_option ::=
sys_user_clause ::=
参数¶
dbname
要创建的数据库名。
缺省数据库可由SET DEFAULT DATABASE命令给出。
ctlfile
控制文件名。
注解
- 创建数据库时如果不指定控制文件,默认创建两个控制文件分别在admin 和 odbs/dbname下
- 如果指定控制文件,则必须指定控制文件的全路径,控制文件数量最少为1,最大为9,同时数据库中限制控制文件全路径单个路径长度不能超过1023个字节。
- 当有多个控制文件时会对控制文件进行检测,如果某个控制文件坏掉会报错
- 具体的控制文件的信息可以通过系统视图 V$CONTROLFILE 查询。
- 可以在boot模式下通过语法 list database 'dbname' controlfile 显示数据库控制文件的状态
LOGFILE
该子句创建一个日志组。
可以包含多条LOGFILE子句。
缺省时,系统自动创建一个大小为200M的日志文件,按照10%自动增长,创建路径由环境变量给出。
ARCHIVELOG [ 'archpath' ] | NOARCHIVELOG
ARCHIVELOG归档模式。在进行介质故障恢复时需要使用此参数产生归档日志。
archpath归档路径,archpath如果是绝对路径,则长度不能超过 255 字节;如果archpath是相对路径,则对应的路径长度也不能超过 255 字节。路径长度超过255报错:"文件路径 archpath 长度不能超过 255 字节"。
- NOARCHIVELOG不归档模式。
默认为NOARCHIVELOG不归档模式
logfile
日志文件名
日志文件路径长度不能超过255字节。
size
文件大小。
其中K和KB表示千字节,M和MB表示兆字节,G和GB表示吉字节,T和TB表示太字节。
缺省时以M为单位。
DATAFILE
系统表空间 SYSTEM 数据文件设置子句。
缺省时自动创建一个大小为100M的数据文件,创建路径由环境变量给出。
DEFAULT DATAFILE
默认用户表空间 USERS 数据文件设置子句。
缺省时自动创建一个大小为100M的数据文件,创建路径由环境变量给出。
注解
单用户模式下创建对象的默认表空间为 SYSTEM。
多用户模式下用户默认表空间为 USERS 表空间,USERS 表空间不可以被 OFFLINE。
用户默认不允许向 SYSTEM 表空间创建对象。可通过 ENABLE_CREATE_ON_SYSTEM 参数控制,默认关闭。
datafile
数据文件名
数据文件路径长度不能超过255字节。
AUTOEXTEND
数据文件或日志文件的自动增长属性
NEXT
每次自动增长大小或百分比。(按百分比增长方式仅适用于日志文件)
对于数据文件,缺省值为10M。
对于日志文件,缺省为10%。
MAXSIZE
数据文件或日志文件最大限制
UNLIMITED
数据文件或日志文件大小没有限制。
AUDITFILE
审计文件设置子句。
缺省时自动创建一个大小为100M的数据文件,创建路径由环境变量给出。
auditfile
审计文件名
TEMPFILE
临时文件设置子句。
缺省时自动创建一个大小为100M的数据文件,创建路径由环境变量给出。
tempfile
临时文件名
临时文件路径长度不能超过255字节。
encoding
数据库编码,指定如下几个值
'SQL_ASCII'
'UNICODE'
'GBK'
'GB18030'
'UTF8'
'BIG5'
UNDO TABLESPACE
回滚表空间子句,回滚表空间的数据文件只允许指定一个,且后续不允许添加。
缺省时创建回滚表空间的名称"UNDOTS01",表空间的数据文件路径由环境变量给出。
threadid
RAC中日志线程的id
votediskpath
RAC中仲裁盘路径
nodeid
RAC节点id
nodeip
RAC节点ip
DATEFORMAT
可选值'SQL'、'ORACLE'。设置为'SQL'时,聚集函数count返回类型为int;设置为'ORACLE'时,聚集函数count返回类型为number。
默认为'SQL'
ENCRYPT | DECRYPT
指定数据库加密模式。
ENCRYPT: 设置数据库为加密模式。
DECRYPT: 设置数据库为非加密模式。
USING 'encrypt_algorithm'
指定加密算法。目前支持的加密算法包括:'des3' 、 'aes128' 、 'aes192' 、 'aes256' 、 'sm4'。
LC_CTYPE ctype
语言符号及其分类。需要数据库所在服务器支持,如'Chinese (Simplified)_People''s Republic of China.936'、'en_US.UTF-8'等,默认'C'所有系统支持。
LC_COLLATE collate
比较和排序习惯。需要数据库所在服务器支持,如'Chinese (Simplified)_People''s Republic of China.936'、'en_US.UTF-8'等,默认'C'所有系统支持。
PAGESIZE
指定创建数据库时数据页面的大小,只支持8K,16K,32K。
CASESENSITIVE
对大小写敏感,例如在进行数据比较时,严格区分大小写。
CASEINSENSITIVE
数据比较时大小不写敏感
username
用户名
password
用户口令
password_auth
用户密码认证方式
取值:MD5 或 SCRAM-SHA-256
缺省值为 SCRAM-SHA-256
注解
在配置文件中可以通过修改临时文件路径来制定临时文件的重建路径。当重启数据库时,发现临时文件大于100M(默认设置),临时文件就需要重建。此时,数据库会优先参照配置文件中的临时文件路径去重建。如果配置文件中临时文件的路径为空(默认设置),则数据库会参照控制文件中的临时文件路径去创建临时文件。控制文件中的临时文件路径是用户创建数据库时指定的。有个特殊现象,就是当用户在创建数据库时指定了两(多)个临时文件,并且分别在不同的目录。当重启数据库时需要重建临时文件时,如果用户未在配置文件中指定路径,则数据库会在原建库时指定的两(多)个临时文件路径重建临时文件。如果用户在配置文件中指定了临时文件路径,则数据库会将两(多)个临时文件都重建在此目录下。
创建数据库必须在启动模式下进行。具体可参见 DBA管理员手册 。
示例¶
-- 创建一个缺省值数据库
-- 下面的示例将创建一个缺省值数据库
CREATE DATABASE app_db;
-- 创建一个指定参数数据库
-- 下面的示例将创建一个指定参数数据库
CREATE DATABASE app_db2 LOGFILE 'log1.log' SIZE 20m LOGFILE 'log2.log'
SIZE 20m AUTOEXTEND ON NEXT 30% DATAFILE 'app_db2.dbf' SIZE 10m
AUTOEXTEND ON;
-- 下面的示例将创建一个指定临时文件路径参数的数据库
CREATE DATABASE app_db3 LOGFILE 'log1.log' SIZE 20m LOGFILE 'log2.log'
SIZE 20m AUTOEXTEND ON NEXT 30% TEMPFILE 'app_db_temp.dbf' SIZE 10m
AUTOEXTEND ON;
-- 创建指定多个控制文件路径的数据库
CREATE DATABASE app_db4 CONTROLFILE 'D:\oscar\admin\ctrlfile1.ctrl','D:\oscar\admin\ctrlfile2.ctrl','D:\oscar\admin\ctrlfile2.ctrl';
-- 在boot模式下显示数据库控制文件状态
LIST DATABASE dbname CONTROLFILE
-- 创建数据库指定默认用户表空间 USERS 数据文件
CREATE DATABASE app_db5 DEFAULT DATAFILE 'app_db_users.dbf' SIZE 10m
-- 创建数据库指定系统表空间 SYSTEM 数据文件
CREATE DATABASE app_db6 DATAFILE 'app_db_system.dbf' SIZE 10m
-- 创建数据库指定 SYSDBA 用户的密码
CREATE DATABASE app_db7 USER sysdba password 'szoscar55!'
-- 创建数据库指定 SYSAUDIT 用户的密码及认证方式
CREATE DATABASE app_db8 USER sysaudit password 'szoscar55!' USING 'SCRAM-SHA-256'
-- 创建数据库指定 SYSDBA、SYSAUDIT 用户的密码及认证方式
CREATE DATABASE app_db9 USER sysdba password 'szoscar55!' USING 'MD5' USER sysaudit password 'szoscar55!' USING 'SCRAM-SHA-256'