Linux下Oracle 10G手工建库

Oracle除自带的DBCA可以创建数据库以外,还可以利用Oracle手动创建数据库,也是作为DBA人员必须要掌握的。
下面就介绍一下手动创建数据库的步骤:
1. 创建必要的相关目录 
2. 创建初始化参数文件 
3. 设置环境变量Oracle_sid 
4 .创建口令文件
5. 启动数据库到nomount(实例)状态 
6. 执行建库脚本 
7. 执行catalog脚步本创建数据字典 
8. 执行catproc创建package包 
9. 执行pupbld 
10. 由初始化参数文件创建spfile文件 
11. 执行scott脚本创建scott模式 

下面以创建一个名为“RAC1”的数据库为例

1. ( 使用oracle用户)创建必要的相关目录
[oracle@bj db_1]$ cd $ORACLE_BASE;
[oracle@bj db_1]$ mkdir -p oradata/rac1/
[oracle@bj db_1]$ cd $ORACLE_HOME
[oracle@bj db_1]$ pwd
/u01/app/oracle/product/10.2.0/db_1
[oracle@bj db_1]$ mkdir -p  admin/rac1/
[oracle@bj db_1]$cd $ORACLE_HOME/admin/rac1/
[oracle@bj db_1]$mkdir udump bdump  cdump pfile create
 
$ORACLE_HOME/admin/rac1/目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。
最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库动行过程中的各个后台进程的跟踪信息,
当中alert文件是警告文件,其文件名称为alert_rac1.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,
手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放特定会话相关的跟踪信息
$ORACLE_BASE/oradata/rac1目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。

2. 创建初始化参数文件 
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。
因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。 
创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用
手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。$ORACLE_HOME/dbs
下将初始化参数文件模板复制一份,
并将其改名为initRAC1.ora。接着用记事本的方式打开initRAC1.ora,修改以下的内容: 
[oracle@bj rac1]$ cd $ORACLE_HOME/dbs
vi initRAC1.ora
*.db_name=RAC1
*.db_domain=""
*.control_files=("/u01/app/oracle/oradata/rac1/control01.ctl",
                 "/u01/app/oracle/oradata/rac1/control02.ctl",
                 "/u01/app/oracle/oradata/rac1/control03.ctl")
*.undo_management=AUTO
*.undo_tablespace=UNDOTBS
*.background_dump_dest=/u01/app/oracle/product/10.2.0/db_1/admin/rac1/bdump
*.core_dump_dest=/u01/app/oracle/product/10.2.0/db_1/admin/rac1/cdump
*.user_dump_dest=/u01/app/oracle/product/10.2.0/db_1/admin/rac1/udump
*.db_block_size=8192
*.fast_start_mttr_target=300
*.compatible='10.2.0.1.0'
*.nls_date_format='yyyy-mm-dd hh24:mi:ss'
RAC1.pga_aggregate_target=100M
RAC1.sga_target=400M
注:此刻,/u01/app/oracle/oradata/rac1/目录下没有任何文件
3. 设置环境变量Oracle_sid 
$export ORACLE_SID=RAC1

4 .创建口令文件
$orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/pwdRAC1.ora password=oracle entries=2 
orapwd是Oracle提供的创建口令文件的工具各称,file参数指定口令文件所在的目录和文件名称,
password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数。
请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。
口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独存放于口令文件中,
这样数据库末打开时也能进行口令验证。

5. 启动数据库到nomount(实例)状态
su - oracle 
$sqlplus sys/oracle as sysdba
SQL>startup nomount

6. 执行建库脚本 
执行建库脚本,首先要有建库的脚本。 得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,
接照它的提示一步步地去做,在做到第十二步的时候,请选择“生成建库脚本”,然后就大功告成,你就可以到相应的目录上去找
到那个脚本并适当地修它便可便用。另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下
的内容,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到$ORACLE_HOME/admin/rac1/create文件名为create_datebase.sql。
[oracle@bj ~]$ cd $ORACLE_HOME/admin/rac1/create
[oracle@bj create]$ touch create_datebase.sql
[oracle@bj create]$ cat create_datebase.sql 
     spool dbcreate.log;

     CREATE DATABASE rac1  
     MAXINSTANCES 1  
     MAXLOGHISTORY 1  
     MAXLOGFILES 5  
     MAXLOGMEMBERS 5  
     MAXDATAFILES 100  
     DATAFILE 
     '/u01/app/oracle/oradata/rac1/system01.dbf' size 300M 
     REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL     
     sysaux DATAFILE
     '/u01/app/oracle/oradata/rac1/sysaux01.dbf' size 120M 
     REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
     DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u01/app/oracle/oradata/rac1/temp01.dbf' size 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
     UNDO TABLESPACE UNDOTBS DATAFILE '/u01/app/oracle/oradata/rac1/undotbs01.dbf' size 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED 
     LOGFILE GROUP 1 ('/u01/app/oracle/oradata/rac1/redo01.log') size 100M,GROUP 2 ('/u01/app/oracle/oradata/rac1/redo02.log') size 100M,GROUP 3 ('/u01/app/oracle/oradata/rac1/redo03.log') size 100M;

     spool off

SQL> start $ORACLE_HOME/admin/rac1/create/create_datebase.sql
Database created.
在执行create database 语句的同时,自动执行$ORACLE_HOME/rdbms/admin/sql.bsq脚本,创建SYSTEM表空间
和SYSTEM回退段、建立SYS和SYSTEM账号、建立数据字典基础表、建立数据字典索引、创建预定义角色等。

[oracle@bj rac1]$ pwd
/u01/app/oracle/oradata/rac1
[oracle@bj rac1]$ ll
total 963188
-rw-r----- 1 oracle oinstall   6832128 May 25 16:16 control01.ctl
-rw-r----- 1 oracle oinstall   6832128 May 25 16:16 control02.ctl
-rw-r----- 1 oracle oinstall   6832128 May 25 16:16 control03.ctl
-rw-r----- 1 oracle oinstall 104858112 May 25 16:15 redo01.log
-rw-r----- 1 oracle oinstall 104858112 May 25 16:13 redo02.log
-rw-r----- 1 oracle oinstall 104858112 May 25 16:13 redo03.log
-rw-r----- 1 oracle oinstall 125837312 May 25 16:15 sysaux01.dbf
-rw-r----- 1 oracle oinstall 314580992 May 25 16:15 system01.dbf
-rw-r----- 1 oracle oinstall  20979712 May 25 16:14 temp01.dbf
-rw-r----- 1 oracle oinstall 209723392 May 25 16:15 undotbs01.dbf、、
看到,控制文件,redo日志,表空间等已经建立OK。

7. 执行catalog脚步本创建数据字典 
SQL>start $ORACLE_HOME/rdbms/admin/catalog.sql     --用于创建数据字典视图,包括V$动态性能视图和它们的同义词,同时将授予PUBLIC角色对这些同义

8. 执行catproc创建package包
SQL>start $ORACLE_HOME/rdbms/admin/catproc.sql         --用于建立对PL/SQL程序设计的支持
PL/SQL procedure successfully completed.
SQL> 

9. 执行pupbld 
在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。
你可以在数据库建好以后再来重新设置此账户的口令。 
SQL>connect system/manager
SQL>start $ORACLE_HOME/sqlplus/admin/pupbld.sql 
 
10. 由初始化参数文件创建spfile文件 
[oracle@bj ~]$ sqlplus sys/oracle as sysdba
SQL>create spfile from pfile;

11. 执行scott脚本创建scott模式 
SQL>start $ORACLE_HOME/rdbms/admin/scott.sql 
如果没有该sql,请点击链接http://blog.csdn.net/bohai0409/article/details/26970037 

12. 把数据库打开到正常状态
 SQL>alter database open; 

13.查看数据库的状态等信息,测试是否安装成功
SQL> select instance_name,status from v$instance;
INSTANCE_NAME        STATUS
---------------- ------------
RAC1                   OPEN

SQL>  select tablespace_name,contents,status from dba_tablespaces;

TABLESPACE_NAME       CONTENTS  STATUS
------------------------------ --------- ---------
SYSTEM       PERMANENT ONLINE
UNDOTBS       UNDO ONLINE
SYSAUX       PERMANENT ONLINE
TEMP       TEMPORARY ONLINE
至此,整个数据库就已经建好了。接着就可以在此数据库上建立自己的账户和表空间以及数据库对象

另外. Windos手工建库与此类似,需要在第三与第四步操作之间新增一步创建实例的操作
创建实例(即创建后台服务) 
C:/>oradim –new –sid RAC1
 oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。 

安装问题:
1,SQL> start $ORACLE_HOME/admin/rac1/create/create_datebase.sql
     CREATE DATABASE rac1
ERROR at line 1:   ORA-01092: ORACLE instance terminated. Disconnection forced
查看日志:
[oracle@bj bdump]$ cat /u01/app/oracle/product/10.2.0/db_1/admin/rac1/bdump/alert_RAC1.log 
ORA-01119: error in creating database file '/opt/oracle/oradata/rac1/system01.dbf'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory
目录错误,正确的是.u01/app/oradata/rac1/system01.dbf

2.Thread 1 opened at log sequence 1
  Current log# 1 seq# 1 mem# 0: /u01/app/oracle/oradata/rac1/redo01.log
Successful open of redo thread 1
Sun May 25 15:59:51 2014
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
解决方案:
在初始化参数配置文件initRAC1.ora  
加一句话*.fast_start_mttr_target=300

[oracle@bj rac1]$cd /u01/app/oracle/oradata/rac1
[oracle@bj rac1]$ rm -rf *
再次执行start $ORACLE_HOME/admin/rac1/create/create_datebase.sql
SQL> start $ORACLE_HOME/admin/rac1/create/create_datebase.sql
Database created.
----------------------------------------------------------
参考文档:http://blog.csdn.net/banpingzijy/article/details/17471993 -- 半瓶子酱油
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值