Oracle之创建数据库
1、创建数据库的准备:有一个特权账号(通过操作系统、使用一个口令文件)、有足够的内存、有足够的磁盘空间。
2、计划数据库文件的位置:最少保持2个活动的数据库控制文件副本放在不同的物理设备上;多工重做日志文件并放组成员在不同的物理硬盘上;只读和读写文件分开,备份只对经常改变的数据进行备份,考虑不同的生存周期,考虑资源征用以均衡负载:表数据和索引数据分开,临时数据和永久数据分开,回滚数据和用户数据分开。
3、创建数据库两种方式:DBCA(DATABASE Configuartion Assistant)配置帮手、CREATE
DATABASE命令(手工)
(1)首先设置系统环境变量
(unix)平台:
ORACLE_BASE(Oracle安装所在的第一级目录:D:\Oracle)
ORACLE_HOME(Oracle管理文件所在路径:D:\Oracle\ora90)
ORACLE_SID(Oracle实例)
ORALCE_NLS33(使用不同字符集所需考虑的选择)
PATH(实例所在路径)
LD_LIBRARY_PATH(文件库所在路径)
setenv oracle_home=...,oracle_base=...
(windows)平台:
cmd> set oracle_sid=连接名称
(2)使用DBCM工具创建database(删除或配置选项)建立database创建模板
手工创建数据库:
a.确认唯一实例和database name
b.选择database 字符集(set)
c.设置操作系统环境变量(Oracle_base,Oracle_home,Oracle_SID)
d.编辑/创建初始化参数文件
e.启动实例(nomount状态)
f.执行create
database命令(系统表空间、在线日志、内部系统表,但并未创建数据库视图、package数据字典等)
g.运行script脚本产生数据字典和完成后期database创建过程。
windows平台:
cmd> oradim
先创建例程(口令文件database对应的service)
例如:手工创建一个database:foxconn的实例
set oracle_sid=foxcnn
oradim -NEW -sid FOXCONN -INTPWD admin -pfile
d:\oracle\ora90\database\initfoxconn.ora
通过oradim创建例程,有如下变化:
控制面板>管理工具>本地服务:OracleServiceFOXCONN已启动
注册表:Oracle\Home0\多了FOXCONN的内容。
在D:\oracle\ora90\database\PWDFOXCONN.ora 口令文件也多出来了。
准备初始参数文件:initSID.ora
$ cp init.ora $ORACLE_HOME/dbs/initdb01.ora
D:\oracle\ora90\admin\sample 复制到
D:\oracle\admin\下然后将复制后的sample文件夹名重命名为实例名称foxconn,在
D:\oracle\admin\foxconn\pfile下有一个initsmpl.ora文件。
对这个文件initsmple.ora进行编辑:initsmple.ora重命名为init.ora,以记事本打开后找到:db_name=%AVAILABLE_SID%,%seed_control%,db_block_size=9048。修改为“db_name=foxconn”,control_files=('d:\oracle\oradata\foxconn\control01.ctl','e:\oracle\oradata\foxconn\control02.ctl'),db_block_size=8192
建立SPFILE系统参数文件:CREATE SPFILE FROM
PFILE;
复制D:\oracle\ora90\database\initfox.ora(已有的)复制并粘贴在当前目录下,并将initfox.ora重命名为initfoxconn.ora,将其中的内容:IFILE='D:\oracle\admin\fox\pfile\init.ora
'修改为IFILE='D:\oracle\admin\foxconn\pfile\init.ora' //指定初始参数文件位置
打开实例所在的初始化参数文件init位置“D:\oracle\admin\foxconn\pfile\init.ora”
将其中的内容改为:text_enable=true;
启动例程:
connect as sysdba 以系统管理员身份登录
在nomount状态启动例程:startup nomount
创建数据库脚本:
(D:\oracle\ora90\rdbms\admin\build_db.sql)
sql> create database foxconn
2 maxlogfiles 10
3 maxdatafiles 1024
4 maxinstances 2
5 datafile 'd:\oracle\oradata\foxconn\system01.dbf' size 50m
6 logfile
7 group 1 'd:\oracle\oradata\foxconn\redo01.ora' size 10m,
8 group 2 'd:\oracle\oradata\foxconn\redo02.ora' size 10m;
9 /
然后指定数据库实例路径(在oradata下新建文件夹foxconn):D:\oracle\oradata\foxconn
sql> run 即可。
如果发现错误或问题,则可以立即关闭例程:
sql> shutdown immediate
重启例程(数据库初始参数文件):
sql> startup
pfile=d:\oracle\ora90\database\initfoxconn.ora nomount
=======================================
一个完整创建数据库的实例:
Windows>cmd
set oracle_sid=foxconn
sqlplusw /nolog
sql>conn sys/admin as sysdba
sql>select * from dba_instances;
sql>set wrapp off
sql>set linesize 200
sql>run //存储包
sql>alter session set
nls_language=american;
sql>select * from dba_users;
sql>select * from v$database;
sql>select * from dba_objects; //table or views does
not exist;
sql>execute dbms_output.put_line('test string1');
//package STANDARD not accessible
sql> @D:\oracle\ora90\RDBMS\admin\catalog.sql
//(buildall)创建dbms数据包的所有脚本
sql> set wrap off
sql> set linesize 1000
sql> run
sql> select * from dba_tables;
sql>
@D:\oracle\ora90\RDBMS\admin\catproc.sql //建立标准程序包和所需要的数据类型。
sql> execute dbms_output.put_line('test
string1') //PL/SQL 过程已成功完成
sql> set serveroutput on
sql> execute dbms_output.put_line('test
string1');
sql> conn system/manager
sql> @D:\oracle\ora90\SQLPLUS\admin\pupbld.sql
sql>help show //help
不可访问 (D:\oracle\ora90\sqlplus\admin\help\hlpbld.sql)
sql>start
D:\oracle\ora90\sqlplus\admin\help\hlpbld.sql
输入1的值:D:\oracle\ora90\sqlplus\admin\help\helpus.ql
sql>help show