创建、启动oracle数据库

  1.  启动数据库
    http://blog.csdn.net/chenxiaohua/archive/2008/01/22/2057815.aspx中已经描述怎样简单地启动数据库,和相应的服务监听。
    用oracle安装用户登录主机,启动数据库和服务监听,操作如下:

    跟据上面的提示,数据库和服务监听都成功启动了。
    但是上面没有指定启动那个数据库,如果创建了多个数据库,该怎么指定地启动每个数据库和相应的监听服务呢?
    上面的命令只启动了oracle安装的默认数据库linuxdb和相应的监听服务。

    既然是启动数据库,就补充说明一下启动的状态,oracle有三种启动状态:
    Nomount(非安装)Oracle只是读取ini文件中的配置信息,并初始化SGA区
    Mount(安装)Oracle除了需要读取ini文件还要读取控制文件,并从中获取有关数据库的物理结构等信息。
    Open(打开)数据库要检查所有文件处于同一时间点,对错误进行恢复对未完成事务回滚,并最终可以允许用户访问。
    相应的命令就是:
    SQL>startup nomount;
    SQL>alter database mount;
    SQL>alter database open;
    上面三个命令顺序让数据库进入:Nomount,Mount,Open三种状态,直接执行startup等于顺序执行这三个状态。

    对应上面的三阶段启动命令,启动过程也分为三个阶段:
    1)启动实例
       读取初始化参数文件.注意读取顺序.
       分配系统全局区
       启动后台进程
       打开alertSID.log文件和跟踪文件
    2)装载数据库
       将数据库与一个已打开的实例相关联
       打开控制文件
       获取数据文件和重做日志文件的名称和状态.
    3)打开数据库
       打开数据文件
       打开联机重做日志文件.

    初始化参数文件:
    在oracle9i以前,数据库启动使用文本的init<SID>.ora的初始化文件,oracle9i以后,都使用spfile<sid>.ora的二进制文件,如果大家在$ORACLE_HOME/dbs目录下的init.ora,initwd.ora都是样例文件,可以删除,其实这两个文件应该移到sample目录,免得误导使用者。
    我使用的是oracle9.2i,直接删除这两个文件,数据库也可以正常启动、使用。为了减少垃圾,删掉或者移开这些文件吧。
  2. 创建数据库
    在网上很容易找到oracle数据库的创建脚本。
    但是对于初学者,我建议使用oracle提供的dbca,它提供向导,能够简单地创建自己需要的数据库。
    我使用dbca成功创建了一个数据库wldev。
    在$ORACLE_HOME/dbs下有spfilewldev.ora,这是数据库启动的初始文件。
    在$ORACLE_HOME/network/admin下的listener.ora文件中,已添加了对服务wldev的监听,内容如下:

    linuxdb是默认安装的数据库服务,wldev是刚创建数据库的时候才添加进来的。
    listener.ora的一些介绍可以看文章http://blog.csdn.net/chenxiaohua/archive/2009/03/19/4004128.aspx
    在数据库linuxdb上,创建用户dev/123,下面用别名分别登录两个数据库进行测试。
    登录linuxdb,执行如下命令:
    sqlplus dev/123@local_dev
    登录成功。
    登录wldev,执行如下命令:
    sqlplus dev/123@wl_dev
    登录失败,错误信息如下:

    根据错误信息可知,服务监听没有问题,数据库wldev没有启动。

    wldev为什么没有启动呢?有怎样指定启动的数据库呢?
  3. 启动指定的数据库
    这儿只给出一种方法
    用在sqlplus命令模式下,用sysdba登录的时候,默认登录ORACLE_SID环境变量指定的数据库。当前环境下,由于oracle登录用户的ORACLE_SID=linuxdb,所以默认就启动了linuxdb。现在解决的办法就是在执行sqlplus "/ as sysdba"之前,设置ORACLE_SID=wldev,然后用sqlplus "/ as sysdba",执行startup启动wldev,执行命令如下:

    提示数据库启动成功。

    这时,我们就可以用wldev的sysdba角色创建一些自己需要资源了。
    创建表空间:
    create   tablespace   devbase      
             datafile   '/home/ora/tbspace/wldevbase_2009032301.dbf'   size   512M;
    创建用户:
    create   user   dev  
             identified   by   123
             default   tablespace   devbase  
             temporary   tablespace   temp;
    对dev用户授予create session,connect,resource权限。
    grant   resource,connect   to dev;
    grant create session to dev;
    grant create table to  dev;
    grant create tablespace to  dev;
    grant create view to  dev;

    现在可以重新登录数据库wldev了,执行如下命令:
    sqlplus dev/123@local_dev
    登录成功。

    注意
    错误1,错误信息如下:
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/home/ora/ora9/oracle/dbs/init<sid>.ora
    那么肯定是环境变量ORACLE_SID没有设置正确,正确设置环境变量就可以了。
  4. 修改监听端口
    从上面的listener.ora文件我们可以看到,linuxdb和wldev都监听同一个端口,如果访问量比较大的话,有可能会造成为一个瓶颈。
    先备份listener.ora文件,执行命令:cp listener.ora 20090323_listener.ora
    编辑listener.ora文件,内容如下:

    现在不能简单地用lsnrctl start来启动了,因为linrctl start命令只启动默认的监听器LISTENER,现在的listener.ora中没有LISTENER监听器了。
    现在上面有LISTENER_LINUXDB和LISTENER_WLDEV两个监听器。
    现在分别启动两个监听器,命令如下:
    lsnrctl start LISTENER_LINUXDB
    lsnrctl start LISTENER_WLDEV
    修改客户端的tnsname.ora中的wl_dev别名,因为监听器中的端口号已经变成1621了,修改后的内容如下:

    然后用在客户重新登录linuxdb和wldev两个数据库,命令如下:
    sqlplus dev/123@wl_dev
    成功。
    sqlplus dev/123@local_dev
    成功。

    通过如上的实践操作,对创建数据库,创建服务监控,启动数据库,启动服务监控这些操作有了更深的理解。
  5. 关闭数据库
    补充一下关闭数据库命令的使用。
    要关闭的数据库和上面描述的一样,是环境变量中的ORACLE_SID指定的数据库。
    关闭数据库命令只有一个shutdown,常用的有两个数shutdown=shutdown normal就是正常关闭,它要等待所有的session结束,但是一般不需要等待所有的session结束;shutdown immediate就是立即关闭数据库,不用等待所有的session结束。
    shutdown命令格式:
    shutdown 参数
    shutdown [ normal | transactional | immediate | abort ];
    这几个参数详细的说明,大家可以查询相应的文档。篇幅有限,不能每个都详细描述。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值