技术标签: 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
文章浏览阅读257次。使用官方提供的脑PET数据集,构建逻辑回归模型来进行脑PET图像的疾病预测,数据集被分为两类,分别为轻度认知障碍(MCI)患者的脑部影像数据和健康人(NC)的脑部影像数据,图像数据格式为nii,因此本赛题可抽象为一个二分类问题。nii是一种常用的医学图像数据格式,主要用于存储和交换神经影像数据。以下是一些主要特点:1.主要用于存储3D(三维)医学图像数据,如MRI(磁共振成像)和CT(计算机断层扫描)图像。2.支持多种数据类型,使得其可以支持不同类型的数据处理和分析。_逻辑回归需要训练很多轮么
文章浏览阅读1.2k次,点赞31次,收藏26次。增强现实通常被视为一个利基领域。然而,在过去的两年里,它已经到了一个成熟的阶段,应该在一般的营销堆栈中进行考虑。正如我们所看到的,这个市场是巨大的,而且随着主要参与者向这项技术投入大量投资,它只会继续增长。从苹果到Meta,大公司都相信身临其境的未来,而想要获得成功的营销人员和创意人员也加入了进来。本文第三章,最佳设计实践除了深入讨论AR设计的原则外,还全面推荐了AI设计工具。旨在帮助读者的AI作品脱颖而出。
文章浏览阅读473次。OSI七层网络模型由下至上为1至7层,分别为:物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport layer),会话层(Session layer),表示层(Presentation layer),应用层(Application layer)。1.1 应用层,很简单,就是应用程序。这一层负责_usage: ./tcp_client hostname
文章浏览阅读2.8k次。环境准备安装 maven 安装 java 环境[root@cicd-nexus ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz[root@cicd-nexus ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/[root@cicd-nexus ~]# tar xf _maximum component age
文章浏览阅读1.6k次。使用js-xlsx handsontable 可以把本地excel 解析到网页上,然后分批次传入后台。在chrome 下 可以参考 https://github.com/SheetJS/js-xlsx 【Browser file upload form element】但需要使用FileReader api 这个只有ie10 才开始支持。兼容ie9 ,ie9需要通过flash 来支持..._js 导excel 分批写入
文章浏览阅读2.5k次。在wxWidgets中,想要通过其本身的控件来实现图片+文件的按钮,貌似不太容易做到。但是可以通过重载wxControl来自绘图片+文件按钮。下面给出的是已经封装好的按钮类:wxBitmapButtonEx.h#ifndef _BITMAP_BUTTON_EX_H#define _BITMAP_BUTTON_EX_H#include "wx/wx.h"enum eBitm_wxwidgets 中文按钮
文章浏览阅读847次。invalidate()与postInvalidate()都用于刷新View,主要区别是invalidate()在主线程中调用,若在子线程中使用需要配合handler;而postInvalidate()可在子线程中直接调用。postInvalidate它是向主线程发送个Message,然后handleMessage时,调用了invalidate()函数。(系统帮我们 写好了 Handle..._postinvalidate和invalidate的区别
文章浏览阅读9.1k次。excel数据进行分类汇总的步骤在做分类汇总前,我们需要对数据先进行排序,否则分类汇总无法进行。得到排序后的表格。点击上方工具栏中的“数据”→“分类汇总”。在弹出的对话框中选择“分类字段”→“汇总方式”→“决定汇总项”。点击确定出现数据汇总结果。Excel表格中求差函数公式使用的方法第一步:打开Excel表格,单击第一排,第三个“单元格”,也就是C1,在C1中输入“=A1-B1”;第二步:这个公式..._表格求差公式
文章浏览阅读1.5w次,点赞49次,收藏169次。前言好激动,断断续续装了两三天才装上,踩了好多坑。这里把成功安装的步骤详细写下来,如果有小伙伴需要,可以尝试一下,但我不能保证你也可以装好。首先说一下我的各个版本(不谈版本的安装教程都是耍流氓!)是用虚拟机软件:VirtualBOX6.1.30系统版本:ubuntu-20.04.3-desktop-amd64(最小安装模式,中文)OpenCV版本:4.5.5安装时间:2022.2.11下面是步骤1、进入OpenCV的官方下载地址Releases - OpenCV,下载So_无法定位软件包 libgazebo-dev
文章浏览阅读320次,点赞6次,收藏10次。/是上一个的进化版,相邻的可以一样但是不能都是绿色,注意条件;~~~//仅当笔者个人备忘录使用。
文章浏览阅读6.7k次。由于Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)安装失败,导致我的安卓虚拟机无法启动。解决办法有一下几种:1.开机进入BIOS打开Virtual虚拟化功能,然后进入Androidstudio 的SDK manager里面安装HAXM2.关闭系统中的Hyper-v,进入控制面板的程序和功能,将Hyper-v去选即可。3.如果前面的方法都不行,那么建议你重新下载AndroidStudio最新版进行安装_intel x86 emulator
文章浏览阅读1.1w次,点赞2次,收藏15次。 每一种语言都有一组基本的语法约定,POWERBUILDER也不例外。 (1)断行、续行与多条语句 通常情况下,powerbuilder的一条语句是写到一行上的,该条语句在书写完毕之后,按键转到下一行,开始写下一句的内容。也就是说,在PowerBuilder中,使用键作为一行的结束。在PowerBuilder语句比较长的情况下,为了方便阅读,可以使用续行符号把一条语句写到几_powerbuilder