美文网首页
Oracle体系结构项目实验

Oracle体系结构项目实验

作者: 苏水的北 | 来源:发表于2021-04-14 20:11 被阅读0次

    实验:

    一、控制文件的多路复用:添加多份控制文件,对控制文件进行冗余。

    备注:11g的fs建库下控制文件默认两个,asm建库下控制文件默认一个。
    第一步:修改参数:

    1、查看控制文件情况:
    SQL> show parameter control;
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_file_record_keep_time        integer     7
    control_files                        string      +DATADG/asmdb/controlfile/current.256.1069255659    #control files指定控制文件位置
    control_management_pack_access       string      DIAGNOSTIC+TUNING
    2、对参数文件修改,在文件系统中添加一个控制文件:
    SQL> alter system set control_files='+DATADG/asmdb/controlfile/current.256.1069255659','/tmp/control02.ctl'  scope=spfile;
    
    System altered.
    

    第二步:增加控制文件数量:
    1、fsdb数据库:
    cp /oradata/fsdb/control01.ctl /tmp/control02.ctl
    2、asmdb数据库:

    [grid@oracle ~]$ export ORACLE_SID=+ASM
    [grid@oracle ~]$ asmcmd
    ASMCMD> cd datadg
    ASMCMD> cd asmdb
    ASMCMD> cd controlfile
    ASMCMD> ls
    Current.256.1069255659
    ASMCMD> cp Current.256.1069255659 /tmp/control02.ctl
    copying +datadg/asmdb/controlfile/Current.256.1069255659 -> /tmp/control02.ctl
    [oracle@oracle tmp]$ ll
    total 965812
    -rw-r-----  1 grid   oinstall   9748480 Apr  9 17:14 control02.ctl
    

    第三步:产生检查点:
    执行多次,产生检查点,因为检查点会写入控制文件。

    SQL> alter system checkpoint;
    
    System altered.
    
    SQL> /
    
    System altered.
    

    第四步重启数据库:因为第一步修改了spfile,必须重启数据库才能生效。

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup
    ORACLE instance started.     #说明数据库处于nomount阶段,参数文件可用。
    
    Total System Global Area  830930944 bytes
    Fixed Size                  2232920 bytes
    Variable Size             494931368 bytes
    Database Buffers          331350016 bytes
    Redo Buffers                2416640 bytes
    ORA-00214: control file
    '+DATADG/asmdb/controlfile/current.256.106925ent.256.1069255659' version 259
    inconsistent with file '/tmp/control02.ctl' version 246  #此错误是因为当前控制文件不一致,数据库无法使用控制文件,进而无法mount。
    #总结:我们在数据库运行期间copy的控制文件是有问题的,因为数据库在运行期间cp文件不能保证数据一致性。所以,以后对数据库进行备份不能进行简单的cp操作,后期需要学习备份工作,在备份数据的同时保证数据的一致性。
    

    第五步:数据库关闭后,再进行cp操作,就能保证数据的一致性。

    1、再重新复制一次控制文件:
    ASMCMD> pwd
    +datadg/asmdb/controlfile
    ASMCMD> ls
    Current.256.1069255659
    ASMCMD> cp Current.256.1069255659 /tmp/control02.ctl
    copying +datadg/asmdb/controlfile/Current.256.1069255659 -> /tmp/control02.ctl
    2、对control02.ctl文件进行授权:
    [root@oracle tmp]# chown oracle.oinstall control02.ctl
    [root@oracle tmp]# ll
    total 965812
    -rw-r-----  1 oracle oinstall   9748480 Apr  9 17:44 control02.ctl
    3、开启数据库并验证控制文件:
    SQL> alter database mount;
    
    Database altered.
    
    SQL> alter database open;
    
    Database altered.
    
    SQL> show parameter control_files;
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      +DATADG/asmdb/controlfile/curr
                                                     ent.256.106925ent.256.10692556
                                                     59, /tmp/control02.ctl
    
    总结:正常流程如下:

    1、alter system set control_files='1','2' scope=spfile;
    2、shutdown immediate;
    3、cp control01 control02;
    4、startup。

    二、手动开归档:

    定点备份:保证数据块安全;
    归档日志文件:部分redo log安全;
    redo log file:部分redo log安全。
    1、查看当前归档状态:

    SQL> archive log list;
    Database log mode              No Archive Mode  #归档未开启
    Automatic archival             Disabled
    Archive destination            /u01/app/oracle/product/11.2/db_1/dbs/arch
    Oldest online log sequence     13
    Current log sequence           15
    

    2、归档未开启:设置归档文件存放路径。

    SQL> show parameter dest;
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest_size           big integer 0
    diagnostic_dest                      string      /u01/app/oracle
    log_archive_dest                     string
    log_archive_dest_1                   string                       #归档文件存放路径,没设置即为null。
    #备注:归档存放路径可以是本地,也可以基于网络存放到其他主机。
    

    3、修改归档文件路径:

    修改归档文件目录并且创建对应目录:
    SQL> alter system set log_archive_dest_1='location=/home/oracle/arch';
    
    System altered.
    
    SQL> ! mkdir /home/oracle/arch
    
    SQL> ! ls /home/oracle
    arch
    
    查看归档日志文件格式:
    SQL> show parameter format; 
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_format                   string      %t_%s_%r.dbf   #用于定义生成的归档文件名的格式。
    nls_date_format                      string
    nls_time_format                      string
    nls_time_tz_format                   string
    nls_timestamp_format                 string
    nls_timestamp_tz_format              string
    permit_92_wrap_format                boolean     TRUE
    star_transformation_enabled          string      FALSE
    

    4、开启归档:开启归档需要在mount阶段完成。

    SQL> shutdown immediate    #数据库一致性关闭
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.
    
    Total System Global Area  830930944 bytes
    Fixed Size                  2232920 bytes
    Variable Size             494931368 bytes
    Database Buffers          331350016 bytes
    Redo Buffers                2416640 bytes
    Database mounted.
    SQL> select status from v$instance;
    
    STATUS
    ------------
    MOUNTED
    
    SQL> alter database archivelog;   #开启归档
    
    Database altered.
    
    SQL> alter database open;
    
    Database altered.
    

    5、切换日志:切换日志,使redo log写入归档日志。

    1、检查归档日志路径下为空:
    [oracle@oracle ~]$ cd arch/
    [oracle@oracle arch]$ ll
    total 0    
    2、切换重做日志文件:
    SQL> alter system switch logfile;
    
    System altered.
    3、再查看归档日志:
    [oracle@oracle arch]$ ls
    1_15_1069255651.dbf
    4、查看当前归档状态:
    SQL> archive log list;
    Database log mode              Archive Mode   #归档已开启
    Automatic archival             Enabled
    Archive destination            /home/oracle/arch    #归档地址
    Oldest online log sequence     14
    Next log sequence to archive   16
    Current log sequence           16
    SQL> show parameter desc;
    SQL> show parameter dest;
    
    SQL> show parameter dest;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      location=/home/oracle/arch       #归档存放在本地位置
    log_archive_dest_10                  string
    

    三、误修改参数文件:误修改参数文件,导致Oracle实例启动异常。

    相关文章

      网友评论

          本文标题:Oracle体系结构项目实验

          本文链接:https://www.haomeiwen.com/subject/dzlklltx.html