Oracle手动创建数据库步骤
在Oracle数据库中,手动创建数据库是一个详细且复杂的过程,通常涉及编写和执行一系列的SQL和命令行脚本。以下是基于Oracle的环境中手动创建数据库的步骤说明。我们假设您已经安装了Oracle数据库软件,并设置了必要的操作系统变量。
1. 环境设置
确保您的环境变量正确设置。这包括ORACLE_HOME
(Oracle软件安装目录)和ORACLE_SID
(您要创建的数据库的系统标识符)。例如:
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export ORACLE_SID=mydb
export PATH=$ORACLE_HOME/bin:$PATH
2. 创建初始化参数文件
创建一个初始化参数文件(initmydb.ora
),该文件包含数据库启动和运行所需的参数。这个文件通常位于$ORACLE_HOME/dbs
目录下。示例参数可能包括:
db_name='mydb'
memory_target=1G
control_files=('/u01/oradata/mydb/control01.ctl', '/u01/oradata/mydb/control02.ctl')
undo_tablespace='UNDOTBS1'
db_block_size=8192
3. 启动到NOMOUNT状态
使用创建的初始化参数文件,启动数据库到NOMOUNT状态。这个状态下,Oracle实例已启动,但数据库尚未挂载。
sqlplus / as sysdba
在SQL*Plus中输入:
STARTUP NOMOUNT PFILE='/u01/app/oracle/product/12.2.0/dbhome_1/dbs/initmydb.ora';
4. 创建数据库
执行CREATE DATABASE
语句来创建数据库。这一步会定义数据库的基本结构,包括系统表空间、撤销表空间、临时表空间等。
CREATE DATABASE mydb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
LOGFILE GROUP 1 ('/u01/oradata/mydb/redo01.log') SIZE 100M,
GROUP 2 ('/u01/oradata/mydb/redo02.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/oradata/mydb/system01.dbf' SIZE 700M REUSE
SYSAUX DATAFILE '/u01/oradata/mydb/sysaux01.dbf' SIZE 550M REUSE
DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/mydb/temp01.dbf' SIZE 20M REUSE
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u01/oradata/mydb/undotbs01.dbf' SIZE 200M REUSE
DEFAULT TABLESPACE users DATAFILE '/u01/oradata/mydb/users01.dbf' SIZE 500M REUSE
ENABLE PLUGGABLE DATABASE
SEED FILE_NAME_CONVERT = ('/u01/oradata/mydb/', '/u01/oradata/mydb/pdbseed/')
SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
SYSAUX DATAFILES SIZE 100M;
5. 运行脚本以创建数据字典视图
运行Oracle提供的脚本,以建立数据字典和其他必要的数据库对象。
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
6. 创建额外的必要组件
如果需要,创建额外的数据库组件,如APEX、Spatial等。
@?/apex/apxins.sql
@?/md/admin/mdinst.sql
7. 开放数据库使用
最后,打开数据库并允许用户访问。
ALTER DATABASE OPEN;
8. 验证数据库创建
通过运行一些基本查询来验证数据库是否正常运行,例如查询数据库版本和当前状态。
SELECT * FROM v$version;
SELECT status FROM v$instance;
总结
手动创建Oracle数据库