ORACLE 10G 手工建库

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43926321

 

第一步:目录

--数据库文件目录

$ cd $ORACLE_BASE/oradata

$ ls

--看到已经存在库的SID

PROD

$ pwd

--查看一下绝对路径

/u01/app/oracle/oradata

$ mkdir HYL

$ ls -l

--产看一下目录及权限

--规划数据文件存放的不同磁盘目录,这里的规划依据实际情况而定

$ cd HYL

$ mkdir dump disk1 disk2 disk3 disk4 disk5

--disk表示不同的磁盘,这是为文件多元化做准备

$ cd dump

$ mkdir bdump cdump udump

--建立了三个目录,分别用来不同的dump文件

 

第二步:权限

$ chown -R oracle:oinstall /u01/app/oracle/oradata/HYL

--把上步创建的HYL目录赋给oracle用户

--上文中的文件路径、dump文件路径都应该是在这个目录下,在权限正确的情况下才能完成建库

$ chmod –R 755 HYL

--赋予HYL目录的访问权限,权限级别755

  

第三步:初始化参数

--这一步要完成初始化参数文件的创建

$ cd $ORACLE_HOME/dbs

--在这个目录下存放数据库的初始化参数文件,我们需要在这个目录下创建一个pfile文件

$ vi initHYL.ora

--初始化参数名字为init加上SID

sga_target=400M   
--一般内存分配总大小为物理内存的80%,而其中sga又占其80%(表示sga:pga=4:1的关系)

--下面是数据名,初期规划为SID名字
db_name=HYL

--下面是控制文件路径,建议将不同路径下的控制文件以相同名字命名
control_files=’/u01/app/oracle/oradata/HYL/disk1/control01.ctl’,

‘/u01/app/oracle/oradata/HYL/disk2/control01.ctl’,

‘/u01/app/oracle/oradata/HYL/disk3/control01.ctl’

--下面是undo表空间信息
undo_management=auto
undo_tablespace=undotbs
--下面是三个dump文件
user_dump_dest=/u01/app/oracle/oradata/HYL/dump/udump
background_dump_dest=/u01/app/oracle/oradata/HYL/dump/bdump
core_dump_dest=/u01/app/oracle/oradata/HYL/dump/cdump

 

第四步:把库启动到nomount状态

$export ORACLE_SID=HYL

$sqlplus ‘/as sysdba’

SQL> startup nomount;

 

第五步:借助官方文档编写建库语句

官方文档查看参考:http://blog.csdn.net/huangyanlong/article/details/43925813

--依据实际修改脚本,删除掉一些没必要的设置

--将日志组成员进行多元化

--根据实际情况修改路径信息

CREATE DATABASE HYL

   LOGFILE GROUP 1 ('/u01/app/oracle/oradata/HYL/disk1/redo01a.log',

'/u01/app/oracle/oradata/HYL/disk2/redo01b.log')

SIZE 100M,          

GROUP 2 ('/u01/app/oracle/oradata/HYL/disk1/redo02a.log',

'/u01/app/oracle/oradata/HYL/disk2/redo02b.log')

SIZE 100M,          

GROUP 3 ('/u01/app/oracle/oradata/HYL/disk1/redo03a.log',

'/u01/app/oracle/oradata/HYL/disk2/redo03b.log')

SIZE 100M

  

CHARACTER SET zhs16gbk

   NATIONAL CHARACTER SET AL16UTF16

  

EXTENT MANAGEMENT LOCAL

   DATAFILE '/u01/app/oracle/oradata/HYL/disk3/system01.dbf' SIZE 325M REUSE

   SYSAUX DATAFILE '/u01/app/oracle/oradata/HYL/sysaux01.dbf' SIZE 325M REUSE

  

DEFAULT TEMPORARY TABLESPACE tempts1

      TEMPFILE '/u01/app/oracle/oradata/HYL/disk4/temp01.dbf'

      SIZE 20M REUSE

  

UNDO TABLESPACE undotbs

      DATAFILE '/u01/app/oracle/oradata/HYL/disk5/undotbs01.dbf'

      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

 

--将以上脚本放在oracle目录下,然后执行

$cd /u01/app/oracle/

$vi createDB.sh

SQL> @/u01/app/oracle/createDB.sh

 

第六步:跑相应脚本

SQL> @?/rdbms/admin/catalog.sql  

--2分钟,作用:创建数据字典

SQL> @?/rdbms/admin/catproc.sql  

--5分钟,跑完这两个脚本后库已经建完了,作用:创建存储过程和包

SQL> conn system/manager

SQL> @?/sqlplus/admin/pupbld.sql 

--1分钟,以conn system/manager 运行此脚本 作用:设置sqlplus的一些包,让其它用户可以登录sqlplus

SQL> conn /as sysdba

SQL> select instance_name,status from v$instance; --检查状态,此时数据库应该是open状态

 

第七步:建库后的优化

        为避免创建其它用户及对象时,对于system表空间的征用,新创建一个用户表空间由于其它新建用户默认使用。因为system表空间里存放数据字典,当新建用户或对象时默认会放到system表空间下,这样便对数据库的性能有一定的影响。

        这个问题,其实可以在建库脚本编写初期进行解决,但由于官方文档中给出的参考语句,此处是错误的,所以我们在建库后再手工再创建默认表空间即可。在11G中,官方文档提供的参考中就解决了这个问题。

(可以参看文章:http://blog.csdn.net/huangyanlong/article/details/43926437)

SQL> create tablespace users datafile '/u01/app/oracle/oradata/HYL/disk3/user01.dbf' size 100m autoextend on next 50m maxsize unlimited;

--新创建一个表空间,作为默认表空间使用

SQL> alter database default tablespace users;

--改变数据库默认表空间为users表空间


至此手工建库完成。

 

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43926321

你可能感兴趣的:(oracle,10g,手工建库)