Oracle 11g R2 ADG 搭建
admin
2023-04-18 12:23:58
0

--============Oracle ADG搭建==============


--==========准备阶段=========

1.检查primary为archivelog模式。
select log_mode from v$database;

如果为noarchivelog模式,切换到archivelog模式。
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

执行forced logging:
alter database force logging;


2.服务配置。

primay和standby根据tnsname来在DG中解析成员,在服务器中都要配置"$ORACLE_HOME/network/admin/tnsnames.ora"。
可以使用netca或者手工创建。
SICILY =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.198.195.163)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = sicily)
     )
   )

SICILYBAK =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.198.195.164)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = sicilybak)
     )
   )


3.记录primary和standby的db_name和db_unique_name。
show parameter db_name
show parameter db_unique_name

角色 db_name  db_unique_name
primary sicily sicily
standby sicily sicilybak

standby和primary的db_name相同,但是db_unique_name不同。

primary和standby的db_unique_name被用在配置log_archive_config的dg_config参数。

在primary和standby上执行,参数值为primary和所有standby成员的db_unique_name。
alter system set log_archive_config='dg_config=(sicily,sicilybak)';


4.设置远程归档路径。

默认的local location归档路径在fast recovery area,应该将闪回区的大小设置得足够大。(建议不用)
一般,修改log_archive_dest_1

    1) 查看归档文件路径位置
     show parameter log_archive_dest_1
     2) 关闭数据库
     alter database chenkpoint;
     shutdown immediate
     3) 挂载数据库
     start mount
     4) 修改归档路径
     alter system set log_archive_dest_1='LOCATION=/oracle/archive';
     5) 启动数据库
     alter database open;
     6) 查看是否生效
     select archiver from v$instance;
     alter system switch logfile;
     ls /oracle/archive

注意,远程归档路径中与standby相关的service和db_unique_name。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=sicilybak NOAFFIRM ASYNC compression=enable VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sicilybak';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

如果,需要primary和standby之间来回switchover,让primary切换为standby角色,需要设置*_convert参数来保证服务器之间的文件名和路径不同。
--这里配置的是服务名,表示日志出现GAP时,去哪里去取。
ALTER SYSTEM SET FAL_SERVER=sicilybak;
--这里是将前面的字符串替换为后面的字符串
--ALTER SYSTEM SET DB_FILE_NAME_CONVERT='sicilybak','sicily' SCOPE=SPFILE;
--ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='sicilybak','sicily'  SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
注意,有些参数不能修改,数据库重启后生效。


--==========备份==========

1.primary备份
$ rman target /
RMAN> backup database as compressed backupset format '/oracle/rman/full_%D_%u.bak';

2.创建standby控制文件
--在primary上执行
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oracle/rman/standby.ctl';

3.创建standby参数文件PFILE
CREATE PFILE='/oracle/rman/pfile' FROM SPFILE;

4.修改PFILE与standby相关的配置。由于是源服务器的副本,只需要修改如下参数。
*.db_unique_name='sicilybak'
*.fal_server='sicily'
*.log_archive_dest_2='SERVICE=sicily ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sicily'


--==========拷贝=========

1.在standby上创建数据文件目录、归档日志文件目录、审计目录及其他参数文件中列出的目录
$ mkdir -p /oracle/rman
$ mkdir -p /oracle/archive
$ mkdir -p /oracle/oradata/sicily

2.从primary拷贝文件到standby
$ # Standby controlfile to all locations.
$ scp oracle@10.198.195.163:/oracle/rman/standby.ctl /oracle/rman/control01.ctl
$ cp /oracle/rman/control01.ctl /oracle/fast_recovery_area/sicily/control02.ctl

$ # Archivelogs
$ scp -r oracle@10.198.195.163:/oracle/archive /oracle/archive

$ # Parameter file.
$ scp oracle@10.198.195.163:/oracle/rman/pfile /oracle/rman/pfile

$ # Remote login password file.
$ scp oracle@10.198.195.163:$ORACLE_HOME/dbs/orapw$ORACLE_SID $ORACLE_HOME/dbs

注意,如果你的备份放在闪回区,那么需要将闪回区备份拷贝到standby;
如果你的备份不在闪回区,那么必须确保将备份拷贝到与primary相同目录下。


--==========恢复===========

1.以PFILE创建SPFILE
create spfile from pfile='/oracle/rman/pfile';

2.恢复控制文件
RMAN> restore controlfile from '/oracle/rman/standby.ctl';

3.恢复备份
RMAN> startup mount;
RMAN> restore database;


--===========创建online redo logs和standby redo logs==========

1.创建standby的online redo logs,最好与primary一致
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;
ALTER DATABASE ADD LOGFILE ('/oracle/oradata/sicily/redo01.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE ('/oracle/oradata/sicily/redo02.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE ('/oracle/oradata/sicily/redo03.log') SIZE 50M;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

2.创建standby的standby redo logs,如果primary要被切换为standby角色,那在primary上也要建。
standby redo logs应该至少和最大的online redo log一样大,比online redo logs多一个。
ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/oradata/sicily/standby_redo01.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/oradata/sicily/standby_redo02.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/oradata/sicily/standby_redo03.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/oradata/sicily/standby_redo04.log') SIZE 50M;


--=============启动应用进程==============

# Background redo apply. Control is returned to the session once the apply process is started.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

#you need to cancel the apply process, issue the following command.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE OPEN READ ONLY;

#you have configured standby redo logs, you can start real-time apply using the following command.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;


--============检查===========

select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

相关内容

热门资讯

终于了解“酷玩联盟究竟有挂吗?... 终于了解“酷玩联盟究竟有挂吗?”(外卦神器下载)您好,酷玩联盟这个游戏其实有挂的,确实是有挂的,需要...
今日重大消息“微信小程序掼蛋是... 网上科普关于“微信小程序掼蛋有没有挂”话题很是火热,小编也是针对微信小程序掼蛋作*弊开挂的方法以及开...
今日重磅消息“新众亿炸/金/花... 网上科普关于“新众亿炸/金/花有没有挂”话题很是火热,小编也是针对新众亿炸/金/花作*弊开挂的方法以...
【第一财经】“新毛豆互娱到底是... 【第一财经】“新毛豆互娱到底是不是挂?”(其实是有挂)您好,新毛豆互娱这个游戏其实有挂的,确实是有挂...
终于懂了“欢乐情怀开挂器?”(... 有 亲,根据资深记者爆料欢乐情怀是可以开挂的,确实有挂(咨询软件无需打开...
紫燕食品创新研究院:以科研赋能... 在消费升级驱动食品行业高质量发展的背景下,研发创新成为企业核心竞争力的关键支撑。作为卤味行业领军企业...
玩家攻略科普“桂麻圈怎么开挂?... 家人们!今天小编来为大家解答桂麻圈透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很多...
【第一消息】“海阔麻将到底是不... 有 亲,根据资深记者爆料海阔麻将是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“阿当福建麻将到底有挂... 网上科普关于“阿当福建麻将有没有挂”话题很是火热,小编也是针对阿当福建麻将作*弊开挂的方法以及开挂对...
今日重磅消息“友间十三张真的有... 您好:友间十三张这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...