DBA的悲哀莫过于没有备份好文件。 eygle称之为DBA的恶梦。此言甚是!
尽管很多人认为对参数文件的备份并不重要,但你往往就因此吃亏!
参数文件,10.2.0 windows版本oracle的spfile和pfile默认在E:/oracle/product/10.2.0/db_1/database目录下,SPFILEsid.ORA和INITsid.ORA,oracle默认用spfile,若spfile损坏,则自动用pfile,如果 两个都坏了,则提示错误。如果没有备份,那怎么办呢?
当然,你可以找到oracle自带的init模板,一个个参数地设置自己系统的参数文件。那这将是一件很糟的事情,它会浪费你宝贵的时间。有什么办法吧?关键是要快速的!
正如题所示,我有个好办法……
从alert_alaska.log警告日志里着手,因为它记录着一直以来数据库运行的情况,当然也包括每次启动的参数信息啦,我们要的就是
__shared_pool_size = 75497472
__large_pool_size = 4194304
__java_pool_size = 4194304
__streams_pool_size = 0
nls_language = AMERICAN
nls_territory = AMERICA
sga_target = 167772160
control_files = E:/ORACLE/PRODUCT/ 10.2 . 0 /ORADATA/ALASKA/CONTROL01.CTL, E:/ORACLE/PRODUCT/ 10.2 . 0 /ORADATA/ALASKA/CONTROL02.CTL, E:/ORACLE/PRODUCT/ 10.2 . 0 /ORADATA/ALASKA/CONTROL03.CTL
db_block_size = 8192
__db_cache_size = 79691776
compatible = 10.2 . 0.1 . 0
db_file_multiblock_read_count = 16
db_recovery_file_dest = e:/oracle/product/ 10.2 . 0 / alash_recovery_area
db_recovery_file_dest_size = 1073741824
log_checkpoints_to_alert = TRUE
undo_management = AUTO
undo_tablespace = UNDOTBS1
undo_retention = 900
remote_login_passwordfile = EXCLUSIVE
db_domain = com.cn
dispatchers = '(PROTOCOL =TCP) (SERVICE= alaskaXDB)'
job_queue_processes = 10
audit_file_dest = E:/ORACLE/PRODUCT/ 10.2 . 0 /ADMIN/ALASKA/ADUMP
background_dump_dest = E:/ORACLE/PRODUCT/ 10.2 . 0 /ADMIN/ALASKA/BDUMP
user_dump_dest = E:/ORACLEPRODUCT/ 10.2 . 0 ADMIN/ALASKA/UDUMP
core_dump_dest = E:/ORACLE/PRODUCT/ 10.2 . 0 /ADMIN/ALASKA/CDUMP
db_name = alaska
open_cursors = 300
pga_aggregate_target = 16777216
复制以前成功启动的参数语句(如上代码段)到一个文本中,只需把dispatchers = (PROTOCOL=TCP) (SERVICE=alaskaXDB)的值加上''(单引号),变成dispatchers = '(PROTOCOL=TCP) (SERVICE=alaskaXDB)',保存为c:/pfile.txt
然后运行,startup pfile='c:/pfile.txt'; 即可
是不是很快速,很另类呢!如你所愿。
——EOF——