ORACLE管理员指南(二):创建oracle数据库

手工创建oracle数据库

Ø         确定数据库SID

例如执行以下命令设置SID% setenv ORACLE_SID mynewdb

Ø         建立数据库管理员认证方式

选择操作系统认证或密码文件认证

Ø         创建初始化参数文件

对于unix操作系统,参考$ORACLE_HOME/dbs/init.ora文件作为你的参数文件的蓝本,建议把参数文件的路径和命名规范化,这样启动实例时就不需要指定PFILE参数了,具体规则稍后给出!

Ø         连接到新的实例

执行“CONNECT SYS/password  AS SYSDBA命令以sysdba特权连接到新的实例

Ø         创建服务端参数文件(spfile

执行以下命令创建spfile,创建spfile后再重启实例就会读取新的spfile

-- create the server parameter file

CREATE SPFILE='/u01/oracle/dbs/spfilemynewdb.ora' FROM

PFILE='/u01/oracle/admin/initmynewdb/scripts/init.ora';

SHUTDOWN

-- the next startup will use the server parameter file

EXIT

Ø         启动实例

STARTUP NOMOUNT

只启动SGA和后台进程,目前数据库还不存在

Ø         执行create database命令

参考以下语句:

CREATE DATABASE mynewdb

USER SYS IDENTIFIED BY pz6r58

USER SYSTEM IDENTIFIED BY y1tz5p

LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M,

GROUP 2 ('/u01/oracle/oradata/mynewdb/redo02.log') SIZE 100M,

GROUP 3 ('/u01/oracle/oradata/mynewdb/redo03.log') SIZE 100M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET US7ASCII

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '/u01/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '/u01/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE

DEFAULT TABLESPACE tbs_1

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf'

SIZE 20M REUSE

UNDO TABLESPACE undotbs

DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

简要说明:

由参数文件中CONTROL_FILES参数指定的三个控制文件会自动创建

MAXINSTANCES 1指定再同一时刻只能有一个实例可以挂载并打开这个数据库

Ø         创建其他表空间(可选)

例如:

CONNECT SYS/password AS SYSDBA

-- create a user tablespace to be assigned as the default tablespace for users

CREATE TABLESPACE users LOGGING

DATAFILE '/u01/oracle/oradata/mynewdb/users01.dbf'

SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL;

-- create a tablespace for indexes, separate from user tablespace

CREATE TABLESPACE indx LOGGING

DATAFILE '/u01/oracle/oradata/mynewdb/indx01.dbf'

SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL;

Ø         执行创建数据字典的脚本

CONNECT SYS/password AS SYSDBA

@/u01/oracle/rdbms/admin/catalog.sql

@/u01/oracle/rdbms/admin/catproc.sql

EXIT

Ø         执行安装其他选项的脚本

Ø         备份数据库

解析create database语句

Ø        为了保护数据库,请指定syssystem的密码

Ø        建立本地化管理的system表空间

EXTENT MANAGEMENT LOCAL字句用于指定创建本地化管理的system表空间,前提是“COMPATIBLE”初始化参数的值必须大于等于9.2

创建本地化管理的system表空间意味着默认附带了“AUTOALLOCATE”选项,即extent是数据库自动分配的,当然也不能指定“UNIFORM”参数。

为了创建对于本地化管理的system表空间,必须满足下面两个条件:

1、  必须存在一个默认的临时表空间,且名称不是system(你可以在create databse语句中使用DEFAULT TEMPORARY TABLESPACE子句来创建默认的临时表空间)

2、  你可以在create databse语句中使用UNDO TABLESPACE子句来创建UNDO表空间

Ø        建立SYSAUX表空间

SYSAUX表空间是system表空间的附属空间,之前很多使用system的一些特性现在都已经迁移到sysaux表空间以降低system表空间的负载

在创建SYSAUX表空间是你可以只指定datafile参数,以下四个属性是强制、不可更改的:

PERMANENT

READ WRITE

EXTENT MANAGMENT LOCAL

SEGMENT SPACE MANAGMENT AUTO

你不可以使用ALTER TABLESPACE语句来改变上述四个属性,你也不能删除或重命名sysaux表空间

如果在创建system表空间时指定了datafile参数,那么对于sysaux表空间也必须指定datafile参数

如果在create database中未指定systemsysaux的参数,则系统会在默认位置创建这两个表空间的数据文件

Ø        采用自动UNDO管理:建立UNDO表空间

自动的UNDO管理是使用UNDO表空间来实现的,即对于“UNDO_MANAGEMENT”初始化参数必须指定为“AUTO”,在这种模式下UNDO数据是存储在UNDO表空间中让oracle自动管理的。如果需要自定义UNDO表空间,在create databse语句中指定“UNDO TABLESPACE”子句。如果你没有指定该子句且“UNDO_MANAGEMENT”初始化参数必须指定为“AUTO”,那么系统会自动创建一个名为“SYS_UNDOTBS”的UNDO表空间

Ø        建立一个默认的永久表空间

通过“DEFAULT TABLESPACE”子句指定默认的永久表空间。如果新建用户时没有为其指定表空间,那么会以这个默认的永久表空间作为该用户的存储空间。

Ø        建立一个默认的临时表空间

通过“DEFAULT TEMPORARY TABLESPACE”子句指定默认的永久表空间。如果新建用户时没有为其指定临时表空间,那么会以这个默认的临时表空间作为该用户的临时表空间。

在创建完数据库后,你还可以增加或改变默认的临时表空间

使用“CREATE TEMPORARY TABLESPACE”创建新的临时表空间,再使用“ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <tbspname>命令修改数据库的默认临时表空间。如果system表空间是本地化管理的话,那么默认的临时表空间也必须是本地化管理的。对于当前使用的默认临时表空间,你不能将它删除或置为offline状态。可以查询“DATABASE_PROPERTIES”视图查看当前使用的默认临时表空间。

Ø        在创建数据库时指定使用给予oracle管理的数据文件

如果在初始化参数文件中指定了诸如DB_CREATE_FILE_DEST,DB_CREATE_ONLINE_LOG_DEST_n, or DB_RECOVERY_FILE_DEST等参数,那么在创建数据库时不指定数据文件的位置时,系统会根据上述参数自动给出。

Ø        在创建数据库时指定“大文件”表空间

“大文件”表空间只能有一个数据文件,但这个文件最大能达4G BLOCKS,因而“大文件”表空间这一特使能够大大提高oracle的存储能力

可以在create database语句中指定“SET DEFAULT bigfile TABLESPACE”或“SET DEFAULT smallfile TABLESPACE”语句设置默认的表空间类型,这将影响后续的create tablespace 语句。“小文件”表空间可以最多拥有1022个数据文件,每个文件最大为4M BLOCKS。当数据库建立完毕后,可以使用“ALTER DATABASE SET DEFAULT BIGFILE/SMALLFILE TABLESPACE”语句来重新设置默认的表空间类型。

可以通过以下语句查看当前使用的默认表空间类型:

SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

Ø        在创建数据库时设置时区和时区文件

create database 语句中指定SET TIME_ZONE子句设置数据库的时区,如果不指定该子句,则默认使用操作系统的时区。ALTER SESSION命令也支持SET TIME_ZONE子句修改会话级的时区

Ø        设定FORCE LOGGING 模式

某些ddl语句可以加上NOLOGGING选项设置某些操作不记入重做日志,如果create database语句指定了FORCE LOGGING选项,则ddlNOLOGGING就不起作用了。

 在数据库创建完毕后,可以使用如下语句重新设置或取消该模式:

ALTER DATABASE [NO] FORCE LOGGING

在表空间级别上你也可以指定FOECE LOGGING模式,ORACLE建议在数据库一级或在表空间一级指定该模式,不要在两个级别上同时指定该模式。

FOECE LOGGING是数据库的静态属性(重启实例不会改变它的值),然而如果你重建控制文件,则必须重新指定该参数。

如果数据库运行于NOARCHIVELOG模式,则建议不要指定该模式,因为NOARCHIVELOG模式本来就不支持数据恢复,FOECE LOGGING就变得没意义了,不但如此而且也影响性能。

探究数据库的初始化参数

待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值