`
zhangpeng012310
  • 浏览: 61260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数据库db_files参数增大怎么办

阅读更多

数据库的数据文件数(200)达到了数据库定义的参数db_files的值,而原本需要使用alter system可以修改这个参数,但是因为限制该参数的maxdatafiles值(由控制文件定义)仪200,故要想改大db_files参数值,需要重建控制文件,下面是我个人根据实验总结的操作过程。

一、参数察看
$sqlplus /nolog

conn / as sysdba



SQL> show parameter db_files;



NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_files                             integer     200

由此可看出db_files值为200,如果数据库中数据文件数达到或超过200,就需要更改该参数了。

更改db_files有两种情况:

1,  如果控制文件中定义的maxdatafiles以及系统允许打开的文件数值大于200,则可以通过alter方式来修改db_files的值

2,  如果控制文件中maxdatafiles值等于200,则需要重建控制文件来修改maxdatafiles值。

察看maxdatafiles方法

SQL>alter database backup controlfile to trace;

到$ORACLE_BASE/admin/db_name/udump下面查找最新生成的trc文件

$grep –i MAXDATAFILES boss_ora_4310.trc

MAXDATAFILES 200

MAXDATAFILES 200

系统允许打开文件数可用ulimit –a察看

$ulimit –a

open files                      (-n) 1024

二、修改步骤
1,生成控制文件创建脚本
SQL>alter database backup controlfile to trace;

在$ORACLE_BASE/admin/db_name/udump目下新生成的trc文件oracle/admin/boss/udump/boss_ora_4310.trc

根据上述文件创建控制文件生成脚本recreate_control.sql

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "BOSS" NORESETLOGS  NOARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 300     修改MAXDATAFILES值

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 '/oracle/oradata/boss/redo01.log'  SIZE 50M,

  GROUP 2 '/oracle/oradata/boss/redo02.log'  SIZE 50M,

  GROUP 3 '/oracle/oradata/boss/redo03.log'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  '/oracle/oradata/boss/system01.dbf',

  '/oracle/oradata/boss/undotbs01.dbf',

  '/oracle/oradata/boss/sysaux01.dbf',

  '/oracle/oradata/boss/users01.dbf',

  '/oracle/oradata/boss/example01.dbf'

CHARACTER SET ZHS16GBK

;

2,关闭数据库
SQL>shutdown

3, 备份原有控制文件,删除原有控制文件
备份控制文件

cd /oracle/oradata/boss/

cp control01.ctl control01.ctl.0520

cp control02.ctl control02.ctl.0520

cp control03.ctl control03.ctl.0520

删除控制文件

rm control0*.ctl

4, 创建新的控制文件
$sqlplus /nolog

SQL>conn / as sysdba

SQL>@ oracle/admin/boss/udump/recreate_control.sql

ORACLE instance started.



Total System Global Area  268435456 bytes

Fixed Size                  1218892 bytes

Variable Size              75499188 bytes

Database Buffers          188743680 bytes

Redo Buffers                2973696 bytes



Control file created.

5,使用控制文件恢复
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE

ORA-00279: change 567684 generated at 05/15/2010 00:19:32 needed for thread 1

ORA-00289: suggestion :

/oracle/flash_recovery_area/BOSS/archivelog/2010_05_15/o1_mf_1_3_%u_.arc

ORA-00280: change 567684 for thread 1 is in sequence #3





Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

/oracle/oradata/boss/redo01.log

ORA-00310: archived log contains sequence 2; sequence 3 required

ORA-00334: archived log: '/oracle/oradata/boss/redo01.log'





SQL> RECOVER DATABASE USING BACKUP CONTROLFILE

ORA-00279: change 567684 generated at 05/15/2010 00:19:32 needed for thread 1

ORA-00289: suggestion :

/oracle/flash_recovery_area/BOSS/archivelog/2010_05_15/o1_mf_1_3_%u_.arc

ORA-00280: change 567684 for thread 1 is in sequence #3





Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

/oracle/oradata/boss/redo02.log

Log applied.

Media recovery complete.

这里恢复要使用redo在线日志,需要逐个尝试,直到介质恢复成功。

6,resetlogs方式启动数据库
SQL> ALTER DATABASE OPEN RESETLOGS;

Database altered

7,恢复临时表空间


SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/oradata/boss/temp01.dbf'

  2       SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;



Tablespace altered.

8,修改参数
SQL> show parameter db_files;



NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_files                             integer     200





SQL> alter system set db_files=250 scope=spfile;



System altered.



SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.



Total System Global Area  268435456 bytes

Fixed Size                  1218892 bytes

Variable Size              75499188 bytes

Database Buffers          188743680 bytes

Redo Buffers                2973696 bytes

Database mounted.

Database opened.



SQL>show parameter db_files

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_files                             integer     250

SQL> exit

至此db_files参数修改工作完成

当然,如果控制文件损坏或丢失,也可以使用这种方法来恢复数据库。


分享到:
评论

相关推荐

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    目录 摘要 3 ABSTRACT 3 1. 灾难类型 4 2. 恢复类型 4 3. 恢复的级别 4 ... 只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 ...

    数据库项目组日常运维及应急故障处理手册.docx

    对于Data Pump Export,PARALLEL参数必须要小于等于dump files数 对于Data Pump Import,PARALLEL不要比dump文件数大很多,可以大一些。这个参数也指定了导入时创建索引的并行度。 PARALLEL只允许在企业版使用。 ...

    SQL Server 2005示例数据库 安装包 [免费版]

    3、单击增加按钮,然后确定要增加的数据库位置(也可以一次加入多个数据库)。 连接数据库的注意事项 虽然在 SQL Server 2005中文件的结构已经发生了改变,你仍然可以连接SQL Server 2000 的数据库。但是只有...

    最全的oracle常用命令大全.txt

    先读取参数文件,再按参数文件中的设置启动数据库 例:startup pfile=E:Oracleadminoradbpfileinit.ora 8、startup EXCLUSIVE 二、用户如何有效地利用数据字典 ORACLE的数据字典是数据库的重要组成部分之一,它...

    一个好用的数据库类

    一个好用的ODBC数据库类CMYODBC --- VC数据库开发之一 &lt;br&gt;一、引言 感觉MFC的CRecordset类不是很好用,因为我们要想使用的话必须为每个查询从CRecordset类派生出一个新类,或者进行动态数据交换。在VC知识库...

    orcale常用命令

    先读取参数文件,再按参数文件中的设置启动数据库 例:startup pfile=E:Oracleadminoradbpfileinit.ora 8、startup EXCLUSIVE 二、用户如何有效地利用数据字典 ORACLE的数据字典是数据库的重要组成部分之一,它...

    oracle详解

    DATAFILES 将要传输到数据库的数据文件 TTS_OWNERS 拥有可传输表空间集中数据的用户 关于增量参数的说明:exp/imp的增量并不是真正意义上的增量,所以最好不要使用。 使用方法: Exp parameter_name=value or Exp ...

    杰奇1.4 破解版+注册机

    JIEQI_DB_HOST - 数据库服务器,一般数据库和网站在同一机器就用 localhost, 否则可以用服务器IP JIEQI_DB_USER - 登陆数据库的用户名 JIEQI_DB_USER - 数据库密码 JIEQI_DB_NAME - 数据库名称 JIEQI_LICENSE_...

    杰奇1.4 破解版

    JIEQI_DB_HOST - 数据库服务器,一般数据库和网站在同一机器就用 localhost, 否则可以用服务器IP JIEQI_DB_USER - 登陆数据库的用户名 JIEQI_DB_USER - 数据库密码 JIEQI_DB_NAME - 数据库名称 JIEQI_LICENSE_...

    oracle 11g安装配置

    增大用户oracle的进程数、文件数限制 [root@dbserver ~]# vi /etc/sysctl.conf …… fs.aio-max-nr = 1048576 限制并发未完成的请求,应该设置避免I/O子系统故障 fs.file-max = 6815744 文件句柄设置代表linux系统中...

    测试培训教材

    C:\Program Files\Mercury\Quality Center\repository\qc\Default\QualityCenter_Demo_db中的dbid.xml &lt;DBSERVER_NAME&gt;192.168.1.12&lt;/DBSERVER_NAME&gt; 7、Mercury Tours 样例程序 启动:...

    杰奇1.3标准版

    configs - 配置文件目录 compiled - 编译文件目录 files - 用户上传或者网站程序生成文件保存的目录,可在后台设置目录名称 &lt;br&gt;2、建立数据库,并导入数据结构文件和原始数据文件,mysql4.0x或者以下...

    Linux FTP服务配置

    修改主conf参数,增加以下配置,填写"user_config_dir=/ftpconfig",这个就是定义不同账户对应不同目录的重要所在. pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES user_config_dir=/...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.7

    目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.4

    目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.6

    目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.7 201705更新

    目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于...

Global site tag (gtag.js) - Google Analytics