前几天看小布的手动建库视频,自己也尝试了一下。结果各种悲剧。记录如下:
明确手动建库的步骤:
Creating a Database with the CREATE DATABASE Statement
2,按照步骤设置环境变量,主要的变量有ORACLE_HOME,ORACLE_SID,ORACLE_BASE。为了不影响之前的库, 我把这些变量放到一个可执行文件bbk.env中,这样在安装新库的时候,只用改session的环境变量,而不影响 整个系统的。这个文件的执行是 ".空格./bbk.eng"。注意执行命令是“点,空格,点,杠,文件名”。
bbk.env的内容是:
export PATH
ORACLE_SID=bbk
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH PATH DISPLAY
4,创建pfile,我是直接复制的上一个库的pfile,并把做了一些修改。这里注意ORACLE_SID要和db_name一致。
sam库的initsam.ora
sam.__db_cache_size=67108864
sam.__java_pool_size=4194304
sam.__large_pool_size=4194304
sam.__oracle_base='/u01'#ORACLE_BASE set from environment
sam.__pga_aggregate_target=67108864
sam.__sga_target=201326592
sam.__shared_io_pool_size=0
sam.__shared_pool_size=117440512
sam.__streams_pool_size=4194304
*.audit_file_dest='/u01/admin/sam/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oradata/sam/control01.ctl','/u01/flash_recovery_area/sam/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='sam'
*.db_recovery_file_dest='/u01/flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=samXDB)'
*.open_cursors=300
*.pga_aggregate_target=66060288
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=198180864
bbk的initbbk.ora
bbk.__db_cache_size=67108864
bbk.__java_pool_size=4194304
bbk.__large_pool_size=4194304
bbk.__oracle_base='/u01'#ORACLE_BASE set from environment bbk.__pga_aggregate_target=67108864
bbk.__sga_target=201326592
bbk.__shared_io_pool_size=0
bbk.__shared_pool_size=117440512
bbk.__streams_pool_size=4194304
*.audit_file_dest='/u01/admin/bbk/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0' *.control_files='/u01/oradata/bbk/control01.ctl','/u01/flash_recovery_area/bbk/control02.ctl' *.db_block_size=8192
*.db_domain=''
*.db_name='bbk'
*.db_recovery_file_dest='/u01/flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=bbkXDB)'
*.open_cursors=300
*.pga_aggregate_target=66060288
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=198180864
6,连接实例
sqlplus /nolog
SQL> conn /as sysdba
7,创建spfile。其实这里可以不创建spfile,而用pfile直接启动。
SQL> create spfile from pfile;
8,启动实例。 因为是创建数据库,所以要在nomount状态下执行。
SQL>startup nomount
从这里悲剧开始了:
startup nomount时出现错误:
ORA-09925: Unable to create audit trail file
Linux Error: 2: No such file or directory
既然提示的是no file,则可能是OS中没有在initpfile.ora提到的目录,或文件,于是到这些目录中去验证是否有这些目录。发现是有这些目录的。又想到,会不会是这些目录的用户、用户组不是oracle,oinstall。ll后发现,这些目录真的不在oracle用户下,用户组也不是oinstall。那就赋权呗! 再次startup nomount 成功!
9,执行create database命令。这个命令我用的是联机文档中的example 1,并对各个文件的大小作出了一定修改(正式这些修改又让我慌了半天)。命令如下:
CREATE DATABASE bbk
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
LOGFILE GROUP 2 ('/u01/oradata/bbk/redo01a.log','/u01/oradata/bbk/redo01b.log') SIZE 10M BLOCKSIZE 512,
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/oradata/bbk/system01.dbf' SIZE 50M REUSE
SYSAUX DATAFILE '/u01/oradata/bbk/sysaux01.dbf' SIZE 32M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/oradata/bbk/users01.dbf'
SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/oradata/bbk/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/oradata/bbk/undotbs01.dbf'
SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
这一步也没有报错。
11,执行脚本:
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
执行完这三个脚本,等我重新startup的时候,开始报错了。
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
那就用upgrade启动呗!
SQL>startup upgrade
这样数据库确实启动了,也能使用。但这不是我想要的。在网上搜的多是说,在数据库升级的时候碰到这种情况,执行
SQL>@?/rdbms/admin/catupgrd.sql
SQL>@?/rdbms/admin/catalog.sql
SQL>@?/rdbms/admin/catproc.sql
SQL>@?/rdbms/admin/utlrp.sql
这几个脚本后,重启数据库就行了。可是我这样干后,就是不行,还是ORA-39700错误。
后来在http://orcl.tistory.com/entry/ORA-00704-bootstrap-process-failure-ORA-39700里发现有这么一句:
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 505 MB
我嘞个去。我把system01.dbf改成了50M!!!!!!!!!!! 那就改回来,重新建一次。
这回一路畅通,没错了。
分享到:
相关推荐
Oracle手动建库是一个重要的数据库管理技能,它允许数据库管理员在没有图形用户界面(GUI)的情况下或在GUI环境出现问题时,通过命令行创建和配置数据库实例。本文将详细介绍在Oracle数据库10G和11G版本中手动建库的...
### OCM考试 - 手动建库:Oracle数据库构建步骤详解 #### 一、概述 在Oracle Certified Master (OCM) 认证考试中,“手动建库”是一项重要的考核内容。这一过程涉及到从零开始搭建一个Oracle数据库环境,并且需要...
Oracle 11g R2 手动建库脚本是一个重要的数据库管理任务,涉及一系列复杂的步骤和技术细节。在这个过程中,数据库管理员(DBA)需要创建一个新的数据库实例,配置相关的参数,分配存储空间,并确保所有安全性和性能...
Oracle 11g R2 在 Red Hat Enterprise Linux (RHEL) 上手动创建数据库涉及一系列步骤,这些步骤确保了系统的正确配置和数据库实例的稳定运行。以下是详细的创建过程: 1. **指定实例标识符 (SID)**:SID 是 Oracle ...
Oracle 手动建库是指在没有使用Oracle的Database Configuration Assistant (DBCA)工具的情况下,通过一系列手动步骤创建一个新的Oracle数据库。这种方法虽然比使用图形界面工具更复杂,但它可以帮助你深入理解Oracle...
### Oracle 10g 手动建库知识点详解 #### 一、手动建立数据库 手动建立Oracle 10g数据库涉及一系列步骤和技术细节。这种方式相较于使用DBCA(Database Configuration Assistant)等自动化工具,需要更多的手动干预和...
根据提供的文件信息,本文将详细解释“10G手动建库步骤”,这主要涉及Oracle 10G在Linux平台下的数据库创建过程。本教程适用于初学者,并提供了详细的步骤指南。 ### 一、环境配置 首先,确保服务器环境满足以下...
Oracle 手工建库步骤详解 Oracle 手工建库步骤是创建 Oracle 数据库的基本步骤。本文将详细介绍手工建库的每个步骤,并解释每个步骤的重要性。 步骤 1:确定 Global Database Name 在创建数据库之前,需要确定 ...
Oracle 10g 手动建库方法是一个详细的步骤指南,涵盖了从创建数据库目录到启动数据库实例、构建数据库结构以及初始化参数设置等多个方面。以下是对这些步骤的详细解释: 1. **创建目录与设定字符集**: - 目录如`a...
本篇将深入探讨如何手动创建Oracle 9i数据库,这对于理解数据库的架构和管理至关重要。 首先,建立Oracle 9i数据库涉及以下几个关键步骤: 1. **环境准备**:确保操作系统(如Windows或Linux)满足Oracle 9i的系统...
### ORACLE创建裸设备手工建库笔记解析 #### 背景与目标 在Linux环境中,尤其是Red Hat Linux系统上,使用Oracle数据库时,有时会遇到需要手动创建数据库的情况。本文档将详细介绍如何通过创建裸设备(Raw Device...
为了深入了解Oracle数据库的工作原理及其组成部分,本文档将通过一系列手动步骤来创建一个Oracle数据库实例,而非使用Oracle提供的图形化工具如DBCA(Database Configuration Assistant)进行自动配置。这种方式虽然比...
一、启动实例 1. 设置 ORACLE_SID:export ORACLE_SID=CDB 2. 创建口令文件:orapwd file=$ORACLE_HOME/dbs/orapwCDB password=oracle 3. 设置 initCDB1.ora 文件: * 设置 CONTROL_FILES 到 CDB 控制文件名 * ...
例如,`MY1`是一个监听器实例,它监听`prod1`数据库,并且可以通过TCP/IP协议在`even`主机的1421端口或者IPC协议进行访问。 总的来说,手动创建Oracle数据库涉及了多个层面的知识,包括但不限于初始化参数、数据库...
帮助新手建库建表,知道建库建表和约束的语句
#### 一、Oracle9i简介与手动建库的重要性 Oracle9i是Oracle公司发布的一款重要的数据库管理系统版本,在企业级应用中有着广泛的应用场景。由于Oracle9i版本发布时间较早(2000年左右),在那个时代,手动建立...
本文将详细解析在Linux系统上手动创建Oracle 10g实例的流程,包括创建实例目录、密码文件、参数文件,以及创建建库脚本和数据字典等关键步骤。 #### 创建实例目录 实例目录的创建是构建Oracle 10g环境的基础,涉及...