zoukankan      html  css  js  c++  java
  • Oracle 创建数据库

    分类: Oracle

    一、概念

       一个Oracle数据库,最基本的构成(逻辑):

    1. (1)system表空间      1个    --> # 用于存贮“数据字典”
    2. (2)sysaux表空间      1个    --> # 用于存贮“不属于数据字典,但Oracle管理所需要的表”
    3. (3)redo log日志     2组   --> # 用于“记录所有已提交数据及动作”
    4.                               a. 需要至少2组,一组写满后,切换到另一组。
                                         这时可以对已写满的这一组日志进行备份,备份后清空给下一次使用]
    5.                               b. 一组中可以有多份日志,但它们的内容是完全相同的。这样就不用担心因
                                         为某一个日志文件出问题而影响以后在恢复过程中的使用。
    6. (4)临时表空间       1个   --> # 用于“内存排序”时,工作区空间不够时使用
    7. (5)undo表空间       1个     --> # 用于“回退存储在磁盘上的未提交的数据”

    二、实践

    1. create database {ORACLE_NAME}     --> # 数据库名,一般与ORACLE_SID相同
    2. user sys identified by {密码}       --> # 不设置,则默认为“change_on_install”
    3. user system identified by {密码}    --> # 不设置,则默认为“manager”
    4. maxlogfiles 5       --> # 最大日志组数
    5. maxlogmembers 5     --> 日志组中最多成员数
    6. maxloghistory 1     --> #RAC环境下有效,暂不深入)
    7. maxdatafiles 100    --> # 最大数据文件数(与“DB_FILES”之间的关系?)
                                // 9i后,由DB_FILES参数来控制“最大数据文件数”。这个参数名存实亡。
    8. logfile group 1 ('/u01/app/oracle/oradata/orcl/redo01a.log',
                       '/u01/app/oracle/oradata/orcl/redo01b.log',
                       '/u01/app/oracle/oradata/orcl/redo01c.log') size 20M,
    9.         group 2 ('/u01/app/oracle/oradata/orcl/redo02a.log',
                       '/u01/app/oracle/oradata/orcl/redo02b.log',
                       '/u01/app/oracle/oradata/orcl/redo02c.log') size 20M,
    10.         group 3 ('/u01/app/oracle/oradata/orcl/redo03a.log',
                       '/u01/app/oracle/oradata/orcl/redo03b.log',
                       '/u01/app/oracle/oradata/orcl/redo03c.log') size 20M
    11.                                --# 创建日志组,及组中成员
    12. character set WE8ISO8859P1     --> # 数据库字符集
    13. national character set UTF8    --> # 国家字符集
    14. extent management local        --> # 指定system表空间中,扩展段的管理方式 
                                                                [ local | dictionary ]
      1. // 使用“本地管理(local)”,即位图管理方式。(见后面的“Oracle体系结构”部分)
        // 设置为“本地管理”时,必须同时指定扩展块的大小(两种方式):
                 1、UNIFORM SIZE(统一大小){单位:“K” 或 “M”};
                 2、AUTOALLOCATE(自动分配)
        // 默认为“字典管理(dictionary)”方式。

      2. e.g//
      3.     extent management local autoallocate
      4.     extent management local uniform size 128k
      5.     extent management dictionary
                                          
    15.         
    16. datafile '/u01/app/oracle/oradata/orcl/system01.dbf' size 500M  
                                                               --
      > # 创建“system表空间”
    17. sysaux datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' size 500M 
                                                               --> # 创建“sysaux表空间”
    18. default tablespace users
    19. datafile '/u01/app/oracle/oradata/orcl/users01.dbf' size 500M autoextend on maxsize unlimited                            --> # 创建“默认(永久)表空间” 
                                        // 用户创建表时,若没有指定表空间,则放在此表空间中
    20. default temporary tablespace temptbs
    21. tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' size 300M 
                                    --> # 创建“默认临时表空间”
    22. undo tablespace undotbs1
    23. datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' size 300M autoextend on maxsize unlimited                          --> # 创建“undo表空间”(即:撤销表空间) 
                                        // 注意:这里的undo表空间名,一定要与
                                                “参数文件中的undo表空间”名称一样,否则创建失败
    24. set time_zone = '+08:00';      --> # 指定时区

    三、CREATE DATABASE的其他子句

      1. maxinstances                --> # 一个数据库最多可以有多少个实例(用于RAC下)
      2. noarchivelog / archivelog   --> # 非归档模式 / 归档模式
      3.  force logging              --> # 
    除了对临时表空间的操作,对其他对象的所有操作都需要记到日志中 
    1. set default tablespace smallfile | bigfile --> # 指定表空间的物理实现方式
    2.                   // smallfile   一个表空间可以有一个或多个数据文件组成
    3.                               // bigfile   一个表空间只能有一个数据文件组成
                                                                  (一般用于ASM环境下)

    四、技巧

          (1)终端窗口A:

    1. SQL> startup nomount ;

          (2)终端窗口B:

    1. SQL> tail -f $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_orcl.log

          (3)终端窗口A:

    1. SQL> create database ....;

          (4)终端窗口B:

    1. (这时,可以看到create database语句的执行细节)
  • 相关阅读:
    AtCoder Beginner Contest 167
    AtCoder Beginner Contest 166
    AtCoder Beginner Contest 165
    AtCoder Beginner Contest 164
    AtCoder Beginner Contest 163
    AtCoder Beginner Contest 162
    AtCoder Beginner Contest 161
    AtCoder Beginner Contest 160
    AtCoder Beginner Contest 159
    自定义Mybatis自动生成代码规则
  • 原文地址:https://www.cnblogs.com/aspirant/p/7828248.html
Copyright © 2011-2022 走看看