ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 4, 手工建立数据库(笔记)

4, 手工建立数据库(笔记)

原创 Linux操作系统 作者:tonykorn97 时间:2006-04-12 00:00:00 0 删除 编辑

4, 手工建立数据库

管理例程服务


在windows/linux/unix系统中,例程是用环境变量ORACLE_SID唯一标识的.当在linux/unix平台上管理特定例程是,可以直接使用EXPORT ORACLE_SID命令设置要管理的例程.当在windows平台上管理特定的例程是,必须首先启动例程服务.然后使用SET ORACLE_SID命令设置要挂零的例程如果没有启动例程服务,或者不存在对应的例程服务.那么当连接到例程时会显示如下错误信息:

D:>set oracle_sid=test

D:>sqlplus sys/oracle as sysdba

ERROR:

ORA—12560:TNS:协议适配器错误

管理例程是使用工具ORADIM完成的,该工具不仅可以用于建立例程服务,还可以用于编辑和删除例程服务.

1 建立例程服务,

当在windows平台上建立新数据库时,应首先建立例程服务.建立例程服务是使用ORADIM命令的NEW选项来完成的.

ORADIM –NEW –SID sid | SRVC service [ - INTPWD password ]

[ -MAXUSERS number ] [ -STARTMODE a|m ] [ -PFILE file ]

其中,NEW用于指定建立新例程服务;SID用于指定例程名;SRVC用于指定例程的服务名;INTPWD用于指定特权用户的口令;MAXUSERS用于指定特权用户的最大个数;STARTMODE用于指定例程服务的启动类别(a:自动启动b:手工启动);PFILE用于指定例程对应的文本参数文件.

需要注意,当使用SRVC选项指定例程服务名时,必须带有OracleService前缀.

例: (例程服务名:OracleServiceTEST)

Oradim –new –sid test –intpwd oracle

(或者)Oradim –new –srvc OracleServiceTEST –intpwd oracle

执行以上命令后,不仅会建立例程服务,还会自动建立口令文件(口令文件的位置为%ORACLE_HOME%database,名称为pwdtest.ora)

2 使用ORADIM命令的EDIT选项修改例程服务

ORADIM –EDIT –SID sid [ -NEWSID sid ] [ -INTPWD passwd]

[ -STARTMODE a|m ] [ -PFILE fiel ]

[ -SHUTMODE a | i | n ] [ -SHUTTYPE srvc|inst ]

EDIT用于指定编辑例程服务,SHUTMODE用于指定例程服务的关闭模式;SHUTTYPE用于指定关闭类型.

3 使用ORADIM命令的DELETE选项删除例程服务

ORADIM –DELETE –SID sid | -SRVC service_name

删除例程服务后,还应手工删除该例程所对应的口令文件.

在windows平台上手工建立oracle数据库的步骤如下:

建立例程服务

建立参数文件

以NOMOUNT方式启动例程服务

建立数据库

运行脚本完成后续操作

1, 建立例程服务

2, 建立参数文件

在windows平台上使用新例程之前,必须建立并启动相应的例程服务在windows平台上建立参数文件时,应将参数文件放在%ORACLE_HOME%database子目录中,PFILE应命名为initORA.ora,SPFILE应命名为spfileSID.ora.

如果已存在例程使用pfile,可以直接使用操作系统的copy命令复制并生成pfile文件initdemo.ora;如果已存在例程使用spfile,可以直接使用CREATE PFILE命令建立PFILE文件.只有特权用户才可以使用CREATE PFILE命令.例:

Create pfile=’%oracle_home$databaseinitdemo.ora’ from spfile;

建立spfile

因为spfile更易于管理,所有oracle建议使用spfile,如果已经存在pfile,可以使用create spfile命令建立.

Create spfile=’%oralce_home%databasespfiledemo.ora’

From pfile=’%oracle_home%databaseinitdemo.ora’;

3启动例程

建立数据库之前必须首先启动例程,

Set oracle_sid=demo

Sqlplus sys/oracle as sysdba

Startup nomount

4,建立数据库

建立数据库是使用CREATE DATABAS命令完成的,需要注意,该命令只能由具有SYSDBA身份的用户执行,并且要求示例必须处于NOMOUNT状态.建立DEMO数据库的示例如下:

CREATE DATABASE demo

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

LOGFILE GROUP 1 ‘D:demoredo01.log’ SIZE 10M,

GROUP 2 ‘D:demoredo02.log’ SIZE 10M

DATAFIEL ‘d:demosystem01.dbf’ size 100M

AUTOEXTEND ON NEXT 10M EXTENT MANAGEMENT LOCAL

SYSAUX DATAFIEL ‘D:demosysaux01.dbf’ SIZE 30M

AUTOEXTEND ON NEXT 10M

DEFAULT TEMPORARY TABLESPACE TEMP

TEMPFILE ‘D:demotemp.dbf’ size 10M AUTOEXTEND ON NEXT 10M

UNDO TABLESPACE UNDOTBS1 DATAFILE ‘D:demoundotbs1.dbf’ SIZE 20M

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

USER SYS IDENTIFIED BY demo

USER SYSTEM IDENTIFIED BY manager;

其中,MAXINSTANCES 用于指定在RAC环境中可访问数据库的最大例程个数;

MAXLOGFILES 用于指定数据库的最大重做日志组个数.

MAXLOGMEMBERS用于指定每个重做日志组的最大日志成员个数.

MAXDATAFILES用于指定数据库的最大数据文件个数.

MAXLOGHISTORY用于指定最大日志历史个数.

LOGFILE用于指定重做日志的名称的尺寸.其中GROUP1,GROUP2分别表示日志组一,日志组二;

第一个DATAFILE用于指定SYSTEM表空间所对应的数据文件名称和尺寸,AUTOEXTEND ON 表示该数据文件可以自动扩展,NEXT指定了数据文件每次扩展的尺寸,EXTENT MANAGEMENT LOCAL 用于指定SYSTEM表空间采用局部管理方式;

SYSAUX DATAFILE(ORACLE DATABASE 10G新特性)用于指定SYSAUX表空间所对应的数据文件名称和尺寸;

DEFAULT TEMPORARY TABLESPACE 用于指定数据库的默认临时表空间及其临时文件的名称和尺寸.

UNDO TABLERSPACE 用于指定UNDO表空间及其数据文件的名称和尺寸;

CHARACTER SET 用于指定数据库字符集;

NATIONAL CHARACTER SET 用于指定民族字符集;

USER选项用于改变特权用户SYS和DBA用户SYSTEM的口令.

执行CREATE DATABASE 命令建立数据库时,需要主要以下事项.

CREATE DATABASE 后的数据库名必须和初始化参数DB_NAME一致.

当指定LOGFILE选项时,至少要包含两个日志组.

当指定数据文件,重做日志和临时文件时,必须要确保OS目录已经存在.

当指定UNDO表空间时,该表空间名称必须与初始化参数UNDO_TABLESPACE一致.

因为建立了数据库之后数据库字符集不能被修改为其他民族所使用的字符集,所以必须规划好字符集.

5,完成建立数据库的后续任务.

执行CREATE DATABASE命令建立数据库后,还必须以SYS用户身份安装数据字典视图和PL/SQL包;另外,为了加强应用产品的安全性,还应以SYSTEM用户身份安装PRODUCT_USER_PROFILE表.

1,安装数据字典视图

当执行CREATE DATABASE命令建立数据库时,oracle会自动运行sql.bsp文件建立数据字典基表.数据字典基表存放着oracle数据库的基本信息,他们时oracle数据库中最早建立的数据库对象,只有oracle server可以修改其内容.因为数据字典基表的数据以加密格式存放,所以数据库用户几乎不能直接访问这些对象.为了获得oracle数据库的系统信息.数据库用户可以查询数据字典视图,但因为建立数据库时,oracle并没有建立数据字典视图,所有在建立数据库完成之后必须安装数据字典视图.运行%ORACLE_HOME%rdbmsadmincatalog.sql脚本可以安装数据字典视图,但必须以SYS用户登陆运行该脚本.

2,安装oracle系统包

为了扩展oracle数据库的功能,oracle提供了大量的PL/SQL系统包,编写应用程序时,开发人员可以直接引用ORACLE系统提供的各种过程和函数.运行%ORACLE_HOME%rdbmsadmincatproc.sql脚本可以安装数据字典视图,但必须以SYS用户登陆运行该脚本.

3,安装PRODUCT_USER_PROFILE表

控制数据库用户的安全性补充,特权用户和DBA用户可以使用SQL命令GRANT和REVOKE.作为用户级安全的补充,特权用户和DBA用户还可以控制应用产品的安全性.为了控制应用产品的安全性,必须建立PRODUCT_USER_PROFILE表及其相关视图. 运行%ORACLE_HOME%sqlplusadminpupbld.sql 脚本可以完成这项任务.必须以SYSTEM用户运行.

如果没有安装PRODUCT_USER_PROFILE表,运行SQL*PLUS时如果以普通用户身份登陆,则会显示如下警告信息:

Error accessiong PRODUCT_USER_PROFILE

Warning:product user profile information not loaded!

You may need to run PUPBLD.SQL as system

配置网络

建立oracle数据库后,为了使客户应用可以访问该oracle数据库,首先需要在服务端配置监听程序,然后在客户端配置网络服务名.

配置网络可以使用oracle网络管理工具Net Manager完成.

Net Manager包括一下文件

“概要文件”用于配置网络首选项,日志和跟踪信息.对应于网络文件sqlnet.ora

“服务命名”用于配置本地的网络服务名,对应于网络文件tnsnames.ora;

“监听程序”用于配置服务端的监听程序,对应于网络文件listener.ora

安装了Oracle Database 10g后,网络配置文件的默认位置为%ORACLE_HOME%networkadmin.通过设置环境变量TNS_ADMIN可以改变这些网络配置的位置.

配置监听程序

监听程序用于接受客户端的连接请求.当安装oracle数据库产品时,会自动建立默认的监听程序LISTENER.通过该监听程序可以同时监听多个数据库.在同一个服务器上可以包含多个监听程序,并且不同的监听程序可以监听同一个数据库.

为了使监听程序配置生效,必须使用监听程序控制工具lsnrctl重新启动监听程序

Lsnrctl stop / lsnrctl start

配置客户端

为了使客户端应用可以访问oracle数据库,不仅需要在服务端配置并启动监听程序,还必须在客户端配置网络服务名.

网络服务名的配置信息保存在tnsnames.ora 文件中.

删除数据库

在oracle database 10g之前,如果要删除数据库,必须首先使用ORADIM工具删除例程服务,然后使用OS命令删除数据库所有物理文件.

从oracle database 10g开始.特权用户可以使用DROP DATABASE 命令删除该数据库,使用drop database命令删除数据库时,要求数据库必须处于MOUNT状态.并且必须使用RESTRICT 方式装载数据库.

C:sqlplus sys/oracle as sysdba

SQL>SHUTDOWN

SQL>STARTUP RESTRICT MOUNT

SQL>DROP DATABASE;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/312079/viewspace-245219/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-05

  • 博文量
    1854
  • 访问量
    2088436