Oracle 11g 搭建ADG方式(手动自动)

1m. 登录主
2m/s. 在主备库同时创建静态监听ltnsnames
    主库的tnsnames.ora   添加备库TNS  , 不需要重启 lsnrctl
    备库设定listener.ora(参考主)需重启LSNRCTL,tnsnames.ora   添加主和备库TNS
    主庫:
      

[oracle@cos6M5]$ more /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =  
  (SID_LIST =  
	(SID_DESC =  
	  (GLOBAL_DBNAME = testdb)  
	  (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)  
	  (SID_NAME = testdb)  
	)  
  )  
LISTENER =
  (DESCRIPTION_LIST =
	(DESCRIPTION =
	  (ADDRESS = (PROTOCOL = TCP)(HOST = 196.168.1.1)(PORT = 1521))
	)
  )

ADR_BASE_LISTENER = /u01/app/oracle

[oracle@cos6M5]$ more /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora 
TESTDB =
(DESCRIPTION =
	(ADDRESS = (PROTOCOL = TCP)(HOST = 196.168.1.1)(PORT = 1521))
	(CONNECT_DATA =
	  (SERVER = DEDICATED)
	  (SERVICE_NAME = testdb)
	)
)
TESTDB_STD =
  (DESCRIPTION =
	(ADDRESS = (PROTOCOL = TCP)(HOST = 196.168.1.2)(PORT = 1521))
	(CONNECT_DATA =
	  (SERVER = DEDICATED)
	  (SERVICE_NAME = testdb_std)
	)
  )
TESTDB_PRI =
  (DESCRIPTION =
	(ADDRESS = (PROTOCOL = TCP)(HOST = 196.168.1.1)(PORT = 1521))
	(CONNECT_DATA =
	  (SERVER = DEDICATED)
	  (SERVICE_NAME = testdb)
	)
  )

[oracle@cos6M5 ~]$ cat /home/oracle/product/11.2.2/dbhome_1/network/admin/listener.ora
#有 ODBC  連接的
# listener.ora Network Configuration File: /home/oracle/product/11.2.2/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
	(SID_DESC =
	  (GLOBAL_DBNAME = sfcdb)
	  (ORACLE_HOME = /home/oracle/product/11.2.2/dbhome_1)
	  (SID_NAME = sfcdb)
	)
	(SID_DESC =
	  (SID_NAME = dg4msql)
	  (ORACLE_HOME = /home/oracle/product/11.2.2/dbhome_1)
	  (PROGRAM = dg4msql)
	)
	(SID_DESC =
	  (SID_NAME = MSSQL)
	  (ORACLE_HOME = /home/oracle/product/11.2.2/dbhome_1)
	  (PROGRAM = dg4msql)
	)
  )

LISTENER =
  (DESCRIPTION_LIST =
	(DESCRIPTION =
	  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.2.15)(PORT = 1521))     ## 有雙網卡
	)
	(DESCRIPTION =
	  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
	)
	(DESCRIPTION =
	  (ADDRESS = (PROTOCOL = TCP)(HOST = 196.168.1.1)(PORT = 1521))
	)
  )


#啟動監控 LSNRCTL
[oracle@cos6M5]$  lsnrctl start/stop


    備庫類似。
        
4m/s. 验证主可tnsping 备,反之同。 如:
  

 [oracle@cos6M5 ~]$ tnsping tsmaster_st

5m. 创建主库归档/备份目录
  

[oracle@cos6M5 ~]$ mkdir -p /data/oradata/TSMASTER/archivelog 

6s. 创建备库归档目录, $ORACLE_BASE/admin下的目錄一般要手工建
    

[oracle@cos6s5 ~]$ mkdir -p /data/oradata/TSMASTER/controlfile 
[oracle@cos6s5 ~]$ mkdir -p /data/oradata/TSMASTER/archivelog 
[oracle@cos6s5 ~]$ mkdir -p /home/oracle/admin/tsmaster/adump
[oracle@cos6s5 ~]$ chown -R oracle:dba /home/oracle/admin/

7m. 修改数据库为强制记日志,这是必须的操作,主库的每一步操作都得记录到日志中去。  用于所有的事务都可以通过归档进行回滚
  

[oracle@cos6M5 ~]$ sqlplus / as sysdba
set linesize 1000;
set pagesize 1000;
SQL> alter database force logging;
SQL> alter database archivelog;
	Database altered.    ## 一般主机都有开启规档模式,先查看,如果没有开启,再作业

SQL> SELECT name,log_mode,force_logging FROM v$database;   --验证设定成功的状态
	NAME      LOG_MODE     FOR
	--------- ------------ ---
	TSMASTER  ARCHIVELOG   YES
	
M_SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
	NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS
	--------- -------------------- -------------------- ---------------- 
	SFCDB     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          TO STANDBY
		
S_SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
	NAME      OPEN_MODE            		PROTECTION_MODE      	DATABASE_ROLE    	 SWITCHOVER_STATUS
	--------- -------------------- -------------------- ---------------- --------------------
	SFCDB     READ ONLY WITH APPLY 	MAXIMUM PERFORMANCE   PHYSICAL STANDBY	  NOT ALLOWED

   7.1m.查看Log 及logfile

SQL> select * from v$log;
	GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
		 1          1         13   52428800        512          2 NO  CURRENT                1127786 22-SEP-21   2.8147E+14
		 3          1         12   52428800        512          2 YES INACTIVE               1107440 22-SEP-21      1127786 22-SEP-21
		 2          1         11   52428800        512          2 YES INACTIVE               1087159 22-SEP-21      1107440 22-SEP-21

SQL> select group#,type, member from v$logfile;

	GROUP# TYPE    MEMBER
---------- ------- 
		 3 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_3_jm118n37_.log
		 3 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_3_jm118n7t_.log
		 2 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_2_jm118lds_.log
		 2 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_2_jm118lgt_.log
		 1 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_1_jm118jyx_.log
		 1 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_1_jm118k26_.log

6 rows selected.

8m. 创建standby redo log,一般与 online SID log对应并多一个文件
 

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/data/oradata/TSMASTER/onlinelog/tsm04.log') size 50M;
	Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/data/oradata/TSMASTER/onlinelog/tsm05.log') size 50M;
	Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/data/oradata/TSMASTER/onlinelog/tsm06.log') size 50M;
	Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/data/oradata/TSMASTER/onlinelog/tsm07.log') size 50M;
	Database altered.

SQL> select group#,type, member from v$logfile;
		GROUP# TYPE    MEMBER
	---------- ------- ------------------------------------------------------------------------------------------------------------------------
			 3 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_3_jm118n37_.log
			 3 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_3_jm118n7t_.log
			 2 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_2_jm118lds_.log
			 2 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_2_jm118lgt_.log
			 1 ONLINE  /data/oradata/TSMASTER/onlinelog/o1_mf_1_jm118jyx_.log
			 1 ONLINE  /data/fast_recovery_area/TSMASTER/onlinelog/o1_mf_1_jm118k26_.log
			 4 STANDBY /data/oradata/TSMASTER/onlinelog/tsm04.log
			 5 STANDBY /data/oradata/TSMASTER/onlinelog/tsm05.log
			 6 STANDBY /data/oradata/TSMASTER/onlinelog/tsm06.log
			 7 STANDBY /data/oradata/TSMASTER/onlinelog/tsm07.log

	10 rows selected.
				

          

例如,以下SQL语句可用于在要从具有两个重做线程的重做源数据库接收重做的数据库上创建备用重做日志:

	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 500M;
	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 500M;
	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 SIZE 500M;
	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 SIZE 500M;
	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 SIZE 500M;
	SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 SIZE 500M;

               
9m. Oracle Pfile參數文件设定:
    9m.1a 重启主库的参数变更方案a:  非使用状态,可以重启
 

[oracle@cos6M5]$ sqlplus / as sysdba
SQL> create pfile from spfile;	

SQL> shutdown immediate;

[oracle@cos6M5]$ vim $ORACLE_HOME/dbs/inittestdb.ora 
testdb.__db_cache_size=687865856
testdb.__java_pool_size=16777216
testdb.__large_pool_size=33554432
testdb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
testdb.__pga_aggregate_target=671088640
testdb.__sga_target=989855744
testdb.__shared_io_pool_size=0
testdb.__shared_pool_size=234881024
testdb.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/testdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/TESTDB/controlfile/o1_mf_gq3chycs_.ctl','/u01/app/oracle/fast_recover
y_area/TESTDB/controlfile/o1_mf_gq3chyhs_.ctl'*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle'
*.db_domain=''
*.db_name='testdb'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testdbXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=1660944384
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
以下為新增:
DB_UNIQUE_NAME=testdb_pri
LOG_ARCHIVE_CONFIG='DG_CONFIG=(testdb_pri,testdb_std)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/TESTDB/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testdb_pri'
LOG_ARCHIVE_DEST_2='SERVICE=testdb_std  LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdb_std'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=testdb_std
STANDBY_FILE_MANAGEMENT=AUTO

变更后,使用文件值导入	DB 并生效 spfile
[oracle@cos6M5]$ sqlplus / as sysdba
SQL>startup pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/inittestdb.ora';
SQL>create spfile from pfile;

               
    9m.1b 主库生产状态的变更方案b: 使用状态,DB不重启
 

--  查看 DB_UNIQUE_NAME,如无设定此参数与db_name 同 此参数如有变理需要重启服务器生效
--  DB_UNIQUE_NAME 参数指本机TNS,要与后面的统一,避免混乱,如统一使用 testdb_pri
--  standby 激活或停ENABLE / DEFER
SQL> show parameter UNIQUE 
SQL> show parameter LOG_ARCHIVE_FORMAT			
	alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope = spfile; 静态参数變更,變更后需重啟DB生效

SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(testdb_pri,testdb_std)';
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/TESTDB/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testdb_pri'
SQL> alter system set LOG_ARCHIVE_DEST_3='SERVICE=testdb_std  LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdb_std';
SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;
SQL> alter system set FAL_SERVER='testdb_std';
SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO	;    ---manual
SQL> alter system switch logfile;

   
    9m.2 将主库的参数文件inittestdb.ora, 秘钥文件orapwtestdb Copy到备库的 $ORACL_HOME/dbs/ 目录下
  

[oracle@cos6M5]$scp {inittestdb.ora,orapwtestdb} [email protected]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值