Oracle 10g 快速手工建库步骤

0. 修改环境变量

[oracle@ocm1 ~]$ vi .bash_profile

添加以下内容:
export ORACLE_SID=PROD
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH


1. 修改登录标识符和默认编辑器(非必须)

修改$ORACLE_HOME/sqlplus/admin/glogin.sql,在文件末尾添加以下内容:

set sqlprompt '_user''@''_connect_identifier> '
define _editor=vi
                                                             
2. 创建初始化参数(用于启动数据库实例)
 
[oracle@ocm1 dbs]$  cat init.ora|grep -v ^$|grep -v ^# > initPROD.ora
[oracle@ocm1 dbs]$ ll
total 32
-rw-r----- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-r--r-- 1 oracle oinstall   738 Jan 10 19:18  initPROD.ora
[oracle@ocm1 dbs]$ vi initPROD.ora 
db_name=PROD
db_files = 80                                                         # SMALL
db_file_multiblock_read_count = 8                                     # SMALL
#db_block_buffers = 100                                                 # SMALL
#shared_pool_size = 3500000                                            # SMALL
log_checkpoint_interval = 10000
processes = 50                                                        # SMALL
parallel_max_servers = 5                                              # SMALL
log_buffer = 32768                                                    # SMALL
max_dump_file_size = 10240      # limit trace file size to 5 Meg each
global_names = FALSE
control_files = (/u01/app/oacle/oradata/PROD/Disk1/control01.ctl, /u01/app/oacle/oradata/PROD/Disk1/control02.ctl,/u01/app/oacle/oradata/PROD/Disk1/control03.ctl)
undo_management=auto
sga_max_size=300M
sga_target=300M

注意:红色部分为需要添加或修改的地方

3. 创建密码文件

[oracle@ocm1 dbs]$  orapwd file=orapwPROD password=oracle entries=5
[oracle@ocm1 dbs]$ ll
total 36
-rw-r----- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-r--r-- 1 oracle oinstall   914 Jan 10 19:21 initPROD.ora
-rw-r----- 1 oracle oinstall  2048 Jan 10 19:24  orapwPROD

4. 创建相关目录
                                                             
[oracle@ocm1 dbs]$ mkdir /u01/app/oracle/admin/PROD/ {a,b,c,u}dump -p
[oracle@ocm1 dbs]$ cd /u01/app/oracle/admin/PROD
[oracle@ocm1 PROD]$ ll
total 16
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:23 adump
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:23 bdump
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:23 cdump
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:23 udump
[oracle@ocm1 PROD]$ cd /u01/app/oracle
[oracle@ocm1 oracle]$ mkdir oradata/PROD/ Disk{1,2,3,4,5} -p
[oracle@ocm1 oracle]$ cd oradata/PROD/
[oracle@ocm1 PROD]$ ll
total 20
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:22 Disk1
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:22 Disk2
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:22 Disk3
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:22 Disk4
drwxr-xr-x 2 oracle oinstall 4096 Jan 10 19:22 Disk5

5. 创建spfile

[oracle@ocm1 PROD]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jan 10 19:25:04 2015

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SYS@PROD> startup nomount
ORACLE instance started.

Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size              96470416 bytes
Database Buffers          213909504 bytes
Redo Buffers                2973696 bytes
SYS@PROD>  create spfile from pfile;

File created.

创建spfile并用它启动后,就可以通过alter sysem set xxx来动态修改所需的参数了

6. 创建建库脚本crdb.sql

Reffer:Administration->Database Administrator's Guide->2 Creating an Oracle Database->Manually Creating an Oracle Database->Step 7: Issue the CREATE DATABASE Statement
 
CREATE DATABASE PROD
   USER SYS IDENTIFIED BY oracle
   USER SYSTEM IDENTIFIED BY oracle
           GROUP 1 ('/u01/app/oracle/oradata/PROD/Disk1/redo01_a.log') SIZE 100M
           GROUP 2 ('/u01/app/oracle/oradata/PROD/Disk1/redo02_a.log') SIZE 100M
           GROUP 3 ('/u01/app/oracle/oradata/PROD/Disk1/redo03_a.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
    DATAFILE '/u01/app/oracle/oradata/PROD/system01.dbf' SIZE 325M REUSE
    EXTENT MANAGEMENT LOCAL
    SYSAUX DATAFILE '/u01/app/oracle/oradata/PROD/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/app/oradata/PROD/temp01.dbf' 
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs 
      DATAFILE '/u01/app/oracle/oradata/PROD/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

注意关键词的写法,其中相同内容, 可以用%s批量替换,注意修改实例名和相应的路径,确保目录都存在,否则会报:
SYS@PROD> @ /home/oracle/crdb.sql
CREATE DATABASE PROD
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced



检查并修改相应路径,关闭实例重启并重启到NOMOUNT状态后,重新执行建库脚本
重新执行脚本时 记得先删除各个路径中的控制文件、日志文件、数据文件等,否则会报文件已经存在:
SYS@PROD> @/home/oracle/crdb.sql
CREATE DATABASE PROD
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-00200: control file could not be created
ORA-00202: control file: '/u01/app/oracle/oradata/PROD/Disk1/control01.ctl'
ORA-27038: created file already exists
Additional information: 1

SYS@PROD> @ /home/oracle/crdb.sql
CREATE DATABASE PROD
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-00301: error in adding log file
'/u01/app/oracle/oradata/PROD/Disk1/redo01_a.log' - file cannot be created
ORA-27038: created file already exists
Additional information: 1

6. 开始跑脚本建库(约2分钟)
  
[oracle@ocm1 PROD]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jan 10 19:51:10 2015

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SYS@PROD>  @/home/oracle/crdb.sql

Database created.

至此,已经基本完成了手工建库的步骤,但是这个库目前还用不了,原因是没有数据字典等系统对象

7. 分别运行catalog.sql和catproc.sql脚本(注意先后顺序)

SYS@PROD> @?/rdbms/admin/ catalog
SYS@PROD> @?/rdbms/admin/ catproc

SYS@PROD> select count(*) from dba_objects;

  COUNT(*)
----------
       9373

跑完脚本,才能执行对各个系统表和视图的查询,可以看到,默认手工建库跑完脚本后的系统对象是9373个(10g)

还有一种更快的方法,就是设置db_create_file_dest和db_create_online_logfile_dest1,然后直接运行create database xxx;
然后根据需要调整具体的路径或参数

友情提醒:

建完库之后,记得关闭数据库用tar进行冷备份,主要是PROD和dbs这2个目录,这样就不怕误删除了,用tar的之后千万注意解压和压缩的命令参数不要用错,否则一不小心将当前目录不相关的内容变成备份内容,覆盖了原来的备份内容,那可是非常糟糕的,默认如果生成的tar文件同名,会直接覆盖掉,而不是追加到原压缩文件。


检查并修改相应路径,关闭实例重启并重启到NOMOUNT状态后,重新执行建库脚本
重新执行脚本时 记得先删除各个路径中的控制文件,否则会报:
SYS@PROD> @crdb
CREATE DATABASE PROD
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-00200: control file could not be created
ORA-00202: control file: '/u01/app/oracle/oradata/PROD/Disk1/control01.ctl'
ORA-27038: created file already exists
Additional information: 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值