本文仅记录搭建的过程,具体详细的参数意义和配置原理请参考之前的总结 http://www.linuxidc.com/Linux/2015-07/119932.htm 搭建
本文仅记录搭建的过程,具体详细的参数意义和配置原理请参考之前的总结
搭建环境前配置主备库的tns,确保两数据库能正常彼此通信
primary
确定数据库开启强制归档
startup mount;
alter database archivelog;
alter database force logging;
alter database open;
修改配置,并导出pfile,将pfile复制到目标备库
alter system set db_unique_name=pri scope=spfile;
alter system set log_archive_config = 'DG_CONFIG=(pri,sty)' scope=spfile;
alter system set log_archive_dest_1 = 'LOCATION=/opt/app/Oracle/product/11.2.0/dbhome_1/dbs/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pri' scope=spfile;
alter system set log_archive_dest_2 = 'SERVICE=sty LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sty' scope=spfile;
alter system set log_archive_dest_state_1 = ENABLE;
alter system set log_archive_dest_state_2 = ENABLE;
alter system set fal_server=sty scope=spfile;
alter system set fal_client=pri scope=spfile;
alter system set standby_file_management=AUTO scope=spfile;
create pfile='/home/oracle/pripfile.ora' from spfile;
standby
安装数据库软件,无需安装数据库
复制元库的sys密码文件,确保两库的密码一致
scp 192.168.20.46:$ORACLE_HOME/dbs/orapwxtttestdb $ORACLE_HOME/dbs/
复制目标库导出的pfile,并添加 *.log_file_name_convert参数选项(10g之后必须添加,即使路径没有改变)
scp 192.168.20.46:/home/oracle/pripfile.ora /home/oracle/
*.log_file_name_convert='/opt/app/oracle/oradata/xtttestdb/','/opt/app/oracle/oradata/xtttestdb/'
创建要恢复备库的必要目录
mkdir -p /opt/app/oracle/admin/xtttestdb/adump
mkdir -p /opt/app/oracle/oradata/xtttestdb
mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch
设置SID登入数据库
export $ORACLE_SID=xtttestdb
sqlplus / as sysdba
利用copy并修改后的pfile创建spfile,并启动到nomount
SQL> create spfile from pfile='/home/oracle/pripfile.ora';
File created.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1570009088 bytes
Fixed Size 2213696 bytes
Variable Size 1174407360 bytes
Database Buffers 385875968 bytes
Redo Buffers 7512064 bytes
修改备库的参数配置
alter system set db_unique_name=sty scope=spfile;
alter system set log_archive_config='DG_CONFIG=(pri,dg)' scope=spfile;
alter system set log_archive_dest_1 ='LOCATION=/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=sty' scope=spfile;
alter system set log_archive_dest_2 ='SERVICE=pri LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pri' scope=spfile;
alter system set fal_server=pri scope=spfile;
alter system set fal_client=sty scope=spfile;
重启数据库到nomount,是配置生效(这些配置也可以在pfile中修改完成后再启动数据库库)
SQL> shutdown immediate;
SQL> startup mount;
primary利用rman复制数据库
rman target sys/oraclepwd@XTTTESTDB.46 auxiliary sys/oraclepwd@XTTTESTDB.54
RMAN> duplicate target database for standby from active database nofilenamecheck;
复制完成后在主备库天剑standby redo(至少要三组)
alter database add standby logfile
group 4 ('/opt/app/oracle/oradata/xtttestdb/styredo04.log') size 50m,
group 5 ('/opt/app/oracle/oradata/xtttestdb/styredo05.log') size 50m,
group 6 ('/opt/app/oracle/oradata/xtttestdb/styredo06.log') size 50m,
group 7 ('/opt/app/oracle/oradata/xtttestdb/styredo07.log') size 50m;
启动standby的redo应用的两种方式
①、默认的物理DG启动应用后,在主库arch日志被完整写入后才会开始应用该arch log
SQL> alter database recover managed standby database disconnect from session;
②、可以添加current logfile参数,使得应用当前正在读写,还没有完成归档的日志
SQL> alter database recover managed standby database using current logfile disconnect from session;
关闭REDO应用
SQL> alter database recover managed standby database cancel;
查看standby log状态
select group#,thread#,sequence#,archived,status from v$standby_log;
查看应用日志情况
select name,creator,sequence#,applied,completion_time from v$archived_log;
验证:
primary端创建测试表,并添加数据
SQL> select count(*) from test;
COUNT(*)
----------
7
SQL> insert into test select * from test;
7 rows created.
SQL> commit;
Commit complete.
SQL> select count(*) from test;
COUNT(*)
----------
14
standby端验证数据是否同步
SQL> select count(*) from test;
COUNT(*)
----------
14
搭建过程问题小结:
1、在备库启动到nomount后用tns测试连接时发现数无法连接
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
原因是11g之后动态监听不支持在nomount状态下远程的tns访问,自己的服务器中配置的监听一直是动态的
添加listener.ora 文件,为standby设置静态监听
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = xtttestdb)
(ORACLE_HOME = /opt/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = xtttestdb)
)
)
之后再测试连接正常
2、RMAN远程复制数据库完成后有redo的报错
ORACLE error from auxiliary database: ORA-19527: physical standby redo log must be renamed
ORA-00312: online log 1 thread 1: '/opt/app/oracle/oradata/xtttestdb/redo01.log'
根据错误提示,加上网上搜索一下,原来10g之后的DG即使日志的原备库路径一样,为了区分开来,,还是要设置log_file_name_convert参数,创建备库的pfile文件,并添加该参数进去,利用pfile启动数据库,问题解决
create pfile='/home/oracle/stypfile.ora' from spfile;
添加
*.log_file_name_convert='/opt/app/oracle/oradata/xtttestdb/','/opt/app/oracle/oradata/xtttestdb/'
creaet spfile from pfile='/home/oracle/stypfile.ora'
startup
--------------------------------------分割线 --------------------------------------
Oracle Data Guard 重要配置参数
基于同一主机配置 Oracle 11g Data Guard
探索Oracle之11g DataGuard
Oracle Data Guard (RAC+DG) 归档删除策略及脚本
Oracle Data Guard 的角色转换
Oracle Data Guard的日志FAL gap问题
Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器