“手工”创建Oracle数据库

【实验前必知的信息】

1. 平台环境:CentOS5.5 + Oracle 11g R2

2. 新数据库名:orcl02

新实例名:Instance02

$ORACLE_BASE=/u01

$ORACLE_HOME=/u01/oracle

 

 

【手工创建数据库的具体步骤】

【第一部分:相关文件和变量的准备】

Step 1:  设置SID,假设为Instance02

Step 2:  设置环境变量:$ORACLE_BASE, $ORACLE_HOME, $ORACLE_SID, $PATH,

$SHARED_LIBRARY_PATH。别忘记export 这些环境变量。

可以将这些信息存储在“SetInstance02EnvVar.env”文件中,可以将该文件放在

$ORACLE_HOME/dbs/”目录下。

 

如何使“SetInstance02EnvVar.env”文件中的新的环境变量生效,可用如下命令:

[oracle@localhost-oracle11gR2 dbs] $ . ./ SetInstance02EnvVar.env

注意:“.”和“./ SetInstance02EnvVar.env”文件之间一定要有“空格”。

 

Step 3:  创建spfile初始化参数文件spfileInstance02.ora

1.       先编辑文本初始化参数文件initInstance02.ora

2.       再根据“文本初始化参数文件”创建“服务器参数文件spfileInstance02.ora

命令:SQL > create spfile from pfile

注意

在创建pfile初始化参数文件之前,要根据参数文件中指定的信息创建一些目录,要创建好新的目录有(至少如下3个):

①控制文件目录:“/u01/oradata/orcl02/

②审计文件目录:/u01/admin/orcl02/

③闪回文件目录:/u01/flash_recovery_area/orcl02

 

Step 4:  创建口令文件orapwdInstance02

              创建口令文件的命令:

[oracle@localhost-oracle11gR2 ~] $ orapwd file=orapwInstance02 password=zjrodger

entries=10

Step 5:  创建create database脚本文件createDatabaseScripts.sql

        [自己的试验脚本见下边参考资料]

        在编辑CREATE DATABASE脚本文件时,注意的事项:

     CREATE DATABASE命令中的每个“option”之间不能有“空行”,比如选项USER SYSUSER SYSTEM之间不能有空行,选项USER SYSTEMLOGFILE之间不能有空行,

     如果设置了MAXINSTANCES参数,则MAXLOGFILES参数的值至少一定要是MAXINSTANCES参数的值得2

     在编辑UNDO表空间时,undo表空间的名字必须为“undotbs1”,而不能是“undotbs01”或其他自定义的值。

 

 

 

【第二部分:开始创建新数据库(裸数据库)】

Step 6:  sys身份连接到sqlplus中。

Step 7:  启动实例到nomount状态。

具体命令:SQL > startup nomount;

Step 8:  创建数据库,执行创建数据库的脚本文件——createDatabaseScripts.sql

              具体命令:SQL > @$ORACLE_HOME/dbs/ createDatabaseScripts.sql;

              如果创建成功,将会提示“Database Created”。            

 

              注意:创建数据库的过程耗时较长,可以使用tail命令来同步观察创建时的相关信

息的更新。

[oracle@localhost-oracle11gR2 ~] $ tail –f /u01/admin/orcl02(

Instance02)/bdump/alert_Instance02.log

 

 

【第三部分:创建数据字典, 必要的表空间等】

(

·Run Scripts to generate data-dictionary and accomplish post-creation steps

·Create additional tablespaces as needed

)

 

Step 9:  创建额外的表空间Create Additional Tablespaces

              将自己用到的数据(应用程序的数据)存储在这些额外表空间中,就避免了将数据存放在系统表空间中,从而方便了数据库自身的数据管理。

 

CREATE TABLESPACE mytbs01 DATAFILE ‘/u01/oradata/orcl02/mytbs01.dbf’ SIZE 100M EXTENT MANAGEMENT LOCAL

 

 

 

Step 10: 运行相关脚本文件,创建数据字典视图。

        ( Run Scripts to build Data Dictionary View)            

[oracle@localhost-oracle11gR2 ~] $ @$ORACLE_HOME/rdbms/admin/catalog.sql

[oracle@localhost-oracle11gR2 ~] $ @$ORACLE_HOME/rdbms/admin/catproc.sql

[oracle@localhost-oracle11gR2 ~] $ @$ORACLE_HOME/sqlplus/admin/pupbld.sql

               

              注意

     OracleSQL脚本文件有很多,但是以上3个脚本文件必须被执行。

第一个脚本文件catalog.sql的作用 Creates the views of the data dictionary tables, the dynamic performance views, and public synonyms for many of the views. Grants PUBLIC access to the synonyms

第二个脚本文件catproc.sql的作用Runs all scripts required for or used with PL/SQL.

第三个脚本文件pupbld.sql的作用Required for SQL*Plus. Enables SQL*Plus to disable commands by user

 

     关于更多Oracle SQL脚本文件的信息,参考官方文档中相关资料——

 Database Reference”中“SQL Scripts”的“Creating the Data Dictionary

     在执行脚本的过程中会产生大量的信息,用“SPOOL data_dic_createing_log.log”命令将信息导入到data_dic_createing_log.log文件中,如此,便于出错时查询。

 

【参考资料】

官方文档的相关链接

具体参考“11gR2官方文档”中——《Database Administrator's Guide》的第二章“2 Creating and Configuring an Oracle Database”——“Creating a Database with the CREATE DATABASE Statemen

 

 

【创建数据库的脚本文件】——create_db_orcl02.sql

  1 spool ./db_create_log.log;

  2

  3 CREATE DATABASE "orcl02"

  4     USER SYS IDENTIFIED BY zjrodger

  5     USER SYSTEM IDENTIFIED BY zjrodger

  6     LOGFILE

  7     GROUP 1 ('/u01/oradata/orcl02/redo01.log') SIZE 100M BLOCKSIZE 512,

  8     GROUP 2 ('/u01/oradata/orcl02/redo02.log') SIZE 100M BLOCKSIZE 512

  9     MAXLOGFILES 5

 10     MAXLOGMEMBERS 5

 11     MAXLOGHISTORY 1

 12     MAXDATAFILES 100

 13     CHARACTER SET US7ASCII

 14     NATIONAL CHARACTER SET AL16UTF16

 15     EXTENT MANAGEMENT LOCAL

 16     DATAFILE '/u01/oradata/orcl02/system01.dbf' SIZE 325M REUSE

 17     SYSAUX DATAFILE '/u01/oradata/orcl02/sysaux01.dbf' SIZE 325M REUSE

 18     DEFAULT TABLESPACE users

 19            DATAFILE '/u01/oradata/orcl02/users01.dbf'

 20            SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED

 21     DEFAULT TEMPORARY TABLESPACE tempts1

 22            TEMPFILE '/u01/oradata/orcl02/temp01.dbf'

 23            SIZE 20M REUSE

 24     UNDO TABLESPACE "undotbs1"

 25            DATAFILE '/u01/oradata/orcl02/undotbs01.dbf'

 26            SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

 27

 28 spool off;

 

 

 

文本初始化参数文件】——initInstance02.ora

 1 Instance02.__db_cache_size=209715200

 2 Instance02.__java_pool_size=4194304

 3 Instance02.__large_pool_size=4194304

 4 Instance02.__oracle_base='/u01' #ORACLE_BASE are set from environment

 5 Instance02.__pga_aggregate_target=251658240

 6 Instance02.__sga_target=373293056

 7 Instance02.__shared_io_pool_size=0

 8 Instance02.__shared_pool_size=146800640

 9 Instance02.__streams_pool_size=0

 10 *.audit_file_dest='/u01/admin/orcl02/adump'

 11 *.audit_trail='db'

 12 *.compatible='11.2.0.0.0'

13*.control_files='/u01/oradata/orcl02/control01.ctl','/u01/oradata/orcl02/con    trol02.ctl'

 14 *.db_block_size=8192

 15 *.db_domain='www.globalname02.com'

 16 *.db_name='orcl02'

 17 *.db_recovery_file_dest='/u01/flash_recovery_area'

 18 *.db_recovery_file_dest_size=4039114752

 19 *.diagnostic_dest='/u01'

 20 *.dispatchers='(PROTOCOL=TCP) (SERVICE=Instance02XDB)'

 21 *.memory_target=624951296

 22 *.open_cursors=300

 23 *.processes=150

 24 *.remote_login_passwordfile='EXCLUSIVE'

 25 *.undo_tablespace='UNDOTBS1'

 

 

读者如要转载,请标明出处和作者名,谢谢。

地址:http://space.itpub.net/25851087

作者名:zjrodger

请使用浏览器的分享功能分享到微信等