Oracle Dataguard(主库为双节点集群)配置详解(3):配置主库 ...

打印 上一主题 下一主题

主题 1691|帖子 1691|积分 5073

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Oracle Dataguard(主库为双节点集群)配置详解(3):配置主库


  
一、开启归档

  1. -- 查看主库归档状态
  2. SQL> archive log list;
  3. Database log mode               No Archive Mode
  4. Automatic archival               Disabled
  5. Archive destination               USE_DB_RECOVERY_FILE_DEST
  6. Oldest online log sequence     4
  7. Current log sequence               5
  8. -- 停库
  9. SQL> shutdown immediate;
  10. Database closed.
  11. Database dismounted.
  12. ORACLE instance shut down.
  13. -- 启动数据库到mount状态
  14. SQL> startup mount;
  15. ORACLE instance started.
  16. Total System Global Area  626327552 bytes
  17. Fixed Size                    2255832 bytes
  18. Variable Size                  297796648 bytes
  19. Database Buffers          322961408 bytes
  20. Redo Buffers                    3313664 bytes
  21. Database mounted.
  22. -- 修改数据库为归档模式
  23. SQL> alter database archivelog;
  24. Database altered.
  25. -- 打开数据库
  26. SQL> alter database open;
  27. Database altered.
  28. -- 查看归档状态
  29. SQL> archive log list;
  30. Database log mode               Archive Mode
  31. Automatic archival               Enabled
  32. Archive destination               USE_DB_RECOVERY_FILE_DEST
  33. Oldest online log sequence     4
  34. Next log sequence to archive   5
  35. Current log sequence               5
复制代码
二、开启欺压日记

  1. SQL> alter database force logging;
  2. Database altered.
复制代码
三、添加 standby 日记

创建主库的standby日记文件,每个实例的组数要比logfile多一组。
1、查看主库的日记信息

  1. -- 查看日志组
  2. select * from v$log;
  3. -- 查看日志文件
  4. select member from v$logfile;
  5. SQL> select * from v$log;
  6.     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE          MEMBERS ARC STATUS         FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
  7. ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
  8.          1            1              11  104857600           512                2 NO  CURRENT                      986498 09-JAN-25         2.8147E+14
  9.          2            1               0  104857600           512                2 YES UNUSED                           0                          0
  10.          3            1               0  104857600           512                2 YES UNUSED                           0                          0
  11.          4            2               9  104857600           512                2 NO  CURRENT                      986588 09-JAN-25         2.8147E+14
  12.          5            2               0  104857600           512                2 YES UNUSED                           0                          0
  13.          6            2               0  104857600           512                2 YES UNUSED                           0                          0
  14. 6 rows selected.
  15. SQL> select member from v$logfile;
  16. MEMBER
  17. ------------------------------------------------------------------------
  18. +DATA/hisdb/onlinelog/group_1.266.1189965499
  19. +BAK/hisdb/onlinelog/group_1.260.1189965507
  20. +DATA/hisdb/onlinelog/group_2.265.1189965519
  21. +BAK/hisdb/onlinelog/group_2.259.1189965527
  22. +DATA/hisdb/onlinelog/group_3.262.1189965537
  23. +BAK/hisdb/onlinelog/group_3.275.1189965547
  24. +DATA/hisdb/onlinelog/group_4.261.1189965557
  25. +BAK/hisdb/onlinelog/group_4.276.1189965567
  26. +DATA/hisdb/onlinelog/group_5.272.1189965577
  27. +BAK/hisdb/onlinelog/group_5.277.1189965587
  28. +DATA/hisdb/onlinelog/group_6.273.1189965595
  29. +BAK/hisdb/onlinelog/group_6.278.1189965603
  30. 12 rows selected.
复制代码
2、添加 standby log

添加standby log必须和redo log巨细一样,数量为:standby logfile=(1+logfile组数)*thread=(1+3)*2=8。
  1. alter database add standby logfile thread 1 group 11 size 100m;
  2. alter database add standby logfile thread 1 group 12 size 100m;
  3. alter database add standby logfile thread 1 group 13 size 100m;
  4. alter database add standby logfile thread 1 group 14 size 100m;
  5. alter database add standby logfile thread 2 group 15 size 100m;
  6. alter database add standby logfile thread 2 group 16 size 100m;
  7. alter database add standby logfile thread 2 group 17 size 100m;
  8. alter database add standby logfile thread 2 group 18 size 100m;
复制代码
3、重新查看日记信息

  1. SQL> select * from v$log;
  2.     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE          MEMBERS ARC STATUS               FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
  3. ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
  4.          1            1              11  104857600           512                2 NO  CURRENT                      986498 09-JAN-25         2.8147E+14
  5.          2            1               0  104857600           512                2 YES UNUSED                           0                          0
  6.          3            1               0  104857600           512                2 YES UNUSED                           0                          0
  7.          4            2               9  104857600           512                2 NO  CURRENT                      986588 09-JAN-25         2.8147E+14
  8.          5            2               0  104857600           512                2 YES UNUSED                           0                          0
  9.          6            2               0  104857600           512                2 YES UNUSED                           0                          0
  10. 6 rows selected.
  11. SQL> select * from v$Standby_log;
  12.     GROUP# DBID                                        THREAD#        SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS          FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAS
  13. T_CHANGE# LAST_TIME---------- ---------------------------------------- ---------- ---------------       
  14. 11 UNASSIGNED                                             1                0  104857600            512          0 YES UNASSIGNED
  15.         12 UNASSIGNED                                             1                0  104857600            512          0 YES UNASSIGNED
  16.         13 UNASSIGNED                                             1                0  104857600            512          0 YES UNASSIGNED
  17.         14 UNASSIGNED                                             1                0  104857600            512          0 YES UNASSIGNED
  18.         15 UNASSIGNED                                             2                0  104857600            512          0 YES UNASSIGNED
  19.         16 UNASSIGNED                                             2                0  104857600            512          0 YES UNASSIGNED
  20.         17 UNASSIGNED                                             2                0  104857600            512          0 YES UNASSIGNED
  21.         18 UNASSIGNED                                             2                0  104857600            512          0 YES UNASSIGNED
  22. 8 rows selected.
  23. SQL> select member from v$logfile;
  24. MEMBER
  25. ----------------------------------------------------------------------
  26. +DATA/hisdb/onlinelog/group_1.266.1189965499
  27. +BAK/hisdb/onlinelog/group_1.260.1189965507
  28. +DATA/hisdb/onlinelog/group_2.265.1189965519
  29. +BAK/hisdb/onlinelog/group_2.259.1189965527
  30. +DATA/hisdb/onlinelog/group_3.262.1189965537
  31. +BAK/hisdb/onlinelog/group_3.275.1189965547
  32. +DATA/hisdb/onlinelog/group_4.261.1189965557
  33. +BAK/hisdb/onlinelog/group_4.276.1189965567
  34. +DATA/hisdb/onlinelog/group_11.271.1189966083
  35. +BAK/hisdb/onlinelog/group_11.266.1189966091
  36. +DATA/hisdb/onlinelog/group_12.270.1189966101
  37. +BAK/hisdb/onlinelog/group_12.265.1189966111
  38. +DATA/hisdb/onlinelog/group_13.269.1189966121
  39. +BAK/hisdb/onlinelog/group_13.263.1189966129
  40. +DATA/hisdb/onlinelog/group_14.268.1189966139
  41. +BAK/hisdb/onlinelog/group_14.262.1189966147
  42. +DATA/hisdb/onlinelog/group_5.272.1189965577
  43. +BAK/hisdb/onlinelog/group_5.277.1189965587
  44. +DATA/hisdb/onlinelog/group_6.273.1189965595
  45. +BAK/hisdb/onlinelog/group_6.278.1189965603
  46. +DATA/hisdb/onlinelog/group_15.274.1189966155
  47. +BAK/hisdb/onlinelog/group_15.281.1189966167
  48. +DATA/hisdb/onlinelog/group_16.275.1189966175
  49. +BAK/hisdb/onlinelog/group_16.282.1189966183
  50. +DATA/hisdb/onlinelog/group_17.276.1189966193
  51. +BAK/hisdb/onlinelog/group_17.283.1189966201
  52. +DATA/hisdb/onlinelog/group_18.277.1189966209
  53. +BAK/hisdb/onlinelog/group_18.284.1189966215
  54. 28 rows selected.
复制代码
四、配置静态监听

1、配置 listener.ora 文件

切换到grid用户,在$ORACLE_HOME/network/admin/listener.ora文件中添加如下内容:
,GLOBAL_DBNAME配置为db_unique_name,SID_NAME配置为该节点ORACLE_SID
  1. [grid@rac01 ~]$ cd $ORACLE_HOME/network/admin
  2. [grid@rac01 admin]$ ls
  3. endpoints_listener.ora  listener2501091PM3305.bak  listener.ora  listener.ora.bak.rac01  samples  shrept.lst  sqlnet.ora
  4. # 节点1
  5. [grid@rac01 admin]$ vi listener.ora
  6. SID_LIST_LISTENER =
  7.   (SID_LIST =
  8.     (SID_DESC =
  9.      (GLOBAL_DBNAME = hisdb)
  10.      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
  11.      (SID_NAME = his1)
  12.     )
  13.    )
  14. # 节点2
  15. SID_LIST_LISTENER =
  16.   (SID_LIST =
  17.     (SID_DESC =
  18.      (GLOBAL_DBNAME = hisdb)
  19.      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
  20.      (SID_NAME = his2)
  21.     )
  22.    )
复制代码
配置完成后使用如下下令重启监听:
  1. lsnrctl stop
  2. lsnrctl start
复制代码
2、配置 tnsnames.ora 文件

切换到 oracle用户,在$ORACLE_HOME/network/admin/tnsnames.ora文件中添加如下内容。
  1. [oracle@rac01 ~]$ cd $ORACLE_HOME/network/admin
  2. [oracle@rac01 admin]$ ls
  3. samples  shrept.lst  tnsnames.ora
  4. # 节点1与节点2都需要配置,且内容相同
  5. # 其中 hisdb、hisdb1、hisdb2 的 host 配置分别为 rac-scan、节点1与节点2的IP地址,service_name配置为listener.ora文件中的GLOBAL_DBNAME也就是主库的db_unique_name
  6. # hisdbdg 的 service_name 为备库 db_unique_name
  7. [grid@rac01 admin]$ vi tnsnames.ora
  8. hisdb =
  9.   (DESCRIPTION =
  10.     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.21)(PORT = 1521))
  11.     (CONNECT_DATA =
  12.       (SERVER = DEDICATED)
  13.       (SERVICE_NAME = hisdb)
  14.     )
  15.   )
  16. hisdb1 =
  17.   (DESCRIPTION =
  18.     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.101)(PORT = 1521))
  19.     (CONNECT_DATA =
  20.       (SERVER = DEDICATED)
  21.       (SERVICE_NAME = hisdb)
  22.         (SID = his1)
  23.     )
  24.   )
  25. hisdb2 =
  26.   (DESCRIPTION =
  27.     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.102)(PORT = 1521))
  28.     (CONNECT_DATA =
  29.       (SERVER = DEDICATED)
  30.       (SERVICE_NAME = hisdb)
  31.         (SID = his2)
  32.     )
  33.   )
  34. dghisdb =
  35.   (DESCRIPTION =
  36.     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
  37.     (CONNECT_DATA =
  38.       (SERVER = DEDICATED)
  39.       (SERVICE_NAME = hisdbdg)
  40.     )
  41.   )
复制代码
3、测试连接

  1. tnsping hisdb
  2. tnsping hisdb1
  3. tnsping hisdb2
  4. tnsping hisdbdg
复制代码
五、修改主库的初始化参数

在节点1实行如下操作:
1、根据 spfile 生成 pfile 文件

  1. SQL> create pfile='/home/oracle/inithis.ora' from spfile;
  2. File created.
复制代码
2、修改 pfile 文件的内容如下

  1. [oracle@rac01 ~]$ vi /home/oracle/inithis.ora
  2. his2.__db_cache_size=385875968
  3. his1.__db_cache_size=369098752
  4. his1.__java_pool_size=4194304
  5. his2.__java_pool_size=4194304
  6. his1.__large_pool_size=8388608
  7. his2.__large_pool_size=8388608
  8. his1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
  9. his2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
  10. his1.__pga_aggregate_target=209715200
  11. his2.__pga_aggregate_target=209715200
  12. his1.__sga_target=629145600
  13. his2.__sga_target=629145600
  14. his1.__shared_io_pool_size=0
  15. his2.__shared_io_pool_size=0
  16. his2.__shared_pool_size=222298112
  17. his1.__shared_pool_size=239075328
  18. his1.__streams_pool_size=0
  19. his2.__streams_pool_size=0
  20. *.audit_file_dest='/u01/app/oracle/admin/hisdb/adump'
  21. *.audit_trail='db'
  22. *.cluster_database=true
  23. *.compatible='11.2.0.4.0'
  24. *.control_files='+DATA/hisdb/controlfile/current.260.1189953459','+BAK/hisdb/controlfile/current.256.1189953459'
  25. *.db_block_size=8192
  26. *.db_create_file_dest='+DATA'
  27. *.db_domain=''
  28. *.db_name='hisdb'
  29. *.db_recovery_file_dest='+BAK'
  30. *.db_recovery_file_dest_size=4621074432
  31. *.diagnostic_dest='/u01/app/oracle'
  32. *.dispatchers='(PROTOCOL=TCP) (SERVICE=hisXDB)'
  33. his2.instance_number=2
  34. his1.instance_number=1
  35. *.open_cursors=300
  36. *.pga_aggregate_target=209715200
  37. *.processes=150
  38. *.remote_listener='rac-scan:1521'
  39. *.remote_login_passwordfile='exclusive'
  40. *.sga_target=629145600
  41. his2.thread=2
  42. his1.thread=1
  43. his1.undo_tablespace='UNDOTBS1'
  44. his2.undo_tablespace='UNDOTBS2'
  45. # 在参数文件中添加以下内容:
  46. *.db_unique_name='hisdb'                           # 主数据库的唯一名,默认和数据库名一致
  47. *.log_archive_config='dg_config=(hisdb,hisdbdg)'   # 主库和备库在tnsname.ora中的连接名
  48. *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=hisdb'                             # 主数据库的唯一名
  49. *.log_archive_dest_2='service=hisdbdg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=hisdbdg'                           # 备用数据库的唯一名
  50. *.db_file_name_convert='/usr/local/oradata/hisdbdg/','+DATA/hisdb/datafile/'
  51. # 格式:
  52. # 主库配置格式: *.db_file_name_convert= 备用数据库数据文件目录,主数据库数据文件目录
  53. # 备库配置格式: *.db_file_name_convert= 主数据库数据文件目录,备用数据库数据文件目录
  54. *.log_file_name_convert='/usr/local/oradata/hisdbdg/','+DATA/hisdb/onlinelog/'
  55. *.log_archive_dest_state_1=enable
  56. *.log_archive_dest_state_2=enable
  57. *.standby_file_management='auto'
  58. # fal_client用于接受日志,fal_server用于发送日志。
  59. # 也即无论是主库或备库,fal_server=对方,fal_client=自己
  60. # 主库设置如下
  61. *.fal_server='hisdbdg'
  62. *.fal_client='hisdb'
  63. # 备库设置如下
  64. # *.fal_server='hisdb'
  65. # *.fal_client='hisdbdg'
复制代码
3、重启数据库到 nomount,根据修改后的 pfile 文件重新生成 spfile 参数文件

  1. -- 在节点1和节点2上关闭数据库
  2. SQL> shutdown immediate
  3. Database closed.
  4. Database dismounted.
  5. ORACLE instance shut down.
  6. -- 使用修改后的参数文件启动数据库到nomount
  7. SQL> startup nomount pfile='/home/oracle/inithis.ora'
  8. ORACLE instance started.
  9. Total System Global Area  626327552 bytes
  10. Fixed Size                    2255832 bytes
  11. Variable Size                  297796648 bytes
  12. Database Buffers          322961408 bytes
  13. Redo Buffers                    3313664 bytes
  14. -- 根据修改后的 pfile 文件重新生成 spfile 参数文件
  15. SQL> create spfile='+DATA/hisdb/spfilehis.ora' from pfile='/home/oracle/inithis.ora';
  16. File created.
复制代码
4、重新启动数据库(两个节点同时操作)

  1. SQL> shutdown immediate
  2. ORA-01507: database not mounted
  3. ORACLE instance shut down.
  4. SQL> startup
  5. ORACLE instance started.
  6. Total System Global Area  626327552 bytes
  7. Fixed Size                    2255832 bytes
  8. Variable Size                  297796648 bytes
  9. Database Buffers          322961408 bytes
  10. Redo Buffers                    3313664 bytes
  11. Database mounted.
  12. Database opened.
复制代码
六、复制主库暗码文件至备库

备库修改暗码文件名为orapwhisdg,备库的实例名为hisdg。
  1. [oracle@rac01 dbs]$ scp orapwhis1 oracle@racdg:/usr/local/oracle/product/11.2.0/db_1/dbs/orapwhisdg
  2. oracle@racdg's password:     100% 1536     1.5KB/s   00:00
  3. # 在备库查看密码文件
  4. [oracle@racdg dbs]$ pwd
  5. /usr/local/oracle/product/11.2.0/db_1/dbs
  6. [oracle@racdg dbs]$ ll
  7. 总用量 8
  8. -rw-r--r--. 1 oracle oinstall 2851 5月  15 2009 init.ora
  9. -rw-r-----  1 oracle oinstall 1536 1月  10 14:57 orapwhisdg
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表