如何解决Oracle数据库的非归档模式迁移到归档模式中存在的问题
今天在做oracle归档测试的时候发现了几个问题,在这里记录下来希望能得到大家的纰漏和帮助
[oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 19 17:34:42 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
由于对oracle数据库不太熟悉,在执行了下面的命令的时候感到好奇怪:
SQL> alter database archivelog; alter database archivelog * ERROR at line 1: ORA-01126: database must be mounted in this instance and not open in any instance
这句话意思是说,要想进行配置归档,必须属于一个数据库实例中,这个在RAC中会出现这个问题可以参见:
<a target=_blank href="http://shuimomo.blog.51cto.com/1141396/933434">点击打开链接</a>
</pre><pre code_snippet_id="557252" snippet_file_name="blog_20141220_7_6900758" name="code" class="sql" style="font-size:18px;">但是我发现我是测试在VM的环境下,不存在这种RAC情况:我试了两种情况第一种可以。只有mount的情况才可以操作
<table border="1" width="500" cellspacing="1" cellpadding="1"><tbody><tr><td>SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 417546240 bytes Fixed Size 2213936 bytes Variable Size 314574800 bytes Database Buffers 96468992 bytes Redo Buffers 4288512 bytes Database mounted. SQL> alter database archivelog; Database altered.</td></tr><tr><td>SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 417546240 bytes Fixed Size 2213936 bytes Variable Size 314574800 bytes Database Buffers 96468992 bytes Redo Buffers 4288512 bytes Database mounted. Database opened. SQL> alter database archivelog; alter database archivelog * ERROR at line 1: ORA-01126: database must be mounted in this instance and not open in any instanc e</td></tr></tbody></table>
SQL> show parameter db_recovery_file_dest; NAME TYPE ------------------------------------ -------------------------------- VALUE ------------------------------ db_recovery_file_dest string /u01/app/oracle/flash_recovery _area db_recovery_file_dest_size big integer 3882M
<span style="color: rgb(57, 57, 57); font-family: verdana, 'ms song', Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px; background-color: rgb(250, 247, 239);">发现现在缺省使用的路径为 DB_RECOVERY_FILE_DEST,此路径是和Oracle的Flash_back_recovery 路径混杂在一起的,不太妥当。</span>
<span style="font-family:verdana, ms song, Arial, Helvetica, sans-serif;color:#393939;"><span style="font-size: 14px; line-height: 21px;">所以要进行修改:</span></span>
SQL> alter system set log_archive_dest = '/u01/app/oracle/arch' scope = spfile; System altered. SQL> !ls -lrt /u01/app/oracle total 48 drwxr-xr-x 2 oracle oinstall 4096 Dec 15 21:25 checkpoints drwxr-x--- 5 oracle oinstall 4096 Dec 15 22:03 cfgtoollogs drwxr-x--- 3 oracle oinstall 4096 Dec 15 22:04 oradata drwxr-x--- 3 oracle oinstall 4096 Dec 15 22:04 admin drwxrwxr-x 4 oracle oinstall 4096 Dec 15 22:04 diag drwxr-x--- 4 oracle oinstall 4096 Dec 15 22:06 flash_recovery_area
通过上面的查看你会发现数据库并没有为其创建一个arch目录,在建立日志文件的时候恰恰相反,假如当前目录下有你想创建的
文件你必须要先删除了再创建该文件。这个要注意一下。
</pre><pre code_snippet_id="557252" snippet_file_name="blog_20141220_16_9214578" name="code" class="sql" style="font-size:18px;">SQL> !pwd /home/oracle SQL> !mkdir /u01/app/oracle/arch SQL> !ls -lrt /u01/app/oracle total 52 drwxr-xr-x 2 oracle oinstall 4096 Dec 15 21:25 checkpoints drwxr-x--- 5 oracle oinstall 4096 Dec 15 22:03 cfgtoollogs drwxr-x--- 3 oracle oinstall 4096 Dec 15 22:04 oradata drwxr-x--- 3 oracle oinstall 4096 Dec 15 22:04 admin drwxrwxr-x 4 oracle oinstall 4096 Dec 15 22:04 diag drwxr-x--- 4 oracle oinstall 4096 Dec 15 22:06 flash_recovery_area drwxr-xr-x 2 oracle oinstall 4096 Dec 19 17:41 arch SQL>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。