Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1124521
  • 博文数量: 251
  • 博客积分: 8431
  • 博客等级: 中将
  • 技术积分: 2699
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-22 16:24
文章分类

全部博文(251)

文章存档

2016年(2)

2015年(5)

2014年(4)

2013年(10)

2012年(8)

2011年(14)

2010年(20)

2009年(33)

2008年(51)

2007年(104)

分类: Oracle

2007-12-21 15:47:12

这两天一直在看如何手工创建数据库,发现涉及到方面挺多的,一时难以学会,只能一步一步来了。

今天先介绍一下如何手工创建数据库。

 

1、确定系统标识

为了简单期间,实例名和数据库名我们都叫做magic(有一些概念比如数据库名,数据库标识,实例名、域名等,在后边详细介绍)

2、确定要创建数据库的目录结构

mkdir E:\oracle\product\10.2.0\admin\magic\adump

mkdir E:\oracle\product\10.2.0\admin\magic\bdump

mkdir E:\oracle\product\10.2.0\admin\magic\cdump

mkdir E:\oracle\product\10.2.0\admin\magic\dpdump

mkdir E:\oracle\product\10.2.0\admin\magic\pfile

mkdir E:\oracle\product\10.2.0\admin\magic\udump

mkdir E:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca\magic

mkdir E:\oracle\product\10.2.0\db_1\database

mkdir E:\oracle\product\10.2.0\flash_recovery_area

mkdir E:\oracle\product\10.2.0\oradata\magic

 

其中adumpbdumpcdumpdpdumpudump是各种转储的dump目录,用于存放数据库的跟踪文件和登录信息。

 

Pfile用来存放启动实例使用的参数文件init.ora信息。

Oradata\magic是用来存放各种数据文件、控制文件和重做日志文件的。

 

命令执行过程

 

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\adump

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\bdump

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\cdump

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\dpdump

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\pfile

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\admin\magic\udump

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca\magic

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\db_1\database

子目录或文件 E:\oracle\product\10.2.0\db_1\database 已经存在。

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\flash_recovery_area

子目录或文件 E:\oracle\product\10.2.0\flash_recovery_area 已经存在。

C:\Documents and Settings\zdw>mkdir E:\oracle\product\10.2.0\oradata\magic

C:\Documents and Settings\zdw>

 

3、创建实例

ORADIM -NEW -SID MAGIC

已经是最为简化的写法了,如果不了解ORADIM的用法,可以在命令提示符下键入ORADIM然后回车,ORADIM除了可以创建实例,还可以修改、删除已有实例,另外还可以打开和关闭服务和实例。

C:\Documents and Settings\zdw>ORADIM -NEW -SID MAGIC

实例已创建。

 

这时会在系统服务中看到我们刚刚创建的实例,此时只是在操作系统级别上为我们实例的启动创造了条件。

 

4、如果使用口令文件的验证方式登录数据库,而不是操作系统,那么我们还需要创建口令文件

ORAPWD FILE=E:\ORALCE\PRODUCT\10.2.0\DB_1\DATABASE\PWDMAGIC.ORA PASSWORD=MAGIC

C:\>ORAPWD FILE=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\PWDMAGIC.ORA PASSWORD=MAGIC

C:\>

 

创建成功,这时我们可以登录我们打开我们刚刚创建的实例了。

C:\>SET ORACLE_SID=MAGIC

 

C:\>SQLPLUS /NOLOG

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 11月 22 20:36:00 2007

 

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

 

SQL> CONN SYS/MAGIC AS SYSDBA;

已连接到空闲例程。

SQL> CONN SYS/magic as sysdba;

已连接到空闲例程。

SQL> conn sys/xxx as sysdba;

ERROR:

ORA-01017: invalid username/password; logon denied

 

 

警告: 您不再连接到 ORACLE。

SQL>

 

SET ORACLE_SID=MAGIC是指定我们要登陆的实例,避免混淆。

另外,上面的命令还验证了:

1、数据库现在采用的是密码验证的方式

2、创建的密码是不区分大小写的

 

我们还可以将创建实例和创建密码都有ORADIM来实现

ORADIM -NEW -SID MAGIC -SYSPWD MAGIC -STARTMODE M

 

C:\>ORADIM -DELETE -SID MAGIC

实例已删除。

C:\>DEL E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\PWDMAGIC.ORA

 

C:\>ORADIM -NEW -SID MAGIC -SYSPWD MAGIC -STARTMODE M

实例已创建。

 

5、我们知道实例的启动分三个步骤,第一个是启动到NOMOUN状态,这这个阶段完成内存机构的分配和后台服务的建立,而这个过程用到的就是实例的初始化参数文件INIT.ORA

 

我们尽量简化这个参数文件

sga_target=167772160

audit_file_dest=E:\oracle\product\10.2.0/admin/magic/adump

remote_login_passwordfile=EXCLUSIVE

pga_aggregate_target=16777216

db_domain="world"

db_name=MAGIC

control_files=("E:\oracle\product\10.2.0\oradata\magic\control01.ctl", "E:\oracle\product\10.2.0\oradata\magic\control02.ctl", "E:\oracle\product\10.2.0\oradata\magic\control03.ctl")

db_recovery_file_dest=E:\oracle\product\10.2.0\flash_recovery_area

db_recovery_file_dest_size=2147483648

undo_management=AUTO

undo_tablespace=UNDOTBS

background_dump_dest=E:\oracle\product\10.2.0/admin/magic/bdump

core_dump_dest=E:\oracle\product\10.2.0/admin/magic/cdump

user_dump_dest=E:\oracle\product\10.2.0/admin/magic/udump

processes=150

db_block_size=8192

db_file_multiblock_read_count=16

 

在没有使用以上的初始化参数之前,提示找不到参数文件,实例无法完成NOMOUNT

 

SQL> startup nomount

ORA-01078: failure in processing system parameters

LRM-00109: ???????????????? 'E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITMAGIC.ORA'

SQL>

 

在启动参数中指定INIT参数的位置,实例启动到NOMOUNT状态

 

SQL> STARTUP NOMOUNT PFILE=E:\oracle\product\10.2.0\admin\magic\pfile\INIT.ORA

ORACLE 例程已经启动。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              62915940 bytes

Database Buffers          100663296 bytes

Redo Buffers                2945024 bytes

SQL>

 

此处可以使用视图v$instance查看实例的状态

 

SQL> select status from v$instance;

STATUS

------------

STARTED

 

如果我们在此时把实例启动到MOUNT状态,则

 

SQL> ALTER DATABASE MOUNT;

ALTER DATABASE MOUNT

*

ERROR at line 1:

ORA-00205: error in identifying control file, check alert log for more info

 

因为在启动到MOUNT状态时要检查控制文件,而我们并没有创建,所以报此错误。

注:在我们未指定INIT管理员在2009年8月13日编辑了该文章文章。

-->
阅读(2209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~