0控制文件
<p>[TOC]</p>
<h2>添加或移动控制文件(二进制初始化参数文件)</h2>
<p>2021-06-02 11:01:55 星期三</p>
<h3>查看一些参数</h3>
<pre><code>select type,record_size,records_total,records_used from v$controlfile_record_section ;--查看控制文件的配置,11g有37条记录,12c有41条记录
select type,record_size,records_total,records_used from v$controlfile_record_section where type in ('REDO LOG','TABLESPACE','DATAFILE');--查看常用的控制文件信息
select value from v$parameter where name='control_files';--通过这个数据字典获取控制文件的位置
select name from v$controlfile;--这个字典也是获取控制文件的位置的
select value from v$diag_info where name='Diag Trace';--追踪文件的目录</code></pre>
<h2>修改控制文件位置</h2>
<h3>宝儿移动控制文件:数据库崩溃了,原因是全部控制文件损失</h3>
<pre><code>select name from v$controlfile;--查看控制文件的位置
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/oradata/orcl/control02.ctl</code></pre>
<h3>列出所有*.ctl文件</h3>
<pre><code>[oracle@oracle orcl]$ pwd
/u01/app/oracle/oradata/orcl
[oracle@oracle orcl]$ ll *.ctl
-rw-r----- 1 oracle oinstall 10600448 Apr 24 22:56 control01.ctl
-rw-r----- 1 oracle oinstall 10600448 Apr 24 22:56 control02.ctl
-rw-r----- 1 oracle oinstall 10600448 Dec 25 08:31 control122500.ctl
-rw-r----- 1 oracle oinstall 10600448 Dec 25 08:30 control1225.ctl
[oracle@oracle orcl]$ </code></pre>
<h3>确定哪个盘安全有空间,进入,创建存放控制文件的文件夹</h3>
<pre><code>[oracle@oracle backup]$ mkdir /home/oracle/backup/disk2/jinlian
[oracle@oracle backup]$ mkdir /home/oracle/backup/disk4/jinlian</code></pre>
<h3>检查所创建的目录是否存在</h3>
<pre><code>[oracle@oracle backup]$ dir disk2 disk4
disk2:
jinlian moon orcl
disk4:
jinlian moon orcl
[oracle@oracle backup]$ </code></pre>
<h3>将控制文件移动到刚才创建的目录下</h3>
<pre><code>SQL> alter system set control_files = '/home/oracle/backup/disk2/jinlian/control01.ctl','/home/oracle/backup/disk4/jinlian/control02.ctl' scope=spfile;
--恢复修改用
SQL> alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl' scope=spfile;</code></pre>
<h3>关闭数据库进行复制文件</h3>
<p><code>shutdown immediate</code></p>
<h3>复制实际文件到新的目录中</h3>
<pre><code>[oracle@oracle orcl]$ cp control01.ctl /home/oracle/backup/disk2/jinlian/
[oracle@oracle orcl]$ cp control02.ctl /home/oracle/backup/disk4/jinlian/</code></pre>
<h3>复制完成后打开数据库</h3>
<p><code>startup</code></p>
<h3>检查当前控制文件目录</h3>
<pre><code>SQL> select name from v$controlfile;
/home/oracle/backup/disk2/jinlian/control01.ctl
/home/oracle/backup/disk4/jinlian/control02.ctl</code></pre>
<h3>删除垃圾控制文件</h3>
<pre><code>[oracle@oracle orcl]$ rm -f control01.ctl
[oracle@oracle orcl]$ rm -f control02.ctl </code></pre>
<h2>控制文件备份:</h2>
<pre><code>alter database backup controlfile to '/home/oracle/backup/controlfilebackup';
alter database backup controlfile to '/mnt/hgfs/vmwareshare/178controlbk.ctl';</code></pre>
<h2>备份用户追踪文件中</h2>
<p><code>alter database backup controlfile to trace;</code></p>
<h2>用户追踪文件目录</h2>
<ul>
<li>根据时间找出刚才创建的文件,及时保存。
<code>select value from v$diag_info where name='Diag Trace';</code>
<hr /></li>
</ul>