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

[经验分享] Oracle RAC+ASM+DataGuard配置

[复制链接]

尚未签到

发表于 2018-9-23 15:08:11 | 显示全部楼层 |阅读模式
  1、环境规划:
  ---RAC环境介绍(primary database)
  rac1       rac2
  ______________________________________________________
  public ip                    192.168.110.11        192.168.110.12
  ______________________________________________________
  virtual ip      192.168.110.21     192.168.110.22
  _____________________________________________________
  instance            racdb1          racdb2
  ______________________________________________________
  db_name                  racdb
  _______________________________________________________
  storage mode                ASM
  __________________________________________________
  ---单机环境介绍(standby database)
  数据文件可放至本地, 也可以放至ASM上,本实验中先放至本地实验
  __________________________________________________________________________
  ip                    192.168.110.11        192.168.110.12
  ___________________________________________________________________________
  instance              192.168.110.13(rac3)
  ___________________________________________________________________________
  storage mode     /oradata/racdb
  ___________________________________________________________________________
  ----hosts文件
  #Public Network - (eth0)
  192.168.110.11   rac1
  192.168.110.12   rac2
  192.168.110.13   rac3
  #Private Interconnect - (eth1)
  10.10.10.11     rac1priv
  10.10.10.12     rac2priv
  #Public Virtual IP (VIP) addresses - (eth0)
  192.168.110.21   rac1vip
  192.168.110.22   rac2vip
  --检查环境
  1)、启动archivelog归档模式
  SQL> archive log list;
  Database log mode              Archive Mode
  Automatic archival             Enabled
  Archive destination            USE_DB_RECOVERY_FILE_DEST
  Oldest online log sequence     54
  Next log sequence to archive   56
  Current log sequence           56
  SQL> show parameter RECOVERY
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ---------------------------
  ---
  db_recovery_file_dest                string      +DG_RECOVERY
  db_recovery_file_dest_size           big integer 2G
  recovery_parallelism                 integer     0
  2)、启动FORCE_LOGGING模式

  SQL>>
  Database>  SQL> select FORCE_LOGGING from v$database;
  FOR
  ---
  YES
  2、首先配置两个数据库的tnsnames.ora和listener.ora
  tnsnames.ora(两台主机相同)
  racdb_rac1 =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.21)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = racdb_s)
  (SERVICE_NAME = racdb1)
  )
  )
  racdb_rac2 =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.22)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = racdb_s)
  (SERVICE_NAME = racdb2)
  )
  )
  racdb_standby =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.13)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = racdb)
  )
  )
  standby主机上的listener.ora
  SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = racdb)
  (ORACLE_HOME = /oracle/app/product/10.2.0/db_1)
  (SID_NAME = racdb)
  )
  (SID_DESC =
  (GLOBAL_DBNAME = PLSExtProc)
  (ORACLE_HOME = /oracle/app/product/10.2.0/db_1)
  (SID_NAME = PLSExtProc)
  )
  )
  LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.13)(PORT = 1521))
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )
  )
  3、准备参数文件
  RAC环境下的参数变化增加如下:
  RAC主库:(注意使用ASM的时候,不要改变db_unique_name参数,否则之后创建的asm文
  件就会放入至新的db_unique_name目录下面,导致DB_FILE_NAME_CONVERT失效。)
  #add below parameter for standy database
  *.service_names=racdb_s
  *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(racdb,racdb_standby)'
  *.LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=
  (ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=racdb'
  *.LOG_ARCHIVE_DEST_2='SERVICE=racdb_standby LGWR VALID_FOR=
  (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=racdb_standby'
  *.FAL_SERVER='racdb_standby'
  *.STANDBY_ARCHIVE_DEST='/oradata/arch'
  *.racdb1.fal_client=racdb1
  *.racdb2.fal_client=racdb2
  *.STANDBY_FILE_MANAGEMENT=AUTO
  *.DB_FILE_NAME_CONVERT='/oradata/racdb/datafile','+DG_DATA/racdb/datafile','/
  oradata/racdb/tempfile','+DG_DATA/racdb/tempfile'
  *.LOG_FILE_NAME_CONVERT='/oradata/racdb/onlinelog','+DG_DATA/racdb/onlinelog'
  单机备库增加以下:
  *.db_name='racdb'
  *.db_unique_name='racdb_standby'
  *.service_names='racdb_standby'
  *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(racdb_standby,racdb)'
  *.LOG_ARCHIVE_DEST_1='LOCATION=/oradata/arch VALID_FOR=
  (ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=racdb_standby'
  *.LOG_ARCHIVE_DEST_2='SERVICE=racdb1 LGWR VALID_FOR=
  (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=racdb'
  *.STANDBY_FILE_MANAGEMENT='AUTO'
  STANDBY_ARCHIVE_DEST='/oradata/arch'
  *.FAL_SERVER='racdb1','racdb2'
  fal_client='racdb_standby'
  *.DB_FILE_NAME_CONVERT='+DG_DATA/racdb/datafile','/oradata/racdb/datafile','+
  DG_DATA/racdb/tempfile','/oradata/racdb/tempfile'
  *.LOG_FILE_NAME_CONVERT='+DG_DATA/racdb/onlinelog','/oradata/racdb/onlinelog'
  *
  racdb1.thread=1
  *.undo_management='AUTO'
  单机备库参数如下:
  #add below parameter for standy database
  *.audit_file_dest='/oracle/app/admin/racdb/adump'
  *.background_dump_dest='/oracle/app/admin/racdb/bdump'
  *.compatible='10.2.0.4'
  *.control_files='/oradata/racdb/datafile/racdb.ctl'
  *.core_dump_dest='/oracle/app/admin/racdb/cdump'
  *.db_block_size=16384
  *.db_domain=''
  *.db_name='racdb'
  *.db_file_multiblock_read_count=16
  *.DB_FILE_NAME_CONVERT='+DG_DATA/racdb/datafile','/oradata/racdb/datafile','+
  DG_DATA/racdb/tempfile','/oradata/racdb/tempfile'
  *.db_unique_name='racdb_standby'
  fal_client='racdb_standby'
  *.FAL_SERVER='racdb1','racdb2'
  *.job_queue_processes=10
  *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(racdb_standby,racdb_s)'
  *.LOG_ARCHIVE_DEST_1='LOCATION=/oradata/arch VALID_FOR=
  (ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=racdb_standby'
  *.LOG_ARCHIVE_DEST_2='SERVICE=racdb1 LGWR VALID_FOR=
  (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=racdb'
  *.LOG_FILE_NAME_CONVERT='+DG_DATA/racdb/onlinelog','/oradata/racdb/onlinelog'
  *.open_cursors=300
  *.pga_aggregate_target=89128960
  *.processes=150
  *.remote_login_passwordfile='exclusive'
  *.service_names='racdb_standby'
  *.sga_target=268435456
  *.STANDBY_FILE_MANAGEMENT='AUTO'
  racdb1.thread=1
  *.undo_management='AUTO'
  racdb1.undo_tablespace='UNDOTBS1'
  *.user_dump_dest='/oracle/app/admin/racdb/udump'
  STANDBY_ARCHIVE_DEST='/oradata/arch'
  5、在rac上进行备份
  rman target /
  backup database  format '/soft/racdb/racdbfull%u_%s_%p';
  RMAN> backup database  format '/soft/racdb/racdbfull%u_%s_%p';
  Starting backup at 11-JUN-10
  using target database control file instead of recovery catalog
  allocated channel: ORA_DISK_1
  channel ORA_DISK_1: sid=127 instance=racdb1 devtype=DISK
  channel ORA_DISK_1: starting full datafile backupset
  channel ORA_DISK_1: specifying datafile(s) in backupset
  including current SPFILE in backupset
  including current control file in backupset
  input datafile fno=00001 name=+DG_DATA/racdb/datafile/system.268.719166757
  input datafile fno=00002 name=+DG_DATA/racdb/datafile/undotbs1.269.719166777
  input datafile fno=00003 name=+DG_DATA/racdb/datafile/sysaux.270.719166783
  input datafile fno=00004 name=+DG_DATA/racdb/datafile/undotbs2.272.719166797
  input datafile fno=00006 name=+DG_DATA/racdb/datafile/rman_tbs.dbf
  input datafile fno=00005 name=+DG_DATA/racdb/datafile/users.273.719166803
  channel ORA_DISK_1: starting piece 1 at 11-JUN-10
  channel ORA_DISK_1: finished piece 1 at 11-JUN-10
  piece handle=/soft/racdb/racdbfull0elfvhv4_14_1 tag=TAG20100611T143204
  comment=NONE
  channel ORA_DISK_1: backup set complete, elapsed time: 00:00:38
  Finished backup at 11-JUN-10
  将备份的文件拷到另一台备机相同目录下。
  [oracle@rac1 racdb]$ ls -ls
  total 498268
  498268 -rw-r----- 1 oracle oinstall 509722624 Jun 11 12:10
  racdbfull_0clfv9jn_12_1
  [oracle@rac1 racdb]$ pwd
  /soft/racdb
  [oracle@rac1 racdb]$ scp racdbfull_0clfv9jn_12_1 rac3:/soft/racdb/
  6、创建standby控制文件
  在rac两个实例上进行几次归档。
  alter system archive log current;
  创建standby控制文件
  alter database create standby controlfile as '/oracle/standby.ctl';
  创建spfile并启动standby至nomount状态。
  startup nomount;
  7、利用rman创建standby数据库
  rac1:
  rman target / auxiliary [email=sys/sys@racdb_standby]sys/sys@racdb_standby
  [/email]
  allocate channel c1 device type disk format '/soft/racdb/%U' connect
  [email=sys/6212327@rac1]sys/6212327@rac1[/email];
  allocate channel c2 device type disk format '/soft/racdb/%U' connect
  [email=sys/6212327@rac2]sys/6212327@rac2[/email];
  allocate auxiliary channel ac1 device type disk format '/soft/racdb/%U';
  allocate auxiliary channel ac2 device type disk format '/soft/racdb/%U';
  duplicate target database for standby;
  过程如下:
  [oracle@rac1 racdb]$ rman target / auxiliary [email=sys/sys@racdb_standby]
  sys/sys@racdb_standby[/email]

  Recovery Manager:>  Copyright (c) 1982, 2007, Oracle.  All rights reserved.
  connected to target database: RACDB (DBID=716783510)
  connected to auxiliary database: RACDB (not mounted)
  RMAN> duplicate target database for standby;
  Starting Duplicate Db at 11-JUN-10
  using target database control file instead of recovery catalog
  allocated channel: ORA_AUX_DISK_1
  channel ORA_AUX_DISK_1: sid=155 devtype=DISK
  contents of Memory Script.:
  {
  restore clone standby controlfile;
  sql clone 'alter database mount standby database';
  }
  executing Memory Script
  Starting restore at 11-JUN-10
  using channel ORA_AUX_DISK_1
  channel ORA_AUX_DISK_1: restoring control file
  channel ORA_AUX_DISK_1: copied control file copy
  input filename=/oracle/standby.ctl
  output filename=/oradata/racdb/datafile/racdb.ctl
  Finished restore at 11-JUN-10

  sql statement:>  released channel: ORA_AUX_DISK_1
  contents of Memory Script.:
  {
  set newname for tempfile  1 to
  "/oradata/racdb/tempfile/temp.271.719166789";
  switch clone tempfile all;
  set newname for datafile  1 to
  "/oradata/racdb/datafile/system.268.719166757";
  set newname for datafile  2 to
  "/oradata/racdb/datafile/undotbs1.269.719166777";
  set newname for datafile  3 to
  "/oradata/racdb/datafile/sysaux.270.719166783";
  set newname for datafile  4 to
  "/oradata/racdb/datafile/undotbs2.272.719166797";
  set newname for datafile  5 to
  "/oradata/racdb/datafile/users.273.719166803";
  set newname for datafile  6 to
  "/oradata/racdb/datafile/rman_tbs.dbf";
  restore
  check readonly
  clone database
  ;
  }
  executing Memory Script
  executing command: SET NEWNAME
  renamed temporary file 1 to /oradata/racdb/tempfile/temp.271.719166789 in
  control file
  executing command: SET NEWNAME
  executing command: SET NEWNAME
  executing command: SET NEWNAME
  executing command: SET NEWNAME
  executing command: SET NEWNAME
  executing command: SET NEWNAME
  Starting restore at 11-JUN-10
  allocated channel: ORA_AUX_DISK_1
  channel ORA_AUX_DISK_1: sid=155 devtype=DISK
  channel ORA_AUX_DISK_1: starting datafile backupset restore
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  restoring datafile 00001 to /oradata/racdb/datafile/system.268.719166757
  restoring datafile 00002 to /oradata/racdb/datafile/undotbs1.269.719166777
  restoring datafile 00003 to /oradata/racdb/datafile/sysaux.270.719166783
  restoring datafile 00004 to /oradata/racdb/datafile/undotbs2.272.719166797
  restoring datafile 00005 to /oradata/racdb/datafile/users.273.719166803
  restoring datafile 00006 to /oradata/racdb/datafile/rman_tbs.dbf
  channel ORA_AUX_DISK_1: reading from backup piece
  /soft/racdb/racdbfull_0clfv9jn_12_1
  channel ORA_AUX_DISK_1: restored backup piece 1
  piece handle=/soft/racdb/racdbfull_0clfv9jn_12_1 tag=TAG20100611T120926
  channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:39
  Finished restore at 11-JUN-10
  contents of Memory Script.:
  {
  switch clone datafile all;
  }
  executing Memory Script
  datafile 1 switched to datafile copy
  input datafile copy recid=10 stamp=721116136
  filename=/oradata/racdb/datafile/system.268.719166757
  datafile 2 switched to datafile copy
  input datafile copy recid=11 stamp=721116137
  filename=/oradata/racdb/datafile/undotbs1.269.719166777
  datafile 3 switched to datafile copy
  input datafile copy recid=12 stamp=721116137
  filename=/oradata/racdb/datafile/sysaux.270.719166783
  datafile 4 switched to datafile copy
  input datafile copy recid=13 stamp=721116137
  filename=/oradata/racdb/datafile/undotbs2.272.719166797
  datafile 5 switched to datafile copy
  input datafile copy recid=14 stamp=721116137
  filename=/oradata/racdb/datafile/users.273.719166803
  datafile 6 switched to datafile copy
  input datafile copy recid=15 stamp=721116137
  filename=/oradata/racdb/datafile/rman_tbs.dbf
  Finished Duplicate Db at 11-JUN-10
  RMAN>
  8、检查standby数据库
  SQL> select status from v$instance;
  STATUS
  ------------
  MOUNTED
  SQL> select open_mode from v$database;
  OPEN_MODE
  ----------
  MOUNTED
  SQL> select member from v$logfile;
  MEMBER
  ----------------------------------------------------------------------------
  ----
  /oradata/racdb/onlinelog/group_1.266.719166749
  /oradata/racdb/onlinelog/group_2.267.719166751
  /oradata/racdb/onlinelog/group_3.274.719167937
  /oradata/racdb/onlinelog/group_4.275.719167939
  /oradata/racdb/onlinelog/group5
  /oradata/racdb/onlinelog/group6
  6 rows selected.
  SQL> select name from v$datafile;
  NAME
  ----------------------------------------------------------------------------
  ----
  /oradata/racdb/datafile/system.268.719166757
  /oradata/racdb/datafile/undotbs1.269.719166777
  /oradata/racdb/datafile/sysaux.270.719166783
  /oradata/racdb/datafile/undotbs2.272.719166797
  /oradata/racdb/datafile/users.273.719166803
  /oradata/racdb/datafile/rman_tbs.dbf
  6 rows selected.
  SQL> select name from v$tempfile;
  NAME
  ----------------------------------------------------------------------------
  ----
  /oradata/racdb/tempfile/temp.271.719166789
  SQL> show parameter control
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ---------------------------
  ---
  control_file_record_keep_time        integer     7
  control_files                        string
  /oradata/racdb/datafile/racdb.
  ctl
  9、创建standby redo log日志。
  创建原则和单实例一样,大小相等,但日志组数量要比primary数据库多一组。如之前为
  6组12个,则现在要创建7组14个。
  alter database add standby logfile thread 1 group 7

  '/oradata/racdb/onlinelog/group_7.log'>  alter database add standby logfile thread 1 group 8

  '/oradata/racdb/onlinelog/group_8.log'>  alter database add standby logfile thread 1 group 9

  '/oradata/racdb/onlinelog/group_9.log'>  alter database add standby logfile thread 2 group 10

  '/oradata/racdb/onlinelog/group_10.log'>  alter database add standby logfile thread 2 group 11

  '/oradata/racdb/onlinelog/group_11.log'>  alter database add standby logfile thread 2 group 12

  '/oradata/racdb/onlinelog/group_12.log'>  alter database add standby logfile thread 1 group 13

  '/oradata/racdb/onlinelog/group_13.log'>  alter database add standby logfile thread 2 group 14

  '/oradata/racdb/onlinelog/group_14.log'>  10、开始同步
  启动MRP:

  SQL>>  Media recovery complete.
  停止MRP:
  alter database recover managed standby database cancel;
  11、在rac各个实例上查看日志传送情况:
  col DEST_NAME format a20
  select dest_name,status,error from v$archive_dest;
  DEST_NAME            STATUS    ERROR
  -------------------- --------- ---------------------------------------------
  --------------------
  LOG_ARCHIVE_DEST_1   INACTIVE
  LOG_ARCHIVE_DEST_2   ERROR     ORA-16057: DGID from server not in Data Guard
  configuration
  LOG_ARCHIVE_DEST_3   INACTIVE
  LOG_ARCHIVE_DEST_4   INACTIVE
  LOG_ARCHIVE_DEST_5   INACTIVE
  LOG_ARCHIVE_DEST_6   INACTIVE
  LOG_ARCHIVE_DEST_7   INACTIVE
  LOG_ARCHIVE_DEST_8   INACTIVE
  LOG_ARCHIVE_DEST_9   INACTIVE
  LOG_ARCHIVE_DEST_10  VALID
  错误1:
  ORA-16057: DGID from server not in Data Guard configuration
  原因:主库没有设置参数log_archive_config
  解决方法*.log_archive_config='dg_config=(orcl,auxdb)'
  alter system set log_archive_config='dg_config=(racdb,racdb_standby)'
  scope=both;
  SQL> select dest_name,status,error from v$archive_dest;
  DEST_NAME            STATUS    ERROR
  -------------------- --------- ---------------------------------------------
  --------------------
  LOG_ARCHIVE_DEST_1   VALID
  LOG_ARCHIVE_DEST_2   VALID
  LOG_ARCHIVE_DEST_3   INACTIVE
  LOG_ARCHIVE_DEST_4   INACTIVE
  LOG_ARCHIVE_DEST_5   INACTIVE
  LOG_ARCHIVE_DEST_6   INACTIVE
  LOG_ARCHIVE_DEST_7   INACTIVE
  LOG_ARCHIVE_DEST_8   INACTIVE
  LOG_ARCHIVE_DEST_9   INACTIVE
  LOG_ARCHIVE_DEST_10  INACTIVE
  10 rows selected
  ---测试看日志是否传送成功。
  主库:
  Sql>alter system switch logfile;
  Sql> select max(SEQUENCE#) from v$archived_log;
  备库:
  Sql> select max(SEQUENCE#) from v$archived_log;
  #或者更详细的:select FIRST_TIME,NEXT_TIME, APPLIED,SEQUENCE# from
  v$archived_log order by SEQUENCE#;
  SELECT MAX(R.SEQUENCE#) LAST_SEQ_RECD, MAX(L.SEQUENCE#) LAST_SEQ_SENT FROM
  V$ARCHIVED_LOG R, V$LOG L WHERE R.DEST_ID=2 AND   L.ARCHIVED='YES'
  SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE#
  BETWEEN 85 AND 86;
  测试在RAC主库上创建一个表空间:
  CREATE TABLESPACE FMISMAIN
  LOGGING

  DATAFILE '+dg_data'>  ON NEXT  10M EXTENT MANAGEMENT LOCAL SEGMENT SPACE
  MANAGEMENT  AUTO;
  创建用户:
  CREATE USER "FMISMAIN"  PROFILE "DEFAULT"

  >  TEMPORARY TABLESPACE "TEMP"
  ACCOUNT UNLOCK;
  GRANT DBA TO "FMISMAIN";
  SQL> select name from v$datafile;
  NAME
  ----------------------------------------------------------------------------
  ----
  +DG_DATA/racdb/datafile/system.268.719166757
  +DG_DATA/racdb/datafile/undotbs1.269.719166777
  +DG_DATA/racdb/datafile/sysaux.270.719166783
  +DG_DATA/racdb/datafile/undotbs2.272.719166797
  +DG_DATA/racdb/datafile/users.273.719166803
  +DG_DATA/racdb/datafile/rman_tbs.dbf
  +DG_DATA/racdb/datafile/fmismain.287.721410885
  SQL> conn fmismain/fmismain
  Connected.
  SQL> select count(*) from xtdw3;
  COUNT(*)
  ----------
  30
  SQL> select dh from xtdw3;
  DH
  --------
  MAIN
  0600
  0601
  1200
  1201
  0602
  0100
  0101
  0400
  0401
  0500
  DH
  --------
  0501
  0700
  0701
  1300
  1301
  1800
  1801
  1900
  1901
  5100
  5101
  DH
  --------
  5300
  5301
  0301
  0300
  1500
  1501
  1600
  1601
  30 rows selected.
  在两个RAC实例上分别手工执行查看结果:

  SQL>>
  System>  SQL> /

  System>  SQL> /

  System>  检查rac3备库的日志传送:
  [oracle@rac3 oradata]$ ls -lsR
  total 24
  4 drwxr-xr-x 2 oracle oinstall  4096 Jun 11 16:15 arch
  16 drwxrwxrwx 2 oracle dba      16384 Jun  8 03:21 lost+found
  4 drwxr-xr-x 5 oracle oinstall  4096 Jun  8 03:25 racdb
  ./arch:
  total 4888
  36 -rw-r----- 1 oracle oinstall   36352 Jun  8 07:26 1_76_719166742.dbf
  76 -rw-r----- 1 oracle oinstall   73728 Jun  8 07:26 1_77_719166742.dbf
  152 -rw-r----- 1 oracle oinstall  151040 Jun  8 07:26 1_78_719166742.dbf
  168 -rw-r----- 1 oracle oinstall  165888 Jun  8 07:26 1_79_719166742.dbf
  168 -rw-r----- 1 oracle oinstall  166400 Jun  8 07:51 1_80_719166742.dbf
  148 -rw-r----- 1 oracle oinstall  144896 Jun  8 07:51 1_81_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    1024 Jun  8 07:51 1_82_719166742.dbf
  144 -rw-r----- 1 oracle oinstall  140288 Jun  8 07:51 1_83_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    1024 Jun  8 07:42 1_84_719166742.dbf
  72 -rw-r----- 1 oracle oinstall   66048 Jun  8 07:47 1_85_719166742.dbf
  1464 -rw-r----- 1 oracle oinstall 1492992 Jun  8 08:25 1_86_719166742.dbf
  16 -rw-r----- 1 oracle oinstall   13824 Jun 11 16:15 1_87_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    2560 Jun 11 16:15 1_88_719166742.dbf
  24 -rw-r----- 1 oracle oinstall   23040 Jun  8 07:27 2_36_719166742.dbf
  176 -rw-r----- 1 oracle oinstall  175104 Jun  8 07:27 2_37_719166742.dbf
  148 -rw-r----- 1 oracle oinstall  143872 Jun  8 07:27 2_38_719166742.dbf
  768 -rw-r----- 1 oracle oinstall  778752 Jun  8 07:51 2_39_719166742.dbf
  152 -rw-r----- 1 oracle oinstall  149504 Jun  8 07:51 2_40_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    1024 Jun  8 07:51 2_41_719166742.dbf
  140 -rw-r----- 1 oracle oinstall  139264 Jun  8 07:43 2_42_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    1024 Jun  8 07:42 2_43_719166742.dbf
  60 -rw-r----- 1 oracle oinstall   54272 Jun  8 07:51 2_44_719166742.dbf
  948 -rw-r----- 1 oracle oinstall  963584 Jun 11 16:14 2_45_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    2048 Jun 11 16:15 2_46_719166742.dbf
  4 -rw-r----- 1 oracle oinstall    1536 Jun 11 16:15 2_47_719166742.dbf
  ./lost+found:
  total 0
  ./racdb:
  total 12
  4 drwxr-xr-x 2 oracle oinstall 4096 Jun 11 16:14 datafile
  4 drwxr-xr-x 2 oracle oinstall 4096 Jun  8 06:55 onlinelog
  4 drwxr-xr-x 2 oracle oinstall 4096 Jun  8 08:05 tempfile
  ./racdb/datafile:
  total 1245228
  20520 -rw-r----- 1 oracle oinstall  20987904 Jun 11 16:22
  fmismain.287.721410885
  15076 -rw-r----- 1 oracle oinstall  15417344 Jun 11 16:29 racdb.ctl
  51272 -rw-r----- 1 oracle oinstall  52445184 Jun 11 16:22 rman_tbs.dbf
  215272 -rw-r----- 1 oracle oinstall 220217344 Jun 11 16:22
  sysaux.270.719166783
  440772 -rw-r----- 1 oracle oinstall 450904064 Jun 11 16:22
  system.268.719166757
  292148 -rw-r----- 1 oracle oinstall 298860544 Jun 11 16:22
  undotbs1.269.719166777
  205020 -rw-r----- 1 oracle oinstall 209731584 Jun 11 16:22
  undotbs2.272.719166797
  5148 -rw-r----- 1 oracle oinstall   5259264 Jun 11 16:22
  users.273.719166803
  ./racdb/onlinelog:
  total 717640
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun 11 16:29 group_10.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:26 group_11.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55
  group_1.266.719166749
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:47 group_12.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:37 group_13.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:37 group_14.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55
  group_2.267.719166751
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55
  group_3.274.719167937
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55
  group_4.275.719167939
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55 group5
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 06:55 group6
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun 11 16:29 group_7.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:25 group_8.log
  51260 -rw-r----- 1 oracle oinstall 52429312 Jun  8 07:39 group_9.log
  ./racdb/tempfile:
  total 84
  84 -rw-r----- 1 oracle oinstall 20987904 Jun  8 08:05 temp.271.719166789
  在备库中查看刚才创建的表空间与用户是否生效。
  首先将数据库启动到read only模式下:

  SQL>>
  Database>
  SQL>>
  Database>  SQL> !hostname
  rac3
  SQL>
  SQL> conn fmismain/fmismain
  Connected.
  SQL> show parameter db_unique
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ---------------------------
  ---
  db_unique_name                       string      racdb_standby
  SQL>
  SQL> select count(*) from xtdw3;
  COUNT(*)
  ----------
  30
  SQL> select dh from xtdw3;
  DH
  --------
  MAIN
  0600
  0601
  1200
  1201
  0602
  0100
  0101
  0400
  0401
  0500
  DH
  --------
  0501
  0700
  0701
  1300
  1301
  1800
  1801
  1900
  1901
  5100
  5101
  DH
  --------
  5300
  5301
  0301
  0300
  1500
  1501
  1600
  1601
  30 rows selected.
  12、增加temp文件
  ---在管理恢复模式下到只读模式
  SQL>alter database recover managed standby database cancel;
  SQL>alter database open read only;
  这个时候,可以给数据库增加临时数据文件(这个在热备份的时候是没有备份过来的)
  alter tablespace temp add tempfile
  '/oradata/racdb/tempfile/temp.271.719166789' reset 100M;
  --从只读方式到管理恢复方式
  SQL>recover managed standby database disconnect from session;
  13、少日志的时候,维护故障解决
  故障1
  由于网络等原因导致归档日志没有全部传输到从库中,这些需要我们手动干预。
  常见因素:从库关闭、网络故障、从库空间不足等。
  维护的通常步骤;关闭:先关主库后关从库,启动:先启动从库然后启动主库。
  关于日志传输的控制可以通过MANDATORY、REOPEN、MAX_FAILURE来控制
  MANDATORY REOPEN=5 MAX_FAILURE=3 每5秒重试一次,最大允许错误次数为3次,如果重
  试3次仍然不能成功,那么主库的日志传输服务就会停止。
  *.log_archive_dest_2='service=AUX VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  MANDATORY REOPEN=5 MAX_FAILURE=3 DB_UNIQUE_NAME=auxdb'
  1)、查找不在standby的日志。
  SQL>
  SELECT MAX(R.SEQUENCE#) LAST_SEQ_RECD, MAX(L.SEQUENCE#) LAST_SEQ_SENT FROM
  V$ARCHIVED_LOG R, V$LOG L WHERE R.DEST_ID=2 AND   L.ARCHIVED='YES';
  LAST_SEQ_RECD LAST_SEQ_SENT
  ------------- -------------
  7 10
  2)、查找primary的所在路径
  SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND
  SEQUENCE# BETWEEN 5 AND 10;
  NAME
  ----------------------------------------------------------------------------
  ----
  /primary/thread1_dest/arcr_1_7.arc
  /primary/thread1_dest/arcr_1_8.arc
  /primary/thread1_dest/arcr_1_9.arc
  3)、将日志copy到standby的STANDBY_ARCHIVE_DEST下,将STANDBY_ARCHIVE_DEST的日志
  copy到 LOG_ARCHIVE_DEST下
  4)、
  SQL> STARTUP MOUNT

  SQL>>
  SQL>>  至此恢复成功。
  故障2:
  归档日志之间经常产生gap
  1)、确认归档日志之间有无遗漏
  SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
  THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
  ---------- ------------- --------------
  1 90 92
  2)、将遗漏的归档日志copy到备库的standby_archive_dest下
  然后对其分别注册
  ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
  3)、恢复归档日志

  SQL>>  4)、然后就可以按切换步骤进行切换了。
  14、 参数说明
  COMPATIBLE='10.2.0.1.0':数据库版本号,主库与从库要统一,否则有可能redo的数据
  不能从主库传送到从库。
  DB_FILE_NAME_CONVERT=主库数据文件地址,从库数据文件地址:用于主从库在同一台机
  器上或主从库数据文件的路径不一致的情况下
  DB_UNIQUE_NAME=:数据库的唯一名称。推荐使用,如果使用了LOG_ARCHIVE_CONFIG,那
  么就必须有改参数。
  FAL_CLIENT=,指向从库的服务名,本例为aux
  FAL_SERVER 指向主库的服务名,本例为orcl
  LOG_ARCHIVE_CONFIG='DG_CONFIG=(主库的db_unique_name,从库的db_unique_name)'
  LOG_ARCHIVE_DEST_n:日志归档的地址,最少需要两个,一个指向主库,另一个指向从库
  LOG_ARCHIVE_DEST_STATE_n ={ENABLE|DEFER|ALTERNATE|RESET} 指定:enable or
  disable来决定是否传输redo的数据到从库中。
  LOG_FILE_NAME_CONVERT:同DB_FILE_NAME_CONVERT
  STANDBY_ARCHIVE_DEST:指定路径存放接收从主库传输过来的归档日志。
  STANDBY_FILE_MANAGEMENT={AUTO|MANUAL} :AUTO当主库添加或减少数据文件时会自动同
  步从库而不需要手动干预。
  15、 经常遇到错误
  错误1:
  ORA-16057: DGID from server not in Data Guard configuration
  原因:主库没有设置参数log_archive_config
  http://www.cqsrt.com/show/?id=1838


运维网声明 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.iyunv.com/thread-600358-1-1.html 上篇帖子: Mariadb Thread Pool VS Oracle MySQL Enterprise 下篇帖子: 小型机&oracle&tuxedo-cxkong
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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