<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Ego-ism &#187; Oracle</title>
	<atom:link href="http://egoism.nsnf.net/tag/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://egoism.nsnf.net</link>
	<description>個人的なメモが中心ですが、webに関すること、映画のレビューなどを中心に記載しております。</description>
	<lastBuildDate>Fri, 04 Mar 2011 17:04:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://egoism.nsnf.net/tag/oracle/feed/" />
		<item>
		<title>Oracleで副問い合わせをupdateする方法</title>
		<link>http://egoism.nsnf.net/2011/03/05/oracle%e3%81%a7%e5%89%af%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b%e3%82%92update%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/</link>
		<comments>http://egoism.nsnf.net/2011/03/05/oracle%e3%81%a7%e5%89%af%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b%e3%82%92update%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 16:53:10 +0000</pubDate>
		<dc:creator>to-ru</dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[仕事]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://egoism.nsnf.net/?p=220</guid>
		<description><![CDATA[完全にメモです。 こんな書き方あったんだ・・・ Oracleにて副問い合わせで1:Nを更新する方法。 /*+ BYPASS_UJVC*/ を利用。 便利だ。 update ( select /*+ BYPASS_UJVC [...]]]></description>
			<content:encoded><![CDATA[<p>完全にメモです。</p>
<p>こんな書き方あったんだ・・・</p>
<p>Oracleにて副問い合わせで1:Nを更新する方法。</p>
<p>/*+ BYPASS_UJVC*/</p>
<p>を利用。</p>
<p>便利だ。</p>
<blockquote>
<p style="padding-left: 30px;">update</p>
<p style="padding-left: 60px;">(</p>
<p style="padding-left: 90px;">select /*+ BYPASS_UJVC*/</p>
<p style="padding-left: 120px;">table_a.column_aa,<br />
table_b.column_ba,<br />
table_a.column_ab</p>
<p style="padding-left: 90px;">from</p>
<p style="padding-left: 120px;">table_a</p>
<p style="padding-left: 90px;">inner join</p>
<p style="padding-left: 120px;">table_b</p>
<p style="padding-left: 90px;">on</p>
<p style="padding-left: 120px;">table_a.column_ac= table_b.column_bb</p>
<p style="padding-left: 60px;">) A<br />
set</p>
<p style="padding-left: 60px;">A.column_aa= a.column_ba</p>
<p style="padding-left: 30px;">where</p>
<p style="padding-left: 60px;">a.column_ab = &#8216;hoge&#8217;</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://egoism.nsnf.net/2011/03/05/oracle%e3%81%a7%e5%89%af%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b%e3%82%92update%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://egoism.nsnf.net/2011/03/05/oracle%e3%81%a7%e5%89%af%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b%e3%82%92update%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/" />
	</item>
		<item>
		<title>Oracle8i アーカイブREDOログからのデータ復旧</title>
		<link>http://egoism.nsnf.net/2007/04/18/oracle8i-%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96redo%e3%83%ad%e3%82%b0%e3%81%8b%e3%82%89%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%be%a9%e6%97%a7/</link>
		<comments>http://egoism.nsnf.net/2007/04/18/oracle8i-%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96redo%e3%83%ad%e3%82%b0%e3%81%8b%e3%82%89%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%be%a9%e6%97%a7/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 11:23:57 +0000</pubDate>
		<dc:creator>to-ru</dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://egoism.nsnf.net/?p=8</guid>
		<description><![CDATA[Oracleのデータを復旧しなければならなくなったのだが、 やり方がぜんぜん思い出せなかった・・・ 以前に何度かやっていたのに・・・ そのため、調べる所から始まってしまった・・・ やり始めて、どんどん思い出していったので [...]]]></description>
			<content:encoded><![CDATA[<p>Oracleのデータを復旧しなければならなくなったのだが、<br />
やり方がぜんぜん思い出せなかった・・・<br />
以前に何度かやっていたのに・・・</p>
<p>そのため、調べる所から始まってしまった・・・<br />
やり始めて、どんどん思い出していったので、<br />
復旧を開始し始めてからは、早かったが。</p>
<p>また、忘れそうなのでメモ書きです。</p>
<p><span id="more-8"></span></p>
<p>LogMinerとは、本来SQLのリビジョンの確認などを行うものなのだったと思いますが、<br />
LogMinerを使うことで、UNDOデータが手に入るので。</p>
<p>下記の設定変更は、Oracle8iまでかpfileを使うようにしていた場合。<br />
spfileを使う場合は、変更方法が違います。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><cite>$ORACLE_HOME</cite>/admin/<cite>orcl</cite>pfile/init.ora</p>
<p><font size="1" color="red">※$ORACLE_HOMEと書いた場所は、適時ORACLE_HOMEを入れてください。</font><br />
にディクショナリーファイルを書き込めるディレクトリを追加。</p>
<p>utl_file_dir = /oracle/admin/orcl/dic</p>
<p>など記載。</p>
<p>後は、Oracleを再起動するなりパラメータを有効としてください。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>SQL*PlusでSYSDBAで接続。</p>
<p><font color="green"># sqlplus /nolog<br />
SQL&gt; connect sys/manager as sysdba</font></p>
<p>ディクショナリーファイルを作成</p>
<p><font color="green">SQL&gt; EXECUTE DBMS_LOGMNR_D.BUILD(DICTIONARY_FILENAME =>&#8217;dictionary.ora&#8217;, DICTIONARY_LOCATION => &#8216;/oracle/admin/orcl/dic&#8217;);</font></p>
<p>次にトラブルがあったと思われる時間のアーカイブログを登録。<br />
事前にファイルを調査しておく必要あり。</p>
<p><font color="green">SQL&gt; begin<br />
2&gt; DBMS_logmnr.add_logfile(&#8216;/oracle/admin/orcl/arch/arch_1_73778.arc&#8217;, DBMS_logmnr.new);<br />
3&gt; DBMS_logmnr.add_logfile(&#8216;/oracle/admin/orcl/arch/arch_1_73778.arc&#8217;, DBMS_logmnr.addfile);<br />
4&gt; end;<br />
5&gt; /</font></p>
<p>全ての登録が完了したら、分析開始。<br />
<font size="1" color="#FF0000">※1個目のログファイルは、newで、次以降はaddfileで。</font></p>
<p><font color="green">SQL&gt; begin<br />
2&gt; DBMS_logmnr.start_logmnr(DictFileName=>&#8217;/oracle/admin/orcl/dic/dictionary.ora&#8217;);<br />
3&gt; end;<br />
4&gt; /</font></p>
<p>v$logmnr_contents　という形で閲覧できます。<br />
<font color="green">desc v$logmnr_contents</font><br />
等を行えば、フィールド名も把握できます。</p>
<p>SELECT seg_owner owner,seg_name object,scn,timestamp,upper(SQL_redo) SQL_redo FROM v$logmnr_contents WHERE seg_owner =&#8217;<cite>Owner</cite>&#8216; AND seg_name IN (&#8216;<cite>TableName</cite>&#8216;) ORDER by scn;</p>
<p>や、</p>
<p>SELECT count(*) FROM v$logmnr_contents WHERE seg_owner =&#8217;<cite>Owner</cite>&#8216; AND seg_name IN (&#8216;<cite>TableName</cite>&#8216;);</p>
<p>等で、中身や数を確認してから、</p>
<p><font color="green">set heading off<br />
set feedback off<br />
set pagesize 9999<br />
set linesize 5000</p>
<p>spool undo.sql</p>
<p>SELECT SQL_undo FROM v$logmnr_contents WHERE seg_owner =&#8217;MS&#8217; <cite>Owner</cite>&#8216; AND seg_name IN (&#8216;<cite>TableName</cite>&#8216;) ORDER BY scn;</p>
<p>spool off</p>
<p>set heading on<br />
set feedback on<br />
set pagesize 80<br />
set linesize 80<br />
</font></p>
<p>で復旧用SQLが出力できるので、後は、中身を確認して実行すればOK。<br />
実行については、下記でできる。</p>
<p><font color="green">@undo.sql<br />
commit;<br />
</font></p>
<p>ただ、行数が多いと非常に時間がかかりますし、サーバの負荷も大きくなりますので、<br />
注意してください。</p>
]]></content:encoded>
			<wfw:commentRss>http://egoism.nsnf.net/2007/04/18/oracle8i-%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96redo%e3%83%ad%e3%82%b0%e3%81%8b%e3%82%89%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%be%a9%e6%97%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://egoism.nsnf.net/2007/04/18/oracle8i-%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96redo%e3%83%ad%e3%82%b0%e3%81%8b%e3%82%89%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%be%a9%e6%97%a7/" />
	</item>
	</channel>
</rss>

