一、环境检查
1 检查DG 是否正常运行。
数据库版本:11204
主机环境:rhel 6.1
备库:
select distinct(thread#),max(sequence#) from gv$archived_log group by thread#;
select distinct(thread#),max(sequence#) from gv$archived_log where applied=’YES’ group by thread#;
主库:
alter system log archive log current; // 执行多次
备库:
select distinct(thread#),max(sequence#) from gv$archived_log group by thread#;
select distinct(thread#),max(sequence#) from gv$archived_log where applied=’YES’ group by thread#;
看看和上面的有没有变化,有则正常。
2 检查磁盘是否挂好,是否映射两个节点。
二、修改添加磁盘的权限。
方案一:手动修改磁盘权限
chown grid:oinstall /dev/mapper/***
chmod 660 /dev/mapper/***
两节点执行。
vi /etc/udev/rules.d/12-dm-permissions.rules
ENV{DM_NAME}=="mpath?", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathe", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathd", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathc", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathb", OWNER:="grid", GROUP:="oinstall", MODE:="660"
### 不需要重启udev
方案二:udev 修改磁盘权限
这个方案要要重启udev ,会导致集群hang 住,建议暂停业务,关闭数据库和集群:
1 关闭数据库和集群(11g) ## 因为是短时间关闭所以不需要对dg 备端进行操作。
停监听:grid
Srvctl stop scan_listener
Srvctl stop listener
停库 grid
oracle: srvctl stop database -d oracle_name ## (注意是db_name,不是instance name)
停crs
root :crsctl stop crs (需每节点运行)
2 修改udev 文件 ### 两节点执行
vi /etc/udev/rules.d/12-dm-permissions.rules
ENV{DM_NAME}=="mpath?", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathe", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathd", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathc", OWNER:="grid", GROUP:="oinstall", MODE:="660"
ENV{DM_NAME}=="mpathb", OWNER:="grid", GROUP:="oinstall", MODE:="660"
root 用户: start_udev 后/dev 下的dm* 会变成grid 属主
3 重启集群数据库:
手动启:
root: ./crsctl start crs(两节点执行)
srvctl start database -d oracle_name
srvctl start listener
Srvctl start scan_listener
启动后
crsctl check crs 检查状态
crs_stat –t 检查
select name,database_role,open_mode from gv$database;
三、添加磁盘组、
方法一:图形界面添加 ## 推荐一
su – grid
asmca
检查:
select GROUP_NUMBER,NAME,FAILGROUP,STATE,PATH from v$asm_disk;
select GROUP_NUMBER,NAME,free_mb,TYPE,TOTAL_MB,compatibility from v$asm_diskgroup;
方法二: sql 添加
su – grid
$ sqlplus / as sysasm
> create diskgroup data2 external redundancy disk '/dev/rhdisk1','/dev/rhdisk2','/dev/rhdisk3','/dev/rhdisk4' attribute 'COMPATIBLE.ASM'='11.2';
>exit
$asmcmd
lsdg
#### 可以cd /data02 创建个datafile 文件夹
检查:
select GROUP_NUMBER,NAME,FAILGROUP,STATE,PATH from v$asm_disk;
select GROUP_NUMBER,NAME,free_mb,TYPE,TOTAL_MB,compatibility from v$asm_diskgroup;
二节点 ;
alter diskgroup data2 mount;
检查:
select GROUP_NUMBER,NAME,FAILGROUP,STATE,PATH from v$asm_disk;
select GROUP_NUMBER,NAME,free_mb,TYPE,TOTAL_MB,compatibility from v$asm_diskgroup;
四、修改主库备库参数
主库:
su – oracle
sqlplus / as sysdba
alter system set db_file_name_convert='+DATA/zctg/datafile/','/oracle/app/oradata/','+DATA02/datafile/','/oracle/app/oradata/' scope=spfile sid=’*’;
备库:
su – oracle
sqlplus / as sysdba
alter system set db_file_name_convert='+DATA/zctg/datafile/','/oracle/app/oradata/','+DATA02/datafile/','/oracle/app/oradata/' scope=spfile;
备库修改完后重启下:
SQL>shutdown immediate
使用oracle用户登陆standby数据库主机将数据库开启
$sqlplus “/as sysdba”
SQL>alter database recover managed standby database cancel;
SQL>shutdown immediate
##
$sqlplus “/as sysdba”
SQL>startup mount
SQL>alter database recover managed standby database disconnect from session;
使用oracle用户登陆primary数据库主机将数据库开启
$sqlplus “/as sysdba”
SQL>startup
五、测试数据库能否正常添加数据文件
1 参照上面步骤检查dg是否正常。
2 如正常的话创建个表空间试试。
create tablespace test datafile ‘+DATA02/datafile/test1.dbf’ size 10M;
2 再次检查dg是否正常。
如正常,则完成本次添加