CREATE DATABASE
SQL命令实现,需预先配置参数文件和目录结构。创建前的准备
-
环境检查
- 确保服务器满足Oracle硬件要求(内存≥2GB,磁盘空间≥10GB)。
- 操作系统版本通过Oracle认证(如Linux需安装
glibc
、libaio
等依赖包)。 - 关闭防火墙或开放1521端口(默认监听端口)。
-
用户与权限
- 使用
oracle
用户操作(避免root权限):su - oracle
- 检查环境变量(
ORACLE_HOME
、ORACLE_SID
、PATH
)在~/.bash_profile
中正确配置:export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=orcl # 新实例的SID export PATH=$ORACLE_HOME/bin:$PATH
- 使用
-
创建必要目录
mkdir -p /u01/oradata/orcl # 数据文件存放目录 mkdir -p /u01/fast_recovery_area/orcl # 恢复区
创建数据库实例的两种方法
方法1:使用DBCA(图形界面,推荐)
- 启动DBCA:
dbca
- 按向导操作:
- 步骤1:选择”Create a Database”
- 步骤2:选择”Advanced Configuration”(自定义配置)
- 步骤3:配置数据库类型(OLTP/Data Warehouse)
- 步骤4:设置SID(如
orcl
)和全局数据库名(如orcl.example.com
) - 步骤5:配置存储选项(选择文件系统路径
/u01/oradata/orcl
) - 步骤6:启用归档模式(生产环境必选)
- 步骤7:配置内存、字符集(推荐AL32UTF8)、安全设置
- 步骤8:创建完成后生成脚本(保存至
/u01/scripts
)
方法2:手动创建(命令行)
- 创建初始化参数文件(
init.ora
):cd $ORACLE_HOME/dbs cat > init${ORACLE_SID}.ora <<EOF db_name=orcl memory_target=1G control_files=(/u01/oradata/orcl/control01.ctl) db_block_size=8192 ... EOF
- 创建实例并启动到NOMOUNT状态:
sqlplus / as sysdba STARTUP NOMOUNT;
- 执行建库脚本:
CREATE DATABASE orcl USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/oradata/orcl/redo01.log') SIZE 100M, GROUP 2 ('/u01/oradata/orcl/redo02.log') SIZE 100M DATAFILE '/u01/oradata/orcl/system01.dbf' SIZE 1G SYSAUX DATAFILE '/u01/oradata/orcl/sysaux01.dbf' SIZE 500M DEFAULT TABLESPACE users DATAFILE '/u01/oradata/orcl/users01.dbf' SIZE 100M;
- 运行数据字典脚本:
@$ORACLE_HOME/rdbms/admin/catalog.sql -- 创建数据字典 @$ORACLE_HOME/rdbms/admin/catproc.sql -- 创建PL/SQL环境
创建后验证
- 检查实例状态:
SELECT instance_name, status FROM v$instance; -- 应返回 "OPEN" 状态
- 验证关键组件:
SELECT * FROM dba_tablespaces; -- 确认表空间存在 SELECT * FROM v$controlfile; -- 检查控制文件路径
- 连接性测试:
sqlplus system/system_password@orcl
常见问题解决
-
ORA-01078: 无法处理参数文件
检查$ORACLE_HOME/dbs/init${ORACLE_SID}.ora
路径及权限(需oracle
用户可读)。 -
ORA-01501: 创建控制文件失败
确认/u01/oradata/orcl
目录有写权限,且磁盘空间充足。 -
监听器无法识别服务
在$ORACLE_HOME/network/admin/listener.ora
添加:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl.example.com) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) (SID_NAME = orcl) ) )
重启监听:
lsnrctl reload
。
最佳实践
- 生产环境必做:
- 启用归档日志模式(
ALTER DATABASE ARCHIVELOG;
) - 配置RMAN备份(
configure controlfile autobackup on;
)
- 启用归档日志模式(
- 安全加固:
- 修改默认密码(
ALTER USER sys IDENTIFIED BY new_password;
) - 限制
SYSDBA
登录IP(通过sqlnet.ora
配置)
- 修改默认密码(
- 性能优化:
- 使用ASM存储(替代文件系统)
- 调整
SGA_TARGET
和PGA_AGGREGATE_TARGET
引用说明:
- Oracle官方文档:Database Administrator’s Guide 19c
- Oracle安装最佳实践:MAA(Maximum Availability Architecture)
- 字符集选择参考:Oracle NLS Character Sets
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/31554.html