首页 > 数据库 > Oracle > oracle手工建库_10g
前期的准备:
首先安装软件,为了体现完全是手工建库,选择只安装oracle软件,老牛要裸体^^
由于是手工建库,安装oracle软件就不多提了,步骤很easy,安装好oracle软件后,/u01下只有ORACLE_HOME跟产品清单目录
[oracle@test1 u01]$ ls
db oraInventory
数据库的实例与db_name我起的名字是test10g,环境变量的设置就不在这里提了,老牛相信大家看下面的目录就能知道oracle_home是啥了哟!
正式建库步骤开始喽,感觉老牛要变牛逼了呢:
1
在创建库之前先创建数据文件的存放目录:
/u01/oradata/test10g
[oracle@test1 u01]$ ls
db oradata oraInventory
[oracle@test1 test10g]$ pwd
/u01/oradata/test10g
由于是第一次手工建库,很多东西还不是很熟悉,理论上应该是在编写pfile脚本时指定adump,bdump,cdump,udump等目录的,但是给忘记了,不过oracle还是正常nomount了,好棒!!
2
创建pfile文件:
装好oracle软件后,体贴又安心的oracle会在oracle_home/dbs下给出一个init.ora文件,这个就是最基本的一个pfile模板,但是会侧漏,看上面那个问题就是侧漏了,其实下面还有侧漏的地方呢T_ T 但是启库是足够了
那就先利用它来生成一个pfile小萝莉(去掉里面多余的东西,把小萝莉脱光光)
[oracle@test1 dbs]$ cat init.ora|grep -v ^#|grep -v ^$ >/u01/db/dbs/inittest10g.ora
下面就是脱光光的小萝莉:
db_name=DEFAULT
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 = TRUE
control_files = (ora_control1, ora_control2)
下面是我蹂躏后的脱光光的小萝莉:
db_name=test10g
db_files = 100 # SMALL
db_file_multiblock_read_count = 8 # SMALL
db_block_buffers = 100 # SMALL
shared_pool_size = 100000000 # SMALL
log_checkpoint_interval = 10000
processes = 100 # SMALL
parallel_max_servers = 5 # SMALL
log_buffer = 32768000 # SMALL
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = FALSE
control_files = (/u01/oradata/test10g/control01.ctl,/u01/oradata/test10g/control02.ctl)
OK经过老牛蹂躏后的小萝莉终于变成小熟女了,下面让她给我生个spfile吧
Create spfile from pfile=’/u01/db/dbs/inittest10g.ora’;
好了,可以尝试将数据库启动到nomount状态了
SQL> startup nomount
ORACLE instance started.
Total System Global Area 142606336 bytes
Fixed Size 1218124 bytes
Variable Size 130025908 bytes
Database Buffers 4194304 bytes
Redo Buffers 7168000 bytes
非常好,我们已经完成第一步了,开瓶冰啤酒先庆祝一下先
3
其实按照我的步骤,下一步应该是create database语句了,但是在我的实际操作中,利用oracle官方文档提供的那个create database的脚本又发生了侧漏,会报错,提示undo表空间不是auto管理,要不咱改create database脚本,要不咱改undo_management参数,当然后面的感觉easy一些go go go
Alter system set undo_management=auto scope=spfile;
Shutdown abort
Startup nomount
完美
4
重头戏来了,将oracle官方文档中的那个建库脚本改成如下:
CREATE DATABASE test10g
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED by oracle
LOGFILE GROUP 1 ('/u01/oradata/test10g/redo01.log') SIZE 50M,
GROUP 2 ('/u01/oradata/test10g/redo02.log') SIZE 50M,
GROUP 3 ('/u01/oradata/test10g/redo03.log') SIZE 50M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oradata/test10g/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oradata/test10g/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/oradata/test10g/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/oradata/test10g/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
好了,等到这个脚本执行ok后,你会发现,数据库已经是write read了,哦,库已经open了
再等等,这时还需要再来2个脚本才比较完美
SQL> @/u01/db/rdbms/admin/catalog.sql
SQL> @/u01/db/rdbms/admin/catproc.sql
这2个脚本时间会稍长一点,执行好后就真的ok啦!
当然啦,我就是这时候发现pfile中有很多参数并没有给出来,老牛还需要再研究一下!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7986761/viewspace-760863/ ,如需转载,请注明出处,否则将追究法律责任。