Oracle9i设置archivelog时报错ORA-00439的解决

来源:互联网 发布:java线程阻塞和挂起 编辑:程序博客网 时间:2024/06/09 18:16
--pfile
*.aq_tm_processes=1
*.background_dump_dest='d:/oracle/admin/db01gen/bdump'
*.compatible='9.2.0.0.0'
*.control_files='d:/oracle/oradata/db01gen/CONTROL01.CTL','d:/oracle/oradata/db01gen/CONTROL02.CTL','d:/oracle/oradata/db01gen/CONTROL03.CTL'
*.core_dump_dest='d:/oracle/admin/db01gen/cdump'
*.db_block_size=8192
*.db_cache_size=16777216
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='db01gen'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=db01genXDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='db01gen'
*.java_pool_size=20971520
*.job_queue_processes=10
*.large_pool_size=3145728
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=33554432
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:/oracle/admin/db01gen/udump'
*.log_archive_start=true
*.log_archive_dest_1='location = g:/archive1/db01gen'
*.log_archive_dest_2='location = g:/archive2/db01gen'
*.log_archive_dest_3='location = g:/archive3/db01gen'
*.log_archive_format='arch_%s_%t.arc'

--startup mount
SQL>sqlplus /nolog
SQL>connect sys/manager as sysdba
SQL>create spfile from pfile
SQL>startup mount

报错:
ORA-00439: feature not enabled: Managed Standby

修改initfile,使用语法格式 log_archive_dest=
*.log_archive_dest='location = g:/archive1/db01gen'

SQL>startup mount pfile='...'

报错:
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-09291: sksachk: invalid device specified for archive destination
OSD-04018: Unable to access the specified directory or device.
O/S-Error: (OS 123) ND<~C{!"D?B<C{;r>m1jSo7(2;U}H7!#

修改initfile,去掉location
*.log_archive_dest='g:/archive1/db01gen'
*.log_archive_duplex_dest='g:/archive2/db01gen'

SQL>startup mount pfile='...'

成功,继续
SQL>alter database archivelog;
SQL>alter database open;
SQL> archive log list

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            g:/archive2/db01gen
Oldest online log sequence     1
Next log sequence to archive   3
Current log sequence           3

总结:
由于当前数据库版本是Standard Edition,而Oracle 9i Standard Edition 不支持 standby database,
归档日志目标地址的语法格式log_archive_dest_n=只适用于支持standby database的Enterprise Edition,
而且location也是支持standby database的写法,所以Standard Edition 只能使用语法格式log_archive_dest=
和log_archive_duplex_dest=

查询版本的语句:
SQL> COL PRODUCT FORMAT A35
SQL> COL VERSION FORMAT A15
SQL> COL STATUS FORMAT A15
SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION;

PRODUCT                             VERSION         STATUS
----------------------------------- --------------- ---------------
NLSRTL                              9.2.0.1.0       Production
Oracle9i                            9.2.0.1.0       Production
PL/SQL                              9.2.0.1.0       Production
TNS for 32-bit Windows:             9.2.0.1.0       Production

SQL> desc v$version;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 BANNER                                             VARCHAR2(64)

或:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE    9.2.0.1.0       Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

如果是Enterprise Edition的话,会显示Oracle9i Enterprise Edition         

附:网上的讨论。
http://www.dbasupport.com/forums/archive/index.php/t-23457.html
jmodic04-09-2002, 04:36 PM
Originally posted by utkinpol
All the point is to force 9i standart edition to maintain the standby database, typically in 8i for standby database support you have to use log_arch_dest_N syntaxis.
Will it work the same way it was for 8i standard?
That is "lie and bullshit" from your side (I'm using your language). Since it was introduced in 8i, LOG_ARCH_DEST_n parameters were never supported in Standard edition, only in EE. You simply couldn't used them in SE. Period. If you claim you were using them in 8i SE, you are bullshitting.

So they haven't silently removed normal support for standby database in 9i, as it never existed that way in 8i SE. In short, nothing has change between 8i and 9i regarding this isue. So I don't understand why such a big fuss about this topic....