暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle RAC+DG 表空间扩容

IT小Chen 2021-06-21
3094

在单实例环境下,扩容表空间需要考虑如下情况:

    (1)数据文件所在磁盘空间是否充足;
    (2)新增数据文件路径和名称是否正确。

    在RAC+DG环境下,扩容表空间需要考虑如下情况:

      (1)主、备库数据文件磁盘组剩余空间是否充足;
      此处除了保证主库空间充足,备库也需要有足够的剩余空间,否则DG同步关系将会中断。
      (2)新增数据文件路径和名称是否正确;
      不能将数据文件创建到某个实例本地文件系统。
      (3)备库端需要考虑以下几个参数,确保主库新增数据文件后,可以同步到备库。
      standby_file_management、db_create_file_dest、db_file_name_convert、log_file_name_convert

      本次案例,有一个特殊的地方

      主库对应数据文件的磁盘组剩余空间充足,但备库对应数据文件的磁盘组剩余空间不足,由于db_create_file_dest优先级别高于db_file_name_convert,只需要修改备库db_create_file_dest参数,将数据文件自动生成到备库另一个空间充足的磁盘组内即可。

      具体实施过程如下:

      1、查看当前表空间使用情况(主库):

      主库节点一:

        set pagesize 9999 
        set linesize 132
        col tablespace_name for a35
        select
        a.tablespace_name,
        a.Total_mb,
        f.Free_mb,
        round(a.total_MB-f.free_mb,2) Used_mb,
        round((f.free_MB/a.total_MB)*100) "%_Free"
        from
        (select tablespace_name, sum(bytes/(1024*1024)) total_MB from dba_data_files group by tablespace_name) a,
        (select tablespace_name, round(sum(bytes/(1024*1024))) free_MB from dba_free_space group by tablespace_name) f
        WHERE a.tablespace_name = f.tablespace_name(+)
        order by "%_Free"
        /

        2、添加数据文件,使表空间使用率降低到50%以下

          set pagesize 9999 
          set pagesize 9999
          set linesize 132
          col tablespace_name for a30
          select
          a.tablespace_name,
          a.Total_mb,
          f.Free_mb,
          ' Add'||to_char((total_MB*(1-PCT/100)-Free_mb)/(PCT/100)/1024,'9990.9')||'GB to '||PCT||'%' "Add_Size(GB)"
          from
          (select (&pct) PCT from dual),
          (select tablespace_name, sum(bytes/(1024*1024)) total_MB from dba_data_files group by tablespace_name) a,
          (select tablespace_name, round(sum(bytes/(1024*1024))) free_MB from dba_free_space group by tablespace_name) f
          WHERE a.tablespace_name = f.tablespace_name(+)
          order by "Add_Size(GB)"
          /
          Enter value for pct: 50

          TBS_CJC_DATA表空间添加 180G数据文件,将使用率降至50%以下 。

          3、查看数据文件信息(主库)

            set line 150
            col tablespace_name for a20
            col file_name for a60
            Select tablespace_name,file_name from dba_data_files where tablespace_name in ('TBS_CJC_DATA') order by tablespace_name,file_name;

            4、查看磁盘组剩余空间

              col name for a20
              set line 200
              select group_number,name,state,total_mb,free_mb,trunc((total_mb - free_mb)/total_mb,2"Used(%)" from v$asm_diskgroup order by 1;

              主库磁盘组空间充足。

              备库CJC_DATA磁盘组剩余空间2355MB,需要将新数据文件指定到SCM_DATA磁盘组。

              5、检查备库参数,确保新增数据文件可以同步到备库

              检查standby_file_management参数

                SQL> show parameter standby_file_management
                NAME TYPE VALUE
                ------------------------------------ ----------- --------
                standby_file_management              string      AUTO

                检查db_file_name_convert、log_file_name_convert参数

                  SQL> show parameter file_name
                  NAME TYPE VALUE
                  ------------------------------------ ----------- ------------------------------
                  db_file_name_convert string +BJ_SY_CJC_DATA/sycjc, +TRNT_DATA/trnt
                  log_file_name_convert string +BJ_SY_CJC_DATA/sycjc, +TRNT_ARCH/trnt

                  检查db_create_file_dest参数

                    SQL>show parameter db_create
                    NAME TYPE VALUE
                    ------------------------------------ ----------- ------------------------------
                    db_create_file_dest string +CJC_DATA

                    其中+CJC_DATA磁盘组空间不足。

                    修改备库参数

                      select name, value, issys_modifiable, description
                      from v$parameter
                      where name in ('db_create_file_dest', 'db_file_name_convert');

                      alter system set db_create_file_dest='+SCM_DATA';

                      6、主库1节点添加数据文件

                        su - oracle
                        sqlplus as sysdba
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data10.dbf' size 30G;
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data11.dbf' size 30G;
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data12.dbf' size 30G;
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data13.dbf' size 30G;
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data14.dbf' size 30G;
                        alter tablespace TBS_CJC_DATA add datafile '+BJ_SY_CJC_DATA/sycjc/datafile/CJC_data15.dbf' size 30G;

                        7、主库主库两节点再次切归档

                          su - oracle
                          sqlplus as sysdba
                          alter system switch logfile;
                          ###alter system archive log current;

                          8、观察主、备库告警日志信息

                          确保添加过程无报错

                          9、应急方案

                          如果备库端没有自动同步数据文件,需要手动处理。

                          1.备库将standby_file_management改成手动。

                            alter system set standby_file_management=MANUAL;

                            2.取消mrp进程

                              alter database recover managed standby database cancel;

                              3.查看备库数据文件位置信息

                                Select name from v$datafile;

                                4.手动添加新数据文件

                                  alter database create datafile '<第二步查出的新增数据文件路径>' as '+SCM_DATA/数据文件名称';

                                  5.备库将standby_file_management改回自动。

                                    alter system set standby_file_management=AUTO;

                                    6.启动mrp

                                      alter database recover managed standby database disconnect from session;

                                      #####chenjuchao 20210620 15:50#####

                                      文章转载自IT小Chen,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                      评论