unix oracle数据库启用,UNIX下ORACLE数据库的创建

oracle|unix|创建|数据|数据库

创建数据库虽说是一件很平常的工作,在ORACLE的参考文档中也有一定的描述,但现实中确有很多人都不会,一方面是因为平时很少有这样的机会让你去做,而真有了这样的机会让你做的时候,可能又手忙脚乱的不知道如何下手,本文将为你提供一个完整的参考。

详细步骤如下:

第一步:准备工作

1、 环境变量:

ox1> more .profile_oracyx

# 这部分建议提供

PATH=/data4/ora817/app/oracle/product/8.1.7/bin:/data4/ora817/bin::/usr/bin:.

ORACLE_BASE=/data4/ora817/app/oracle

ORACLE_SID=oracyx

ORA_NLS33=/data4/ora817/app/oracle/product/8.1.7/ocommon/nls/admin/data

ORACLE_HOME=/data4/ora817/app/oracle/product/8.1.7

# 这部分根据你的具体环境,不过有的参数在数据库建成后最好还是明确写出来,

# 如:LD_LIBRARY_PATH等,这样自己看起来会更清楚些。

LD_LIBRARY_PATH=/data4/ora817/app/oracle/product/8.1.7/lib:/usr/lib

TNS_ADMIN=/data4/ora817/app/oracle/product/8.1.7/network/admin

USER=ora817

NLS_LANG=american_america.zhs16cgb231280

LOGNAME=ora817

ORA_DB=/data4/ora817/app/oracle/product/8.1.7/dbs

TERM=vt100

HOME=/data4/ora817

ORACLE_TERM=vt100

SHELL=/bin/ksh

DISPLAY=ox1:0.0

2、参数文件

ox1> pwd

/data4/ora817/app/oracle/product/8.1.7/dbs

ox1> cp init.ora initoracyx.ora

ox1> vi initoracyx.ora

# --------------------------BEGIN---------------------------------------------------------

# db_name是唯一一个需要在建库时候提供的参数,

# 但通常以下参数都会做部分调整的

db_name = "oracyx"

instance_name = oracyx

service_names = oracyx

control_files = ('/data4/ora817/oradata/oracyx/control1.ctl', '/data2/oradata/or

acyx/control2.ctl','/data5/oradata/oracyx/control3.ctl')

open_cursors = 1000

max_enabled_roles = 40

db_block_buffers = 18800

shared_pool_size = 204800000

java_pool_size = 0

log_checkpoint_interval = 1000000000

log_checkpoint_timeout = 1800

processes = 2000

log_buffer = 2048000

timed_statistics = true

max_dump_file_size = 10000

log_archive_start = true

log_archive_dest_1 = "location=/data5/archive/oracyx"

log_archive_format = arch_%t_%s.arc

global_names = false

background_dump_dest = /data4/ora817/app/oracle/admin/oracyx/bdump

background_core_dump = partial

core_dump_dest = /data4/ora817/app/oracle/admin/oracyx/cdump

shadow_core_dump = none

user_dump_dest = /data4/ora817/app/oracle/admin/oracyx/udump

db_block_size = 8192

remote_login_passwordfile = exclusive

os_authent_prefix = ""

distributed_transactions = 1500

compatible = "8.1.7.0.0"

sort_area_size = 1024000

sort_area_retained_size = 1024000

db_files = 400

db_file_multiblock_read_count = 16

parallel_max_servers = 8

lm_ress=900000

lm_locks=1500000

session_cached_cursors = 20

transactions_per_rollback_segment = 10

db_block_lru_latches = 6

instance_number = 1

resource_limit=TRUE

# --------------------------END-----------------------------------------------------------

3、密码文件:

ox1> pwd

/data4/ora817/app/oracle/product/8.1.7/dbs

ox1> orapwd file=orapworacyx password=cyx entries=10

值得注意的是,oracle密码文件的文件名是有严格规范的:orapw[sid]。默认的查找顺序是:先找orapwsid,再找orapw,如果同一台机子上有两个数据库,为了区分起见必须有一个要指明SID。

同时不要忘了确认sqlnet.ora含如下内容:

sqlnet.authentication_services = (none)

当然你也可以不用密码文件,那么这一步就可以省略了。

4、准备目录:

ORACLE真的很笨,不会自己建立子目录,所以我们不得不在开始建库之前将所有数据文件存放的目录先建好,这里建的目录有:

/data2/oradata/oracyx

/data3/oradata/oracyx

/data4/ora817/oradata/oracyx/

/data5/oradata/oracyx

/data6/oradata/oracyx

/data7/oradata/oracyx

/data4/ora817/app/oracle/admin/oracyx/bdump

/data4/ora817/app/oracle/admin/oracyx/udump

/data4/ora817/app/oracle/admin/oracyx/cdump

第二步:开始建库

1、 建立基本数据库文件:

在本部分中将建立基本的数据库文件,包括control file, system data file和online redo log file。具体脚本如下:

ox1> more cdb1_base.sh

#!/bin/sh

#---------------------------------BEGIN--------------------------------------------------

ORACLE_SID=oracyx export ORACLE_SID

ORACLE_HOME=/data4/ora817/app/oracle/product/8.1.7 export ORACLE_HOME

/data4/ora817/app/oracle/product/8.1.7/bin/svrmgrl<< EOF

connect internal/cyx

spool /data4/ora817/cyx/cdb/crdb1.log

startup nomount pfile='/data4/ora817/app/oracle/product/8.1.7/dbs/initoracyx.ora'

CREATE DATABASE "oracyx"

CONTROLFILE REUSE

maxdatafiles 254

maxinstances 8

maxloghistory 100

maxlogmembers 2

maxlogfiles 64

character set ZHS16CGB231280

national character set ZHS16CGB231280

DATAFILE '/data4/ora817/oradata/oracyx/system.dbf'

SIZE 240M REUSE AUTOEXTEND OFF

logfile '/data4/ora817/oradata/oracyx/log1.rdo' SIZE 4M REUSE ,

'/data4/ora817/oradata/oracyx/log2.rdo' SIZE 4M REUSE ,

'/data4/ora817/oradata/oracyx/log3.rdo' SIZE 4M REUSE;

disconnect

spool off

exit

EOF

#---------------------------------END----------------------------------------------------

2、 建立其它表空间

此部分首先对系统表空间作适当的修改,然后开始创建其它表空间,详细脚本如下:

ox1> more cdb2_storage.sh

#!/bin/sh

#----------------------BEGIN--------------------------------------------------

ORACLE_SID=oracyx export ORACLE_SID

/data4/ora817/app/oracle/product/8.1.7/bin/svrmgrl << EOF

spool /data4/ora817/cyx/cdb/crdb2.log

connect internal/cyx

REM ********** ALTER SYSTEM TABLESPACE *********

ALTER TABLESPACE SYSTEM

DEFAULT STORAGE (

INITIAL 640K NEXT 640K MINEXTENTS 1

MAXEXTENTS UNLIMITED PCTINCREASE 0);

ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;

REM ********** TABLESPACE FOR TOOLS**********

CREATE TABLESPACE TOOLS DATAFILE '/data4/ora817/oradata/oracyx/tools_01.dbf'

SIZE 4000M REUSE AUTOEXTEND OFF

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

REM ********** TABLESPACE FOR INDX1 **********

CREATE TABLESPACE INDX1 DATAFILE '/data2/oradata/oracyx/indx1_01.dbf'

SIZE 4000M REUSE AUTOEXTEND OFF

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

REM ********** TABLESPACE FOR USER**********

CREATE TABLESPACE USER1 DATAFILE '/data6/oradata/oracyx/user1_01.dbf'

SIZE 4000M REUSE AUTOEXTEND OFF

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

REM ********** TABLESPACE FOR TEMP **********

CREATE TABLESPACE TEMP DATAFILE '/data7/oradata/oracyx/temp_01.dbf'

SIZE 4000M REUSE AUTOEXTEND OFF

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

REM ********** TABLESPACE FOR RBS **********

CREATE TABLESPACE RBS DATAFILE '/data3/oradata/oracyx/rbs1_1.dbf'

SIZE 4000M REUSE AUTOEXTEND OFF

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

REM **** Creating Six Rollback Segments ****************

CREATE PUBLIC ROLLBACK SEGMENT RBS_01 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_01 ONLINE;

CREATE PUBLIC ROLLBACK SEGMENT RBS_02 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_02 ONLINE;

CREATE PUBLIC ROLLBACK SEGMENT RBS_03 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_03 ONLINE;

CREATE PUBLIC ROLLBACK SEGMENT RBS_04 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_04 ONLINE;

CREATE PUBLIC ROLLBACK SEGMENT RBS_05 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_05 ONLINE;

CREATE PUBLIC ROLLBACK SEGMENT RBS_06 TABLESPACE RBS

STORAGE (INITIAL 10m NEXT 10m MINEXTENTS 20 OPTIMAL 200m);

ALTER ROLLBACK SEGMENT RBS_06 ONLINE;

disconnect

spool off

exit

EOF

#-------------------END----------------------------------------------------

3、 创建数据字典

在本部分中将调用oracle自带的脚本创建数据字典。其中catalog.sql用于创建相对于系统基表的视图和系统动态性能视图以及他们的同义词。同时该脚本将运行创建其他对象的脚本,主要有基本的PL/SQL环境(包括PL/SQL的声明:数据类型、预定义例外、内建的过程和函数、SQL操作等),审计,导入/导出,SQL*Loader以及安装选项等。

Catproc.sql用于建立PL/SQL的使用环境。此外,还创建几个PL/SQL包用于扩展RDBMS功能。该脚本同时还为下面的一些RDBMS功能创建另外的一些包和视图:  警告、管道、日志分析、对象、大对象、高级队列、复制选项以及其他的一些内建包和选项等。

以上两个是必须运行的,其他的则根据实际需求了,这里对用到的几个作一下说明:

caths.sql用于安装异类服务管理包。

helpbld.sql和helpus.sql用于创建SQL*PLUS帮助所用到的表(to create the help facility tables)。

另外一个pupbld.sql,对于低版本需要运行,否则在登录时会出现“Product user profile does not exit”的提示信息,pupbld.sql用于建立PUP(Product_User_Profile)表,以在用户级别安全性的基础上,提供产品级(product_level)的安全机制。

ox1> more cdb3_dd.sh

#!/bin/sh

#-----------------BEGIN--------------------------------------------------

ORACLE_SID=oracyx export ORACLE_SID

/data4/ora817/app/oracle/product/8.1.7/bin/sqlplus internal/cyx << EOF

spool /data4/ora817/cyx/cdb/crdb3.log

@/data4/ora817/app/oracle/product/8.1.7/rdbms/admin/catalog.sql;

@/data4/ora817/app/oracle/product/8.1.7/rdbms/admin/catproc.sql;

@/data4/ora817/app/oracle/product/8.1.7/rdbms/admin/caths.sql;

connect system/manager

@/data4/ora817/app/oracle/product/8.1.7/sqlplus/admin/help/helpbld.sql helpus.sql;

disconnect

spool off

exit

EOF

#------------------END----------------------------------------------------

4、 完善处理

为了使数据库达到较好的性能,我们还需要对数据库作进一步的调整,这里举的例子是修改用户的默认表空间和临时表空间,改变数据库为archive log运行模式。

ox1> more cdb4_perf.sh

#!/bin/sh

#-----------------BEGIN--------------------------------------------------

ORACLE_SID=oracyx export ORACLE_SID

/data4/ora817/app/oracle/product/8.1.7/bin/sqlplus internal/cyx << EOF

spool /data4/ora817/cyx/cdb/crdb4.log

alter user sys temporary tablespace TEMP;

alter user system default tablespace TOOLS;

alter user system temporary tablespace TEMP;

shutdown normal;

startup mount pfile='/data4/ora817/app/oracle/product/8.1.7/dbs/initoracyx.ora';

alter database archivelog;

alter database open;

alter system archive log start;

alter system switch logfile;

disconnect

spool off

exit

EOF

#------------------END----------------------------------------------------

总结:

好了,到此为止我们就建立一个新的数据库,不知你现在对这一过程是否清晰了?在我们对数据库的逻辑结构都很熟悉的情况下,建库过程中需要重点考虑的是数据库的物理存储,而这和我们具体的应用有关,不是一两句话就能说情的,希望大家能够一起来探讨……

刁馋

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值