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

oracle RAC+DG 扩容表空间

原创 逆风飞翔 2022-02-25
1808

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

(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参数,将数据文件自动生成到备库另一个空间充足的磁盘组内。

具体实施过程如下:

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%

注:执行后需要根据提示输入想达到的表空间使用率值,例如: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

SYS>show parameter file_name
检查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
修改被备库参数

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、观察主、备库告警日志信息
确保添加过程无报错

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

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;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论