oracle spfile在线修改时损坏的经验分享

前些天,刚接触ORACLE,知道数据库一定要运行在归档模式下:
好手多把它改为归档模式了:先查询
SQL> select name,log_mode from v$database;

NAME      LOG_MODE
--------- ------------
IPTVBMS   ARCHIVELOG
SQL> archive log list
Database log mode              Archive Mode--表示已经改为归档了
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     7517
Next log sequence to archive   7523
Current log sequence           7523
1. SQL> alter system set log_archive_dest_1=’location=/oracle/oracle10g/log/archive_log’;
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测

例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2=’location=/oracle/oracle10g/log2/archive_log’;

2.关闭数据库
SQL> shutdown immediate

3.启动数据mount状态:
SQL> startup mount;

4、修改数据库为归档模式:
SQL> alter database archivelog;

5、打开数据库,查询:
SQL> alter database open;
有一天学到参数文件怎么玩,手多也就备份了
SQL> create pfile='/opt/oracle//app/oracle/product/11.1/db/dbs/orabak/initiptvbms.ora' from spfile;

今天改SGA_TARGET SGA_MAX_SIZE时搞错单,没有加M等单位,启动时报错了
SQL> shutdown immediate
一致性关闭时,报错如下
ORA-00851:SGA_MAX_SIZE 1577058304 cannot be set to more than MEMORY_TARGET
按网上的方法解决不了?
为了使数据库启动则使用pfile启动:

Sql代码 
1.SQL> startup pfile=/opt/oracle/app/oracle/admin/iptvbms/pfile/init.ora.4272011104615 
SQL> startup pfile='/opt/oracle/app/oracle/admin/iptvbms/pfile/init.ora.4272011104615' 通过pfile创建spfile:

Sql代码 
1.create spfile='/opt/oracle/app/oracle/product/11.1/db/dbs/spfileiptvbms.ora' from pfile='/opt/oracle/app/oracle/admin/iptvbms/pfile/init.ora.4272011104615'; 

是无法解决??想了半天,搞了半天才查出有备份
总结:ORACLE一定要运行在归档模式下,一定要定期备份相关的文件;
包括参数文件,控制文件,以及数据文件;

1.因为我的库中有N多库,所以要设置环境变量
export ORACLE_SID=iptvbms
Refer to the SQL*Plus User's Guide and Reference for more information.
2.登陆
oracle@iptv-app2:~> sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Apr 12 11:38:57 2013
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
Connected to an idle instance.
3.用备份的启动数据库到NOMOUNT状态
SQL> startup pfile='/opt/oracle//app/oracle/product/11.1/db/dbs/orabak/initiptvbms.ora' nomount;
ORACLE instance started.
Total System Global Area  559534080 bytes
Fixed Size                  2146312 bytes
Variable Size             339742712 bytes
Database Buffers          209715200 bytes
Redo Buffers                7929856 bytes
4。记得先还原SPFILE回来
SQL> create spfile from  pfile='/opt/oracle//app/oracle/product/11.1/db/dbs/orabak/initiptvbms.ora';

File created.
5.启动到MOUNT状态
SQL> alter database mount;

Database altered.
6。开库
SQL> alter database open;

Database altered.

 

SQL> create spfile from pfile='/opt/oracle//app/oracle/product/11.1/db/dbs/orabak/initiptvbms.ora';

File created.
7。验证SPFILE是否已经OK
SQL> ho ls /opt/oracle/app/oracle/product/11.1/db/dbs/spfileiptvbms*
/opt/oracle/app/oracle/product/11.1/db/dbs/spfileiptvbms.ora

 

8。重启数据库

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
有惊无怕,可以有经验了

你可能感兴趣的:(数据库)