Oracle 手工建库第二步 创建databse
将instance启动到nomount状态就可以创建数据库了,通过create database来手工来创建数据库了,这里要写一个脚本,这个脚本相对比较复杂,不建议直接编写,可以通过oracle官方文档来找到相应的信息,然后修改过后拿来使用。
将官方文档上面的内容复制过来,将其进行修改。
[oracle@Database2 dbs]$ cd /home/oracle
[oracle@Database2 dbs]$ vi creatdb.txt
CREATE DATABASE oradb --数据库名称
USER SYS IDENTIFIED BY oracle --修改sys用户的口令
USER SYSTEM IDENTIFIED BY oracle --修改system用户的口令
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/oradb/redo01.log') SIZE 500M, --日志组文件的位置和大小,路径(/u01/app/oracle/oradata/oradb)必须已经是存在的
GROUP 2 ('/u01/app/oracle/oradata/oradb/redo02.log') SIZE 500M,
GROUP 3 ('/u01/app/oracle/oradata/oradb/redo03.log') SIZE 500M
MAXLOGFILES 10 --最大的日志组的个数,最多十个日志组
MAXLOGMEMBERS 5 --每个日志组里面最大的成员个数,一般两个成员就足够保证日志的安全了,但是这两个日志一定要放在不同的存储上,成员也不能多了,这样产生的I/O也会很多
MAXLOGHISTORY 200
MAXDATAFILES 100 --数据文件最大个数,对于大的生产库最好设置为200
CHARACTER SET ZHS16GBK --支持的是中文的
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL --表空间是本地管理的,不使用数据字典,生产环境使用本地管理
DATAFILE '/u01/app/oracle/oradata/oradb/system01.dbf' SIZE 500M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/oradb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/oradb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1 --这个名字得和参数文件init<SID>.ora里面的名字保持一致(undo_tablespace='UNDOTBS1')
DATAFILE '/u01/app/oracle/oradata/oradb/undotbs01.dbf'
SIZE 200M REUSE;
在建库的时候,最好对存储有一个规划,数据文件,redo日志文件,归档日志文件尽量不要放到相同的存储上,这样是从安全角度和性能角度考虑。
我的建库脚本最后修改如下:
CREATE DATABASE oradb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/oradb/redo01.log') SIZE 50M,
GROUP 2 ('/u01/app/oracle/oradata/oradb/redo02.log') SIZE 50M,
GROUP 3 ('/u01/app/oracle/oradata/oradb/redo03.log') SIZE 50M
MAXLOGFILES 20
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 100
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/oradb/system01.dbf' SIZE 500M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/oradb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/oradb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/oradb/undotbs01.dbf'
SIZE 200M REUSE;
SQL> select status from v$instance; --现在实例是启动到nomount状态
STATUS
------------------------
STARTED
SQL> @/home/oracle/createdb.sql --@代表运行,后面绝对路径,运行该脚本。
Database created.
下面是alter日志里面的内容,可以在一边建库一边观察alter日志里面的内容:
建库完成之后可以观察一下实例启动到什么阶段了
SQL> select status from v$instance; --可以看到,建库完成之后启动到open状态了
STATUS
------------
OPEN
SQL> desc dba_tablespaces; --可以看到虽然库创建成功,但是很多数据字典还是不存在的
ERROR:
ORA-04043: object dba_tablespaces does not exist
如果要将文件分散的放置使用下面的建库脚本:
[oracle@Database2 ~]$ cat createdb.sql
CREATE DATABASE oradb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/oradb/redo01.log','/u02/app/oracle/oradata/oradb/redo01.log') SIZE 500M,
GROUP 2 ('/u01/app/oracle/oradata/oradb/redo02.log','/u02/app/oracle/oradata/oradb/redo02.log') SIZE 500M,
GROUP 3 ('/u01/app/oracle/oradata/oradb/redo03.log','/u02/app/oracle/oradata/oradb/redo03.log') SIZE 500M
MAXLOGFILES 20
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 100
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u03/app/oracle/oradata/oradb/system01.dbf' SIZE 500M REUSE
SYSAUX DATAFILE '/u03/app/oracle/oradata/oradb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u03/app/oracle/oradata/oradb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u03/app/oracle/oradata/oradb/undotbs01.dbf'
SIZE 200M REUSE;
(如果路径不存在要将路径创建起来,并且修改所有者和所属组:mkdir -p '/u02/app/oracle/oradata/oradb/ chown -R oracle:oinstall /u02)
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/oradb/redo01.log
/u02/app/oracle/oradata/oradb/redo01.log
/u01/app/oracle/oradata/oradb/redo02.log
/u02/app/oracle/oradata/oradb/redo02.log
/u01/app/oracle/oradata/oradb/redo03.log
/u02/app/oracle/oradata/oradb/redo03.log
6 rows selected.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u03/app/oracle/oradata/oradb/system01.dbf
/u03/app/oracle/oradata/oradb/sysaux01.dbf
/u03/app/oracle/oradata/oradb/undotbs01.dbf
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/u03/app/oracle/oradata/oradb/temp01.dbf
最后一步就是创建数据字典了。
如果要参考Oracle手工建库第一步请参考: Oracle 手工建库第一步 创建instance
创建数据字典请参考:Oracle 手工建库第三步 创建数据字典
相关文章
- Oracle数据库实例构建指南(oracle数据库创建实例)
- 解决Oracle监听服务创建失败问题(oracle监听无法创建)
- 的查看Oracle用户下所有表查看:一步搞定(oracle用户下所有表)
- Oracle如何创建相同表格?(oracle创建相同表)
- 测试Oracle 创建表的效果(oracle创建表测试)
- 提升工作效率:利用Oracle数据闪回(oracle数据闪回)
- Oracle数据库的重新启动(oracle重新启动)
- 如何获取Oracle数据库创建表的权限(oracle创建表权限)
- 如何创建和管理Oracle表格?(oracle表是)
- Oracle数据库日常管理技巧:提升稳定性和性能(oracle日常管理)
- Oracle数据库:如何正确创建表空间(oracle表空间的建立)
- 如何创建和管理 Oracle 数据库账号?(oracle数据库账号)
- 保障Oracle服务器编码质量的关键步骤(oracle服务器的编码)
- dir创建Oracle目录:步骤与指南(oracle.mk)
- 数据库罗敏注入Oracle数据库知识(罗敏oracle)
- 快速创建 Oracle 视图的步骤.(oracle中创建视图)
- 如何在Oracle数据库中创建ASM存储?(oracle创建asm)
- Oracle手动事务掌握高效管理数据变更的必要技能(oracle手动事务)
- Oracle分组累计:如何使用聚合函数实现统计分组数据的累计值?(oracle分组累计)
- 踏上Oracle视图之旅,轻松学习使用教程(oracle视图教程)
- 指引:Oracle 快速启动数据库(oracle 启动数据库)
- Oracle构建任务的完美契合(oracle创建任务)
- Oracle中拼接字符串的方法研究(oracle 内容拼接)
- Oracle如何修改列数据的正确方式(oracle修改列中的值)
- 出查询时间怎样在Oracle中优化查询时间(oracle中怎么计算)
- Oracle数据库中的实体视图(oracle中实体视图)
- Oracle SID的作用分析(oracle sid作用)
- 创建如何使用Oracle创建包(oracle pkg怎么)
- 掌控Oracle成本,获得商业价值(oracle costs)