Oracle11g手动创建数据库

Oracle11g数据库的手工创建
1、参考文档
   Oracle11g Release 2 (11.2) ;

2、具体的创建步骤
   2.1 指定一个实例ID,即SID
        $ ORACLE_SID = orcl1
        $ export ORACLE_SID
       
   2.2 环境变量的设定
        $ vi .bash_profile
          ORACLE_BASE=/u01/app/oracle/product/11.2.0
          ORACLE_HOME=$ORACLE_BASE/db_1
          ORACLE_SID=orcl1
          PATH=$ORACLE_HOME/bin:$PATH
          export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
        保存,退出!
       
   2.3 选择数据库管理员的认证方法
        2.3.1 基于密码文件,通过以下命令创建密码文件
            $ ORAPWD FILE=orapworcl1 ENTRIES=10
           
        2.3.2 基于操作系统认证
            本示例采用基于操作系统的认证,即使用oracle用户连接数据库
            $ sqlplus /nolog
            > conn / as sysdba
           
   2.4 创建初始化参数文件
        初始化参数文件,可以采用数据库软件安装后的一个init.ora,如果以前创建过数据库,则在$ORACLE_HOME/dbs下存在一个init.ora
            $ cp init.ora initorcl1.ora
        修改initorcl1.ora中的数据,一个简单的initorcl1.ora如下所示:
            # specific hardware and needs. You may also consider using Database
            # Configuration Assistant tool (DBCA) to create INIT file and to size your
            # initial set of tablespaces based on the user input.
            ###############################################################################

            # Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
            # install time)

            db_name='orcl1'
            memory_target=400M
            processes = 150
            audit_file_dest='/u01/app/oracle/product/11.2.0/admin/orcl1/adump'
            audit_trail ='db'
            db_block_size=8192
            db_domain=''
            db_recovery_file_dest='/u01/app/oracle/product/11.2.0/flash_recovery_area'
            db_recovery_file_dest_size=2G
            diagnostic_dest='/u01/app/oracle/product/11.2.0'
            dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
            open_cursors=300
            remote_login_passwordfile='EXCLUSIVE'
            undo_tablespace='UNDOTBS1'
            # You may want to ensure that control files are created on separate physical
            # devices
            control_files = (
            '/u01/app/oracle/product/11.2.0/oradata/orcl1/control01.ctl',
            '/u01/app/oracle/product/11.2.0/oradata/orcl1/control02.ctl',
            '/u01/app/oracle/product/11.2.0/oradata/orcl1/control03.ctl')
            compatible ='11.2.0'

   2.5 创建一个实例(Windows Only)<略,具体参考Oracle11g release2 Docs>
  
   2.6 连接到一个实例
        $ sqlplus /nolog
       
        SQL*Plus: Release 11.2.0.1.0 Production on Sat Jun 9 11:07:07 2012

        Copyright (c) 1982, 2009, Oracle.  All rights reserved.
       
        >conn / as sysdba
        Connected to an idle instance.

   2.7 创建一个spfile文件
        > create spfile from pfile
       
        1 file created.
       
   2.8 启动实例(nomount模式)
        > startup nomount
       
   2.9 执行创建数据库SQL
        创建数据库的create database命令相对来说比较复杂,因此,最好将SQL写入一个createDB.sql文件中,然后再去调用,另外由于创建数据库需要在一些特定目录中写入数据,因此首先我们得准备好这些目录,如下
            1、准备所需的目录
            $ pwd
            /u01/app/oracle/product/11.2.0    ----这是ORACLE_BASE目录
            $ cd admin
            $ mkdir orcl1
            $ cd orcl1
            $ mkdir adump
            $ mkdir dpdump
            $ mkdir pfile
            $ cd ../../oradata
            $ mkdir orcl1
           
            2、准备createDB.sql【注意Create database命令不要出现空行,要不执行会报错!】
            spool dbcreate.log

            CREATE DATABASE "orcl1"
              USER SYS identified by oracle
              USER SYSTEM identified by oracle
              CHARACTER SET AL32UTF8
              NATIONAL CHARACTER SET AL16UTF16
              CONTROLFILE REUSE
              MAXDATAFILES 20
              MAXINSTANCES 2
              MAXLOGFILES 5
              MAXLOGMEMBERS 5
              MAXLOGHISTORY 100
              LOGFILE
                GROUP 1 ('/u01/app/oracle/product/11.2.0/oradata/orcl1/redo01.log') size 50M BLOCKSIZE 512,
                GROUP 2 ('/u01/app/oracle/product/11.2.0/oradata/orcl1/redo02.log') size 50M BLOCKSIZE 512,
                GROUP 3 ('/u01/app/oracle/product/11.2.0/oradata/orcl1/redo03.log') size 50M BLOCKSIZE 512
              EXTENT MANAGEMENT LOCAL
              DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/system01.dbf' size 500M REUSE
              SYSAUX DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/sysaux01.dbf' size 500M REUSE
              DEFAULT TEMPORARY TABLESPACE temporcl1
                TEMPFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/temp01.dbf' size 100M REUSE
              UNDO TABLESPACE UNDOTBS1
                DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/undotbs01.dbf' size 100M REUSE
                AUTOEXTEND ON MAXSIZE UNLIMITED
              DEFAULT TABLESPACE users
                DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/users01.dbf' size 500M REUSE
                AUTOEXTEND ON MAXSIZE UNLIMITED;
           
            3、>@$ORACLE_HOME/dbs/createDB.sql
            等待执行,可以在$ORACLE_BASE/diag/rdbms/orcl1/orcl1/trace目录中使用
                $ tail -f alert_orcl1.log
            查看创建进度
           
   2.10 创建额外的表空间
        上面创建的一些系统表空间和部分表空间,为了应用需要可以类似下面增加一些表空间,createTBS.sql如下:
            --应用表空间
            CREATE TABLESPACE app_tbs LOGGING
              DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/apps01.dbf' SIZE 100M REUSE
              AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
            --应用索引空间
            CREATE TABLESPACE idx_tbs LOGGING
              DATAFILE '/u01/app/oracle/product/11.2.0/oradata/orcl1/idx01.dbf' SIZE 20M REUSE
              AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
   
   2.11 运行创建数据字典视图的脚本
        至2.10已经创建完一个数据库,但是还需要做一些创建数据字典等的工作,数据库才能正常提供使用,比如PL/SQL等,依次执行如下命令:
            > @?/rdbms/admin/catalog.sql
            > @?/rdbms/admin/catproc.sql
            > @?/sqlplus/admin/pupbld.sql
      至此创建的数据库orcl1能够正常提供服务了,当然还可以有选择的执行类似于2.11的其他脚本,以及做一些备份工作,这里就不涉及了。

猜你喜欢

转载自zhoucl.iteye.com/blog/1556020