创建Oracle数据库

oracle|创建|数据|数据库

创建Oracle数据库
数据库名:mydb
1:复制一个已经存在的数据库目录D:\Oracle\product\10.1.0\Db_1\admin\sample
        到D:\Oracle\product\10.1.0\admin目录下,改名为mydb,
        将\mydb\pfile\initsmpl.ora删除,因为这个参数文件比较旧,从下面目录中复制
        一个参数文件D:\Oracle\product\10.1.0\admin\orcl\pfile\init.ora
        将改文件放到\mydb\pfile下,改名为initmydb.ora,并设置以下参数:
db_domain=zhiqiao.com.cn
db_name=mydb
instance_name=mydb
control_files=( "D:\oracle\product\10.1.0\oradata\mydb\control01.ctl",            "D:\oracle\product\10.1.0\oradata\mydb\control02.ctl",            "D:\oracle\product\10.1.0\oradata\orcl\control03.ctl")
background_dump_dest=D:\oracle\product\10.1.0\admin\mydb\bdump
core_dump_dest=D:\oracle\product\10.1.0\admin\mydb\cdump
user_dump_dest=D:\oracle\product\10.1.0\admin\mydb\udump

2:在D:\Oracle\product\10.1.0\Db_1\database中创建数据库启动时直接读取的参数文件
initmydb.ora内容为IFILE='D:\Oracle\product\10.1.0\admin\mydb\pfile'

3:使用orapwd命令创建数据库具有SYSDBA权限用户的口令字文件PWDmydb.ora,
        该用户可以管理数据库的启动与关闭,其存储目录为:
        D:\Oracle\product\10.1.0\Db_1\database
        在系统命令行输入如下命令创建口令文件
        C:\>orapwd file=D:\oracle\product\10.1.0\db_1\database\PWDmydb.ora
password=mydb entries=2

4:通过实例管理命令在服务表里创建一个实例管理服务,设置启动方式为手动
        C:\>oradim -NEW -SID mydb -STARTMODE manual
         -pfile "d:\oracle\product\10.1.0\admin\prod\pfile\initmydb.ora"
        ----》奇怪的是服务管理窗口中显示为启动,但关闭出错? 
C:\>oradim -SHUTDOWN -SID mydb -USRPWD mydb
ORA-01012: not logged on
        ----》启动出错    
C:\>oradim -STARTUP -SID mydb -USRPWD mydb
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
'D:\Oracle\product\10.1.0\admin\mydb\pfile'
       -----》因为没创建spfile因此在此指定
C:\>oradim -STARTUP -SID mydb -USRPWD mydb
-PFILE "d:\oracle\product\10.1.0\admin\mydb\pfile\initmydb.ora"
ORA-00205: error in identifying controlfile, check alert log for more info
D:\Oracle\product\10.1.0\admin\mydb\bdump\alert_mydb.log中显示错误原因
大致意思是找不到控制文件,我想可能应该以nomount方式打开,但oradim没提供这个
选项,于是启动sqlplus。

C:\>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 4月 11 10:49:13 2007

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

SQL> connect /as sysdba
ERROR:
ORA-12560: TNS:protocol adapter error

SQL> connect sys/mydb as sysdba
ERROR:
ORA-12560: TNS:protocol adapter error

SQL> exit

C:\>set oracle_sid=mydb

C:\>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 4月 11 10:50:21 2007

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

SQL> conn sys/mydb as sysdba
Connected.
 
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file 'D:\Oracle\product\10.1.0\admin\mydb\pfile'

SQL> startup nomount pfile="d:\oracle\product\10.1.0\admin\mydb\pfile\initmydb.ora"
ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> shutdown
ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup nomount pfile="d:\oracle\product\10.1.0\admin\mydb\pfile\initmydb.ora"
ORACLE instance started.

Total System Global Area       171966464 bytes
Fixed Size                        787988 bytes
Variable Size                  145750508 bytes
Database Buffers                25165824 bytes
Redo Buffers                      262144 bytes

----》因为每次都要指定pfile不方便,可以创建一个
C:\>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 4月 11 11:02:57 2007

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

SQL> conn sys/mydb as sysdba
Connected to an idle instance.
SQL> create spfile from pfile;
create spfile from pfile
*
ERROR at line 1:
ORA-01078: failure in processing system parameters
LRM-00113: error when processing file
'D:\Oracle\product\10.1.0\admin\mydb\pfile'
LRM-00109: could not open parameter file
'D:\Oracle\product\10.1.0\admin\mydb\pfile'

----》上面的错误原因是第二步造成的,其中IFILE="....\initmydb.ora"才行。
SQL> create spfile from pfile;
File created.

----》再启动,不用指定pfile了
SQL> startup nomount
ORACLE instance started.
......

SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

----》重新启动机器后,orcl数据库总是显示为已启动,mydb为未启动状态
这种情况下orcl其实是一个空闲进程,数据库nomount阶段,mydb则没启动进程,
所要连接到mydb会出现如下错误:
SQL> conn sys/mydb as sysdba
ERROR:
ORA-12560: TNS:protocol adapter error
可从服务管理器中启动OracleServicemydb则可以连接了。

----》下面两个操作有点奇怪,我创建的是实例,可使用inst启动不了,需要用srvc
C:\>oradim -startup -sid mydb -starttype inst -usrpwd mydb
ORA-12560: TNS:protocol adapter error

C:\>oradim -startup -sid mydb -starttype srvc -usrpwd mydb

5:创建数据库
SQL> CREATE DATABASE mydb
       2        logfile
       3        group 1
       4        ('d:\oracle\product\10.1.0\oradata\mydb\redo11.log',
       5         'd:\oracle\product\10.1.0\oradata\mydb\redo12.log') size 10m,
       6        group 2
       7        ('d:\oracle\product\10.1.0\oradata\mydb\redo21.log',
       8         'd:\oracle\product\10.1.0\oradata\mydb\redo22.log') size 10m
       9        datafile 'd:\oracle\product\10.1.0\oradata\mydb\system01.dbf' size 100m
10             autoextend on next 10m maxsize unlimited extent management local
11        sysaux datafile 'd:\oracle\product\10.1.0\oradata\mydb\sysaux01.dbf' size 50m
12        undo tablespace undotbs01 datafile 'd:\oracle\product\10.1.0\oradata\mydb\undotbs1.dbf' size 20m
13        default temporary tablespace temp
14        tempfile 'd:\oracle\product\10.1.0\oradata\mydb\temp01.dbf' size 10m
15        default tablespace users
16        datafile 'd:\oracle\product\10.1.0\oradata\mydb\users01.dbf' size 10m
17*       character set zhs16gbk
create database mydb
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced

----》查看alert_mydb.log发现错误出现在创建undotbs1.dbf后,
Wed Apr 11 13:48:19 2007
CREATE UNDO TABLESPACE UNDOTBS01 DATAFILE       'd:\oracle\product\10.1.0\oradata\mydb\undotbs1.dbf' size 20m

ORA-30012 signalled during: CREATE UNDO TABLESPACE UNDOTBS01 DATAFILE       'd:\ora...
Wed Apr 11 13:48:21 2007
Errors in file d:\oracle\product\10.1.0\admin\mydb\udump\mydb_ora_828.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type

----》为什么说UNDOTBS1不存在?查看参数文件,发现这么两行
undo_management=AUTO
undo_tablespace=UNDOTBS1

----》于是删除刚创建没成功的一些文件,然后修改创建数据库语句重新来
SQL> conn sys/mydb as sysdba
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.

----》这次原本是创建成功了,但我为了记录错误原因,将创建好的数据库文件全部删除又来一次,
然后像下面这样修改,又处错了。
Total System Global Area       171966464 bytes
Fixed Size                        787988 bytes
Variable Size                  145750508 bytes
Database Buffers                25165824 bytes
Redo Buffers                      262144 bytes
SQL> l12
12*       undo tablespace undotbs01 datafile 'd:\oracle\product\10.1.0\oradata\mydb\undotbs1.dbf' size 20m
SQL> c /undotbs01/undotbs1/
12*       undo tablespace undotbs1 datafile 'd:\oracle\product\10.1.0\oradata\mydb\undotbs1.dbf' size 20m
SQL> run
......
create database mydb
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced

----》还是这个错误,但错误原因不一样了
Wed Apr 11 13:55:39 2007
Errors in file d:\oracle\product\10.1.0\admin\mydb\udump\mydb_ora_1344.trc:
ORA-01501: CREATE DATABASE failed
ORA-01991: invalid password file 'D:\oracle\product\10.1.0\Db_1\DATABASE\PWDmydb.ORA'

----》显示口令文件不可用,估计与刚才的删除有关,重新创建口令文件吧
见第三步
----》执行创建数据库的语句创建成功。

----》数据库创建后,自动处于OPEN状态,所有V$...都可以查询,但其他则不可,如:
SQL> select * from dba_users;
select * from dba_users
                   *
ERROR at line 1:
ORA-00942: table or view does not exist

----》解决上面的问题的方法是加载常用的数据字典包
SQL>@d:\oracle\product\10.1.0\db_1\rdbms\admin\catalog.sql

----》使用system用户连接出现的问题
SQL> conn system/zhiqiao
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.

SQL> conn sys/mydb as sysdba
Connected.

SQL> grant connect to system identified by mydb;
Grant succeeded.

SQL> conn system/mydb
ERROR:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_APPLICATION_INFO.SET_MODULE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Error accessing package DBMS_APPLICATION_INFO
Connected.
----》出现错误,但连接上了,连接orcl,或者用向导创建时没有这个问题。
SQL> show user;
USER is "SYSTEM"

----》除了数据字典包外,通常还要加载以下包
1:PL/SQL程序包       catproc.sql
2:远程数据复制       catrep.sql
3:JAVA程序包       initjvm.sql
4:系统环境文件,必须以system用户登陆       db_1\sqlplus\admin\pupbld.sql

加载PL/SQL程序包时出现很多错误,表或视图不存在,不知道为什么。

 

时间: 2024-10-30 14:25:03

创建Oracle数据库的相关文章

RedHat 5.2下Linux Oracle 10g ASM安装教程(三)利用dbca创建oracle数据库

六.利用dbca创建oracle数据库 1.执行DBCA Oracle用户下命令行输入dbca,弹出图形界面 2.要点 A.注意需要选择asm存放 此处需要考虑到有的时候找不到dgroup1组,需要输入密码创建,总是提示spfile正在使用,此时可以采用关闭+ASM实例(shutdown immediate),在重试就行了. B.注意字符集选择: Simplified Chinese ZHS15GBK C.安装完成的最后操作步骤 $ su root # /oracle/oralnventory/

sql-通过SQL数据库,创建oracle数据库链接,始终不成功!

问题描述 通过SQL数据库,创建oracle数据库链接,始终不成功! 环境如下: 1.1台服务器为SQL2005数据库,安装了oracle client11g 2.1台服务器为oracle 10g数据库,安装了oracle client10g,已经创建了数据库为test,有表tab1. 3.两台服务器监听已经配置,并测试提示链接成功! 4.通过SQL 2005数据库创建服务器,使用Oracle Provider for OLE DB 接口创建成功,链接服务器名称为:ORAC 5.通过select

Linux下手动创建Oracle数据库过程

今天发现一个Oracle测试库的字符集设置不正确,原本的字符集是UTF-8,正确的字符集应该是 ZHS16GBK,因为UTF-8是ZHS16GBK的超集,无法修改,只能重建数据库,幸好该测试库上还没有数据. 虽然用DBCA也可以创建数据库,但我个人更喜欢手工创建数据库,其主要步骤如下(数据库版本 11.2): 1. 设置ORACLE_SID 默认的ORACLE_SID是orcl,我个人强烈建议起个唯一.且意义的名字,比如**testdb,**proddb等 等,在Oracle用户下执行: exp

PLSQL创建oracle数据库用户

工具/原料  PLSQL 方法1 1 双击运行PLSQL Developer软件,连接oracle数据库服务器 2  在"对象"下,找到users,右击选择"新建" 3  在弹出的"创建用户"窗口中,输入新用户的名称.口令,默认表空间.临时表空间等 4  赋予新用户权限,赋予其角色权限:connect.resource,这样用户才能登录操作数据库 END 方法2  通过sql语句创建用户:依次单击"文件"--"新建&

创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

目录 目录 软件环境 前言 安装Oracle监听程序 启动停止监听程序 创建数据库 数据库名db_name 数据库实例名instance_name 数据库名与实例名的关系 操作系统环境变量ORACLE_SID 软件环境 操作系统 RHEL 6.1 软件环境 Oracle10gr2 前言 在上一篇RHEL6.1 安装 Oracle10gr2 (图文.解析)中记录了如何成功的在RHEL6.1安装Oracle10gr2,但是在安装的过程中没有创建数据库,本篇主要记录了如果创建数据库和监听程序. 安装O

Linux下和Windows下创建Oracle数据库,表空间,Oracle用户

通过SSH工具或是XShell工具进入远程Linux下. 其中,通过SSH工具登录的界面如下: 其中Host Name是远程服务器的ip地址.User Name是服务器的一个用户名,端口号默认22,Connect进去后可以填写服务器的密码. 通过XShell工具登录的界面如下: 点击上面的New按钮,填写HOST主机地址,即服务器的IP地址,点击OK即可.   输入命令:    cd /    到根目录下 启动tomcat usr/local/tomcat/bin/startup.sh(这是to

手动创建ORACLE数据库实例

1.首先设置ORACLE_SID=manual 2.创建密码文件 进入/u01/app/oracle/product/10.2.0/db_1/dbs目录下,执行命令创建数据库密码文件 [oracle@myorcl dbs]$ orapwd file=orapmanual password=oracle 3.创建所需的目录结构 [oracle@myorcl dbs]$ cd /u01/app/oracle/admin/ [oracle@myorcl admin]$ mkdir manual 然后进

UNIX下ORACLE数据库的创建

oracle|unix|创建|数据|数据库 创建数据库虽说是一件很平常的工作,在ORACLE的参考文档中也有一定的描述,但现实中确有很多人都不会,一方面是因为平时很少有这样的机会让你去做,而真有了这样的机会让你做的时候,可能又手忙脚乱的不知道如何下手,本文将为你提供一个完整的参考. 详细步骤如下: 第一步:准备工作 1. 环境变量:ox1> more .profile_oracyx# 这部分建议提供PATH=/data4/ora817/app/oracle/product/8.1.7/bin:/

oracle数据库用户创建、权限分配

oracle|创建|数据|数据库 1.数据库安装时的参数设定下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入:ora9i ,其中的字符集必须选为:ZHS16GBK(否则以后进行跨平台操作时对中文的操作将比较困难).2.数据库用户的创建.权限的分配数据库安装完成后,有两个系统级的用户: 1.          system 默认密码为:manager 2.          s