<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; 2019年6月23日</title>
	<atom:link href="https://www.xifenfei.com/tag/2019%e5%b9%b46%e6%9c%8823%e6%97%a5/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Thu, 29 Oct 2026 15:31:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>SCN Compatibility问题汇总-2019年6月23日</title>
		<link>https://www.xifenfei.com/2019/03/scn-compatibility.html</link>
		<comments>https://www.xifenfei.com/2019/03/scn-compatibility.html#comments</comments>
		<pubDate>Sun, 10 Mar 2019 07:17:57 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[2019年6月23日]]></category>
		<category><![CDATA[SCN Compatibility]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=7965</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2019/03/scn-compatibility.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2019/03/scn-compatibility.html" target="_blank">SCN Compatibility问题汇总-2019年6月23日</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>最近有不少朋友咨询关于2019年6月23日之前数据库scn，数据库是否要升级或者打补丁等问题，这里对相关问题做一个汇总。<br />
<strong>1. 是否一定要升级或者打补丁</strong><br />
不一定，以下几种情况可以不用处理<br />
1) 数据库版本11.1.0.7.20+ /11.2.0.3.9+ /11.2.0.4+版本已经包含了该补丁，无需处理<br />
2) 数据库版本全部低于1)中数据库版本<br />
3) 你的数据库环境中不存在1和2中数据库dblink访问<br />
4) 你的数据库环境中有1和2中的数据库dblink访问,但是通过通过dbms_scn设置,不让1中的数据库版本scn compatibility改变(都保持为1)<br />
<br />
<strong>2. 到了2019年6月23日之后,数据库的scn发生什么改变</strong><br />
简单的说就是数据库每秒可以使用的scn变大了,距离天花板的scn更加大,出现数据库scn用完的概率大大降低</p>
<pre class="brush: sql; title: ; notranslate">
--compat            -- SCN compatibility value
--headroom_in_scn   -- Difference between current SCN and RSL
--headroom_in_sec   -- number of seconds it would take to reachRSL

SQL&gt; set serveroutput on ;
SQL&gt;  declare
  2   rsl number;
  3   headroom_in_scn number;
  4   headroom_in_sec number;
  5   cur_scn_compat number;
  6   max_scn_compat number;
  7   begin
  8   dbms_scn.GetCurrentSCNParams(rsl,headroom_in_scn,headroom_in_sec,cur_scn_compat,max_scn_compat);
  9   dbms_output.put_line('rsl=' || rsl);
 10   dbms_output.put_line('headroom_in_scn=' || headroom_in_scn);
 11   dbms_output.put_line('headroom_in_sec=' || headroom_in_sec);
 12   dbms_output.put_line('cur_scn_compat=' || cur_scn_compat);
 13   dbms_output.put_line('max_scn_compat=' || max_scn_compat);
 14   end;
 15   /
rsl=16424869609472
headroom_in_scn=16424867538319
headroom_in_sec=1002494356
cur_scn_compat=1
max_scn_compat=3

PL/SQL procedure successfully completed.

SQL&gt; Alter Database Set SCN Compatibility 2;

Database altered.

SQL&gt;  declare
  2   rsl number;
  3   headroom_in_scn number;
  4   headroom_in_sec number;
  5   cur_scn_compat number;
  6   max_scn_compat number;
  7   begin
  8   dbms_scn.GetCurrentSCNParams(rsl,headroom_in_scn,headroom_in_sec,cur_scn_compat,max_scn_compat);
  9   dbms_output.put_line('rsl=' || rsl);
 10   dbms_output.put_line('headroom_in_scn=' || headroom_in_scn);
 11   dbms_output.put_line('headroom_in_sec=' || headroom_in_sec);
 12   dbms_output.put_line('cur_scn_compat=' || cur_scn_compat);
 13   dbms_output.put_line('max_scn_compat=' || max_scn_compat);
 14   end;
 15   /
rsl=21792299122688
headroom_in_scn=21792297051479
headroom_in_sec=665048127
cur_scn_compat=2
max_scn_compat=3

PL/SQL procedure successfully completed.


SQL&gt; Alter Database Set SCN Compatibility 3;

Database altered.

SQL&gt;  declare
  2   rsl number;
  3   headroom_in_scn number;
  4   headroom_in_sec number;
  5   cur_scn_compat number;
  6   max_scn_compat number;
  7   begin
  8   dbms_scn.GetCurrentSCNParams(rsl,headroom_in_scn,headroom_in_sec,cur_scn_compat,max_scn_compat);
  9   dbms_output.put_line('rsl=' || rsl);
 10   dbms_output.put_line('headroom_in_scn=' || headroom_in_scn);
 11   dbms_output.put_line('headroom_in_sec=' || headroom_in_sec);
 12   dbms_output.put_line('cur_scn_compat=' || cur_scn_compat);
 13   dbms_output.put_line('max_scn_compat=' || max_scn_compat);
 14   end;
 15   /
rsl=34585263898624
headroom_in_scn=34585261822622
headroom_in_sec=351819476
cur_scn_compat=3
max_scn_compat=3

PL/SQL procedure successfully completed.
</pre>
<p>这里大概演示了数据库scn compatibility变化带来的相关变化,这里可以看出来每秒<br />
<br />
<strong>3. 如何禁用/启用scn compatibility自动升级</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt;  begin dbms_scn.DisableAutoRollover; end;
  2   /

PL/SQL procedure successfully completed.

SQL&gt; declare
  2   EFFECTIVE_AUTO_ROLLOVER_TS date;
  3   TARGET_COMPAT number;
  4   IS_ENABLED boolean;
  5   begin
  6    dbms_scn.GETSCNAUTOROLLOVERPARAMS(EFFECTIVE_AUTO_ROLLOVER_TS,TARGET_COMPAT,IS_ENABLED);
  7    dbms_output.put_line('EFFECTIVE_AUTO_ROLLOVER_TS='||to_char(EFFECTIVE_AUTO_ROLLOVER_TS,'yyyy-mm-dd hh24:mi:ss'));
  8    dbms_output.put_line('TARGET_COMPAT=' || TARGET_COMPAT);
  9   if(IS_ENABLED)then
 10    dbms_output.put_line('IS_ENABLED IS TURE'); 
 11   else  
 12    dbms_output.put_line('IS_ENABLED IS FALSE'); 
 13   end if;
 14   end;
 15   /
EFFECTIVE_AUTO_ROLLOVER_TS=2019-06-23 00:00:00
TARGET_COMPAT=3
IS_ENABLED IS FALSE

PL/SQL procedure successfully completed.

SQL&gt; 
</pre>
<p><strong>4. scn compatibility手工调整</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; Alter Database Set SCN Compatibility 2;

Database altered.

SQL&gt; Alter Database Set SCN Compatibility 3;

Database altered.

SQL&gt; Alter Database Set SCN Compatibility 1;
Alter Database Set SCN Compatibility 1
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any instance
SQL&gt; shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL&gt; startup mount;
ORACLE instance started.

Total System Global Area 4999609080 bytes
Fixed Size                  9145080 bytes
Variable Size            1040187392 bytes
Database Buffers         3942645760 bytes
Redo Buffers                7630848 bytes
Database mounted.
SQL&gt;  Alter Database Set SCN Compatibility 1;

Database altered.

SQL&gt; alter database open;

Database altered.

SQL&gt;  set serveroutput on ;
SQL&gt;  declare
  2   rsl number;
  3   headroom_in_scn number;
  4   headroom_in_sec number;
  5   cur_scn_compat number;
 max_scn_compat number;
  6    7   begin
  8   dbms_scn.GetCurrentSCNParams(rsl,headroom_in_scn,headroom_in_sec,cur_scn_compat,max_scn_compat);
  9   dbms_output.put_line('rsl=' || rsl);
 dbms_output.put_line('headroom_in_scn=' || headroom_in_scn);
 10   11   dbms_output.put_line('headroom_in_sec=' || headroom_in_sec);
 12   dbms_output.put_line('cur_scn_compat=' || cur_scn_compat);
 13   dbms_output.put_line('max_scn_compat=' || max_scn_compat);
 end;
 / 14   15  
rsl=16425127591936
headroom_in_scn=16425125502261
headroom_in_sec=1002510101
cur_scn_compat=1
max_scn_compat=3

PL/SQL procedure successfully completed.
</pre>
<p><strong>参考文档：</strong><br />
Recommended patching and actions for Oracle database versions 12.1.0.1, 11.2.0.3 and earlier-before June 2019(Doc ID 2335265.1)<br />
Recommended patches and actions for Oracle databases versions 12.1.0.1, 11.2.0.3 and earlier–before June 2019(Doc ID 2361478.1)</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2013/05/%e9%80%9a%e8%bf%87%e8%84%9a%e6%9c%ac%e8%8e%b7%e5%be%97%e5%88%9b%e5%bb%ba%e7%94%a8%e6%88%b7%e8%84%9a%e6%9c%ac.html" rel="bookmark" class="crp_title">通过脚本获得创建用户语句</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/07/%e4%bd%bf%e7%94%a8flashback-query%e6%81%a2%e5%a4%8d%e8%a2%ab%e5%88%a0%e9%99%a4plsql.html" rel="bookmark" class="crp_title">使用flashback query恢复被删除plsql</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/10/sqlplus-%e4%bd%bf%e7%94%a8%e5%b0%8f%e6%8a%80%e5%b7%a7.html" rel="bookmark" class="crp_title">sqlplus 使用小技巧</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/11/plsql%e7%9a%84%e5%ae%9a%e4%b9%89%e8%80%85%e4%b8%8e%e8%b0%83%e7%94%a8%e8%80%85.html" rel="bookmark" class="crp_title">pl/sql的定义者与调用者</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2015/04/dbms_diskgroup%e6%8b%b7%e8%b4%9dblockdatafile.html" rel="bookmark" class="crp_title">dbms_diskgroup拷贝block/datafile</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/08/emd_maintenance-execute_em_dbms_job_procs%e7%bb%b4%e6%8a%a4.html" rel="bookmark" class="crp_title">EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS维护</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/03/lob%e7%b1%bb%e5%9e%8b%e6%95%b0%e6%8d%ae%e8%bd%ac%e6%8d%a2%e4%b8%ba%e7%b3%bb%e7%bb%9f%e6%96%87%e4%bb%b6.html" rel="bookmark" class="crp_title">lob类型数据转换为系统文件</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2011/09/tom%e7%9a%84show_space%e8%bf%87%e7%a8%8b%e4%bd%bf%e7%94%a8.html" rel="bookmark" class="crp_title">TOM的SHOW_SPACE过程使用</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/12/%e6%9f%a5%e6%89%beoracle%e6%89%80%e6%9c%89%e8%a1%a8%e4%b8%ad%e7%9a%84%e7%89%b9%e5%ae%9a%e5%88%97%e4%b8%ad%e7%9a%84%e6%95%b0%e6%8d%ae.html" rel="bookmark" class="crp_title">查找oracle所有表中的特定列中的数据</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2019/04/sql-plan-baseline.html" rel="bookmark" class="crp_title">sql plan baseline简单介绍</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/04/%e4%bd%bf%e7%94%a8wrap%e5%8a%a0%e5%af%86plsql%e4%bb%a3%e7%a0%81.html" rel="bookmark" class="crp_title">使用wrap加密pl/sql代码</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/12/%e8%a7%a6%e5%8f%91%e5%99%a8%e5%ae%9e%e7%8e%b0%e6%8c%87%e5%ae%9a%e7%94%a8%e6%88%b7%e7%99%bb%e5%bd%95oracle.html" rel="bookmark" class="crp_title">触发器实现指定用户登录oracle</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2019/03/scn-compatibility.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
