ORACLE11G实战演练--数据库安装篇(二)

本文详细介绍了在Oracle环境下手工创建数据库的全过程,包括目录与文件创建、参数文件配置、密码文件生成、实例与数据库启动、数据字典视图建立、监听配置、额外表空间创建、用户权限设置及数据库删除等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

创建/删除数据库

方法1:DBCA图形建库(推荐)

如果在ORACLE安装环节,选择了第一项【创建并配置一个数据库】,那么在安装产品后(第八步)会自动进入DBCA图形建库的步骤,可以参考以上流程。

如果选择了第二项【仅安装数据库软件】,那么可以在oracle用户下,执行dbca,弹出以下界面,配置过程和oracle安装过程第八步之后的流程类似,在此不再赘述。

[oracle@bogon ~]$ dbca

 

方法2:手工建库

手工建库是创建数据库的一种快捷方式,能够不依赖图形工具轻松创建数据库实例,这种创建方式会创建最基础的数据库;如果需要额外的组件,可以在这个基础上进行添加。oracle建议利用DBCA建库。

 

主要创建过程:

 

1创建目录

根据具体的实际情况创建,db01为实例名

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/admin/db01/adump

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/admin/db01/dpdump

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/admin/db01/pfile

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/cfgtoollogs/dbca/db01

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/flash_recovery_area/db01

[oracle@bogon ~]$ mkdir -p /u01/app/oracle/oradata/db01

[oracle@bogon ~]$

 

2创建pfile

 

先复制一份原始pflie,从/U01/app/oracle/11.2.0/db1/dbs路径下获取init.ora,重命名为initdb01.ora,再打开编辑,命令行或可视化打开工具均可。

 

命令行打开方式:

[oracle@ bogon ~]$ vim product/11.2.0/dbhome_1/dbs/initdb01.ora

 

---->设置以下3个即可,其他保持默认值

 

name='db01'

memory_target=1G

control_files='/u01/app/oracle/oradata/db01/control01.ctl','/u01/app/oracle/oradata/db01/control02.ctl'

 

 

----init.ora原始文件关键片段截取

 

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at

# install time)

 

db_name='ORCL'

memory_target=1G

processes = 150

audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'

db_recovery_file_dest_size=2G

diagnostic_dest='<ORACLE_BASE>'

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

# You may want to ensure that control files are created on separate physical

# devices

control_files = (ora_control1, ora_control2)

compatible ='11.2.0'

 

3创建密码文件

 

[oracle@bogon~]$orapwd file=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwdb01 entries=10

 

Enter password for SYS:

[oracle@sz oracle]$

 

4连接实例

 

[oracle@sz oracle]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Sep 5 05:42:59 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved

Connected to an idle instance.

 

5创建spfile

 

SQL> create spfile from pfile;

File created.

 

6启动到NoMount状态

 

SQL> startup nomount

 

ORACLE instance started.

 

Total System Global Area  521936896 bytes

Fixed Size                 2254824 bytes

Variable Size           314574872 bytes

Database Buffers     201326592 bytes

Redo Buffers             3780608 bytes

 

SQL>

 

7创建数据库

 

 

SQL> create database db01

  2  user SYS identified by oracle

  3  user SYSTEM identified by oracle

  4  logfile group 1 ('/u01/app/oracle/oradata/db01/redo01a.log') size 100M blocksize 512,

  5        group 2 ('/u01/app/oracle/oradata/db01/redo02a.log') size 100M blocksize 512,

  6        group 3 ('/u01/app/oracle/oradata/db01/redo03a.log') size 100M blocksize 512

  7  maxlogfiles 5

  8  maxlogmembers 5

  9  maxloghistory 1

 10  maxdatafiles 100

 11  character set AL32UTF8

 12  national character set AL16UTF16

 13  extent management local

 14  datafile '/u01/app/oracle/oradata/db01/system01.dbf' size 325M reuse

 15  SYSAUX datafile '/u01/app/oracle/oradata/db01/sysaux01.dbf' size 325M reuse

 16  default tablespace users

 17  datafile '/u01/app/oracle/oradata/db01/users01.dbf' size 500M reuse autoextend on maxsize unlimited

 18  default temporary tablespace tempts1

 19  tempfile '/u01/app/oracle/oradata/db01/temp01.dbf'

 20  size 50M reuse autoextend on maxsize unlimited --这里如果不加自动增长,使用一段时间将会报错,临时表存储空间不足

 21  undo tablespace undotbs1

 22  datafile '/u01/app/oracle/oradata/db01/undotbs01.dbf'

 23  size 100M reuse autoextend on maxsize unlimited;

 

 

Database created.

 

SQL> select instance_name,status from v$instance;--->创建完数据库,数据库自动打开

 

INSTANCE_NAME STATUS

---------------- ------------

db01             OPEN

 

SQL>

 

8运行脚本建立数据字典视图

 

 

以SYSDBA管理权限运行下面的脚本:

SQL> @?/rdbms/admin/catalog.sql --->创建数据字典视图、动态性能视图和同义词

SQL> @?/rdbms/admin/catproc.sql --->运行所有PL/SQL需要或使用的脚本

SQL> @?/rdbms/admin/utlrp.sql --->重新编译失效状态的PL/SQL模块,包括包、过程或类型

 

以SYSTEM用户执行下面的脚本:

SQL> conn system/oracle

Connected.

SQL> @?/sqlplus/admin/pupbld.sql --->SQL*Plus相关的

 

9配置监听

方法1:利用Netmgr配置监听器和服务

[oracle@bogon ~]$ netmgr

方法2:直接修改配置文件listener.ora

 

标准格式示例:

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = test)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (GLOBAL_DBNAME = test)

    )

      

    (SID_DESC =

      (SID_NAME = orcl)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (GLOBAL_DBNAME = orcl)

    )

    (SID_DESC =

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (PROGRAM = extproc)

 )

)

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))

  )

 )

 

ADR_BASE_LISTENER = /u01/app/oracle

 

10创建额外的表空间和数据文件

如果已经有类似的参考环境,可以使用DBMS_METADATA得到表空间的定义信息。

select dbms_metadata.get_ddl('TABLESPACE',ts.tablespace_name) from dba_tablespaces ts;

直接生成创建语句,简单修改一下路径即可。

 

SQL>select dbms_metadata.get_ddl('TABLESPACE',ts.tablespace_name) from dba_tablespaces ts;

 

DBMS_METADATA.GET_DDL('TABLESPACE',TS.TABLESPACE_NAME)

--------------------------------------------------------------------------------

 

  CREATE TABLESPACE "SYSTEM" DATAFILE

  '/U01/app/oracle/oradata/orcl/system01

 

  CREATE TABLESPACE "SYSAUX" DATAFILE

  '/U01/app/oracle/oradata/orcl/sysaux01

 

  CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE

  '/U01/app/oracle/oradata/orcl/u

 

DBMS_METADATA.GET_DDL('TABLESPACE',TS.TABLESPACE_NAME)

--------------------------------------------------------------------------------

 

  CREATE TEMPORARY TABLESPACE "TEMP" TEMPFILE

  '/U01/app/oracle/oradata/orcl/

 

  CREATE TABLESPACE "USERS" DATAFILE

  '/U01/app/oracle/oradata/orcl/users01.d

 

  CREATE TABLESPACE "EXAMPLE" DATAFILE

  '/U01/app/oracle/oradata/orcl/example

 

6 rows selected.

 

以上出现了显示不全的情况,需要设置一下sqlplus的显示参数,利用set long 1000和set pagesize 50一般即可解决。

 

11创建数据用户/权限

创建用户也可以通过DBMS_META_DATA来生成DDL语句,该方式高效简捷,例如,想得到用户名scott的创建用户语句和权限信息,可以实用如下方式:

select dbms_metadata.get_ddl('USER',u.username) from dba_users u where username='SCOTT';  --用户名区分大小写

select dbms_metadata.get_granted_ddl('SYSTEM_GRANT',u.username) from dba_users u where username='SCOTT';  

select dbms_metadata.get_granted_ddl('ROLE_GRANT',u.username) from dba_users u where username='SCOTT'; 

 

 

示例

SQL> select dbms_metadata.get_ddl('USER',u.username) from dba_users u where username='SCOTT';

 

DBMS_METADATA.GET_DDL('USER',U.USERNAME)

--------------------------------------------------------------------------------

 

   CREATE USER "SCOTT" IDENTIFIED BY VALUES 'S:0B59371D4FABAAAD18D50202881E5B

081185759B33BCE66E5EFBBA94AFE3;F894844C34402B67'

      DEFAULT TABLESPACE "USERS"

      TEMPORARY TABLESPACE "TEMP"

 

SQL> select dbms_metadata.get_granted_ddl('SYSTEM_GRANT',u.username) from dba_users u where username='SCOTT'; 

 

DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT',U.USERNAME)

--------------------------------------------------------------------------------

 

  GRANT UNLIMITED TABLESPACE TO "SCOTT"

 

SQL> select dbms_metadata.get_granted_ddl('ROLE_GRANT',u.username) from dba_users u where username='SCOTT';

 

DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT',U.USERNAME)

--------------------------------------------------------------------------------

 

   GRANT "CONNECT" TO "SCOTT"

 

   GRANT "RESOURCE" TO "SCOTT"

 

 

12删除数据库(慎用)

 

删除数据库需要以下几步:

1将数据库重启至mount状态

alter database mount exclusive;

2更改会话模式

alter system enable restricted session;

3执行删库操作

drop database;

 

操作成功后,会将所有数据文件、控制文件、日志文件等物理文件删除。

 

--------------------本节末尾--------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值