oracle 12c创建归档,实测创建 Oracle 12C Dataguard

Oracle 12C Dataguard

环境:centOS 6.4 64bit   oracle 12C 12.1.0.1.0 - 64bit

主库:10.168.9.52   sid=bbc  db_unique_name=bbc

备库:10.168.9.53   sid=bbc  db_unique_name=abc

主库配置:

1.数据库修改为归档模式   查看:archive log list;

2.参数log_archive_start已经过时,不需要设置,设置后启动数据库会报 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance(有过时或废弃的参数被使用指定)  但是不影响使用

alter system reset log_archive_start 取消该参数设置

3.数据库开启强制日志功能,即所有操作都产生日志,以便将主库所有的操作全部传给备库使用 : alter database force logging; select name,force_logging from v$database;

4.确认当主库添加或删除数据文件时,备库也做同样的的操作:

Alter system set standby_file_management=’AUTO’;

5.确认参数 remote_login_passwordfile 为exclusive 或shared 使用密码文件做验证 此参数默认为exclusive,如果不是,请修改

Alter system set remote_login_passwordfile =exclusive scope=spfile;

6.设置db_unique_name 通常主库该值和SID一直,如没有该值,请设置:

Alter system set db_unique_name=bbc scope=spfile;

7.开启闪回功能:可以使数据库闪回到以前的某一点,可以使主库闪回到故障前,然后将其转换为备库。如果没有闪回,就必须重建库。

Alter system set db_recovey_file_dest=’快速回复区目录’ 闪回区位置

Alter system set db_recovey_file_dest_size=’300G’; 闪回区大小

Alter database flashback on ;

Select flashback_on from v$database ;

8.配置主备库的监听,使两台服务器可以相互通信:

主库修改listener.ora文件 动态静态监听都要配置 (备库启动后是在mount状态下,不能自动注册监听,需要静态监听 修改后监听需要重启)

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=orcl65)

(SID_NAME=orcl65)

(ORACLE_HOME=/18_app/12c/db_base/db_home/)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

主库tnsnames.ora文件:

ORCL65 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl65)

)

)

ORCL66 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl66)

)

)

备库修改listener.ora 动态静态监听都要配置 修改后监听需要重启

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=orcl66)

(SID_NAME=orcl66)

(ORACLE_HOME=/19_app/12c/db_base/db_home/)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

备库tnsnames.ora文件:

ORCL65 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl65)

)

)

ORCL66 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl66)

)

)

~

9.修改归档位置:

Alter system set log_archive_dest_1=’location=/u01/app/archive/archive_bbc_loc/ valid_for=(all_logfiles,all_roles) db_unique_name=bbc ’

指定归档位置用于所有角色所有数据库的日志文件且db_unique_name=bbc包括将来主转为备后的备用日志文件(注意不是在线日志文件,是主库用日志写进程直接传过来并保存到standby_log中的日志文件),并且如果想在备库进行备份同时备归档日志的话,必须使用all_logfiles

Alter system set log_archive_dest_10=’service=abc arch valid_for=(online_logfiles,primary_role) db_unique_name=abc’;

语句意思是:如果这是主库,就使用服务名为abc 传输在线归档日志到目标库abc (这里使用的是归档进程同步传输的,还有其他的模式 )

不要配置standby_archive_dest参数,官方已经弃用,可能会报错

部分参数说明:online_logfiles(在线日志) satandby_logfiles(备用日志) all_logfiles(所有日志) primary_role(主库角色) standby_role(备库角色) all_roles(所有角色)

10.设置参数fal_server 是指传输出现问题后,备库到哪里去找缺少的归档日志 参数fal_client在11G已经弃用,不用设置了

Alter system set fal_server = ‘abc’;

11. 打开主库的dataguard 开关:

;

备库设置

1.创建备库必要的目录,最少要建立主库所有数据文件的目录,$db_base/fast_recovery_area/bbc/所有目录, $db_base/oradata/bbc/所有目录,$db_base/admin/bbc/adump

2.停主库:在mount下生成pfile  create pfile from spfile

生成备库控制文件 alter database create standby controlfile as ‘/路径/文件名’;

并且将新生成的参数文件,控制文件,密码文件,所有数据文件,日志文件全部拷贝到备库的响应目录下(我也不想停库啊之前也用rman 恢复过,备库不能open read only,报有数据文件需要恢复,搞不定啊—问题解决,后面有笔记)

给参数文件和密码文件改名

3.修改参数文件:将部分bbc修为abc,其中db_name=‘bbc’和dispatchers='(PROTOCOL=TCP) (SERVICE=bbcXDB)不用修改,

修改所有路径为备库的路径

如果数据文件路径有修改需要添加参数db_file_name_convert=‘原路径1’,‘新路径1’,‘原路径2’,‘新路径2’,‘原路径3’,‘新路径3’  所有不一样的数据文件路径都要添加,要成对出现

log_file_name_convert=‘原路径1’,‘新路径1’,‘原路径2’,‘新路径2’,‘原路径3’,‘新路径3’  所有不一样的日志文件路径都要添加,要成对出现

添加 db_unique_name='abc'

4.生成spfile 重新启动备库监听,启动备库到mount, 重新启动主库监听,启动主库(并确保都是使用的spfile)

备库启动恢复模式:alter database recover managed standby database disconnect from session

备库关闭恢复模式: alter database recover managed standby database cancel;

备库只读模式打开数据库:alter database open read only;

备库启动恢复模式:alter database recover managed standby database disconnect from session;

SQL> select log_mode,open_mode ,protection_mode, database_role from v$database;

LOG_MODE     OPEN_MODE                  PROTECTION_MODE      DATABASE_ROLE

------------ -------------------- -------------------- ----------------

ARCHIVELOG   READ ONLY WITH APPLY MAXIMUM PERFORMANCE  PHYSICAL STANDBY

至此,初步的dataguard 创建完成,测试以及模式转换待续

备库用主库rman 备份恢复:

1.创建备库必要的目录,最少要建立主库所有数据文件的目录,$db_base/fast_recovery_area/bbc/所有目录, $db_base/oradata/bbc/所有目录,$db_base/admin/bbc/adump

(/19_app/12c/db_base/fast_recovery_area/orcl66)

(/19_app/12c/db_base/fast_recovery_area/ORCL66/四个文件夹 archivelog,autobackup,flashback, onlinelog)

(/19_app/12c/db_base/oradata/orcl66/两个文件夹orcl_pdb1,pdbseed)

(/19_app/12c/db_base/admin/orcl66/adump)

2.configure channel device type disk format '/home/oracle/rmanbk/%d_%I_%s_%p_%T.bkp';修改备份路径和名字

3.在主库用rman备份:backup as compressed backupset database include current controlfile for standby plus archivelog; 在主库生成pfile ,并将主库的备份,pfile,口令文件 一起拷贝到备库相同的文件夹下。

4.将pfile,口令文件改名并拷贝到dbs下,修改参数文件

注意参数文件中的参数: MEMORY_TARGET(将其注释掉, 会报ORA-00845错误,主库的内存设置不一定适合从库)  启动备库到nomount

5.在主库登陆rman:rman target / auxiliary sys/bbcBBC2014@ccb

(在备库做:rman target sys/bbcBBC2014@bbc auxiliary sys/bbcBBC2014@ccb)

duplicate target database for standby

6.起动备库到mount 并open read only

7.开启恢复模式:alter database recover managed standby database   disconnect from session;

8.查看模式及级别:SQL> select log_mode,open_mode ,protection_mode, database_role from v$database;

LOG_MODE     OPEN_MODE                  PROTECTION_MODE      DATABASE_ROLE

------------ -------------------- -------------------- ----------------

ARCHIVELOG   READ ONLY WITH APPLY MAXIMUM PERFORMANCE  PHYSICAL STANDBY

测试数据,正常!

添加另一个新的DG:

主库添加修改:Alter system set log_archive_config ='dg_config=(orcl65,orcl66,orcl67)';

alter system set log_archive_dest_9='service=orcl67 lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl67';

从库按之前操作

从库可以是新库,也可以没有库,没有库也要添加两个监听文件!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值