Oracle DBA之手动地通过命令行的方式创建一个数据库


  1. 创建Oracle数据库的时候,大多数情况我们都是用dbca,简单方便,比较自动化;  
  2. 今天我们将尝试手动地通过命令行的方式创建一个数据库,别有一番风味。  
  3. oracle软件版本:10gR2  
  4. 操作系统版本:win xp sp3  
  5. 目标数据sid:t02  
  6.   
  7. (1)创建dump及参数文件用文件夹:  
  8. D:\oracle\product\10.2.0\admin\t02  
  9. D:\oracle\product\10.2.0\admin\t02\adump  
  10. D:\oracle\product\10.2.0\admin\t02\bdump  
  11. D:\oracle\product\10.2.0\admin\t02\cdump  
  12. D:\oracle\product\10.2.0\admin\t02\dpdump  
  13. D:\oracle\product\10.2.0\admin\t02\pfile  
  14. D:\oracle\product\10.2.0\admin\t02\udump  
  15.   
  16. (2)创建datafile用文件夹:  
  17. D:\oracle\product\10.2.0\oradata\t02  
  18.   
  19. (3)创建参数文件,可先copy一个其他库的,再在上面做修改,注意目录改对:  
  20. D:\oracle\product\10.2.0\db_1\database\initt02.ora  
  21.   
  22. ##############################################################################  
  23. # Copyright (c) 1991, 2001, 2002 by Oracle Corporation  
  24. ##############################################################################  
  25.    
  26. ###########################################  
  27. # NLS  
  28. ###########################################  
  29. nls_language="AMERICAN"  
  30. nls_territory="AMERICA"  
  31.    
  32. ###########################################  
  33. # SGA Memory  
  34. ###########################################  
  35. sga_target=290455552  
  36.    
  37. ###########################################  
  38. # Job Queues  
  39. ###########################################  
  40. job_queue_processes=10  
  41.    
  42. ###########################################  
  43. # Shared Server  
  44. ###########################################  
  45. dispatchers="(PROTOCOL=TCP) (SERVICE=t02XDB)"  
  46.    
  47. ###########################################  
  48. # Miscellaneous  
  49. ###########################################  
  50. compatible=10.2.0.1.0  
  51.    
  52. ###########################################  
  53. # Security and Auditing  
  54. ###########################################  
  55. audit_file_dest=D:\oracle\product\10.2.0/admin/t02/adump  
  56. remote_login_passwordfile=EXCLUSIVE  
  57.    
  58. ###########################################  
  59. # Sort, Hash Joins, Bitmap Indexes  
  60. ###########################################  
  61. pga_aggregate_target=96468992  
  62.    
  63. ###########################################  
  64. Database Identification  
  65. ###########################################  
  66. db_domain=""  
  67. db_name=t02  
  68.    
  69. ###########################################  
  70. # File Configuration  
  71. ###########################################  
  72. control_files=("D:\oracle\product\10.2.0/oradata/t02/\control01.ctl""D:\oracle\product\10.2.0/oradata/t02/\control02.ctl""D:\oracle\product\10.2.0/oradata/t02/\control03.ctl")  
  73. db_recovery_file_dest=D:\oracle\product\10.2.0/flash_recovery_area  
  74. db_recovery_file_dest_size=2147483648  
  75.    
  76. ###########################################  
  77. # Cursors and Library Cache  
  78. ###########################################  
  79. open_cursors=300  
  80.    
  81. ###########################################  
  82. # System Managed Undo and Rollback Segments  
  83. ###########################################  
  84. undo_management=AUTO  
  85. undo_tablespace=UNDOTBS1  
  86.    
  87. ###########################################  
  88. # Diagnostics and Statistics  
  89. ###########################################  
  90. background_dump_dest=D:\oracle\product\10.2.0/admin/t02/bdump  
  91. core_dump_dest=D:\oracle\product\10.2.0/admin/t02/cdump  
  92. user_dump_dest=D:\oracle\product\10.2.0/admin/t02/udump  
  93.    
  94. ###########################################  
  95. # Processes and Sessions  
  96. ###########################################  
  97. processes=150  
  98.    
  99. ###########################################  
  100. # Cache and I/O  
  101. ###########################################  
  102. db_block_size=8192  
  103. db_file_multiblock_read_count=16  
  104.    
  105.   
  106. (4)创建口令文件:  
  107. orapwd file=D:\oracle\product\10.2.0\db_1\database\pwdt02.ora password=oracle entries=2  
  108.   
  109. (5)创建实例(会在windows系统注册一个服务):  
  110. oradim -new  -sid t02  
  111.   
  112. (6)启动数据库到nomount状态,需先设置oracle_sid:  
  113. set oracle_sid=t02  
  114. sqlplus / as sysdba  
  115. startup nomount  
  116.   
  117. (7)创建数据库:  
  118. select status from v$instance;  
  119. ed  
  120. 填入以下创建脚本内容,保存后输入正斜杠(/)回车执行:  
  121. create database t02  
  122. datafile 'D:\oracle\product\10.2.0\oradata\t02\system01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited  
  123. extent management local  
  124. sysaux datafile 'D:\oracle\product\10.2.0\oradata\t02\sysaux01.dbf'  
  125. size 100M reuse autoextend on next 10M maxsize unlimited  
  126. default temporary tablespace temp   
  127. tempfile 'D:\oracle\product\10.2.0\oradata\t02\temp01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited  
  128. undo tablespace "UNDOTBS1" --请注意这里的undo表空间要和参数文件对应   
  129. datafile 'D:\oracle\product\10.2.0\oradata\t02\undotbs01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited  
  130. default tablespace users   
  131. datafile 'D:\oracle\product\10.2.0\oradata\t02\users01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited  
  132. logfile   
  133. group 1 ('D:\oracle\product\10.2.0\oradata\t02\redo01.log'size 10M,   
  134. group 2 ('D:\oracle\product\10.2.0\oradata\t02\redo02.log'size 10M,   
  135. group 3 ('D:\oracle\product\10.2.0\oradata\t02\redo03.log'size 10M  
  136. character set al32utf8  
  137. national character set al16utf16  
  138. user sys    identified by oracle  
  139. user system identified by oracle  
  140. /  
  141.   
  142. 至此数据库已经可以打开了,但是还缺少基本的数据字典(如:dba_objects、dba_tablespaces等)和  
  143. 基本的内置程序(如:dbms_output、dbms_session),接下来我们要创建这些对象。  
  144.   
  145. (8)创建数据字典:  
  146. @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql;  
  147.   
  148. (9)创建内置程序:  
  149. @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql;  
  150.   
  151. (10)创建scott schema(scott需要使用users表空间):  
  152. @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql;  
  153.   
  154. (11)编译product user profile(需要system用户去执行):  
  155. conn system/oracle  
  156. @D:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql;  
  157.   
  158. (12)配置监听程序:  
  159. D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN  
  160.   
  161. listener.ora  
  162. 经过以上步骤,系统会自动在已有listener上增加一个端口(1522),如下:  
  163. (其实仅有1521一个端口即可同时连接两个数据库。  
  164. 之所以有1521这条记录,是因为在创建测试库(t02)之前本机已有一个库t01)  
  165. LISTENER =  
  166.   (DESCRIPTION_LIST =  
  167.     (DESCRIPTION =  
  168.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))  
  169.       (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))  
  170.       (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))  
  171.     )  
  172.   )  
  173.   
  174. tnsnames.ora  
  175. 如果我们想用tns来连接,则还需在tnsnames.ora中追加如下配置:  
  176. (如果在上步没有生成1522行,这里只需将1522改为1521即可)  
  177. T02 =  
  178.   (DESCRIPTION =  
  179.     (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))  
  180.     (CONNECT_DATA =  
  181.       (SERVER = DEDICATED)  
  182.       (SERVICE_NAME = t02)  
  183.     )  
  184.   )  
  185.   
  186. (13)以scott用户验证:  
  187. sqlplus scott/tiger@t02  
  188. select * from dept;  
  189.   
  190. (14)创建Enterprise Manager(EM):  
  191. emca -config dbcontrol db -repos create  
  192.   
  193.   
  194. t0nsha(liaodunxia AT gmail DOT com)  
  195. 20110714@上海  

相关内容