免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3692 | 回复: 18
打印 上一主题 下一主题

pfile出问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-16 16:48 |只看该作者 |倒序浏览
SQL> create pfile='/data/oradata/test/pfile1' from spfile;
create pfile='/data/oradata/test/pfile1' from spfile
*
ERROR at line 1:
ORA-27046: file size is not a multiple of logical block size
Additional information: 1


这个问题是什么意思啊?没遇到过!??

论坛徽章:
0
2 [报告]
发表于 2006-01-16 17:23 |只看该作者
create pfile='/data/oradata/test/pfile1' from spfile;
不需要pfile1
create pfile='/data/oradata/test/' from spfile;

论坛徽章:
0
3 [报告]
发表于 2006-01-16 17:32 |只看该作者
原帖由 macrodba 于 2006-1-16 17:23 发表

不错,另外怎么不用SPFILE啊?

论坛徽章:
0
4 [报告]
发表于 2006-01-17 10:16 |只看该作者
pfile1只是一个文件名
而且照macrodba说的也是出现相同的错误!

论坛徽章:
0
5 [报告]
发表于 2006-01-17 10:56 |只看该作者
原帖由 macrodba 于 2006-1-16 17:23 发表
create pfile='/data/oradata/test/pfile1' from spfile;
不需要pfile1
create pfile='/data/oradata/test/' from spfile;


你的建议好像有问题阿,看例子:

SQL> create pfile='/T3/ORACLE/spile1.ora' from spfile;

File created.

SQL> create pfile='/T3/ORACLE/spile1' from spfile;

File created.

SQL> host ls /T3/ORACLE/spi*
/T3/ORACLE/spile1      /T3/ORACLE/spile1.ora

SQL> host file  /T3/ORACLE/spi*
/T3/ORACLE/spile1:      ascii text
/T3/ORACLE/spile1.ora:  ascii text

SQL>
SQL> create pfile='/T3/ORACLE/' from spfile;
create pfile='/T3/ORACLE/' from spfile
*
ERROR at line 1:
ORA-07391: sftopn: fopen error, unable to open text file.


SQL>

论坛徽章:
0
6 [报告]
发表于 2006-01-17 11:05 |只看该作者
^_^,终于被我模拟出来了!
你的问题在于你用spfile启动了db,然后在db running的过程中手工修改了spfile导致的!

论坛徽章:
0
7 [报告]
发表于 2006-01-17 11:07 |只看该作者
请看具体过程:
SQL> startup
ORACLE instance started.

Total System Global Area  219644872 bytes
Fixed Size                   730056 bytes
Variable Size             201326592 bytes
Database Buffers           16777216 bytes
Redo Buffers                 811008 bytes
Database mounted.
Database opened.
SQL> host
$ ls
init.ora        initdw.ora      initora9.ora    lkORA9          orapwora9       spfileora9.ora
$ cp  spfileora9.ora  spfileora9.ora.bak
$ vi  spfileora9.ora
^E^B^B^C\351"z^E\377*.aq_tm_processes=1
*.background_dump_dest='/T3/ORACLE/admin/ora9/bdump'
*.compatible='9.2.0.0.0'
*.control_files='/T3/ORACLE/oradata/ora9/control01.ctl','/T3/ORACLE/oradata/ora9/control02.ctl','/T3/ORACLE/oradata/ora9/control03.c
tl'
*.core_dump_dest='/T3/ORACLE/admin/ora9/cdump'
*.db_block_size=8192
*.db_cache_size=16777216
............................
然后手工随便不输入几个字母,保存,退出

$ exit

SQL> create pfile='/T3/ORACLE/pfile1' from spfile;
create pfile='/T3/ORACLE/pfile1' from spfile
*
ERROR at line 1:
ORA-27046: file size is not a multiple of logical block size
Additional information: 1


SQL>

论坛徽章:
0
8 [报告]
发表于 2006-01-17 11:19 |只看该作者
继续往下看:
现在我们还原刚才备份的那个spfile,重新创建pfile
SQL> host
$ ls
init.ora            initora9.ora        orapwora9           spfileora9.ora.bak
initdw.ora          lkORA9              spfileora9.ora
$ cp spfileora9.ora.bak spfileora9.ora
$ exit

SQL> l
  1* create pfile='/T3/ORACLE/pfile1' from spfile
SQL> /

File created.
成功!
下面我们模仿在db running过程中del掉spfile,看看会出现什么情况:

SQL> host
$ ls
init.ora            initora9.ora        orapwora9           spfileora9.ora.bak
initdw.ora          lkORA9              spfileora9.ora
$ mv spfileora9.ora spfileora9.ora.bak2
$ exit

SQL> l
  1* create pfile='/T3/ORACLE/pfile1' from spfile
SQL> /
create pfile='/T3/ORACLE/pfile1' from spfile
*
ERROR at line 1:
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3


SQL>
出错,提示找不到spfile,看来当我们发出create pfile from spfile的时候他会道相应目录寻找spfile,如果有而且正确就create pfile,否则提示找不到该文件或者文件不对,即使我们用pfile启动,当我们发出create pfile from spfile的时候仍然遵循这一个原则。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host
$ ls
init.ora            initora9.ora        orapwora9           spfileora9.ora.bak
initdw.ora          lkORA9              spfileora9.ora
$ mv spfileora9.ora spfileora9.ora.bak2
$ exit

SQL> startup nomount
ORACLE instance started.

Total System Global Area  219644872 bytes
Fixed Size                   730056 bytes
Variable Size             201326592 bytes
Database Buffers           16777216 bytes
Redo Buffers                 811008 bytes
SQL> create pfile='/T3/ORACLE/pfile1.ora' from spfile;
create pfile='/T3/ORACLE/pfile1.ora' from spfile
*
ERROR at line 1:
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3


SQL> create pfile='/T3/ORACLE/pfile1.ora' from spfile='/T3/ORACLE/product/9.2.0/dbs/spfileora9.ora.bak2';

File created.

SQL> host
$ ls
init.ora             initora9.ora         orapwora9            spfileora9.ora.bak2
initdw.ora           lkORA9               spfileora9.ora.bak
$ mv spfileora9.ora.bak2 spfileora9.ora
$ exit
SQL> create pfile='/T3/ORACLE/pfile1.ora' from spfile;

File created.

SQL>

论坛徽章:
0
9 [报告]
发表于 2006-01-17 11:22 |只看该作者
看完这个,我相信你有关spfile和pfile的互相创建的问题你应该就全部明白了

论坛徽章:
0
10 [报告]
发表于 2006-01-17 12:24 |只看该作者
remen真是强人,我想讲清楚pfile 与 spfile很多人能做到,但能找到LZ的问题是如何发生的,PFing
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP