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.
有惊无怕,可以有经验了