oracle笔记整理四[物理结构管理]

来源:互联网 发布:mac解压bin文件 编辑:程序博客网 时间:2024/06/06 01:12

1、参数文件
   --每个实例启动时都要读入一个初始化参数文件
   --#注释
   --可以以任意顺序指定参数
   --若想在一行输入若干参数,要用空格分开,例如
   --PROCESSES=100 CPU_COUNT=1 OPEN_CURSORS=10
   --若想为某一参数设置多重值,多重值要包含在圆括号中,并用逗号隔开,例如
   --ROLLBACK_SEGMENTS=(SEG1,SEG2,SEG3,SEG4,SEG5)
   --参数文件中任何变化只有在实例重启后生效
   --有些参数可以用ALTER SYSTEM、ALTER SESSION立即设置,称为动态初始化参数
   --立即修改实例中所有会话的参数,并保持到实例关闭
   ALTER SYSTEM SET parameter_name=value DEFERRED;
   --修改整个实例的参数,但已保持的会话参数不变,直到重新连接为止
   ALTER SYSTEM SET parameter_name=value;
   --在当前会话内改变参数
   ALTER SESSION SET parameter_name=value;
   --显示所有初始化参数的当前设置
   SHOW PARAMETERS;
   --显示特定的初始化参数当前设置
   SHOW PARAMETERS parameter_name;

2、数据文件
   1>、增加数据文件
       --Oracle数据库必须至少有一个数据文件且至少应150M,这时只有SYSTEM一个表空间
       --增加数据文件受到的限制:
       --操作系统限定了每个进程打开的文件数
       --Oracle限定了实例打开的数据库的最大打开的数据文件数
       --当发出CREATE DATABASE或CREATE CONTROLFILE时,MAXDATAFILES参数指定了控制
       --文件的数据文件的初始大小,以后增加的数据文件数若大于该参数但小于初始参数
       --文件中的DB_FILES参数设置,则系统会自动调整。DB_FILES设置过小,以后调整时
       --要先关闭数据库,若设置太大,会造成内存消耗
       --初始参数文件中SGA上限设置
       ALTER TABLESPACE mytab ADD DATAFILE 'mydb1.dbf' SIZE 100M;
   2>、改变数据文件大小
       --方法一,启用数据文件的自动扩展功能
       --通过查看DBA_DAT_FILES视图的AUTOEXTENSIBLE列可知数据文件是否为自动扩展
       --方法二,手工改变数据文件大小
       ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 100M;
   3>、改变数据文件的可用性
       --归档模式下使数据文件脱机或联机
       ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;
       ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;
       --不归档模式下使数据文件脱机并立即删除
       ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE DROP;
       --改变表空间所有数据文件和临时文件可用性
       ALTER TABLESPACE tablespacename DATAFILE {ONLINE/OFFLINE};
       ALTER TABLESPACE tablespacename TEMPFILE {ONLINE/OFFLINE};
   4>、重命名和定位数据文件
       a.确定要操作的数据文件的名称
         SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
         WHERE TABLESPACE_NAME='mytabname';
       b.将包含该数据文件的表空间脱机
       c.使用操作系统命令拷贝数据文件到新位置并重新命名
       d.在Oracle中重新命名该数据文件
         ALTER TABLESPACE mytabname RENAME DATAFILE
         '/u02/oracle/rbdb1/users01.dbf',
         '/u02/oracle/rbdb1/users02.dbf' TO
         '/u03/oracle/rbdb1/users01.dbf',
         '/u03/oracle/rbdb1/users02.dbf';
       e.使表空间联机
   5>、校验数据文件的数据块
       --通常将设置DB_BLOCK_CHECKSUM设为FALSE
   6>、查看数据文件信息
       DBA_DATA_FILES
       DBA_EXTENTS
       USER_EXTENTES
       DBA_FREE_SPACE
       USER_FREE_SPACE
       V$DATAFILE
       V$DATAFILE_HEADER

3、控制文件
   1>、创建控制文件拷贝/重命名/重定位控制文件
       a.关闭实例
       b.使用操作系统命令拷贝控制文件备份到新位置并重新命名
       c.修改初始化参数文件中的CONTROL_FILES,增加新控制文件或改变指向
       d.重启数据库
   2>、使用备份恢复被损坏的控制文件
       a.关闭实例
       b.使用操作系统命令拷贝控制文件备份覆盖被损坏的控制文件
       c.重启数据库
   3>、删除控制文件
       a.关闭实例
       b.修改初始化参数文件,删除CONTROL_FILES中相应条目
       c.重启数据库
   4>、查看控制文件
       V$CONTROLFILE
       V$CONTROLFILE_RECORD_SECTION 
       V$PARAMETER

4、重做日志文件
   1>、增加重做日志文件组
       ALTER DATABASE ADD LOGFILE('/oracle/dbs/log1c.rdo',
       '/oracle/dbs/log2c.rdo') SIZE 500K;
       --也可指定组号,组号应在1和MAXLOGFILES设置之间
       ALTER DATABASE ADD LOGFILE GROUP 10('/oracle/dbs/log1c.rdo',
       '/oracle/dbs/log2c.rdo') SIZE 500K;
   2>、增加重做日志文件组成员
       ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
       --也可通过指定组中所有其他成员来识别
       ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo'
       ('/oracle/dbs/log2a.rdo','/oracle/dbs/log2b.rdo');
   3>、重命名和重定位联机重做日志文件成员
       a.关闭数据库
         SQL>SHUTDOWN;
       b.用操作系统命令拷贝日志文件到新位置并重命名
         cp /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
         cp /diska/logs/log2a.rdo /diskc/logs/log2c.rdo
       c.启动并装配数据库,但不打开它
         CONNECT / as SYSDBA
         STARTUP MOUNT
       d.重命名联机重做日志文件成员
         ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo',
                                    '/diska/logs/log2a.rdo'
                               TO   '/diska/logs/log1c.rdo',
                                    '/diska/logs/log2c.rdo';
       e.正常打开数据库,此时转换立即生效
         ALTER DATABASE OPEN;
   4>、删除重做日志文件组
       --删除日志文件组时要考虑以下限制
       --一个实例至少需要两组联机重做日志文件
       --删除之前要使该日志文件组变为不活动,可以强制重做日志文件转换
       --删除之前,必须保证它是归档了的,可查看V$LOG
       ALTER DATABASE DROP LOGFILE GROUP 3;
   5>、删除重做日志文件组成员
       ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
   6>、强制重做日志文件转换
       ALTER SYSTEM SWITCH LOGFILE;
   7>、清空联机重做日志文件内容
       ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
   8>、查看联机重做日志文件信息
       V$LOG
       V$LOGFILE
       V$LOG_HISTORY

5、归档重做日志文件