技术标签: Data Guard Oracle 11g
角色 | 主库 | 备库 |
---|---|---|
IP | 192.168.1.59 | 192.168.1.51/52 |
数据库类型 | 单实例 | RAC |
实例 | orcl | orcl1,orcl2 |
db_name | orcl | orcl |
db_unique_name | orcl_st | orcl |
服务名 | orcl_st | orcl_pd |
SQL> alter database force logging;
Database altered.
SQL> select force_logging from v$database;
FORCE_LOGGING
---------------------------------------
YES
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /oracle/app/oracle/product/12.1.0/db_1/dbs/arch
Oldest online log sequence 22
Current log sequence 23
sqlplus / as sysdba
SQL> alter system set log_archive_dest_1='location= /oracle/archive' scope=spfile sid='*';
将数据库启动到mount状态并修改数据库的归档模式并启动数据库
SQL>shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oracle/archive
Oldest online log sequence 59
Next log sequence to archive 60
Current log sequence 60
用 net manager 工具,在备库创建一个监听。 也可以手动的修改 listener.ora 文件。
--对于 RAC 环境:
用grid用户操作
节点1
[grid@rac1 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora
添加以下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`)
(SID_NAME = orcl1)
)
)
节点2
[grid@rac2 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora
添加以下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`)
(SID_NAME = orcl2)
)
)
--这里写的 Oracle 用户的 ORACLE_HOME,否则连接时会报错:
ORA-01031: insufficient privileges
然后重启监听
[grid@rac1 admin]$ lsnrctl reload
[grid@rac2 admin]$ lsnrctl reload
单实例:
用oracle用户操作
修改listenerr.ora文件添加以下内容:
[oracle@adg admin]$ cp listener.ora listener.ora.ora
[oracle@adg admin]$ vi /oracle/app/product/12.1.0/db_1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1)
(SID_NAME = orcl)
)
)
然后重启监听
[oracle@adg admin]$ lsnrctl reload
[oracle@rac1 admin]$ cp tnsnames.ora tnsnames.ora.bak
节点1,节点2,单实例 的 tnsnames.ora 文件添加以下内容,对应rac使用netmgr创建服务或者直接把单实例的tnsnames.ora 复制过去对应修改即可。
[oracle@rac1 admin]$ vi /oracle/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora
orcl_pd=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.51)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.52)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =orcl)
)
)
orcl_st=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
配置完成后,使用 tnsping 命令效验:
[oracle@rac1 ~]$ tnsping orcl_pd
[oracle@rac2 ~]$ tnsping orcl_st
[oracle@adg admin]$ mkdir -p /oracle/app/oracle/fast_recovery_area/orcl
[oracle@adg admin]$ mkdir -p /oracle/app/oracle/oradata/orcl
[oracle@adg admin]$ mkdir -p /oracle/app/oracle/admin/orcl/adump
[grid@rac1 ~]$ asmcmd
ASMCMD> ls
DATA/
FRA/
OCRVOTE/
ASMCMD> cd data
ASMCMD> mkdir orcl
ASMCMD> cd orcl
ASMCMD> mkdir controlfile datafile onlinelog parameterfile password tempfile
主库
[oracle@rac1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl1 password=oracle
[oracle@rac2 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl2 password=oracle
备库
[oracle@adg ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle
或者把节点的口令文件copy 到备库
[oracle@adg dbs]$ scp orapworcl 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl1
[oracle@adg dbs]$ scp orapworcl 192.168.1.52:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl2
alter system set log_archive_config='dg_config=(orcl,orcl_st)' scope=both sid='*';
alter system set log_archive_dest_1='location=/oracle/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl_st' scope=both sid='*';
alter system set log_archive_dest_2='service=orcl_pd valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=both sid='*';
alter system set log_archive_dest_state_1=enable scope=both sid='*';
alter system set log_archive_dest_state_2=enable scope=both sid='*';
alter system set standby_file_management='auto' scope=both sid='*';
alter system set fal_server='orcl_pd' scope=both sid='*';
alter system set db_file_name_convert='+DATA/orcl/datafile','/oracle/app/oracle/oradata/orcl','+DATA/orcl/tempfile','/oracle/app/oracle/oradata/orcl' scope=both sid='*';
alter system set log_file_name_convert='+DATA/orcl/onlinelog','/oracle/app/oracle/oradata/orcl' scope=both sid='*';
alter system set log_archive_format='%t_%s_%r.arch' scope=both sid='*';
在主库创建pfile 文件并scp 到备库修改
主要指定一些pfile的路径,不要直接create pfile from spfile
create pfile='/tmp/initorcl1.ora' from spfile;
[oracle@rac1 tmp]$ scp /tmp/initorcl1.ora 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs
修改备库的参数文件添加以下内容:
orcl2.__data_transfer_cache_size=0
orcl1.__data_transfer_cache_size=0
orcl2.__db_cache_size=369098752
orcl1.__db_cache_size=419430400
orcl2.__java_pool_size=16777216
orcl1.__java_pool_size=16777216
orcl2.__large_pool_size=33554432
orcl1.__large_pool_size=33554432
orcl1.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment
orcl2.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment
orcl2.__pga_aggregate_target=402653184
orcl1.__pga_aggregate_target=402653184
orcl2.__sga_target=771751936
orcl1.__sga_target=771751936
orcl2.__shared_io_pool_size=33554432
orcl1.__shared_io_pool_size=33554432
orcl2.__shared_pool_size=301989888
orcl1.__shared_pool_size=251658240
orcl2.__streams_pool_size=0
orcl1.__streams_pool_size=0
*.audit_file_dest='/oracle/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='12.1.0.2.0'
*.control_files='+DATA/ORCL/CONTROLFILE/current.261.985172099'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
orcl2.instance_number=2
orcl1.instance_number=1
*.memory_target=1120m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='exclusive'
orcl2.thread=2
orcl1.thread=1
orcl1.undo_tablespace='UNDOTBS1'
orcl2.undo_tablespace='UNDOTBS2'
--添加以下内容,对应修改上面的参数
*.service_names='orcl_pd'
*.db_unique_name='orcl'
*.log_archive_config='dg_config=(orcl,orcl_st)'
*.log_archive_dest_1='location=+FRA valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
*.log_archive_dest_2='service=orcl_st valid_for=(online_logfiles,primary_role) db_unique_name=orcl_st'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arch'
*.standby_file_management='auto'
*.fal_server='orcl_st'
*.log_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/onlinelog'
*.db_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/datafile','/u01/app/oracle/oradata/orcl/tempfile','+DATA/orcl/tempfile'
[oracle@adg orcl]$ lsnrctl start
[oracle@adg orcl]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 19 20:46:28 2018
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount pfile='/oracle/app/oracle/product/12.1.0/db_1/dbs/initorcl1.ora'
ORACLE instance started.
Total System Global Area 1048576000 bytes
Fixed Size 2932336 bytes
Variable Size 654311824 bytes
Database Buffers 385875968 bytes
Redo Buffers 5455872 bytes
--源端
sqlplus sys/oracle@orcl_st as sysdba
rman target sys/oracle@orcl_st
--目标端
sqlplus sys/oracle@orcl_pd as sysdba
rman target sys/oracle@orcl_pd
[oracle@adg orcl]$ rman target sys/oracle@orcl_st auxiliary sys/oracle@orcl_pd
Recovery Manager: Release 12.1.0.2.0 - Production on Fri Sep 21 00:11:05 2018
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1512952835)
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database for standby from active database dorecover;
create spfile='+DATA/' from pfile='/tmp/initorcl1.ora';
SQL> shutdown immediate
注册数据库及参数文件
[oracle@rac1 ~]$srvctl add database -d orcl -o /oracle/app/oracle/product/12.1.0/db_1/ -p +data/orcl/parameterfile/spfile.268.985172961
注册实例
[oracle@rac1 ~]$srvctl add instance -d orcl -i orcl1 -n rac1
[oracle@rac1 ~]$srvctl add instance -d orcl -i orcl2 -n rac2
[oracle@rac1 ~]$srvctl stop database -d orcl
[oracle@rac1 ~]$srvctl start database -d orcl
[oracle@rac1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node rac1
Instance orcl2 is running on node rac2
RAC 每个 Redo Thread 都需要创建对应的 Standby Redo Log。 创建原则和单实例一样,包括日志 文件大小相等,日志组数量要多1组。
SQL> set lines 120
SQL> col member for a50
SQL> select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#;
THREAD# GROUP# A.BYTES/1024/1024 MEMBER
---------- ---------- ----------------- --------------------------------------------------
1 2 50 +DATA/ORCL/ONLINELOG/group_2.263.985172107
1 1 50 +DATA/ORCL/ONLINELOG/group_1.262.985172105
2 3 50 +DATA/ORCL/ONLINELOG/group_3.266.985172955
2 4 50 +DATA/ORCL/ONLINELOG/group_1.267.985172957
alter database add standby logfile thread 1 group 5 ('+DATA') size 50m;
alter database add standby logfile thread 1 group 6 ('+DATA') size 50m;
alter database add standby logfile thread 1 group 7 ('+DATA') size 50m;
alter database add standby logfile thread 2 group 8 ('+DATA') size 50m;
alter database add standby logfile thread 2 group 9 ('+DATA') size 50m;
alter database add standby logfile thread 2 group 10 ('+DATA') size 50m;
select group#,type,member from v$logfile order by 2;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------
2 ONLINE +DATA/ORCL/ONLINELOG/group_2.263.985172107
4 ONLINE +DATA/ORCL/ONLINELOG/group_1.267.985172957
3 ONLINE +DATA/ORCL/ONLINELOG/group_3.266.985172955
1 ONLINE +DATA/ORCL/ONLINELOG/group_1.262.985172105
9 STANDBY +DATA/ORCL/ONLINELOG/group_9.273.987282345
8 STANDBY +DATA/ORCL/ONLINELOG/group_8.272.987282341
5 STANDBY +DATA/ORCL/ONLINELOG/group_5.271.987282333
7 STANDBY +DATA/ORCL/ONLINELOG/group_7.270.987282315
10 STANDBY +DATA/ORCL/ONLINELOG/group_10.271.987282353
6 STANDBY +DATA/ORCL/ONLINELOG/group_6.269.987282309
SQL> set lines 120
SQL> col member for a80
SQL> select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#;
THREAD# GROUP# A.BYTES/1024/1024 MEMBER
---------- ---------- ----------------- --------------------------------------------------------------------------------
1 1 50 /oracle/app/oracle/oradata/orcl/group_1.262.985172105
1 2 50 /oracle/app/oracle/oradata/orcl/group_2.263.985172107
2 3 50 /oracle/app/oracle/oradata/orcl/group_3.266.985172955
2 4 50 /oracle/app/oracle/oradata/orcl/group_1.267.985172957
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 5 '/oracle/app/oracle/oradata/orcl/stbredo01.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 6 '/oracle/app/oracle/oradata/orcl/stbredo02.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 7 '/oracle/app/oracle/oradata/orcl/stbredo03.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 8 '/oracle/app/oracle/oradata/orcl/stbredo01.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 9 '/oracle/app/oracle/oradata/orcl/stbredo05.log' SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 10 '/oracle/app/oracle/oradata/orcl/stbredo06.log' SIZE 50M;
SQL> select group#,type,member from v$logfile order by 2;
GROUP# TYPE MEMBER
---------- ------- --------------------------------------------------------------------------------
2 ONLINE /oracle/app/oracle/oradata/orcl/group_2.263.985172107
4 ONLINE /oracle/app/oracle/oradata/orcl/group_1.267.985172957
3 ONLINE /oracle/app/oracle/oradata/orcl/group_3.266.985172955
1 ONLINE /oracle/app/oracle/oradata/orcl/group_1.262.985172105
9 STANDBY /oracle/app/oracle/oradata/orcl/stbredo05.log
8 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log
7 STANDBY /oracle/app/oracle/oradata/orcl/stbredo03.log
6 STANDBY /oracle/app/oracle/oradata/orcl/stbredo02.log
10 STANDBY /oracle/app/oracle/oradata/orcl/stbredo06.log
5 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log
SQL> select NAME,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
ORCL MOUNTED
SQL> alter database open;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY
文章浏览阅读1.2w次,点赞7次,收藏76次。MQ全称是MessageQueue(消息队列),是保存消息在传输过程中的一种容器,既是存储消息的一种中间件。多是应用在分布式系统中进行通信的第三方中间件,如下图所示,发送方成为生产者,接收方称为消费者。............_mq
文章浏览阅读1.5k次,点赞47次,收藏18次。Bug分析是QA的一项主要技能,需要针对项目中遇到的经典问题进行分类分析, 直达问题本质。 并且能够给团队其他项目或者成员起到典型的借鉴作用。 当然也有一些非常经典的问题可以进行技术深挖, 以供参考。 个人认为比较典型的「Bug分析」是stackoverflow, 当然, 一个完善的bug分析库, 可以进行问题分类总结。 对于测试新人是有很大的帮助的。本质上, 在测试领域很多问题是可重现可整理可规避的。另外, bug分析本身是为了拓宽每个人的认知边界, 缩小团队间的乔哈里窗以达到最佳的合作状态。一个「好的B
文章浏览阅读800次。HQST导读:PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右……PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右,……PULSE H5020NL千兆网络变压器对应HQS._4口网络变压器
文章浏览阅读242次,点赞3次,收藏9次。交换机,壳体采用镀锌钢板,结构紧凑,支持八个百兆端口,可配置一至四个百兆光纤端口。两路冗余电源设计,支持4pin可插拔端子,交直流通用,同时提供电源防接保护及过压、欠压保护,极大提升产品工作的稳定性。2.支持两路冗余电源设计,4pin可插拔端子,支持12~36V宽电压输入,交直流通用,同时提供电源防反接保护及过压、欠压保护,极大提升产品工作的稳定性。4.-40℃~75℃工作温度,-40~85℃存储温度,在极端气象条件下也能安全运行。8.支持IEEE802.3,IEEE802.3u,IEEE802.3x。
文章浏览阅读946次。Hi,我是阿昌,今天教你如何使用通义灵码。_通义灵码
文章浏览阅读2.3w次。我们在开发或编译旧版本NDK项目时,需要使用一些老版本的NDK,在这里提供了旧版NDK的列表及下载链接_ndk 老颁布
文章浏览阅读640次,点赞6次,收藏18次。网关是一个大的概念,没有特指是什么设备,很多设备都可以做网关,普通的PC机也能做,常用的网关设备是路由器。网关的作用主要是用来连接两个不同的网络,比如可以连接两个IP地址不相同的网络,或连接两个操作系统不同的网络,如WINDOWS与LINUX互连,或连接两个网络协议不同的网络,如TCP/IP与IPX.或拓扑结构不同的网络,如以太网和令牌环网。总之网关是一种中间媒介。而防火墙也可以做网关,但它的主要做用只是用来防病毒或防黑客,网关只算是防火墙的一个功能。网关与防火墙的区别。
文章浏览阅读4.1k次,点赞42次,收藏34次。背景在使用之前的代码时,报错: Traceback (most recent call last): File "xxx", line xx, in import pymysql ModuleNotFoundError: No module named 'pymysql'翻译:```追溯(最近一次通话):文件“xxx”,第xx行,在导入pymysqlModuleNotFoundError:没有名为“pymysql”的模块```原因 ......_modulenotfounderror: no module named 'pymysql
文章浏览阅读275次。1 import java.io.File;23 import java.io.IOException;45 import java.util.Locale;6789 import jxl.CellView;1011 import jxl.Workbook;1213 import jxl.WorkbookSettings;1415 import jxl.format.UnderlineStyle;..._android excel生成读取类
文章浏览阅读4.3w次,点赞16次,收藏126次。1、去微软官网下载完成ISO镜像,最好不要在线安装,打开官方链接 https://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs.aspx按下图操作:2、用虚拟光驱加载,或者直接右键解压。在安装前,先安装两个证书。亲测,安装后,减少了很多“安装包损坏或丢失”的现象。两证书下载地址链接: https:/..._vs2015离线版csdn
文章浏览阅读2k次,点赞4次,收藏3次。目前 postcss-pxtorem 版本最高6.0.0,报这个错是因为插件版本太高,降成5.1.1可解决这个报错解决方法:分两步1.执行npm uninstall post-pxtorem2.执行npm i [email protected]_error: postcss plugin postcss-import requires postcss 8.
文章浏览阅读787次。Linux-ARM开发_linux arm开发