ORACLE10gR2手动建库
Jan072012
今天不忙,做了下OCM的第一道考题,手动建库,试验环境是OEM6.0,ORACLE 10gR2。11g手动建库的路径有些变动,有时间再具体做下11g的手动建库。实验步骤如下:
1.建立参数文件。
为了方便,可以复制其他数据库的参数文件加以修改。
[oracle@dbserver1]$ cd $ORACLE_HOME/dbs [oracle@dbserver1 dbs]$ cp inittest.ora initstream.ora [oracle@dbserver1 dbs]$ vi initstream.ora
也可以手动建立参数文件,保证以下参数。
audit_file_dest='/u01/app/oracle/admin/stream/adump' background_dump_dest='/u01/app/oracle/admin/stream/bdump' user_dump_dest='/u01/app/oracle/admin/stream/udump' core_dump_dest='/u01/app/oracle/admin/stream/cdump'
以上参数为各种dump目录信息。
compatible='10.2.0.1.0'
以上为数据库版本信息。
control_files='/u01/app/oracle/oradata/stream/control01.ctl', '/u01/app/oracle/oradata/stream/control02.ctl', '/u01/app/oracle/oradata/stream/control03.ctl'
以上为控制文件信息。
db_block_size=8192 db_name='stream'
以上为数据库DB_NAME和数据块大小信息。
pga_aggregate_target=94371840 sga_target=284164096
以上为pga和sga大小信息。
remote_login_passwordfile='EXCLUSIVE'
以上为拥有sys权限的用户开启密码文件登录。
2.建立需要的目录。
oracle@dbserver1 dbs]$ cd $ORACLE_BASE/admin/ [oracle@dbserver1 admin]$ mkdir stream [oracle@dbserver1 admin]$ cd stream/ [oracle@dbserver1 stream]$ mkdir bdump [oracle@dbserver1 stream]$ mkdir cdump [oracle@dbserver1 stream]$ mkdir udump [oracle@dbserver1 stream]$ mkdir adump [oracle@dbserver1 ]$ cd $ORACLE_BASE/oradata/ [oracle@dbserver1 oradata]$ mkdir stream
3.修改ORACLE用户的环境变量信息
[oracle@dbserver1 stream]$ cd [oracle@dbserver1 ~]$ vi .bash_profile
保证以下信息:
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_PATH=$ORACLE_HOME/rdbms/admin export ORACLE_SID=stream PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export PATH
执行以下命令让新修改的环境变量生效。
[oracle@dbserver1 ]$ . .bash_profile
4.建立密码文件
[oracle@dbserver1 ~]$ cd $ORACLE_HOME/dbs [oracle@dbserver1 dbs]$ orapwd file=orapwstream password=oracle
5.登录数据库,准备建库
[oracle@dbserver1 dbs]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 5 13:09:15 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to an idle instance.
6.利用建立的参数文件,启动数据库实例
SQL> startup nomount pfile=initstream.ora ORACLE instance started. Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 92276304 bytes Database Buffers 188743680 bytes Redo Buffers 2973696 bytes
7.建库
SQL> CREATE DATABASE stream 2 MAXINSTANCES 8 3 MAXLOGHISTORY 1 4 MAXLOGFILES 16 5 MAXLOGMEMBERS 3 6 MAXDATAFILES 100 7 DATAFILE '$ORACLE_BASE/oradata/stream/system01.dbf' SIZE 325M autoextend on next 10m maxsize unlimited 8 EXTENT MANAGEMENT LOCAL 9 SYSAUX DATAFILE '$ORACLE_BASE/oradata/stream/sysaux01.dbf' SIZE 325M autoextend on next 10m maxsize unlimited 10 SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$ORACLE_BASE/oradata/stream/temp01.dbf' SIZE 200M autoextend on next 10m maxsize unlimited 11 SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '$ORACLE_BASE/oradata/stream/undotbs01.dbf' SIZE 325M AUTOEXTEND ON MAXSIZE UNLIMITED 12 CHARACTER SET ZHS16GBK 13 NATIONAL CHARACTER SET AL16UTF16 14 LOGFILE GROUP 1 ('$ORACLE_BASE/oradata/stream/redo01.log') SIZE 50M, 15 GROUP 2 ('$ORACLE_BASE/oradata/stream/redo02.log') SIZE 50M, 16 GROUP 3 ('$ORACLE_BASE/oradata/stream/redo03.log') SIZE 50M; Database created.
现在数据库已经建立,可以查看相关的视图查看下数据库当前的状态。
SQL> select status,instance_name from v$instance; STATUS INSTANCE_NAME ------------ ---------------- OPEN stream SQL> select open_mode,name from v$database; OPEN_MODE NAME ---------- --------- READ WRITE STREAM SQL> select current_scn,checkpoint_change# from v$database; CURRENT_SCN CHECKPOINT_CHANGE# ----------- ------------------ 8749 8589
可以看到数据库当前没有USERS表空间,需要建立。
SQL> select * from v$tablespace; TS# NAME INC BIG FLA ENC ---------- ------------------ --- --- --- --- 0 SYSTEM YES NO YES 1 UNDOTBS1 YES NO YES 2 SYSAUX YES NO YES 3 TEMP NO NO YES SQL> select name from v$datafile; NAME ------------------------------------------------------ /u01/app/oracle/oradata/stream/system01.dbf /u01/app/oracle/oradata/stream/undotbs01.dbf /u01/app/oracle/oradata/stream/sysaux01.dbf
建立USERS表空间,并修改为数据库默认的表空间。
SQL> create tablespace users datafile '$ORACLE_BASE/oradata/stream/user01.dbf' size 50m; Tablespace created. SQL> alter database default tablespace users; Database altered.
查看下数据库当前的REDO日志信息。
SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM ------ ------- --------- -------- ------- --- ------- ------------- --------- 1 1 1 52428800 1 NO CURRENT 1 05-JAN-12 2 1 0 52428800 1 YES UNUSED 0 3 1 0 52428800 1 YES UNUSED 0 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_ ------ ------- ------- ----------------------------------------- --- 1 ONLINE /u01/app/oracle/oradata/stream/redo01.log NO 2 ONLINE /u01/app/oracle/oradata/stream/redo02.log NO 3 ONLINE /u01/app/oracle/oradata/stream/redo03.log NO
可以看到第2和第3组日志文件还没有使用。
8.此时数据库还不能正式使用,还需要使用sys用户运行两个关键脚本。
SQL> @?/rdbms/admin/catalog Creates data dictionary views. Must be run when connected AS SYSDBA SQL> @?/rdbms/admin/catproc Run all sql scripts for the procedural option.This script must be run while connected AS SYSDBA.
下面的脚本是创建SCOTT用户和SCHEMA,如果不需要可以不执行这个脚本。
SQL> @?/rdbms/admin/utlsampl
9.重启数据库,创建二进制参数文件SPFILE。
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> create spfile from pfile; File created. SQL> startup ORACLE instance started. Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 92276304 bytes Database Buffers 188743680 bytes Redo Buffers 2973696 bytes Database mounted. Database opened.
查看二进制参数文件是否正确使用。
SQL> show parameter spfile NAME TYPE VALUE ----------------- ----------- ------------------------------ spfile string /u01/app/oracle/product/10.2.0 /db_1/dbs/spfilestream.ora
至此,收到创建数据库已经完成,测试一段时间后如果没有问题,就可使用了。