一:如何手工创建数据库
Oracle运行环境:CentOs4.5
Oracle版本:oracle9i
创建前提:oracle软件已经安装
1:确定数据库的名字
2:设置环境变量,可以建立一个文件,然后利用 . ./mynewdb.env执行
例:
ORACLE_BASE=/U01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=mynewdb;
ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_NLS33 PATH LD_LIBRARY_PATH
参数的说明:
ORACLE_BASE: Specifies the directory at the top of the Oracle software. Example:
/u01/app/oracle
ORACLE_HOME: Specifies the directory where the Oracle software is installed. The OFArecommended value is $ORACLE_BASE/product/release. Example:
/u01/app/oracle/product/9.2 //安装Oracle产品的总目录,因为Oracle有很多软件
ORACLE_SID: Specifies the instance name and must be unique for Oracle instances running
on the same machine //可以参考我的另一篇日记 什么是sid?
ORA_NLS33: Required when creating a database with a character set other than US7ASCII.
Example: $ORACLE_HOME/ocommon/nls/admin/data //字符集的时候需要用
PATH: Specifies the directories that the operating system searches to find executables, such as
SQL*Plus. The Oracle9iexecutables are located in $ORACLE_HOME/binand needs to be
added to the PATHvariable.
LD_LIBRARY_PATH:Specifies the directories for the operating system and Oracle library
3:建立初始化参数,可以利用已经存在的initSID.ora文件创建新的初始化文件,利用strings语句,例如:
strings initSID.ora > initmynewdb.ora;
$vi initnewmydb.ora (全局替换用:%s/xxx/yyy/g,或者去除其中的*.用:%s/*\.//g)
注意记得创建其中使用到的目录。cp –R xxx/ yyy,进入单个目录rm –f *
4:准备相对应的目录,否则在建立数据库的时候会出错
现在/u01/oradata下建立相对应的文件夹
mkdir mynewdb;
cd mynewdb;
mkdir archive;
在/u01/admin下
拷贝整个admin
cp –R denver/ mynewdb
注意要删除目录下原来残留的一些,进入单个目录rm –f *
注意:要在dbs目录下准备口令文件
orapwd file=orapwmynewdb password=oracle entries=10;
5:运行create database脚本
SPOOL dbcreate.log;
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
CONTROLFILE REUSE
ARCHIVELOG
LOGFILE
GROUP 1 ('/u01/oradata/mynewdb/redo01.log') SIZE 100M,
GROUP 2 ('/u01/oradata/mynewdb/redo02.log') SIZE 100M,
GROUP 3 ('/u01/oradata/mynewdb/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/oradata/mynewdb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE UNDOTBS1
DATAFILE '/u01/oradata/mynewdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
SPOOL OFF;附:如果文件已存在,不加reuse会报ORA-27038: 所创建的文件已存在
查看错误 在/U01/admin/mynewdb/bdump/alert_mynewdb.log
运行:tail –f alert_mynewdb.log;
5: Run Scripts to Build Data Dictionary Views
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
附:@表示Run的意思,?表示是ORACLE_HOME的位置,他是个变量,应该是会随着ORACLE_HOME的变化而变化的,原文如图:
官方文档关于catalog.sql和catproc.sql的解释,这两个是必须安装的
catalog.sql:
Creates the data dictionary and public synonyms for many of its views Grants PUBLIC access to the synonyms |
catproc.sql:
Runs all scripts required for, or used with PL/SQL |
建议:执行脚本前可以SPOOL log1.log记录信息,因为执行脚本时可能会出错,查找错误可以直接在log1.log下/error查看是否有错误信息,或者cat log1.log | grep err | more;
总结:手工建立数据库过程中主要遇到的问题是对应的文件夹要设置对,还有相应的文件注意不要忘了在dbs目录下建立口令文件orapwSID,还有关于CREATE DATABASE这条sql语句,我是参考官方文档上的例子的,关于创建的语法官方文档上都有说明,而且写的也很详尽,除了这些,没遇到什么大的问题。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29840459/viewspace-1442158/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29840459/viewspace-1442158/