• Oracle 10g 的控制文件(2)——添加控制文件


      在oracle 10g中,创建好一个数据库,默认会有3个控制文件,control01.ctl,control02.ctl,control03.ctl,我们可以为数据库手动添加一些控制文件。

      在数据打开的情况下,我们可以在sqlplus中通过show parameter control来查看当前所使用的控制文件的情况。

    SQL> show parameter control

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    control_file_record_keep_time integer 7
    control_files string /u01/app/oracle/oradata/orcl/c
    ontrol01.ctl, /u01/app/oracle/
    oradata/orcl/control02.ctl, /u
    01/app/oracle/oradata/orcl/con
    trol03.ctl

      那么接下来的实验,我们将要添加一个控制文件control04.ctl。

      首先,我们通过shutdown immediate关闭当前的数据库。

    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.

      进到控制文件的目录(/u01/app/oracle/oradata/orcl)中,复制一个控制文件control04.ctl。

    [oracle@www orcl]$ cp control01.ctl control04.ctl
    [oracle@www orcl]$ ll
    total 1448720
    -rw-r----- 1 oracle oinstall 7389184 Apr 8 01:08 control01.ctl
    -rw-r----- 1 oracle oinstall 7389184 Apr 8 01:08 control02.ctl
    -rw-r----- 1 oracle oinstall 7389184 Apr 8 01:08 control03.ctl
    -rw-r----- 1 oracle oinstall 7389184 Apr 8 01:10 control04.ctl
    ...................................

      由于control file的指定信息是在pfile或者spfile中,所以我们需要修改pfile和spfile,通过以下方式修改。

      在sqlplus中执行以下命令,使用当前的spfile文件创建pfile:

    SQL> create pfile='/home/oracle/init.ora' from spfile;

    File created.

      在oracle用户家目录中会生产一个 init.ora,使用vi命令修改该文件,红色部分为我们新添加的控制文件文件名和路径,修改好之后保持修改,如下所示。

    TSH1.__db_cache_size=104857600
    TSH1.__java_pool_size=4194304
    TSH1.__large_pool_size=4194304
    TSH1.__shared_pool_size=121634816
    TSH1.__streams_pool_size=8388608
    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
    *.audit_trail='DB','EXTENDED'
    *.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
    *.compatible='10.2.0.1.0'
    *.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl','/u01/app/oracle/oradata/orcl/control04.ctl'#Restore Controlfile
    *.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
    *.db_block_size=8192
    *.db_domain=''
    *.db_file_multiblock_read_count=16
    *.db_name='orcl'
    *.db_recovery_file_dest_size=31457280000
    *.db_recovery_file_dest='/home/oracle/area/'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
    *.job_queue_processes=10
    *.log_archive_dest_1='location=/u01/arch'
    *.log_archive_dest_2='location=/u01/arch2'
    *.log_archive_dest_state_2='DEFER'
    *.open_cursors=300
    *.pga_aggregate_target=81788928
    *.processes=150


      使用我们修改过的pfile创建一个spfile,如下所示。

    SQL> create spfile from pfile='/home/oracle/init.ora';

    File created.

      spfile创建成功之后,我们就可以开始打开我们数据库了,如下所示。

    SQL> startup 
    ORACLE instance started.

    Total System Global Area 247463936 bytes
    Fixed Size 1218772 bytes
    Variable Size 138413868 bytes
    Database Buffers 104857600 bytes
    Redo Buffers 2973696 bytes
    Database mounted.
    Database opened.

      我们再来通过show parameter control命令查看我们的控制文件是否添加成功了,如下所示。

    SQL> show parameter control;

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    control_file_record_keep_time integer 7
    control_files string /u01/app/oracle/oradata/orcl/c
    ontrol01.ctl, /u01/app/oracle/
    oradata/orcl/control02.ctl, /u
    01/app/oracle/oradata/orcl/con
    trol03.ctl, /u01/app/oracle/or
    adata/orcl/control04.ctl

      由上面的结果可知,我们的control04.ctl 已经添加成功了。

      思考:通过以上的方法我们成功地添加了一个控制文件,同样的,我们用这种方法也可以删除一个控制文件。那么在文章《Oracle 10g 的控制文件(1)》中提到的控制文件部分缺失的问题,我们是否可以通过此方法将缺失的控制文件从spfile中去除呢?显然是可以的,但是这也显然不是一个好的方法,第一是太复杂,第二是不安全。

  • 相关阅读:
    关于windows客户端网络编程 WSAAsyncSelect函数
    阻塞模式和非阻塞模式
    SRP6协议分析
    普通二叉树转换成二叉查找树方法
    使用openssl库进行开发
    类型转化,网络开发中常见的类型转化
    到底还能够称多久
    权限子系统小结
    使用ASP.NET AJAX开发服务器端事件通知器
    通用权限相关文档的下载
  • 原文地址:https://www.cnblogs.com/pgg200/p/2437222.html
Copyright © 2020-2023  润新知