手动创建数据库是DBA们经常遇到的情形,因为有些情况下无法提供GUI环境。实际上手动建库,只要设置好了相关的参数或值,也是非常方便的。本文基于Oracle 11g首先描述了手动建库的大致步骤并给出示例演示。最后提供了一个shell脚本直接执行来实现手动建库。在执行前该脚本可根据你的路径进行适当的修改。

一、手动建库大致步骤
设置环境变量.bash_profile
创建参数文件(位置:$ORACLE_HOME/dbs)
创建目录结构
执行建库脚本

二、手动创建数据库

  1. 1、设置环境变量.bash_profile 

  2. --确保至少包含下列环境变量,对于已经安装好Oracle Database software的情形下,实际上可以跳过此步骤

  3. $ vi .bash_profile 

  4. export ORACLE_SID=catadb 

  5. export ORACLE_BASE=/u01/app/oracle 

  6. export ORACLE_HOME=$ORACLE_BASE/db_1 

  7. export PATH=/usr/sbin:$PATH 

  8. export PATH=$ORACLE_HOME/bin:$PATH 

  9. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 

  10. export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 

  11. 2、创建参数文件(位置:$ORACLE_HOME/dbs) 

  12. [oracle@linux1 dbs]$ export ORACLE_SID=catadb 

  13. [oracle@linux1 ~]$ cd $ORACLE_HOME/dbs 

  14. [oracle@linux1 dbs]$ grep -v \# init.ora >init$ORACLE_SID.ora 

  15. [oracle@linux1 dbs]$ more initcatadb.ora 

  16. db_name='catadb'

  17. memory_target=512M 

  18. processes = 150 

  19. audit_file_dest='/u03/uat/catadb/adump'

  20. audit_trail ='db'

  21. db_block_size=8192 

  22. db_domain=''

  23. db_recovery_file_dest='/u03/uat/catadb/fr_area'

  24. db_recovery_file_dest_size=2G 

  25. diagnostic_dest='/u03/uat/catadb'

  26. dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

  27. open_cursors=300 

  28. remote_login_passwordfile='EXCLUSIVE'

  29. undo_tablespace='UNDOTBS1'

  30. control_files = ('/u03/uat/catadb/oradata/catadb01.ctl','/u03/uat/catadb/oradata/catadb02.ctl'

  31. compatible ='11.2.0'

  32. 3、创建目录结构 

  33. [oracle@linux1 ~]$ mkdir -p /u03/uat/catadb 

  34. [oracle@linux1 dbs]$ cd /u03/uat/catadb 

  35. [oracle@linux1 catadb]$ mkdir adump diag fr_area oradata 

  36. 4、执行建库脚本 

  37. [oracle@linux1 catadb]$ more create_catadb.sql 

  38. createdatabase catadb 

  39. maxlogfiles 5 

  40. maxlogmembers 5 

  41. maxdatafiles 100 

  42. maxinstances 1 

  43. logfile 

  44. group 1 ('/u03/uat/catadb/oradata/redo1.log'size 10m, 

  45. group 2 ('/u03/uat/catadb/oradata/redo2.log'size 10m, 

  46. group 3 ('/u03/uat/catadb/oradata/redo3.log'size 10m 

  47. datafile 

  48. '/u03/uat/catadb/oradata/system.dbf'size 200m reuse 

  49. sysaux datafile '/u03/uat/catadb/oradata/sysaux.dbf'size 100m 

  50. default tablespace user

  51. datafile '/u03/uat/catadb/oradata/userdata.dbf'size 100m 

  52. undo tablespace undotbs1 

  53. datafile '/u03/uat/catadb/oradata/undo1.dbf'size 100m 

  54. defaulttemporary tablespace temp1 

  55. tempfile '/u03/uat/catadb/oradata/temp01.dbf'

  56. size 100m reuse 

  57. characterset al32utf8 

  58. idle> @/u03/uat/catadb/create_catadb.sql 

  59. Database created. 

  60. --添加数据字典

  61. idle> edit /u03/uat/catadb/post_create_catadb.sql 

  62. @$ORACLE_HOME/rdbms/admin/catalog.sql 

  63. @$ORACLE_HOME/rdbms/admin/catproc.sql 

  64. conn system/manager 

  65. @$ORACLE_HOME/sqlplus/admin/pupbld.sql 

  66. idle> @/u03/uat/catadb/post_create_catadb.sql 

  67. system@CATADB> selectname,open_mode from v$database

  68. NAME OPEN_MODE 

  69. --------- --------------------

  70. CATADB READ WRITE 

1、设置环境变量.bash_profile
--确保至少包含下列环境变量,对于已经安装好Oracle Database software的情形下,实际上可以跳过此步骤
 $ vi .bash_profile
 export ORACLE_SID=catadb
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/db_1
 export PATH=/usr/sbin:$PATH
 export PATH=$ORACLE_HOME/bin:$PATH
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

2、创建参数文件(位置:$ORACLE_HOME/dbs)
 [oracle@linux1 dbs]$ export ORACLE_SID=catadb
 [oracle@linux1 ~]$ cd $ORACLE_HOME/dbs
 [oracle@linux1 dbs]$ grep -v \# init.ora >init$ORACLE_SID.ora

 [oracle@linux1 dbs]$ more initcatadb.ora 
 db_name='catadb'
 memory_target=512M
 processes = 150
 audit_file_dest='/u03/uat/catadb/adump'
 audit_trail ='db'
 db_block_size=8192
 db_domain=''
 db_recovery_file_dest='/u03/uat/catadb/fr_area'
 db_recovery_file_dest_size=2G
 diagnostic_dest='/u03/uat/catadb'
 dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
 open_cursors=300 
 remote_login_passwordfile='EXCLUSIVE'
 undo_tablespace='UNDOTBS1'
 control_files = ('/u03/uat/catadb/oradata/catadb01.ctl','/u03/uat/catadb/oradata/catadb02.ctl')
 compatible ='11.2.0'

3、创建目录结构 
 [oracle@linux1 ~]$ mkdir -p /u03/uat/catadb
 [oracle@linux1 dbs]$ cd /u03/uat/catadb
 [oracle@linux1 catadb]$ mkdir adump diag fr_area oradata

4、执行建库脚本 
 [oracle@linux1 catadb]$ more create_catadb.sql 
 create database catadb
 maxlogfiles 5
 maxlogmembers 5
 maxdatafiles 100
 maxinstances 1
 logfile
 group 1 ('/u03/uat/catadb/oradata/redo1.log') size 10m,
 group 2 ('/u03/uat/catadb/oradata/redo2.log') size 10m,
 group 3 ('/u03/uat/catadb/oradata/redo3.log') size 10m
 datafile
 '/u03/uat/catadb/oradata/system.dbf' size 200m reuse
 sysaux datafile '/u03/uat/catadb/oradata/sysaux.dbf' size 100m
 default tablespace user
 datafile '/u03/uat/catadb/oradata/userdata.dbf' size 100m
 undo tablespace undotbs1
 datafile '/u03/uat/catadb/oradata/undo1.dbf' size 100m
 default temporary tablespace temp1
 tempfile '/u03/uat/catadb/oradata/temp01.dbf'
 size 100m reuse
 character set al32utf8
 ;

 idle> @/u03/uat/catadb/create_catadb.sql

 Database created.

--添加数据字典
 idle> edit /u03/uat/catadb/post_create_catadb.sql

 @$ORACLE_HOME/rdbms/admin/catalog.sql
 @$ORACLE_HOME/rdbms/admin/catproc.sql
 conn system/manager
 @$ORACLE_HOME/sqlplus/admin/pupbld.sql

 idle> @/u03/uat/catadb/post_create_catadb.sql

 system@CATADB> select name,open_mode from v$database;  

 NAME      OPEN_MODE
 --------- --------------------
 CATADB    READ WRITE


三、手动建库脚本
--下面将上述动作进行了一个整理,全部封装到shell脚本来执行,输入密码,坐着喝咖啡吧!