管理部分
如果没有启用database force logging,则备库对/*+ append */操作,nologging操作,会报坏块;
建议表空间force logging或者database force logging; 测试:
select force_logging, tablespace_name
from dba_tablespaces
where tablespace_name in
(select default_tablespace from dba_users where username = 'SCOTT');
------------------------------
FORCE_LOGGINGTABLESPACE_NAME
NOTEST
create table t1 noglogging as select * from user_tables;
备库查询:
select * from t1;
ORA-01578: ORACLE data block corrupted (file # 8, block # 483)
ORA-01110: data file 8: '/data/db/test1.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option
但以下是可以的
select * from t1 where rownum'SCOTT',tabname=>'T1',cascade=>TRUE);
end
select table_name,num_rows,logging from user_tables where table_name='T1'; 统计信息也是同步过来的;也就是表结构啥都是正常的,就是这个表的数据同步不了;
解决办法:
主库把表删了重建,或者把相应的数据文件做恢复;
--相关sql
alter database force logging;select force_logging from dba_tablespaces;select force_logging from v$database;alter tablespace test force logging;select logging,table_name,tablespace_name from user_tables where table_name ='TEST';alter tablespace test no force logging;select tablespace_name,logging,force_logging from dba_tablespaces;