首页  >  文章  >  数据库  >  手工创建数据库及删除数据库示例

手工创建数据库及删除数据库示例

WBOY
WBOY原创
2016-06-07 15:48:021387浏览

首先是应对ORACLE_SID,DB_NAME,存放数据文件、REDO日志、控制文件等的目录进行规划。 如我的实验中:ORACLE_SID=bys3,DB_NAME为bys3,数据文件、REDO日志、控制文件均存放在/u01/oradata/bys3/ 实验如下: 环境:OEL5.7,ORACLE 11.2.0.4,VBOX虚拟机--建库前OR

首先是应对ORACLE_SID,DB_NAME,存放数据文件、REDO日志、控制文件等的目录进行规划。
如我的实验中:ORACLE_SID=bys3,DB_NAME为bys3,数据文件、REDO日志、控制文件均存放在/u01/oradata/bys3/
实验如下:
环境:OEL5.7,ORACLE 11.2.0.4,VBOX虚拟机--建库前ORACLE软件要装好唉。。

1.设置ORACLE_SID

可以通过.bash_profile里查看--更改未退出会话时需要source .bash_profile使之生效,
或者直接在命令行中用:export ORACLE_SID=bys3
echo $ORACLE_SID来验证一下。

2.再次确定一下.bash_profile里的各个变量参数是否正确

cat .bash_profile  进行查看
[oracle@bys3 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
RACLE_BASE=/u01
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=bys3
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:$HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID
export NLS_LANG=AMERICAN       
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
ORACLE_HOSTNAME=bys3.bys.com
export ORACLE_HOSTNAME

3.创建密码文件--注意WINDOWS下和LINUX下的密码文件格式是不一样的

注意:WIN下文件夹名和LINUX下不一样。WIN下$ORACLE_HOME/database  LINUX下是:$ORACLE_HOMEdbs
如实例名为orcl,则WINDOWS下密码文件格式为:PWDorcl.ORA   LINUX下为orapworcl
orapwd file=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwbys3 password=oracle entries=3 force=y

4.创建相应目录--根据自己计划的数据文件、TRACE等文件的位置进行调整。

可以写成类似下面的脚本进行调用
[oracle@bys3 ~]$ cat createdir.sh
#!/bin/sh
OLD_UMASK=`umask`
umask 0027
mkdir -p /u01/admin/bys3/adump
mkdir -p /u01/admin/bys3/dpdump
mkdir -p /u01/admin/bys3/pfile
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1/dbs
mkdir -p /u01/archivelog
mkdir -p /u01/cfgtoollogs/dbca/bys3
mkdir -p /u01/fast_recovery_area
mkdir -p /u01/fast_recovery_area/bys3
mkdir -p /u01/oradata/bys3
umask ${OLD_UMASK}

5.创建初始化参数文件--仅设置以下两条参数即可-db_name,controlfile

vi /home/oracle/bys.ora
db_name=bys3
control_files='/u01/oradata/bys3/control01.ctl','/u01/oradata/bys3/control02.ctl'

6.启动实例--与第1步对应,用到了ORACLE_SID

sqlplus / as sysdba
创建SPFILE文件,默认放在:WINDOWS下是:$ORACLE_HOMEdatabase  LINUX下是:$ORACLE_HOMEdbs
注:从spfile 创建 pfile,需要SYSDBA权限,DBA权限发出此语句会报错。
create spfile from pfile='/home/oracle/bys.ora';
启动实例:--默认搜索顺序是:在缺省目录$ORACLE_HOME/database下搜索SPFILESID.ORA——SPFILE.ORA——PFILESID.ORA
startup nomount;

7.使用CREATE DATABASE命令创建数据库。建议使用ZHS16GBK 字符集

在SQLPLUS中使用如下命令:--也可以写入一个脚本文件,然后在SQLPLUS中调用此脚本。注意数据文件 、日志文件的创建目录位置及权限。
create database bys3
user sys identified by oraclesys
user system identified by oraclesys
    logfile group 1('/u01/oradata/bys3/redo01.log') size 50m,
            group 2('/u01/oradata/bys3/redo02.log') size 50m,
            group 3('/u01/oradata/bys3/redo03.log') size 50m
maxlogfiles 20
maxlogmembers 5
maxloghistory 200
maxdatafiles 100
character set AL32UTF8
national character set AL16UTF16
extent management local
datafile '/u01/oradata/bys3/system01.dbf' size 500m reuse
sysaux datafile '/u01/oradata/bys3/sysaux01.dbf' size 325m reuse
default temporary tablespace temp
    tempfile '/u01/oradata/bys3/temp01.dbf' size 20m reuse
undo tablespace undotbs1
    datafile '/u01/oradata/bys3/undotbs01.dbf' size 200m reuse;

以上语句成功执行后是有个类似database create complete吧,数据库此时就被置为OPEN状态--可查询select status from v$instance验证。
此时执行下面一条语句,增加USERS表空间。
    create tablespace users datafile '/u01/oradata/bys3/user01.dbf' size 50m;
     alter database default tablespace users;   ---将users表空间设置为系统默认的表空间,用户新建的表不指定默认即在此表空间。

8.以上创建完成后,执行以下三个脚本:

我这里用了脚本的绝对路径,也可以使用@?/rdbms/admin/catalog.sql的方式;,
@=run   ?==$ORACLE_HOME  mark (?) is a SQL*Plus variable indicating the Oracle home directory
catalog.Sql创建SQL视图,
catproc.sql创建系统的存储过程...
pupbld.sql脚本主要是创建SQLPLUS_PRODUCT_PROFILE表,并在表上建立相关的视图和同义词
@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/catalog.sql
@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/catproc.sql

下面一句需要使用SYSTEM用户登陆,不能用SYSDBA,会报错,见http://blog.csdn.net/q947817003/article/details/16117123
即上两个脚本执行完成后,使用conn system/oraclesys命令以SYSETM用户登陆,可以show user验证一下。
@/u01/app/oracle/product/11.2.0/dbhome_1/sqlplus/admin/pupbld.sql
到此创建完成。默认是非归档模式。

9.删除数据库:因使用手工创建的数据库使用DBCA无法删除,此时需要使用命令来删除数据库。

使用以下三个命令即可:
SYS@bys1>startup mount exclusive
SYS@bys1>alter system enable restricted session;
SYS@bys1>drop database;  

数据库相应的控制文件,日志文件,数据文件会自动删除,spfile也会删除(归档日志不会删除). 从以下官方文档的内容可以证实:Dropping a database involves removing its datafiles, redo log files, control files, and initialization parameter files. The DROP DATABASE statement deletes all control files and all other database files listed in the control file.
The DROP DATABASE statement has no effect on archived log files, nor does it have any effect on copies or backups of the database. It is best to use RMAN to delete such files. If the database is on raw disks, the actual raw disk special files are not deleted. 

10.手工建库时的ALERT日志

[oracle@bys3 ~]$ cat alert_bys3.log
Thu Nov 14 14:17:19 2013
Starting ORACLE instance (normal)
************************ Large Pages Information *******************
Per process system memlock (soft) limit = 3418 MB
 
Total Shared Global Region in Large Pages = 0 KB (0%)
 
Large Pages used by this instance: 0 (0 KB)
Large Pages unused system wide = 0 (0 KB)
Large Pages configured system wide = 0 (0 KB)
Large Page size = 2048 KB
 
RECOMMENDATION:
  Total System Global Area size is 146 MB. For optimal performance,
  prior to the next instance restart:
  1. Increase the number of unused large pages by
 at least 73 (page size 2048 KB, total size 146 MB) system wide to
  get 100% of the System Global Area allocated with large pages
********************************************************************
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 1
Shared memory segment for instance monitoring created
CELL communication is configured to use 0 interface(s):
CELL IP affinity details:
    NUMA status: non-NUMA system
    cellaffinity.ora status: N/A
CELL communication will use 1 IP group(s):
    Grp 0:
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Autotune of undo retention is turned on.
IMODE=BR
ILAT =22
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options.
ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1
System name:    Linux
Node name:      bys3.bys.com
Release:        2.6.32-200.13.1.el5uek
Version:        #1 SMP Wed Jul 27 20:21:26 EDT 2011
Machine:        i686
Using parameter settings in server-side spfile /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilebys3.ora
System parameters with non-default values:    ----和前面设置的初始化参数文件中参数对应
  control_files            = "/u01/oradata/bys3/control01.ctl"
  control_files            = "/u01/oradata/bys3/control02.ctl"
  db_name                  = "bys3"

2013 年 11 月 14 日星期四 14:17:21
PMON 以 pid=2 开始,操作系统 id=4389
2013 年 11 月 14 日星期四 14:17:21
PSP0 以 pid=3 开始,操作系统 id=4393
2013 年 11 月 14 日星期四 14:17:23
VKTM 以 pid=4 启动,操作系统 id=4397,优先级较高
VKTM 以 (1) 毫秒精度运行,DBRM 量子 (100) 毫秒
2013 年 11 月 14 日星期四 14:17:23
GEN0 以 pid=5 开始,操作系统 id=4403
2013 年 11 月 14 日星期四 14:17:23
DIAG 以 pid=6 开始,操作系统 id=4407
2013 年 11 月 14 日星期四 14:17:23
DBRM 以 pid=7 开始,操作系统 id=4411
2013 年 11 月 14 日星期四 14:17:23
DIA0 以 pid=8 开始,操作系统 id=4415
2013 年 11 月 14 日星期四 14:17:23
MMAN 以 pid=9 开始,操作系统 id=4419
2013 年 11 月 14 日星期四 14:17:24
DBW0 以 pid=10 启动,操作系统 id=4423
2013 年 11 月 14 日星期四 14:17:24
LGWR 以 pid=11 启动,操作系统 id=4427
2013 年 11 月 14 日星期四 14:17:24
CKPT 以 pid=12 开始,操作系统 id=4431
2013 年 11 月 14 日星期四 14:17:24
SMON 以 pid=13 启动,操作系统 id=4435
2013 年 11 月 14 日星期四 14:17:24
RECO 以 pid=14 开始,操作系统 id=4439
2013 年 11 月 14 日星期四 14:17:24
MMON 以 pid=15 启动,操作系统 id=4443
环境中未设置 ORACLE_BASE。推荐
在环境中设置 ORACLE_BASE
2013 年 11 月 14 日星期四 14:17:25
MMNL 以 pid=16 开始,操作系统 id=4447
2013 年 11 月 14 日星期四 14:23:19
创建数据库 bys3
用户系统由*用户系统识别由*    日志文件组1('/u01/oradata/bys3/redo01.log')大小50m,
            组 2('/u01/oradata/bys3/redo02.log') 大小 50m,
            组 3('/u01/oradata/bys3/redo03.log') 大小 50m
最大日志文件 20
最大日志成员 5
最大日志历史记录 200
最大数据文件 100
字符集 AL32UTF8
国家字符集 AL16UTF16
本地范围管理
数据文件 '/u01/oradata/bys3/system01.dbf' 大小 500m 重复使用
sysaux 数据文件 '/u01/oradata/bys3/sysaux01​​.dbf' 大小 325m 重用
默认临时表空间 temp
    临时文件 '/u01/oradata/bys3/temp01.dbf' 大小 20m 重复使用
撤消表空间 undotbs1
    数据文件 '/u01/oradata/bys3/undotbs01.dbf' 大小 200m 重复使用
以独占模式安装数据库
丢失写保护已禁用
2013 年 11 月 14 日星期四 14:23:38
成功挂载重做线程1,挂载id为3358374039
2013 年 11 月 14 日星期四 14:23:38
数据库 SCN 兼容性初始化为 1
分配激活 ID 3358374039 (0xc82cb897)
线程 1 在日志序列 1
处打开   当前日志# 1 seq# 1 mem# 0: /u01/oradata/bys3/redo01.log
成功打开重做线程 1
由于未设置 FAST_START_MTTR_TARGET,MTTR 建议已禁用
2013 年 11 月 14 日星期四 14:23:38
SMON:启用缓存恢复
处理 ?/rdbms/admin/dcore.bsq
创建表空间SYSTEM数据文件'/u01/oradata/bys3/system01.dbf'大小500m重用

  本地在线范围管理
2013 年 11 月 14 日星期四 14:24:23
已完成:创建表空间SYSTEM数据文件‘/u01/oradata/bys3/system01.dbf’大小500m重用

  本地在线范围管理
创建回滚段 SYSTEM 表空间 SYSTEM
  存储(初始 50K 接下来 50K)
UNDO_SEG_CRT:找不到 usn tail
已完成:创建回滚段SYSTEM表空间SYSTEM
  存储(初始 50K 接下来 50K)
撤消初始化完成串行:0开始:12514064结束:12514074差异:10(0秒)
处理 ?/rdbms/admin/dsqlddl.bsq
处理 ?/rdbms/admin/dmanage.bsq
创建表空间 sysaux 数据文件 ‘/u01/oradata/bys3/sysaux01​​.dbf’ 大小 325m 重用

  范围管理本地段空间管理自动在线
2013 年 11 月 14 日星期四 14:24:54
已完成:CREATE TABLESPACE sysaux DATAFILE  '/u01/oradata/bys3/sysaux01​​.dbf' 大小 325m 重用

  范围管理本地段空间管理自动在线
处理 ?/rdbms/admin/dplsql.bsq
处理 ?/rdbms/admin/dtxnspc.bsq
创建UNDO表空间UNDOTBS1数据文件‘/u01/oradata/bys3/undotbs01.dbf’大小200m重用
2013 年 11 月 14 日星期四 14:25:12
[4450] 成功上线撤消表空间 2。
已完成:CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE  '/u01/oradata/bys3/undotbs01.dbf' 大小 200m 重用
创建临时表空间 TEMP TEMPFILE '/u01/oradata/bys3/temp01.dbf' 大小 20m 重用

已完成:CREATE TEMPORARY TABLESPACE TEMP TEMPFILE  '/u01/oradata/bys3/temp01.dbf' 大小 20m 重用

更改数据库默认临时表空间温度
已完成:更改数据库默认临时表空间温度
更改数据库默认表空间系统
已完成:更改数据库默认表空间系统
处理 ?/rdbms/admin/dfmap.bsq
处理 ?/rdbms/admin/denv.bsq
处理 ?/rdbms/admin/drac.bsq
处理 ?/rdbms/admin/dsec.bsq
处理 ?/rdbms/admin/doptim.bsq
处理 ?/rdbms/admin/dobj.bsq
处理 ?/rdbms/admin/djava.bsq
处理 ?/rdbms/admin/dpart.bsq
处理 ?/rdbms/admin/drep.bsq
处理 ?/rdbms/admin/daw.bsq
处理 ?/rdbms/admin/dsummgt.bsq
处理 ?/rdbms/admin/dtools.bsq
处理 ?/rdbms/admin/dexttab.bsq
处理 ?/rdbms/admin/ddm.bsq
处理 ?/rdbms/admin/dlmnr.bsq
处理 ?/rdbms/admin/ddst.bsq
2013 年 11 月 14 日星期四 14:25:21
SMON:启用 tx 恢复
启动后台进程 SMCO
2013 年 11 月 14 日星期四 14:25:22
SMCO 以 pid=18 开始,操作系统 id=4476
2013 年 11 月 14 日星期四 14:25:24
replication_dependency_tracking 已关闭(未找到异步多主复制)
启动后台进程 QMNC
2013 年 11 月 14 日星期四 14:25:25
QMNC 开始时 pid=19,操作系统 id=4480
已完成:创建数据库 bys3
用户系统由*用户系统识别由*    日志文件组1('/u01/oradata/bys3/redo01.log')大小50m,
            组 2('/u01/oradata/bys3/redo02.log') 大小 50m,
            组 3('/u01/oradata/bys3/redo03.log') 大小 50m
最大日志文件 20
最大日志成员 5
最大日志历史记录 200
最大数据文件 100
字符集 AL32UTF8
国家字符集 AL16UTF16
本地范围管理
数据文件 '/u01/oradata/bys3/system01.dbf' 大小 500m 重复使用
sysaux 数据文件 '/u01/oradata/bys3/sysaux01​​.dbf' 大小 325m 重用
默认临时表空间 temp
    临时文件 '/u01/oradata/bys3/temp01.dbf' 大小 20m 重复使用
撤消表空间 undotbs1
    数据文件 '/u01/oradata/bys3/undotbs01.dbf' 大小 200m 重复使用
2013 年 11 月 14 日星期四 14:25:57
创建表空间用户数据文件'/u01/oradata/bys3/sysaux01​​.dbf'大小50m
ORA-1537 期间发出信号:创建表空间用户数据文件 '/u01/oradata/bys3/sysaux01​​.dbf' 大小 50m...
2013 年 11 月 14 日星期四 14:26:25
创建表空间用户数据文件'/u01/oradata/bys3/user01.dbf'大小50m
已完成:创建表空间用户数据文件 '/u01/oradata/bys3/user01.dbf' 大小 50m
2013 年 11 月 14 日星期四 14:30:31
线程 1 前进到日志序列 2(LGWR 开关)
  当前日志# 2 seq# 2 mem# 0: /u01/oradata/bys3/redo02.log
2013 年 11 月 14 日星期四 14:31:16
线程 1 前进到日志序列 3(LGWR 开关)
  当前日志# 3 seq# 3 mem# 0: /u01/oradata/bys3/redo03.log
2013 年 11 月 14 日星期四 14:33:22
线程 1 前进到日志序列 4(LGWR 开关)
  当前日志# 1 seq# 4 mem# 0: /u01/oradata/bys3/redo01.log
2013 年 11 月 14 日星期四 14:33:52
线程 1 前进到日志序列 5(LGWR 开关)
  当前日志# 2 seq# 5 mem# 0: /u01/oradata/bys3/redo02.log
2013 年 11 月 14 日星期四 14:34:11
创建关系 IPS_PACKAGE_UNPACK_HISTORY
2013 年 11 月 14 日星期四 14:34:28
线程 1 前进到日志序列 6(LGWR 开关)
  当前日志# 3 seq# 6 mem# 0: /u01/oradata/bys3/redo03.log
2013 年 11 月 14 日星期四 14:34:43
线程 1 前进到日志序列 7(LGWR 开关)
  当前日志# 1 seq# 7 mem# 0: /u01/oradata/bys3/redo01.log
2013 年 11 月 14 日星期四 14:35:04
线程 1 前进到日志序列 8(LGWR 开关)
  当前日志# 2 seq# 8 mem# 0: /u01/oradata/bys3/redo02.log
2013 年 11 月 14 日星期四 14:36:16
线程 1 前进到日志序列 9(LGWR 开关)
  当前日志# 3 seq# 9 mem# 0: /u01/oradata/bys3/redo03.log
2013 年 11 月 14 日星期四 14:37:43
线程 1 前进到日志序列 10(LGWR 开关)
  当前日志# 1 seq# 10 mem# 0: /u01/oradata/bys3/redo01.log
2013 年 11 月 14 日星期四 14:38:55
线程 1 前进到日志序列 11(LGWR 开关)
  当前日志# 2 seq# 11 mem# 0: /u01/oradata/bys3/redo02.log
2013 年 11 月 14 日星期四 14:40:10
线程 1 前进到日志序列 12(LGWR 开关)
  当前日志# 3 seq# 12 mem# 0: /u01/oradata/bys3/redo03.log
2013 年 11 月 14 日星期四 14:40:34
线程 1 前进到日志序列 13(LGWR 开关)
  当前日志# 1 seq# 13 mem# 0: /u01/oradata/bys3/redo01.log
2013 年 11 月 14 日星期四 14:40:46
启动后台进程CJQ0
2013 年 11 月 14 日星期四 14:40:46
CJQ0 以 pid=32 开始,操作系统 id=4598
2013 年 11 月 14 日星期四 14:41:31
线程 1 前进到日志序列 14(LGWR 开关)
  当前日志# 2 seq# 14 mem# 0: /u01/oradata/bys3/redo02.log
2013 年 11 月 14 日星期四 14:41:40
服务器组件 id=CATPROC: 时间戳=2013-11-14 14:41:40
2013 年 11 月 14 日星期四 15:06:30
Spfile /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilebys3.ora 是旧的 pre-11 格式并且兼容 >= 11.0.0;转换为新的 H.A.R.D.兼容格式。


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn