学习资料

学习的笔记


第十七章 数据库的归档模式

<p>[TOC]</p> <h2>归档模式的特点和要求</h2> <ul> <li>归档概念的一些解释</li> <li>归档特点</li> </ul> <h2>将数据库设置为归档模式</h2> <ul> <li> <p>设备为归档模式</p> <pre><code>connect sys/oracle as sysdba archive log list shutdown immediate startup mount alter database archivelog; --老版本的系统,在设置为归档模式后应该立即开户归档后台进程 alter system archive log start; alter database open; archive log list --做数据库的全备份</code></pre> </li> <li> <p>验证完要记得关闭归档,不然占满空间数据库就用不了了</p> <pre><code>shutdown immediate startup mount alter database noarchivelog; alter database flashback off;--如果闪回有打开,要关闭 alter database open; archive log list --删除归档日志 rm -rf /home/oracle/dbdata/disk4/offlinelog rm -rf /home/oracle/dbdata/disk3/offlinelog rm -rf /home/oracle/dbdata/disk2/offlinelog --定位有问题文件 df -h du -sh *</code></pre> </li> <li> <p>重做日志到归档日志手工复制 <code>alter system archive log current;</code></p> </li> <li>设置数据库为自动归档模式 在把数据库设置为归档模式之后应该立即启动归档后台进程(将数据库设置为自动归档模式)</li> </ul> <pre><code>alter system archive log start; archive log list --以上设置方法,10g以前的版本重启后不会自动重启 --以下使用设置参数文件的方法设置自动归档模式 SQL&gt; show parameter log_archive_start NAME TYPE VALUE ----------------- ------- ------ log_archive_start boolean FALSE alter system set log_archive_start=true scope=spfile; shutdowm immediate startup SQL&gt; show parameter log_archive_start --报错:ORA-32004,原因是新版本不用这个参数了 ##创建pfile create pfile = 'pfileorcl.ora' from spfile='spfileorcl.ora'; ##修改pfile后,重新生成spfile vim /u01/app/oracle/product/12.2.0/db_1/dbs/pfileorcl.ora ##*.log_archive_start=TRUE startup pfile='/u01/app/oracle/product/12.2.0/db_1/dbs/pfileorcl.ora' create spfile='spfileorcl.ora' from pfile='pfileorcl.ora'; ##重新启动就没有报错了 startup</code></pre> <h2>归档进程和归档文件目录设置</h2> <ul> <li>了解重做日志缓冲区写重做日志,重做日志写归档日志</li> <li> <p>防止ARCn赶不上LGWR,开户多个归档后台进程(动态参数)</p> <pre><code>alter system set log_archive_max_processes=3; show parameter log_archive_max_processes</code></pre> </li> <li>归档日志冗余 <pre><code>show parameter log_archive_dest_ --1-31都为空 --使用如下路径 /home/oracle/data/disk4/offlinelog alter system set log_archive_dest_1="LOCATION=/home/oracle/data/disk4/offlinelog mandatory"; --再搜索就有设置上路径了 show parameter log_archive_dest_ alter system set log_archive_dest_2="LOCATION=/home/oracle/data/disk3/offlinelog"; alter system set log_archive_dest_3="LOCATION=/home/oracle/data/disk2/offlinelog optional"; --由查询可知,为空时也是可选性 select destination,binding,target,status from v$archive_dest; mandatory 强制性 optional 可选性 --使用日志交换命令使其产生归档日志 alter system switch logfile; --再检查就有归档日志产生了</code></pre></li> </ul> <h2>归档文件和归档进程的管理和维护</h2> <ul> <li> <p>设置强制性归档日志数据</p> <pre><code>show parameter log_archive_min_succeed_dest alter system set log_archive_min_succeed_dest=2;</code></pre> </li> <li>disk4的强制性归档日志坏了怎么办,另一参数设置开户或者关闭归档功能。 <pre><code>SQL&gt; show parameter log_archive_dest_state_ select destination,binding,target,status from v$archive_dest; alter system set log_archive_dest_state_1=defer; --设置为不可用后,数据库不会写这个归档日志,如果维护完成为可用,丢失的归档文件应该手工恢复 alter system set log_archive_dest_state_1=enable;</code></pre></li> </ul> <h2>改变成归档模式的应用实例</h2> <ul> <li>参数设置两个强制归档</li> <li>归档目录设置一个强制</li> <li>三个归档写进程</li> </ul> <pre><code>--启动归档模式 connect sys/oracle as sysdba archive log list shutdown immediate startup mount alter database archivelog; alter database open; archive log list --做全备份,备份在hotbackup /home/oracle/hotbackup select name from v$controlfile ; select member from v$logfile; select file_name,tablespace_name from dba_data_files; SQL&gt; show parameter spfile --有值是spfile开启的 select * from v$parameter where name='spfile'; select * from v$spparameter; [oracle@oracle script]$ vim /home/oracle/script/hotbackup.sh #! /bin/sh ## HotBacksCript rlwrap sqlplus / as sysdba &lt;&lt;EOF shutdown immediate; host cp -rf /u01/app/oracle/oradata/* /home/oracle/hotbackup/oradata host cp -rf /home/oracle/data/disk1/* /home/oracle/hotbackup/disk1 host cp -rf /home/oracle/data/disk2/* /home/oracle/hotbackup/disk2 host cp /u01/app/oracle/product/12.2.0/db_1/dbs/spfileorcl.ora /home/oracle/hotbackup exit; EOF --维护归档日志 alter system set log_archive_dest_1="LOCATION=/home/oracle/dbdata/disk4/offlinelog mandatory"; alter system set log_archive_dest_2="LOCATION=/home/oracle/dbdata/disk3/offlinelog"; alter system set log_archive_dest_3="LOCATION=/home/oracle/dbdata/disk2/offlinelog optional"; show parameter log_archive_dest_ select destination,binding,target,status from v$archive_dest; alter system switch logfile; show parameter log_archive_min_succeed_dest alter system set log_archive_min_succeed_dest=2; alter system set log_archive_max_processes=3; show parameter log_archive_max_processes</code></pre>

页面列表

ITEM_HTML