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;
第五步:借助官方文档编写建库语句
--依据实际修改脚本,删除掉一些没必要的设置
--将日志组成员进行多元化
--根据实际情况修改路径信息
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中,官方文档提供的参考中就解决了这个问题。
(可以参看文章:???????????????????????)
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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。