主库查询最小scn 信息: SQL col current_scn for 999999999999999SQL SELECT CURRENT_SCN FROM V$DATABASE;select min(fhscn) from x$kcvfh;select min(f.fhscn) from x$kcvfh f, v$datafile dwhere f.hxfil =d.file#and d.enabled != READ ONLY ;CURRENT_S
主库查询最小scn 信息:SQL> col current_scn for 999999999999999 SQL> SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY' ; CURRENT_SCN ---------------- 12614205226673 MIN(FHSCN) ---------------- 12614205076072 MIN(F.FHSCN) ---------------- 12614205076072 +++++++++++++++++++++++++++++++++++++++++++++++=
1.----备库取消归档应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2.----备库确定 lowest scn
col current_scn for 99999999999999 SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY' ;
取上述查询中的最小值
SQL> col current_scn for 999999999999999999 SQL> SELECT CURRENT_SCN FROM V$DATABASE; CURRENT_SCN ------------------- 12611050666604 SQL> select min(fhscn) from x$kcvfh; MIN(FHSCN) ---------------- 12611050666605 SQL> select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY' ; 2 3 MIN(F.FHSCN) ---------------- 12611050666605
3.-----on primary db 端根据第2步中获取的最小scn 来进行增量备份
BACKUP INCREMENTAL FROM SCN 12611050666604 DATABASE FORMAT '/lixora/ForStandby_%U' tag 'FORSTANDBY';
4.-----拷贝备份到 备库
$scp ForStandby_07pqprm4_1_1 192.168.0.10:/tmp
5.----on standby db 在备库端注册备份片,注意用户属主,权限
RMAN> CATALOG START WITH '/lixora/ForStandby';
6.----执行恢复
RMAN> RECOVER DATABASE NOREDO;
7.-----on primary db 生成新的standby 控制文件
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/lixora/ForStandbyCTRL.bck';
8.----把主库端生成的standby 控制文件拷贝到备库,注意用户属主,权限
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/lixora/ForStandbyCTRL.bck';
scp /lixora/ForStandbyCTRL.bck 192.168.0.10:/tmp
9.------备份备库数据文件信息,用于在恢复新的standby 控制文件后比对
spool datafile_names_step8.txt set lines 200 col name format a60 select file#, name from v$datafile order by file# ; spool off
10.------on standby Db 恢复新的standby 控制文件
RMAN> SHUTDOWN IMMEDIATE ; RMAN> STARTUP NOMOUNT; RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';
11.-----更新控制文件中的数据文件信息
使新的standby 控制文件生效
RMAN> SHUTDOWN; RMAN> STARTUP MOUNT; CATALOG START WITH '+DATA/zhglptdg/datafile/';
12.------on primary db。确保在备库发生日志gap 后,主库没有添加过新的数据文件。
SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 12611050666604;
如果有记录,则不能进行witch 操作,可以参考一下文档来恢复:
Note 1531031.1 Steps to perform for Rolling forward a standby database using RMAN incremental backup when datafile is added to primary
13.-----重命名数据文件
RMAN> SWITCH DATABASE TO COPY;
14.-----再次确认在恢复增量备份片后主库和备库scn 差距没有太大
SQL> col current_scn for 99999999999999 SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY' ; CURRENT_SCN --------------- 12614205662375 MIN(FHSCN) ---------------- 12614205076072 MIN(F.FHSCN) ---------------- 12614205076072
15.------ On standby database, 清理standby 日志组
select * from v$standby_log; SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1; SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2; SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
16.------启动redo data apply
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
如果遇到一些由于设置 nologgling 而导致部分数据丢失,可以安装下述方法来进行恢复
To resolve NOLOGGING operations only, see Note 958181.1.
In addition to this information, see the online documentation:
10.2: http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/scenarios.htm#CIHIAADC
11.1: http://download.oracle.com/docs/cd/B28359_01/server.111/b28294/rman.htm#SBYDB00759
11.2: http://download.oracle.com/docs/cd/E11882_01/server.112/e17022/rman.htm#CIHIAADC
后记
如果要启用实时应用,需要在备库添加standby redo log,大小应和主库一样,且比主库多一组;
ALTER DATABASE add standby LOGFILE GROUP 6 size 500M;
ALTER DATABASE add standby LOGFILE GROUP 7 size 500M;
ALTER DATABASE add standby LOGFILE GROUP 8 size 500M;
ALTER DATABASE add standby LOGFILE GROUP 9 size 500M;
启用命令:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
oracle 10g standby database 实时应用 redo 数据
如何确保dg 已经正常,后台日志类似如下:Mon Dec 22 10:03:04 CST 2014
RFS[1]: Archived Log: '+DATA/lixora/archivelog/1_23094_790186477.dbf'
Mon Dec 22 10:03:25 CST 2014
Media Recovery Log +DATA/lixora/archivelog/1_23094_790186477.dbf
Media Recovery Waiting for thread 1 sequence 23095 (in transit)
Mon Dec 22 10:05:53 CST 2014
RFS[2]: Archived Log: '+DATA/lixora/archivelog/1_23095_790186477.dbf'
Primary database is in MAXIMUM PERFORMANCE mode
RFS[2]: No standby redo logfiles of size 1024000 blocks exist
Mon Dec 22 10:05:55 CST 2014
Media Recovery Log +DATA/zhglptdg/archivelog/1_23095_790186477.dbf
Media Recovery Waiting for thread 1 sequence 23096 (in transit)
Mon Dec 22 10:05:57 CST 2014
RFS[2]: Archived Log: '+DATA/lixora/archivelog/1_23096_790186477.dbf'
Primary database is in MAXIMUM PERFORMANCE mode
RFS[2]: No standby redo logfiles of size 1024000 blocks exist
Mon Dec 22 10:06:00 CST 2014
Media Recovery Log +DATA/lixora/archivelog/1_23096_790186477.dbf
Media Recovery Waiting for thread 1 sequence 23097 (in transit)
类似一下日志,表明日志只是传过来,但是没有应用:
Tue Dec 16 17:28:48 CST 2014
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 7: '+DATA/lixora/onlinelog/group_7.360.857131345'
Tue Dec 16 18:57:12 CST 2014
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 8: '+DATA/lixora/onlinelog/group_8.361.857131375'
Tue Dec 16 20:12:13 CST 2014
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 7: '+DATA/lixora/onlinelog/group_7.360.857131345'
Tue Dec 16 21:40:39 CST 2014
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 8: '+DATA/lixora/onlinelog/group_8.361.857131375'
如何可以确保dg 正常:
1)v$archive_log.applied 是否为yes
2)主库切换日志:ALTER system swtich logfile;
看备库v$database.CURRENT_SCN 是否有增长?

ACID attributes include atomicity, consistency, isolation and durability, and are the cornerstone of database design. 1. Atomicity ensures that the transaction is either completely successful or completely failed. 2. Consistency ensures that the database remains consistent before and after a transaction. 3. Isolation ensures that transactions do not interfere with each other. 4. Persistence ensures that data is permanently saved after transaction submission.

MySQL is not only a database management system (DBMS) but also closely related to programming languages. 1) As a DBMS, MySQL is used to store, organize and retrieve data, and optimizing indexes can improve query performance. 2) Combining SQL with programming languages, embedded in Python, using ORM tools such as SQLAlchemy can simplify operations. 3) Performance optimization includes indexing, querying, caching, library and table division and transaction management.

MySQL uses SQL commands to manage data. 1. Basic commands include SELECT, INSERT, UPDATE and DELETE. 2. Advanced usage involves JOIN, subquery and aggregate functions. 3. Common errors include syntax, logic and performance issues. 4. Optimization tips include using indexes, avoiding SELECT* and using LIMIT.

MySQL is an efficient relational database management system suitable for storing and managing data. Its advantages include high-performance queries, flexible transaction processing and rich data types. In practical applications, MySQL is often used in e-commerce platforms, social networks and content management systems, but attention should be paid to performance optimization, data security and scalability.

The relationship between SQL and MySQL is the relationship between standard languages and specific implementations. 1.SQL is a standard language used to manage and operate relational databases, allowing data addition, deletion, modification and query. 2.MySQL is a specific database management system that uses SQL as its operating language and provides efficient data storage and management.

InnoDB uses redologs and undologs to ensure data consistency and reliability. 1.redologs record data page modification to ensure crash recovery and transaction persistence. 2.undologs records the original data value and supports transaction rollback and MVCC.

Key metrics for EXPLAIN commands include type, key, rows, and Extra. 1) The type reflects the access type of the query. The higher the value, the higher the efficiency, such as const is better than ALL. 2) The key displays the index used, and NULL indicates no index. 3) rows estimates the number of scanned rows, affecting query performance. 4) Extra provides additional information, such as Usingfilesort prompts that it needs to be optimized.

Usingtemporary indicates that the need to create temporary tables in MySQL queries, which are commonly found in ORDERBY using DISTINCT, GROUPBY, or non-indexed columns. You can avoid the occurrence of indexes and rewrite queries and improve query performance. Specifically, when Usingtemporary appears in EXPLAIN output, it means that MySQL needs to create temporary tables to handle queries. This usually occurs when: 1) deduplication or grouping when using DISTINCT or GROUPBY; 2) sort when ORDERBY contains non-index columns; 3) use complex subquery or join operations. Optimization methods include: 1) ORDERBY and GROUPB


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.