Oracle 12c Data Guard搭建(一) (r10笔记第57天)
对于使用12c的PDB,如果想尽快熟悉,掌握,那就是和业务挂钩,让它跑在业务上。当然是在能够基本驾驭它的前提下,要不就真成了甩手掌柜。11g可以玩得很好,12c里面也差不到哪里去。 摆在我面前的一个选择就是字符集,尽管有大量的PDB需要整合进来,但是我在分析了几套需要整合的数据库之后,发现字符集还是一个很重要的考量。比如几个已有的旧版本的数据库字符集为UTF-8 US7ASCII ZHS16GBK ZHS16GBK,折中一些,根据实际情况还是选用ZHS16GBK,如果是个跨国企业,我可能就会选择UTF8了。 总体来说,12c给我带来了不少的惊喜,很多细小的地方都做了处理和改进。从安装到搭建备库,能够让我始终发现很多新东西,学习的兴趣也会大大加强。 搭建Data Guard我是分为两步,首先基于DG Broker搭建Active Data Guard,然后根据需要配置Far Sync Instance。 主库配置force logging,添加备库日志文件,配置监听等这些步骤和10g,11g一模一样,我就不啰嗦了。 配置DG Broker的时候,发现多了几个参数。参数的意义得等我分析一下再细说。
使用dgmgrl的时候,发现也默认使用了SYSDG这个新的角色,而非SYSDBA
[oracle@teststd dbs]$ dgmgrl /
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDG.
参数配置的时候,文件路径映射多了一个参数,那就是PDB相关的。
SQL> show parameter convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
log_file_name_convert string
pdb_file_name_convert string
数据库启动的时候也会打印出已有的patch
我还是使用以前的方式来搭建Active Data Guard,使用duplicate的方式。
rman target sys@testdb auxiliary sys@s2testdb nocatalog
duplicate target database for standby from active database nofilenamecheck;
配置 DG Broker的简要步骤如下:
DGMGRL> create configuration dg_testdb as
> primary database is testdb
> connect identifier is testdb;
Configuration "dg_testdb" created with primary database "testdb"
DGMGRL> enable configuration;
Enabled.
如下加粗的部分是一些改动的地方,在一些细节之处都做了改进。
DGMGRL> show configuration;
Configuration - dg_testdb
Protection Mode: MaxPerformance
Members:
testdb - Primary database
Warning: ORA-16789: standby redo logs configured incorrectly
Fast-Start Failover: DISABLED
Configuration Status:
WARNING (status updated 1 second ago)
DGMGRL>
简单修复备用日志,即添加了日志成员之后,再次查看就没有问题了。
DGMGRL> show configuration;
Configuration - dg_testdb
Protection Mode: MaxPerformance
Members:
testdb - Primary database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 14 seconds ago)
DGMGRL>
再次添加一个节点
DGMGRL> add database s2testdb as
> connect identifier is s2testdb
> maintained as physical;
Database "s2testdb" added
启用数据库配置
DGMGRL> enable database s2testdb;
Enabled.
再次查看配置,可以看到目前的状态还是稳定的。
DGMGRL> show configuration;
Configuration - dg_testdb
Protection Mode: MaxPerformance
Members:
testdb - Primary database
s2testdb - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 15 seconds ago)
对于网络情况的检测,更加细致,标红的是额外新增的一些信息。
对于DG Broker的命令,我认真对比了一下,发现12c里面多了一个validate.
这个命令的使用场景主要就是两个,语法如下: VALIDATE DATABASE [VERBOSE] <database name>; VALIDATE FAR_SYNC [VERBOSE] <far_sync name> [WHEN PRIMARY IS <database name>];
备库洋洋洒洒的几个PDB。
先启动Active Data Guard
SQL> select open_mode from v$database;
OPEN_MODE
------------------------------------------------------------
MOUNTED
此时PDB还都是mount状态
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED MOUNTED
3 TCYMOB0 MOUNTED
4 MACTVDB MOUNTED
启动备库
SQL> alter database open;
Database altered.
稍等一下,备库就变为了READ ONLY WITH APPLY
SQL> select open_mode from v$database;
OPEN_MODE
------------------------------------------------------------
READ ONLY WITH APPLY
此时还是需要单独去启动PDB了。
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 TCYMOB0 MOUNTED
4 MACTVDB MOUNTED
SQL> alter pluggable database tcymob0 open;
Pluggable database altered.
SQL> alter pluggable database MACTVDB open;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 TCYMOB0 READ ONLY NO
4 MACTVDB READ ONLY NO
从整体而言,整个搭建的过程没有花费太多时间,还是很顺利的
- 简单易学的机器学习算法——线性支持向量机
- Java设计模式-模板方式模式
- 由一条create语句的问题对比mysql和oracle中的date差别 (r7笔记第26天)
- Java设计模式-命令模式
- 关于执行计划中的%CPU的含义 (r7笔记第25天)
- Java设计模式-享元模式
- 简单易学的机器学习算法——线性可分支持向量机
- 基于gensim的Doc2Vec简析,以及用python 实现简要代码
- 关于db link权限分配的苦旅(一) (r7笔记第42天)
- Java设计模式-责任链模式
- Java设计模式-策略模式
- CPU 100%负载的性能优化分析(r7笔记第40天)
- Sklearn-train_test_split随机划分训练集和测试集
- 使用shell来定制dbms_sqltune(r7笔记第39天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Web程序员的Mysql进阶序二之sql多条数据插入、多条数据更新、多表同时查询
- Web程序员的Mysql进阶序三之sql多表数据删除、子查询、联合查询
- nginx 修改配置文件使之支持pathinfo,且隐藏index.php
- 微信jssdk开发,PHP,必要步骤
- 微信JSSDK分享页面自定义当前链接最简单示例
- (一)python3 只需3小时带你轻松入门—— 编程尝试
- (二)python3 只需3小时带你轻松入门——基本变量
- (三)python3 只需3小时带你轻松入门—— 变量的简单运算
- (四)python3 只需3小时带你轻松入门—— 流程控制
- (五)python3 只需3小时带你轻松入门—— 逻辑运算符
- (六)python3 只需3小时带你轻松入门——循环
- (七)python3 只需3小时带你轻松入门——List与dict
- Rstudio支持可视化的Markdown编辑了?
- (八)python3 只需3小时带你轻松入门——List 与 dict 的常用操作
- (九)python3 只需3小时带你轻松入门——函数自定义