设为首页 收藏本站
查看: 596|回复: 0

[经验分享] RAC环境下Dataguard到单机

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-8 15:04:48 | 显示全部楼层 |阅读模式
环境描述:

Oracle Version:11.2.0.3.0
Primary端:
双节点的RAC,scan使用DNS解析,跑两个实例(JSTDB&PAYDB)
Standby端:
单机的Dataguard
wKioL1cF2pChZwXgAADJ5Y2Ew8g599.jpg
1.设置网络环境;
vi /etc/hosts
192.168.253.101    rac1.test.com    rac1
192.168.253.102    rac2.test.com    rac2
192.168.253.103    rac1-vip.test.com  rac1-vip
192.168.253.104    rac2-vip.test.com  rac2-vip
10.10.10.11      rac1-priv.test.com  rac1-priv
10.10.10.12      rac2-priv.test.com  rac2-priv
192.168.253.200    standby
vi /etc/resolv.conf
nameserver 192.168.253.100

nslookup scan.test.com
Server:192.168.253.100
Address:192.168.253.100#53
Name:scan.test.com
Address: 192.168.253.107
Name:scan.test.com
Address: 192.168.253.106
Name:scan.test.com
Address: 192.168.253.105

2.修改force logging;
select force_logging from v$database;
alter database force logging;  


3.查看并添加standby logfile;
set line 180 pages 1000
col member for a50
select * from v$logfile order by GROUP#;
alter system set standby_file_management=manual scope=both sid='*';
alter database add standby logfile thread 1 group 5 '+DATA/jstdb/onlinelog/standby_redo1-1.log' size 50M;
alter database add standby logfile thread 1 group 6 '+DATA/jstdb/onlinelog/standby_redo1-2.log' size 50M;
alter database add standby logfile thread 1 group 7 '+DATA/jstdb/onlinelog/standby_redo1-3.log' size 50M;
alter database add standby logfile thread 1 group 8 '+DATA/jstdb/onlinelog/standby_redo1-4.log' size 50M;
alter database add standby logfile thread 2 group 9 '+DATA/jstdb/onlinelog/standby_redo2-1.log' size 50M;
alter database add standby logfile thread 2 group 10 '+DATA/jstdb/onlinelog/standby_redo2-2.log' size 50M;
alter database add standby logfile thread 2 group 11 '+DATA/jstdb/onlinelog/standby_redo2-3.log' size 50M;
alter database add standby logfile thread 2 group 12 '+DATA/jstdb/onlinelog/standby_redo2-4.log' size 50M;
alter system set standby_file_management=auto scope=both sid='*';  


4.收集主库的相关信息;
set line 180 pages 1000
col value for a90
col name for a50
select name,value from v$parameter
where name in ('db_name',
'db_unique_name',
'log_archive_config',
'log_archive_dest_1',
'log_archive_dest_2',
'log_archive_dest_state_1',
'log_archive_dest_state_2',
'remote_login_passwordfile',
'remote_listener',
'log_archive_format',
'log_archive_max_processes',
'fal_server','fal_client',
'db_file_name_convert',
'log_file_name_convert',
'standby_file_management');  


5.创建本地硬盘的归档日志目录以及rman的备份目录;
mkdir -p /u01/arch/JSTDB
chown -R oracle.oinstall /u01/arch/
mkdir -p /u01/rman/JSTDB
chown -R oracle.oinstall /u01/rman/

6.修改主库的DG配置;
ALTER SYSTEM SET DB_UNIQUE_NAME=JSTDB scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(JSTDB,JSTDG1)' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+FRA/JSTDB/ARCHIVELOG/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JSTDB' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=JSTDG1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JSTDG1' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both sid='*';
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=SHARED scope=spfile sid='*';
ALTER SYSTEM SET REMOTE_LISTENER='scan.test.com:1521' scope=spfile sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=8 SCOPE=both sid='*';
ALTER SYSTEM SET FAL_CLIENT=JSTDB SCOPE=both sid='*';
ALTER SYSTEM SET FAL_SERVER=JSTDG1 SCOPE=both sid='*';
ALTER SYSTEM SET db_file_name_convert='/u01/app/oracle/oradata/JSTDG1/','+DATA/JSTDB/' SCOPE=spfile sid='*';
ALTER SYSTEM SET log_file_name_convert='/u01/app/oracle/oradata/JSTDG1/onlinelog/','+DATA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/onlinelog/','/u01/arch/JSTDG1/','+FRA/JSTDB/ARCHIVELOG/' SCOPE=spfile sid='*';
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=both sid='*';  


修改archivelog的格式
alter system set log_archive_format='arch_%r_%t_%s.arc' scope=spfile sid='*';
shutdown immediate
startup  


7.创建standby数据库的pfile文件;
create pfile='/u01/rman/initJSTDB.ora' from spfile;  


8.修改tns;
cd $ORACLE_HOME/network/admin
vi tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

JSTDB =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = scan.test.com)(PORT = 1521))
(LOAD_BALANCE = yes)
)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = JSTDB)
    )
  )

JSTDB1 =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1.test.com)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.test.com)(PORT = 1521))
   )
    (CONNECT_DATA =
      (SERVICE_NAME = JSTDB)
      (INSTANCE_NAME = JSTDB1)
    )
  )

JSTDB2 =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2.test.com)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.test.com)(PORT = 1521))
   )
    (CONNECT_DATA =
      (SERVICE_NAME = JSTDB)
      (INSTANCE_NAME = JSTDB2)

    )
  )

JSTDG1 =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = JSTDG1)
    )
  )

PAYDB =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = scan.test.com)(PORT = 1521))
(LOAD_BALANCE = yes)
)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PAYDB)
    )
  )

PAYDG1 =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PAYDB)
    )
  )

9.备库添加监听;

cd $ORACLE_HOME/network/admin
vi listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = JSTDG1)
      (ORACLE_HOME = /u01/app/oracle)
      (SID_NAME = JSTDB)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = PAYDG1)
      (ORACLE_HOME = /u01/app/oracle)
      (SID_NAME = PAYDB)
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle
备库重启监听服务
lsnrctl stop
lsnrctl start

10.在RAC节点1生成standby控制文件;
export ORACLE_SID=JSTDB1
rman target /
backup device type disk format '/u01/rman/ctl01.ctl' current controlfile for standby;  

scp /u01/rman/ctl01.ctl standby:/u01/rman/

11.在standby创建相关目录;
@root用户
mkdir -p /u01/rman/JSTDB
chown -R oracle.oinstall /u01/rman/
mkdir -p /u01/arch/JSTDG1
chown -R oracle.oinstall /u01/arch/
@oracle用户
mkdir -p /u01/app/oracle/oradata/JSTDG1/datafile/
mkdir -p /u01/app/oracle/oradata/JSTDG1/onlinelog
mkdir -p /u01/app/oracle/admin/JSTDG1/adump

12.复制密码文件;
orapwd file=/$ORACLE_HOME/dbs/orapwJSTDB1 password=oracle force=y ignorecase=y
scp /$ORACLE_HOME/dbs/orapwJSTDB1 rac2:/$ORACLE_HOME/dbs/orapwJSTDB2
scp /$ORACLE_HOME/dbs/orapwJSTDB1 standby:/u01/app/oracle/dbs/orapwJSTDB

13.拷贝参数文件到备库,并修改相关内容;
@主库
scp /u01/rman/initJSTDB.ora standby:/u01/app/oracle/dbs/initJSTDB.ora
@备库
vi /u01/app/oracle/dbs/initJSTDB.ora
删除原有的内容,添加以下内容:

*.audit_file_dest='/u01/app/oracle/admin/JSTDG1/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/JSTDG1/control01.ctl','/u01/app/oracle/oradata/JSTDG1/control02.ctl','/u01/app/oracle/oradata/JSTDG1/control03.ctl'
*.db_block_size=8192
#*.db_create_file_dest='/u01/app/oracle/oradata/'
#*.db_create_online_log_dest_1='/u01/app/oracle/oradata/onlinelog/'
*.db_domain=''
*.db_file_name_convert='+DATA/JSTDB/','/u01/app/oracle/oradata/JSTDG1/'
*.db_name='JSTDB'
*.db_unique_name='JSTDG1'
*.db_recovery_file_dest=''
*.fal_client='JSTDG1'
*.fal_server='JSTDB'
*.log_archive_config='DG_CONFIG=(JSTDB,JSTDG1)'
*.log_archive_dest_1='LOCATION=/u01/arch/JSTDG1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JSTDG1'
*.log_archive_dest_2='SERVICE=JSTDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JSTDB'
*.log_archive_format='arch_%r_%t_%s.arc'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_max_processes=8
*.log_file_name_convert='+DATA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/ARCHIVELOG/','/u01/arch/JSTDG1/'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='SHARED'
*.standby_file_management='AUTO'
*.undo_management='AUTO'
undo_tablespace='UNDOTBS1'

14.把备库启动到nomount状态;
export ORACLE_SID=JSTDB
sqlplus / as sysdba
startup nomount pfile='/u01/app/oracle/dbs/initJSTDB.ora';
create spfile from pfile='/u01/app/oracle/dbs/initJSTDB.ora';  


15.恢复备库的控制文件;
rman target /
restore standby controlfile from '/u01/rman/ctl01.ctl';  


16.收集RAC数据库的信息;
col file_name for a70
select file_name, file_id from dba_data_files;  

FILE_NAME  FILE_ID
---------------------------------------------------------------------- ----------
+DATA/jstdb/datafile/system.259.9079385031
+DATA/jstdb/datafile/sysaux.260.9079385092
+DATA/jstdb/datafile/undotbs1.261.9079385153
+DATA/jstdb/datafile/undotbs2.263.9079385254
+DATA/jstdb/datafile/users.264.9079385275
4 rows selected.


17.备份主库全库(仅供保险备份,不是拷贝到standby);
rman target /

backup format '/u01/rman/JSTDB/fulldb_%d_%U' database include current controlfile plus archivelog delete input;  


18.RMAN duplicate数据库到备库;
rman target sys/oracle@JSTDB1 auxiliary sys/oracle@JSTDG1 nocatalog
duplicate target database for standby from active database nofilenamecheck;  

同步完成后退出rman
quit

19.检查状态;
@RAC节点1
set line 180 pages 1000
col member for a70;
select group#, type, member from v$logfile order by GROUP#;  

   GROUP# TYPE  MEMBER
---------- --------------------- -------------------------------------------------------
1 ONLINE +DATA/jstdb/onlinelog/group_1.257.907938501
1 ONLINE +FRA/jstdb/onlinelog/group_1.257.907938501
2 ONLINE +DATA/jstdb/onlinelog/group_2.258.907938501
2 ONLINE +FRA/jstdb/onlinelog/group_2.258.907938501
3 ONLINE +DATA/jstdb/onlinelog/group_3.265.907941151
3 ONLINE +FRA/jstdb/onlinelog/group_3.259.907941151
4 ONLINE +DATA/jstdb/onlinelog/group_4.266.907941151
4 ONLINE +FRA/jstdb/onlinelog/group_4.260.907941151
5 STANDBY +DATA/jstdb/onlinelog/standby_redo1-1.log
6 STANDBY +DATA/jstdb/onlinelog/standby_redo1-2.log
7 STANDBY +DATA/jstdb/onlinelog/standby_redo1-3.log
8 STANDBY +DATA/jstdb/onlinelog/standby_redo1-4.log
9 STANDBY +DATA/jstdb/onlinelog/standby_redo2-1.log
10 STANDBY +DATA/jstdb/onlinelog/standby_redo2-2.log
11 STANDBY +DATA/jstdb/onlinelog/standby_redo2-3.log
12 STANDBY +DATA/jstdb/onlinelog/standby_redo2-4.log
16 rows selected.
select max(sequence#) from v$archived_log;  

MAX(SEQUENCE#)
--------------
    98


@RAC节点2
select max(sequence#) from v$archived_log;  

MAX(SEQUENCE#)
--------------
    98

@备库
set line 180 pages 1000
col member for a70;
select group#, type, member from v$logfile order by GROUP#;  

    GROUP# TYPE    MEMBER
---------- ------- ----------------------------------------------------------------------
1 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_1.257.907938501
1 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_1.257.907938501
2 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_2.258.907938501
2 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_2.258.907938501
3 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_3.265.907941151
3 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_3.259.907941151
4 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_4.266.907941151
4 ONLINE  /u01/app/oracle/oradata/JSTDG1/onlinelog/group_4.260.907941151
5 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo1-1.log
6 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo1-2.log
7 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo1-3.log
8 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo1-4.log
9 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo2-1.log
10 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo2-2.log
11 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo2-3.log
12 STANDBY /u01/app/oracle/oradata/JSTDG1/onlinelog/standby_redo2-4.log
16 rows selected.
select max(sequence#) from v$archived_log;  

MAX(SEQUENCE#)
--------------
    98

standby端可以看到rac1和rac2的archivelog
wKioL1cFxe-yBjx-AAAtrwFFTyY736.jpg

select protection_mode,protection_level from v$database;  

PROTECTION_MODE        PROTECTION_LEVEL
------------------------------   ----------------------------------
MAXIMUM PERFORMANCE       MAXIMUM PERFORMANCE

select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;  

SEQUENCE#  FIRST_TIM NEXT_TIME APPLIED
---------- --------- --------- ---------
        28 06-APR-16 06-APR-16 NO
        29 06-APR-16 06-APR-16 NO
        30 06-APR-16 06-APR-16 NO
        95 06-APR-16 06-APR-16 NO
        96 06-APR-16 06-APR-16 NO
        97 06-APR-16 06-APR-16 NO
        98 06-APR-16 06-APR-16 NO
开启归档日志自动应用
alter database recover managed standby database using current logfile disconnect from session;  


select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;  

SEQUENCE# FIRST_TIM NEXT_TIME APPLIED
---------- --------- --------- ---------
28 06-APR-16 06-APR-16 YES
29 06-APR-16 06-APR-16 YES
30 06-APR-16 06-APR-16 IN-MEMORY
95 06-APR-16 06-APR-16 YES
96 06-APR-16 06-APR-16 YES
97 06-APR-16 06-APR-16 YES
98 06-APR-16 06-APR-16 YES
强制切换日志测试所有节点都可以同步
alter system switch logfile;  


20.同理搭建PAYDB实例的Dataguard,不再记录笔记;

21.切换测试(每个实例都是独自切换)
1)关闭RAC节点2的数据库实例
srvctl stop instance -d JSTDB -i JSTDB2
srvctl stop instance -d PAYDB -i PAYDB2


2)在主库切换预备操作
select count(*) from v$session;

select username,program from v$session where username is not null;
wKiom1cGJ7PBfQezAAAVbei7C6s452.jpg
set line 180 pages 1000
col open_mode for a20;
col database_role for a30;
col switchover_status for a30;
select open_mode,database_role,switchover_status from v$database;
OPEN_MODE          DATABASE_ROLE            SWITCHOVER_STATUS
--------------------   ---------------------------   ---------------------------
READ WRITE         PRIMARY                TO STANDBY

3)在主库执行切换命令

alter database commit to switchover to physical standby with session shutdown;  
shutdown immediate
ORA-01092: ORACLE instance terminated. Disconnection forced
startup nomount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist

exit

sqlplus / as sysdba
startup nomount  


alter database mount;

col database_role for a20;
col switchover_status for a30;
select database_role,switchover_status from v$database;
DATABASE_ROLE       SWITCHOVER_STATUS
--------------------   ---------------------------
PHYSICAL STANDBY     RECOVERY NEEDED   

4)在备库进行切换
set line 180 pages 1000
col open_mode for a20;
col database_role for a30;
col switchover_status for a30;
select open_mode,database_role,switchover_status from v$database;
OPEN_MODE          DATABASE_ROLE            SWITCHOVER_STATUS
--------------------   ---------------------------   ---------------------------
MOUNTED           PHYSICAL STANDBY          SESSIONS ACTIVE

alter database commit to switchover to primary;
shutdown immediate
startup
select open_mode,database_role,switchover_status from v$database;
OPEN_MODE          DATABASE_ROLE            SWITCHOVER_STATUS
--------------------   ----------------------------  ----------------------------
READ WRITE         PRIMARY                RESOLVABLE GAP


5)回到原主库开启归档日志自动恢复
alter database recover managed standby database using current logfile disconnect from session;
select open_mode,database_role,switchover_status from v$database;

OPEN_MODE          DATABASE_ROLE           SWITCHOVER_STATUS
--------------------   ---------------------------  ---------------------------
MOUNTED           PHYSICAL STANDBY         TO PRIMARY

6)检查备库状态,RESOLVABLE GAP恢复正常
select open_mode,database_role,switchover_status from v$database;
OPEN_MODE          DATABASE_ROLE            SWITCHOVER_STATUS
--------------------   ---------------------------   ---------------------------
READ WRITE         PRIMARY                TO STANDBY

7)恢复原状,把RAC节点恢复为PRIMARY,standby节点恢复为STANDBY
重新开启RAC2节点2的实例
srvctl start instance -d JSTDB -i JSTDB2
srvctl start instance -d NETPAYDB -i NETPAYDB2

END.踩过的坑
1)错误的理解了DB_NAME以及DB_UNIQUE_NAME的概念,在修改standby的initJSTDB.ora参数时修改了DB_NAME=JSTDG1,导致还原standby的控制文件后无法mount备库:
RMAN-03002: failure of alter db command at 04/05/2016 09:52:48
ORA-01103: database name 'JSTDB' in control file is not 'JSTDG1'
解决方法:
将standby端的参数文件保持跟primary一致的db_name,错误解决.


2)备库listener.ora配置错误,导致primary无法正常解析standby
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = JSTDG1)
      (ORACLE_HOME = /u01/app/oracle)
      (SID_NAME = JSTDG1)
    )
结果在RAC节点都无法通过sqlplus连接到standby:
sqlplus sys/oracle@JSTDG1 as sysdba
ora-01031:insufficient privilege

解决方法:
保持GLOBAL_DBNAME与tnsnames.ora中的SERVICE_NAME = JSTDG1保持一致,SID_NAME与DB_NAME保持一致为JSTDB即可

3)从RAC节点1生成密码文件然后复制到RAC节点2以及standby数据库后,RAC节点2的alter日志一直报以下错误:
------------------------------------------------------------
PING[ARC6]: Heartbeat failed to connect to standby 'JSTDG1'. Error is 16191.
Wed Apr 06 15:40:31 2016
Error 1017 received logging on to the standby
------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
      returning error ORA-16191
------------------------------------------------------------
且在standby中无法自动生成theard2的standby_redo2-*.log,
但RAC节点1却是可以跟standby同步成功,
跟翻看了一些资料,官方文档对remote_login_passwordfile的解释:only one instance of one database使用exclusive方式,那配置shared值的口令文件就应该是可以被一台服务器上的多个数据库或者RAC集群数据库共享;
解决方法:
将Exclusive转变为shared
@RAC节点1
cd $ORACLE_HOME/dbs
mv orapwJSTDB1 orapw.bak
@RAC节点2
cd $ORACLE_HOME/dbs
mv orapwJSTDB2 orapw.bak
alter system set remote_login_passwordfile=shared scope=spfile sid='*';  

重启RAC数据库
srvctl stop database -d JSTDB

srvctl start database -d JSTDB

@standby备库
cd $ORACLE_HOME/dbs
mv orapwJSTDB2 orapw.bak
alter system set remote_login_passwordfile=shared scope=spfile;  

重启备库

shutdown immediate
startup nomount  

重新生成shared方式的密码文件并复制到所有节点,错误解决.

4)由于RAC环境下的onlinelog建库时是默认放了两份,一份在+DATA下,一份是在+FRA下;但*.log_file_name_convert日志转换路径少了+FRA这一份,导致RMAN duplicate数据库到备库时,onlinelog无法自动生成:
wKioL1cFxhuyEgp6AAB3z1AyaDw243.jpg
解决方法:
主库的日志转换参数为:
log_file_name_convert='备库onlinelog路径','主库onlinelog路径1','备库onlinelog路径','主库onlinelog路径2','备库archivelog路径','主库archivelog路径' SCOPE=spfile sid='*';
ALTER SYSTEM SET log_file_name_convert='/u01/app/oracle/oradata/JSTDG1/onlinelog/','+DATA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/onlinelog/','/u01/arch/JSTDG1/','+FRA/JSTDB/ARCHIVELOG/' SCOPE=spfile sid='*';

备库的日志转换为:
log_file_name_convert='主库onlinelog路径1','备库onlinelog路径','主库onlinelog路径2','备库onlinelog路径','主库archivelog路径','备库archivelog路径'
*.log_file_name_convert='+DATA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/onlinelog/','/u01/app/oracle/oradata/JSTDG1/onlinelog/','+FRA/JSTDB/ARCHIVELOG/','/u01/arch/JSTDG1/'

5)RAC环境一开始设置了两个归档日志的路径,导致rman备份时无法读取RAC另外一个节点的归档日志而导致备份失败

ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+FRA/JSTDB/ARCHIVELOG/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JSTDB' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/u01/arch/JSTDB/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JSTDB' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=JSTDG1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JSTDG1' scope=both sid='*';  

即便archive log list显示的路径是
Archive destination       +FRA/jstdb/archivelog/
一样报错:
wKiom1cFxZmCMWA4AAArrmy_IL0112.jpg
解决方法:只保留在ASM磁盘组的归档目录
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='' scope=both sid='*';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=JSTDG1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JSTDG1' scope=both sid='*';

P.S.如有错误,敬请看官指正;不胜感激!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-201532-1-1.html 上篇帖子: oracle密码文件的重建 下篇帖子: oracle数据库总结 解决方案 虚拟机 空间 如何 单机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表