oracle创建控制文件
oracle sqluldr用法
oracle sqluldr用法
OracleSQL*Loader的用法是将大量数据从外部文件加载到Oracle数据库中。
SQL*Loader是一个命令行工具,使用其语法基于控制文件和数据文件来加载数据。
要使用SQL*Loader,必须创建一个控制文件,其中包含数据文件的描述,以及数据如何被加载到表中的说明。
以下是SQL*Loader的一些用法:
1.控制文件
控制文件是SQL*Loader的核心组件。
它描述了要加载的数据文件的结构和格式。
控制文件包含以下信息:
- 数据文件的名称和位置
- 数据字段的名称和类型
- 数据字段的分隔符和引用符
- 数据加载的表和列名称
2.数据文件
SQL*Loader使用数据文件将数据加载到数据库中。
数据文件必须与控制文件结构相匹配。
数据文件的格式可以是文本文件、定长文件或可分隔文件。
3.数据加载
使用SQL*Loader加载数据时,必须指定控制文件和数据文件的名称和位置。
以下是一个例子:
sqlldr control=mycontrol.ctl data=mydata.dat
log=mylog.log
该命令将加载mydata.dat文件中的数据到数据库中,并将日志记录到mylog.log文件中。
4.高级特性
SQL*Loader还支持高级特性,如并行加载、条件加载和转换数据。
这些特性可以提高加载数据的效率和灵活性。
总之,Oracle SQL*Loader是一个强大的工具,可用于快速加载大量数据到Oracle数据库中。
掌握其用法可以帮助开发人员提高数据处理的效率和质量。
Oracle11gR2RMAN配置控制文件自动备份(controlfileautobackup)
Oracle11gR2RMAN配置控制⽂件⾃动备份(controlfileautobackup)通过在 RMAN 中配置 control file autobackup,RMAN 会⾃动备份控制⽂件和参数⽂件到预先设定好的路径。
触发情况:1、当数据库的结构发⽣改变时(数据库运⾏在归档模式)2、当完成 RMAN 备份后好处:即使数据库丢失了控制⽂件和恢复⽬录(recovery catalog),控制⽂件和参数⽂件也可以从⾃动备份的控制⽂件中进⾏恢复,让数据库多了⼀层保护,⽽且从autobackup中恢复控制⽂件和参数⽂件更加快速⽅便。
设置⽅法:查看现有的 RMAN 配置参数,可以看到没有启⽤控制⽂件⾃动备份,参数依旧是默认值[oracle@ATFDB1 admin]$ rman target /Recovery Manager: Release 11.2.0.3.0 - Production on Wed Dec 9 09:19:07 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: FIRE (DBID=917673527)RMAN> show all;using target database control file instead of recovery catalogRMAN configuration parameters for database with db_unique_name FIRE are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u02/app/oracle/product/11.2.0/db_1/dbs/snapcf_fire.f'; # default启⽤控制⽂件⾃动备份特性RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters are successfully stored配置控制⽂件⾃动备份的路径和格式RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/ORADATA/controlfile/cf_%F';new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/ORADATA/controlfile/cf_%F';new RMAN configuration parameters are successfully stored查看重新设置的参数RMAN> show all;RMAN configuration parameters for database with db_unique_name FIRE are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/ORADATA/controlfile/cf_%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u02/app/oracle/product/11.2.0/db_1/dbs/snapcf_fire.f'; # default通过 RMAN 备份数据库,查看是否⽣成控制⽂件⾃动备份。
Txt文件导入oracle数据库方法
Txt文件导入oracle数据库方法在Oracle数据库中,可以使用SQL*Loader工具或者外部表的方式将文本文件(.txt文件)导入到数据库。
下面我将为你详细介绍这两种方法。
方法一:使用SQL*Loader工具导入txt文件1.创建控制文件控制文件是SQL*Loader用来定义数据导入规则的文件。
它描述了数据文件的格式、目标表的结构,以及导入时的数据转换和验证规则。
例如,假设我们要将一个txt文件中的数据导入到名为EMP的表中,EMP表的结构如下:CREATETABLEEMPEMPNONUMBER(4),ENAMEVARCHAR2(10),JOBVARCHAR2(9),MGRNUMBER(4),HIREDATEDATE,SALNUMBER(7,2),COMMNUMBER(7,2),DEPTNONUMBER(2)我们可以创建一个名为emp.ctl的控制文件,内容如下:LOADDATAINFILE 'emp.txt'APPENDINTOTABLEEMPFIELDS TERMINATED BY ',' optionally enclosed by '"'EMPNO,ENAME,JOB,MGR,HIREDATECHAR"YYYY-MM-DD",SAL,COMM,DEPTNO2.准备数据文件在导入数据之前,需要将数据准备好并保存为一个txt文件(如emp.txt)。
确保数据文件的每一行与控制文件中的字段一一对应,并且字段之间以逗号分隔,如下所示:7902,SMITH,CLERK,7901,1980-12-17,800,,207369,ADAMS,CLERK,7876,1983-01-12,1100,,20...3. 使用SQL*Loader导入数据打开命令行窗口(或终端),输入以下命令导入数据:其中,username是数据库用户名,password是数据库密码,database是数据库实例名。
Oracle 建立控制文件
Oracle 建立控制文件在一般情况下,如果使用了复合控制文件,并且将各个控制文件分别存储在不同的磁盘中,则丢失全部控件文件的可能性将非常小。
但是,如果数据库的所有控制文件全部丢失,这时惟一的补救方法就是以手动方式重新创建控制文件。
另外,如果DBA需要改变数据库的某个永久性参数,也需要重新创建控制文件。
永久性参数是在创建数据库时设置的一些参数,主要包括:数据库名称、MALOGFILES(最大的重做日志文件数)、MAXLOGMEMBERS(最大的重做日志组成员数)等。
下面介绍创建新的控制文件的命令CREATE CONTROLFILE语句的基本用法,具体步骤:(1)查看数据库中所有的数据文件和重做日志文件的名称和路径。
在创建新控制文件时,首先需要了解数据库中的数据文件和重做日志文件。
如果数据库中所有的控制文件和重做日志文件都已经丢失,这时数据库已经无法打开,因此也就无法来查询数所字典获得数据文件和日志文件的信息,这时惟一的办法就是查看警告文件中的内容。
如果数据库可以打开,那么可以通过执行下面的查询来生成文件列表:SQL> select member from v$logfile;SQL> select name from v$datafile;SQL> select name from v$controlfile;如果既无法打开数据库,又无法打开可靠的文件列表,那么就只能够用手工方法通过查找操作系统文件来制作文件列表。
(2)关闭数据库。
如果数据库处于打开状态,则可能采取正常模式关闭数据库。
SQL> connect as sysdba….SQL> shutdown immediate数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
(3)在操作系统级别备份所有的数据文件和重做日志文件。
在使用CREATE CONTROLFILE语句创建新的控制文件时,如果操作不当可能会损坏数据文件和日志文件,因此,需要事先对其进行备份。
oracle sqlload用法
oracle sqlload用法SQL*Loader 是 Oracle 数据库中一个用于高效地将大量数据加载到表中的工具。
它可以从文本文件、CSV 文件或其他数据库中加载数据,并将其插入到指定的表中。
以下是SQL*Loader 的用法:1. 创建控制文件:SQL*Loader 需要一个控制文件来指定数据的格式和加载方式。
控制文件可以手动创建,也可以使用Oracle Enterprise Manager 或 SQL Developer 等工具生成。
控制文件包含以下内容:- LOAD DATA:指定数据加载的语句。
- INFILE:指定要加载的数据文件的路径和名称。
- INTO TABLE:指定要加载数据的目标表的名称。
- FIELDS TERMINATED BY:指定字段之间的分隔符。
- TRAILING NULLCOLS:指定允许空列。
- 载入的列名和列数据类型。
2. 准备数据文件:需要准备一个包含要加载的数据的文本文件。
数据文件中的每一行对应表中一条记录,字段之间使用控制文件中指定的分隔符进行分隔。
3. 运行 SQL*Loader:打开命令行终端或 SQL*Plus 窗口,使用以下命令来运行 SQL*Loader:```sqlldr username/password@database control=controlfile.ctllog=logfilename.log```- `username/password`:Oracle 数据库的用户名和密码。
- `database`:要连接的数据库实例的名称。
- `control=controlfile.ctl`:指定控制文件的路径和名称。
- `log=logfilename.log`:指定日志文件的路径和名称。
4. 检查日志文件:SQL*Loader 在加载数据时会生成一个日志文件,用于记录加载过程中的错误和警告信息。
通过查看日志文件,可以了解加载过程中是否发生了错误,并可以根据其提供的信息进行调试和修复。
ORACLE中如何使用SQLLOAD批量添加数据
ORACLE中如何使用SQLLOAD批量添加数据在Oracle中,可以使用SQLLDR(SQL*Loader)工具来批量添加数据。
SQL*Loader是一个客户端工具,用于从文本文件中加载数据到Oracle表中。
以下是使用SQL*Loader批量添加数据的步骤:1. 创建一个控制文件(Control File):控制文件是一个文本文件,用于指导SQL*Loader加载数据。
它包含了数据文件的格式和数据应该如何被加载到Oracle表中的规则。
控制文件描述了目标表的结构、数据文件的格式和字段之间的映射关系。
一个控制文件可以对应多个数据文件。
2. 创建一个数据文件(Data File):数据文件是包含待加载数据的文本文件。
它可以是一个纯文本文件,也可以是包含字段分隔符的CSV或其他格式的文件。
数据文件的格式应该与控制文件中描述的格式匹配。
3.编写控制文件:控制文件是一个使用特定语法规则编写的文本文件。
它包含了以下几个部分:- LOAD DATA:指示SQL*Loader加载数据的开始。
-INFILE:指定数据文件的路径和名称。
-INTOTABLE:指定目标表的名称。
-FIELDSTERMINATEDBY:指定字段之间的分隔符。
-(列名1,列名2,...):指定数据文件中各个字段的映射关系。
字段的顺序和个数应该与目标表的列顺序和个数一致。
4. 运行SQL*Loader:打开终端(命令提示符或终端窗口),使用以下命令运行SQL*Loader:``````其中,`username`是Oracle用户名,`password`是密码,`database`是数据库名称,`controlfile.ctl`是控制文件的路径和名称。
5. 检查加载结果:运行完成后,SQL*Loader将输出加载的数据行数和错误行数。
如果有错误行,可以查看生成的日志文件以获得更多详细信息。
注意事项:- 在使用SQL*Loader加载数据之前,应该先创建目标表,确保表的结构与控制文件中描述的一致。
ORACLE OMF 操作详解
Oracle管理文件格式 Oracle管理文件格式
控制文件: 控制文件: o1_mf_%u.ctl(Release 2) o1_mf :表示该文件是Oracle管理的文件 %u :确保该文件名具有唯一性 SQL> select name from v$controlfile; NAME ------------------------------------------/u01/oracle/oradata/sales/o1_mf_xgqrolr6.ctl /u02/oracle/oradata/sales/o1_mf_xgqromj9.ct l
数据文件大小为:100m,属性为AUTOEXTEND,UNLIMITED 日志文件大小为:100m 临时文件大小为:100m,属性为AUTOEXTEND,UNLIMITED
Oracle管理文件格式 Oracle管理文件格式
数据文件: 数据文件: ora_%t_%u.dbf (Oracle9i Release1) ora :表示该文件是由Oracle管理的文件 %t :表示该数据文件所对应的表空间名 %u :确保该文件名具有唯一性
Oracle管理文件格式 Oracle管理文件格式
控制文件: 控制文件: ora_%u.ctl(Release 1) ora :表示该文件是Oracle管理的文件 %u :确保该文件名具有唯一性 SQL> select name from v$controlfile; NAME ------------------------------------------/u01/oracle/oradata/sales/ora_xgqrolr6.ctl /u02/oracle/oradata/sales/ora_xgqromj9.ctl
Oracle控制文件(CONTROLFILE)
Oracle控制⽂件(CONTROLFILE)⼀、Oracle 控制⽂件为⼆进制⽂件,初始化⼤⼩由CREATE DATABASE指定,可以使⽤RMAN备份记录了当前数据库的结构信息,同时也包含数据⽂件及⽇志⽂件的信息以及相关的状态,归档信息等等在参数⽂件中描述其位置,个数等等。
通常采⽤分散放开,多路复⽤的原则。
在mount阶段被读取,open阶段⼀直被使⽤维护数据库⼀致性(数据库启动时会⽐较控制⽂件与联机⽇志⽂件中的ckpt,即起始scn号,如相等则正常启动,否则需要介质恢复)⼀个控制⽂件只能属于⼀个数据库控制⽂件的任意修改将写⼊到初始化参数中指定的所有控制⽂件中,读取时则仅读取第⼀个控制⽂件控制⽂件只能连接⼀个数据库,控制⽂件的⼤⼩⼀般不要超过MB,最多为个,最少⼀个,互为镜像控制⽂件中包含的内容数据库的名字、ID、创建的时间戳表空间的名字联机⽇志⽂件、数据⽂件的位置、个数、名字联机⽇志的Sequence号码检查点的信息撤销段的开始或结束归档信息备份信息⼆、查看控制⽂件的相关信息1.使⽤相关视图来查看V$CONTROLFILE --列出实例中所有控制⽂件的名字及状态信息V$PARAMETER --列出所有参数的位置及状态信息V$CONTROLFILE_RECORD_SECTION --列出控制⽂件中记录的部分信息SHOW PARAMETER CONTROL_FILES --列出控制⽂件的名字、状态、位置等SQL> select * from v$controlfile;STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS------- -------------------------------------------------- --- ---------- --------------/u01/app/oracle/oradata/orcl/control01.ctl NO 16384 430/u01/app/oracle/oradata/orcl/control02.ctl NO 16384 430/u01/app/oracle/oradata/orcl/control03.ctl NO 16384 430SQL> select name,type,value from v$parameter where name like '%control%';NAME TYPE VALUEcontrol_files 2 /u01/app/oracle/oradata/orcl/control01.ctl,/u01/app/oracle/oradata/orcl/control02.ctl,/u01/app/oracle/oradata/orcl/control03.ctlcontrol_file_record_keep_time 3 7SQL> select * from v$controlfile_record_section;TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID ---------------------------- ----------- ------------- ------------ ----------- ---------- ----------DATABASE 316 1 1 0 0 0CKPT PROGRESS 8180 11 0 0 0 0REDO THREAD 256 8 1 0 0 0REDO LOG 72 16 9 0 0 20DATAFILE 428 100 8 0 0 28FILENAME 524 2298 21 0 0 0TABLESPACE 68 100 7 0 0 7TEMPORARY FILENAME 56 100 1 0 0 1RMAN CONFIGURATION 1108 50 0 0 0 0LOG HISTORY 56 292 35 1 35 35OFFLINE RANGE 200 163 0 0 0 0TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID ---------------------------- ----------- ------------- ------------ ----------- ---------- ----------ARCHIVED LOG 584 28 20 1 20 20BACKUP SET 40 409 0 0 0 0BACKUP PIECE 736 200 0 0 0 0BACKUP DATAFILE 116 282 0 0 0 0BACKUP REDOLOG 76 215 0 0 0 0DATAFILE COPY 660 223 1 1 1 1BACKUP CORRUPTION 44 371 0 0 0 0COPY CORRUPTION 40 409 0 0 0 0DELETED OBJECT 20 818 3 1 3 3PROXY COPY 852 249 0 0 0 0BACKUP SPFILE 36 454 0 0 0 0TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID ---------------------------- ----------- ------------- ------------ ----------- ---------- ----------DATABASE INCARNATION 56 292 2 1 2 2FLASHBACK LOG 84 2048 0 0 0 0INSTANCE SPACE RESERVATION 28 1055 1 0 0 0REMOVABLE RECOVERY FILES 32 1000 0 0 0 0RMAN STATUS 116 141 0 0 0 0THREAD INSTANCE NAME MAPPING 80 8 8 0 0 0MTTR 100 8 1 0 0 0DATAFILE HISTORY 568 57 0 0 0 0STANDBY DATABASE MATRIX 400 10 10 0 0 0GUARANTEED RESTORE POINT 212 2048 0 0 0 0TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID ---------------------------- ----------- ------------- ------------ ----------- ---------- ----------RESTORE POINT 212 2083 0 0 0 0SQL> show parameter control_files;NAME TYPE VALUE------------------------------------ ----------- ------------------------------control_files string /u01/app/oracle/oradata/orcl/control01.ctl,/u01/app/oracle/oradata/orcl/control02.ctl, /u01/app/oracle/oradata/orcl/control03.ctlSQL> select controlfile_sequence# from v$database;CONTROLFILE_SEQUENCE#---------------------9852.使⽤STRINGS命令来查看控制⽂件中的具体内容SQL> host strings /u01/app/oracle/oradata/orcl/control01.ctl | more}|{zJORCLL-+RG+ORCL+ORCLorclorcl-+-='/u01/app/oracle/oradata/orcl/redo03.log/u01/app/oracle/oradata/orcl/redo3.log/u01/app/oracle/oradata/orcl/redo02.log/u01/app/oracle/oradata/orcl/redo2.log/u01/app/oracle/oradata/orcl/redo01.log/u01/app/oracle/oradata/orcl/tbs1_2.dbf/u01/app/oracle/oradata/orcl/tbs1_1.dbf/u01/app/oracle/oradata/orcl/example01.dbf/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/system01.dbfu01/app/oracle/oradata/orcl/undotbs02.dbf/u01/app/oracle/oradata/orcl/redo03.log/u01/app/oracle/oradata/orcl/redo3.log/u01/app/oracle/oradata/orcl/redo02.log/u01/app/oracle/oradata/orcl/redo2.log/u01/app/oracle/oradata/orcl/redo01.log/u01/app/oracle/oradata/orcl/tbs1_2.dbf/u01/app/oracle/oradata/orcl/tbs1_1.dbf/u01/app/oracle/oradata/orcl/example01.dbf/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/system01.dbfu01/app/oracle/oradata/orcl/undotbs02.dbfSYSTEMUNDOTBS1SYSAUXUSERSEXAMPLETBS1TEMP3.备份控制⽂件到平⾯⽂件(然后查看控制⽂件中的具体内容)SQL> alter database backup controlfile to trace as '/u01/app/oracle/ctl.txt';--或者使⽤SQL> host strings /u01/app/oracle/oradata/orcl/control01.ctl > /u01/app/oracle/ctl.txtSQL> host cat /u01/app/oracle/ctl.txt;-- The following are current System-scope REDO Log Archival related-- parameters and can be included in the database initialization file.---- LOG_ARCHIVE_DEST=''-- LOG_ARCHIVE_DUPLEX_DEST=''---- LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf---- DB_UNIQUE_NAME="orcl"---- LOG_ARCHIVE_CONFIG='SEND, RECEIVE, NODG_CONFIG'-- LOG_ARCHIVE_MAX_PROCESSES=2-- STANDBY_FILE_MANAGEMENT=MANUAL-- STANDBY_ARCHIVE_DEST=?/dbs/arch-- FAL_CLIENT=''-- FAL_SERVER=''---- LOG_ARCHIVE_DEST_10='LOCATION=USE_DB_RECOVERY_FILE_DEST'-- LOG_ARCHIVE_DEST_10='OPTIONAL REOPEN=300 NODELAY'-- LOG_ARCHIVE_DEST_10='ARCH NOAFFIRM NOEXPEDITE NOVERIFY SYNC'-- LOG_ARCHIVE_DEST_10='REGISTER NOALTERNATE NODEPENDENCY'-- LOG_ARCHIVE_DEST_10='NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED NODB_UNIQUE_NAME' -- LOG_ARCHIVE_DEST_10='VALID_FOR=(PRIMARY_ROLE,ONLINE_LOGFILES)'-- LOG_ARCHIVE_DEST_STATE_10=ENABLE---- Below are two sets of SQL statements, each of which creates a new-- control file and uses it to open the database. The first set opens-- the database with the NORESETLOGS option and should be used only if-- the current versions of all online logs are available. The second-- set opens the database with the RESETLOGS option and should be used-- if online logs are unavailable.-- The appropriate set of statements can be copied from the trace into-- a script file, edited as necessary, and executed when there is a-- Set #1. NORESETLOGS case---- The following commands will create a new control file and use it-- to open the database.-- Data used by Recovery Manager will be lost.-- Additional logs may be required for media recovery of offline-- Use this only if the current versions of all online logs are-- available.-- After mounting the created controlfile, the following SQL-- statement will place the database in the appropriate-- protection mode:-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCESTARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M,GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log','/u01/app/oracle/oradata/orcl/redo2.log') SIZE 50M,GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log','/u01/app/oracle/oradata/orcl/redo3.log') SIZE 100M,GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log ' SIZE 50M,GROUP 7 ('/u01/app/oracle/oradata/orcl/redo07.log ','/u01/app/oracle/oradata/orcl/redo7.log ') SIZE 50M,GROUP 8 ('/u01/app/oracle/oradata/orcl/redo8.log') SIZE 50M-- STANDBY LOGFILEDATAFILE'/u01/app/oracle/oradata/orcl/system01.dbf','/u01/app/oracle/oradata/orcl/undotbs01.dbf','/u01/app/oracle/oradata/orcl/sysaux01.dbf','/u01/app/oracle/oradata/orcl/users01.dbf','/u01/app/oracle/oradata/orcl/example01.dbf','/u01/app/oracle/oradata/orcl/tbs1_1.dbf','/u01/app/oracle/oradata/orcl/tbs1_2.dbf'CHARACTER SET WE8ISO8859P1;-- Commands to re-create incarnation table-- Below log names MUST be changed to existing filenames on-- disk. Any one log file from each branch can be used to-- re-create incarnation records.-- ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/flash_recovery_area-- /ORCL/archivelog/2010_05_20/o1_mf_1_1_%u_.arc';-- ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/flash_recovery_area-- /ORCL/archivelog/2010_05_20/o1_mf_1_1_%u_.arc';-- Recovery is required if any of the datafiles are restored backups,-- or if the last shutdown was not normal or immediate.RECOVER DATABASE-- Database can now be opened normally.ALTER DATABASE OPEN;-- Commands to add tempfiles to temporary tablespaces.-- Online tempfiles have complete space information.-- Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;-- End of tempfile additions.---- Set #2. RESETLOGS case-- The following commands will create a new control file and use it-- to open the database.-- Data used by Recovery Manager will be lost.-- The contents of online logs will be lost and all backups will-- be invalidated. Use this only if online logs are damaged.-- After mounting the created controlfile, the following SQL-- statement will place the database in the appropriate-- protection mode:-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCESTARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M,GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log','/u01/app/oracle/oradata/orcl/redo2.log') SIZE 50M,GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log','/u01/app/oracle/oradata/orcl/redo3.log') SIZE 100M,GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log ' SIZE 50M,GROUP 7 ('/u01/app/oracle/oradata/orcl/redo07.log ','/u01/app/oracle/oradata/orcl/redo7.log ') SIZE 50M,GROUP 8 ('/u01/app/oracle/oradata/orcl/redo08.log','/u01/app/oracle/oradata/orcl/redo8.log') SIZE 50M-- STANDBY LOGFILEDATAFILE'/u01/app/oracle/oradata/orcl/system01.dbf','/u01/app/oracle/oradata/orcl/undotbs01.dbf','/u01/app/oracle/oradata/orcl/sysaux01.dbf','/u01/app/oracle/oradata/orcl/users01.dbf','/u01/app/oracle/oradata/orcl/example01.dbf','/u01/app/oracle/oradata/orcl/tbs1_1.dbf','/u01/app/oracle/oradata/orcl/tbs1_2.dbf'CHARACTER SET WE8ISO8859P1;-- Commands to re-create incarnation table-- Below log names MUST be changed to existing filenames on-- disk. Any one log file from each branch can be used to-- re-create incarnation records.-- ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/flash_recovery_area-- /ORCL/archivelog/2010_05_20/o1_mf_1_1_%u_.arc';-- ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/flash_recovery_area-- /ORCL/archivelog/2010_05_20/o1_mf_1_1_%u_.arc';-- Recovery is required if any of the datafiles are restored backups,-- or if the last shutdown was not normal or immediate.RECOVER DATABASE USING BACKUP CONTROLFILE-- Database can now be opened zeroing the online logs.ALTER DATABASE OPEN RESETLOGS;-- Commands to add tempfiles to temporary tablespaces.-- Online tempfiles have complete space information.-- Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;-- End of tempfile additions.4.转储控制⽂件内容(查看控制⽂件中的具体内容)alter session set events 'immediate trace name CONTROLF level 12'; level表⽰级别或 --level1 块头的内容 --level2 数据⽂件内容 --levle 10 |12 所有内容oradebug setmypidoradebug dump controlf 12SQL> alter system set events 'immediate trace name controlf level 10';System altered.SQL> show parameter user_dump;NAME TYPE VALUE------------------------------------ ----------- ------------------------------user_dump_dest string /u01/app/oracle/admin/orcl/udump--查看路径中最新的⽂件[root@robinson ~]# vim /u01/app/oracle/admin/orcl/udump/orcl_ora_5110.trc--以下仅列出部分信息Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsORACLE_HOME = /u01/app/oracle/10gSystem name: LinuxNode name: Release: 2.6.18-164.el5xenVersion: #1 SMP Tue Aug 18 16:06:30 EDT 2009Machine: i686Instance name: orclRedo thread mounted by this instance: 1Oracle process number: 19Unix process pid: 5110, image: oracle@ (TNS V1-V3)*** 2010-05-20 18:52:30.104*** SERVICE NAME:(SYS$USERS) 2010-05-20 18:52:30.084*** SESSION ID:(159.10) 2010-05-20 18:52:30.084DUMP OF CONTROL FILES, Seq # 985 = 0x3d9V10 STYLE FILE HEADER:Compatibility Vsn = 169869568=0xa200100Db ID=1242732291=0x4a129703, Db Name='ORCL'Activation ID=0=0x0Control Seq=985=0x3d9, File size=430=0x1aeFile Number=0, Blksiz=16384, File Type=1 CONTROLDump of memory from 0xB7EF7E00 to 0xB7EFBE00--使⽤oradebug setmypidSQL> oradebug setmypid --标记当前进程Statement processed.--获得当前的spidSQL> select spid from v$process where addr =2 (select paddr from v$session where sid =3 (select sid from v$mystat where rownum = 1));SPID------------5110SQL> oradebug dump controlf 3;--3表⽰包含头⽂件和数据⽂件内容Statement processed.--查看user_dump_dest 路径SQL> show parameter user_dNAME TYPE VALUE------------------------------------ ----------- ------------------------------user_dump_dest string /u01/app/oracle/admin/orcl/udu mp--找到当前spid的trc⽂件SQL> ! ls /u01/app/oracle/admin/orcl/udump/*5110.* -- *//u01/app/oracle/admin/orcl/udump/orcl_ora_5110.trcSQL> ! cat /u01/app/oracle/admin/orcl/udump/orcl_ora_5110.trc--下⾯列出的为部分内容***************************************************************************RMAN CONFIGURATION RECORDS***************************************************************************(size = 1108, compat size = 1108, section max = 50, section in-use = 0, last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 90, numrecs = 50)***************************************************************************FLASHBACK LOGFILE RECORDS(size = 84, compat size = 84, section max = 2048, section in-use = 0, last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 139, numrecs = 2048)***************************************************************************THREAD INSTANCE MAPPING RECORDS***************************************************************************(size = 80, compat size = 80, section max = 8, section in-use = 8,last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 156, numrecs = 8)orcl recno=1UNNAMED_INSTANCE_2 recno=2UNNAMED_INSTANCE_3 recno=3UNNAMED_INSTANCE_4 recno=4UNNAMED_INSTANCE_5 recno=5UNNAMED_INSTANCE_6 recno=6UNNAMED_INSTANCE_7 recno=7UNNAMED_INSTANCE_8 recno=8***************************************************************************MTTR RECORDS***************************************************************************(size = 100, compat size = 100, section max = 8, section in-use = 1, last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 157, numrecs = 8)MTTR record for thread 1MTTR statistics status: 3Init time: Avg: 47090974 us, Times measured: 4File open time: Avg: 11225 us, Times measured: 21Log block read time: Avg: 20 us, Times measured: 65536Data block read/claim time: Avg: 170 us, Times measured: 1000Data block write time: Avg: 390 us1000 change vector apply time: Avg: 112435 us, Times measured: 37 Ratio Information:# of log blocks measured: 207891# of data blocks measured: 12536# of change vectors measured: 564444STANDBY DATABASE MAP RECORDS***************************************************************************(size = 400, compat size = 400, section max = 10, section in-use = 10,last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 160, numrecs = 10)***************************************************************************RESTORE POINT RECORDS***************************************************************************(size = 212, compat size = 212, section max = 2048, section in-use = 0,last-recid= 0, old-recno = 0, last-recno = 0)(extent = 1, blkno = 161, numrecs = 2048)三、控制⽂件的管理规划原则:多路复⽤,建议存放到不同的磁盘或同⼀磁盘不同的分区个数与位置及状态管理:查看控制⽂件的状态是否与参数定义中的相吻合,当数据库发⽣结构修改时,将修改内容同时写⼊控制⽂件备份管理恢复管理新建控制⽂件语句spfile或pfile都可以实现对控制⽂件的个数及位置管理spfile步骤修改spfile参数中的control_files -- alter system ... scope = spfile | both |memory⼀致性关闭数据库增加或减少控制⽂件(cp or mv)启动数据库使⽤spfile验证结果pfile步骤⼀致性关闭数据库修改pfile参数(vi或vim) 修改*.control_files=......这⼀段增加或减少控制⽂件(cp or mv)启动数据库使⽤pfile验证结果--演⽰spfile修改控制⽂件SQL> show parameter control_fileNAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string /u01/app/oracle/oradata/orcl/control01.ctl,/u01/app/oracle/oradata/orcl/control02.ctl, /u01/app/oracle/oradata/orcl/control03.ctl--将控制⽂件减少到⼀个SQL> alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl' scope = spfile; System altered.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 88082196 bytesDatabase Buffers 159383552 bytesRedo Buffers 2973696 bytesDatabase mounted.--再次查看参数⽂件,已显⽰为⼀个SQL> show parameter control_fileNAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string /u01/app/oracle/oradata/orcl/control01.ctl--增加控制⽂件(在nomount状态下即可修改)SQL> alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl',2 '/u01/app/oracle/oradata/orcl/control02.ctl',3 '/u01/app/oracle/oradata/orcl/control03.ctl'4 scope = spfile;System altered.--启动时可以看到在实例阶段出现了版本号不⼀致的问题SQL> startup forceORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 88082196 bytesDatabase Buffers 159383552 bytesRedo Buffers 2973696 bytesORA-00214: control file '/u01/app/oracle/oradata/orcl/control01.ctl' version1051 inconsistent with file '/u01/app/oracle/oradata/orcl/control02.ctl'version 1049--处理办法,⽤版本号⾼的控制⽂件覆盖版本号低的控制⽂件SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control02.ctl; SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control03.ctl; SQL> alter database mount;Database altered.SQL> alter database open;Database altered.对于控制⽂件丢失的情况下,通过查看参数⽂件中设置,使⽤操作系统命令逐个查看这些⽂件是否存在SQL> host ls /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control01.ctlSQL> host ls /u01/app/oracle/oradata/orcl/control02.ctl/u01/app/oracle/oradata/orcl/control02.ctl查看控制⽂件所在的⽬录可⽤空间及控制⽂件的⼤⼩,建议不要超过100MBSQL> host ls /u01/app/oracle/oradata/orcl/c*.ctl -lh-rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control01.ctl-rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control02.ctl-rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control03.ctlSQL> ! df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 6.4G 3.9G 2.2G 64% //dev/sdd1 6.8G 3.7G 2.8G 58% /u01/dev/sdc2 1.2G 34M 1.1G 3% /home/dev/sdc1 760M 17M 704M 3% /tmp/dev/sda1 456M 18M 415M 5% /boottmpfs 450M 0 450M 0% /dev/shmnone 450M 104K 450M 1% /var/lib/xenstored控制⽂件的备份热备:alter database backup controlfile to '<dir>'; --热备份控制⽂件alter database backup controlfile to trace as '<dir>' ;--得到建⽴控制⽂件的脚本RMAN:backup current controlfile;backup database include current controlfile;-- 或者设置RMAN 为⾃动备份RMAN > configure controlfile autobackup on;--演⽰备份--⽤于归档模式下的恢复,直接覆盖到控制⽂件SQL> alter database backup controlfile to '/u01/app/oracle/control.bak';Database altered.--⽤于重建控制⽂件SQL> alter database backup controlfile to trace as '/u01/app/oracle/recreate_controlfile.txt'; Database altered.--使⽤RMAN备份RMAN> connect target /;connected to target database: ORCL (DBID=1242732291)RMAN> backup current controlfile; --handle为备份⽂件的路径Starting backup at 23-MAY-10using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=148 devtype=DISKchannel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupsetincluding current control file in backupsetchannel ORA_DISK_1: starting piece 1 at 23-MAY-10channel ORA_DISK_1: finished piece 1 at 23-MAY-10piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2010_05_23/o1_mf_ncnnf_TAG20100523T131841_5zkgon2l_.bkp tag=TAG20100523T131841 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05Finished backup at 23-MAY-10RMAN> backup database include current controlfile;Starting backup at 23-MAY-10using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=141 devtype=DISKchannel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupsetinput datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbfinput datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbfinput datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbfinput datafile fno=00006 name=/u01/app/oracle/oradata/orcl/tbs1_1.dbfinput datafile fno=00007 name=/u01/app/oracle/oradata/orcl/tbs1_2.dbfinput datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbfinput datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: starting piece 1 at 23-MAY-10channel ORA_DISK_1: finished piece 1 at 23-MAY-10piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2010_05_23/o1_mf_nnndf_TAG20100523T132647_5zkh4sk2_.bkp tag=TAG20100523T132647 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:05:25channel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupsetincluding current control file in backupsetincluding current SPFILE in backupsetchannel ORA_DISK_1: starting piece 1 at 23-MAY-10channel ORA_DISK_1: finished piece 1 at 23-MAY-10piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2010_05_23/o1_mf_ncsnf_TAG20100523T132647_5zkhh5st_.bkp tag=TAG20100523T132647 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:14Finished backup at 23-MAY-10RMAN> show all;RMAN configuration parameters are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_orcl.f'; # defaultRMAN> configure controlfile autobackup on; --将控制⽂件⾃动备份功能置为on;new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters are successfully stored控制⽂件的恢复管理控制⽂件版本不⼀致的问题⽤较新版本的控制⽂件覆盖旧版本的控制⽂件直接修改参数control_file丢失问题归档模式下当归档⽇志全的时候,先做全备,然后使⽤备份的控制⽂件恢复即可当归档⽇志不全的时候,先做全备,然后建⽴新的控制⽂件即可⾮归档模式下先做全备,然后建⽴新的控制⽂件即可新建控制⽂件语句数据库处于mount及open状态执⾏alter database backup controlfile to trace as '<dir>';得到建⽴语句注意[no]archievelog [no]resetlogs 两个参数的区别版本不⼀致演⽰SQL> startupORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 88082196 bytesDatabase Buffers 159383552 bytesRedo Buffers 2973696 bytesORA-00214: control file '/u01/app/oracle/oradata/orcl/control01.ctl' version1051 inconsistent with file '/u01/app/oracle/oradata/orcl/control02.ctl'version 1049--处理办法,⽤版本号⾼的控制⽂件覆盖版本号低的控制⽂件SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control02.ctl; SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control03.ctl; SQL> alter database mount;Database altered.SQL> alter database open;Database altered.--控制⽂件部分丢失的演⽰,原本有两个控制⽂件,丢失⼀个--处理办法:1.将存在的控制⽂件复制到⽬的路径并更改控制⽂件名字为正确的控制⽂件名称2.修改控控⽂件参数将丢失的控制⽂件去掉(⼀般不建议使⽤)SQL> alter system set control_files = ' /u01/app/oracle/oradata/orcl/c ontrol01.ctl',2 '/u01/app/oracle/oradata/orcl/control02.ctl' scope = spfile;System altered.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 75499284 bytesDatabase Buffers 171966464 bytesRedo Buffers 2973696 bytesORA-00205: error in identifying control file, check alert log for more info[oracle@robinson ~]$ tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log..........................Tue Jun 8 19:03:42 2010starting up 1 shared server(s) ...MMON started with pid=11, OS id=4557CJQ0 started with pid=10, OS id=4555Tue Jun 8 19:03:44 2010ALTER DATABASE MOUNTTue Jun 8 19:03:44 2010ORA-00202: control file: '/u01/app/oracle/10g/dbs/ /u01/app/oracle/oradata/orcl/c ontrol01.ctl' ORA-27037: unable to obtain file statusLinux Error: 2: No such file or directoryAdditional information: 3Tue Jun 8 19:03:47 2010ORA-205 signalled during: ALTER DATABASE MOUNT...--从警告⽇志中得知,⽂件名为c ontrol01.ctl的⽂件不存在,故将其改为正确的⽂件名。
oracle8管理控制文件和重做日日志文件
2021/2/17
oracle8管理控制文件和重做日日志文件
移动重做日志文件
Open状态下移动redo文件 • 确保处于inactive状态 • Host copy • 执行alter database rename file A to B语句 • 备份控制文件或数据库
学习改变命运,知 识创造未来
2021/2/17
oracle8管理控制文件和重做日日志文件
重做日志文件管理
• 重做日志文件的作用
• 数据库恢复中起到非常重要的作用 • 例程恢复、介质恢复以及事务的撤销
• 重做日志文件组\成员
• Redo01.log\redo02_1.log\redo02_2.log • Maxlogfiles:重做日志文件组的最大数量 • Maxlogmembers:每个组成员的最大数量
• Alter tablespace temp add tempfile ‘%oracle_home%\oradata\orcl\temp01.dbf’
探讨Oracle数据库管理之控制文件
探讨Oracle数据库管理之控制文件杜战伟【摘要】控制文件作为Oracle数据库管理的物理文件之一,数据库的名字以及数据文件的位置信息由它记录。
控制文件一旦损坏,电脑将无法正常工作。
因此控制文件十分重要,其管理的重点在于防御。
本文将对控制文件的相关内容作介绍,为安全管理Oracle控制文件提出了相关的方法。
%The control file was one of the physical files of the Oracle database management,the name and loaction of data files were recorded by it.Once the control file is damaged,the computer will not work properly.So the control file is very important,the focus of its management lies in defense.This article will introduce the related content of the control file, and put forward the related methods for the safety management of Oracle control file.【期刊名称】《电子测试》【年(卷),期】2016(000)010【总页数】3页(P90-91,98)【关键词】Oracle;数据库管理;控制文件【作者】杜战伟【作者单位】西安秦皇医院信息部,西安,710016【正文语种】中文控制文件是一个很小的二进制文件,用于对数据库的维护和记录,无论何时打开Oracle数据库,在此之前Oracle服务器都要对控制文件进行访问。
控制文件一旦出现问题,会导致Oracle数据库无法正常工作。
数据库的启动以及正常运行都离不开控制文件。
create controlfile基本语法
CREATE CONTROLFILE 语句用于在Oracle数据库中创建控制文件。
基本语法如下:CREATE CONTROLFILE REUSE DATABASE "DB_NAME"NORESETLOGS ARCHIVELOGMAXLOGFILES "MAX_LOG_FILES"MAXLOGMEMBERS "MAX_LOG_MEMBERS"MAXDATAFILES "MAX_DATA_FILES"MAXINSTANCES "MAX_INSTANCES"MAXLOGHISTORY "MAX_LOG_HISTORY"LOGFILE GROUP 1 '/path/to/logfile1' SIZE "LOG_FILE_SIZE"GROUP 2 '/path/to/logfile2' SIZE "LOG_FILE_SIZE"...;其中,关键字用双引号括起来的参数是可选的,具体的参数和其含义可能会因Oracle数据库的版本和配置不同而有所变化。
在上述语法中,你需要替换以下参数:●"DB_NAME":需要创建控制文件的数据库名称。
●"MAX_LOG_FILES":重做日志文件的最大数量。
●"MAX_LOG_MEMBERS":重做日志组中成员的最大数量。
●"MAX_DATA_FILES":数据文件的最大数量。
●"MAX_INSTANCES":数据库实例的最大数量。
●"MAX_LOG_HISTORY":需要保留的重做日志历史记录的最大数量。
●'/path/to/logfile1'、'/path/to/logfile2'等:重做日志文件的存储路径和文件名,需要用实际的路径和文件名替换。
alter database create standby controlfile
alter database create standby controlfile “alter database create standby controlfile”是一个用于创建备用控制文件的命令。
在Oracle数据库中,控制文件是一个非常重要的组成部分,它记录了数据库的结构信息以及重要的日志信息,用于数据库的启动和恢复。
备用控制文件是在主数据库中创建的一个副本,用于在主数据库出现故障时,快速地恢复备用数据库。
本文将详细描述“alter database create standby controlfile”命令的作用、执行步骤以及相关注意事项。
通过阅读本文,您将了解到如何创建备用控制文件,以确保数据库的高可用性和可靠性。
一、命令作用“alter database create standby controlfile”命令的主要作用是创建一个与当前主数据库相同的备用控制文件。
备用控制文件用于备份主数据库的控制文件,以保证在主数据库发生故障时,备用数据库可以迅速启动和恢复。
二、执行步骤下面是使用“alter database create standby controlfile”命令创建备用控制文件的详细步骤:1. 首先,登录到主数据库的系统用户,并确保具备适当的权限,包括CREATE CONTROLFILE和CREATE ANY DIRECTORY权限。
2. 确保备用控制文件所在的目录已经存在,并且具备适当的读写权限。
如果目录不存在,可以使用CREATE DIRECTORY命令创建。
3. 在SQL*Plus或类似工具中,执行以下命令连接到主数据库:SQL> CONNECT / AS SYSDBA;4. 在SQL会话中,执行以下命令以创建备用控制文件:SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS'/path/to/standby/controlfile';请将“/path/to/standby/controlfile”替换为实际备用控制文件的路径和文件名。
Oracle 控制文件简介
Oracle 控制文件简介控制文件是Oracle数据库最重要的物理文件,它以二进制文件的形式在。
不仅记载了数据库的特理结构信息(即构成数据库的数据文件和日志文件),在装载和打开数据时也需要这些文件,而且它们还记载了日志序列号、检查点和日志历史信息,同步和恢复数据库时需要这些信息。
在创建数据库时会创建控制文件,如果数据库发生改变,则系统会自动修改控制文件,以记录当前数据库的状态。
控制文件主要包括如下几项内容:●数据库名(database name)和标识(SID)●数据库创建时间戳●表空间名●数据文件、重做日志文件名字和位置●当前重做日志文件序列号●检查点信息●UNDO SEGMENT的起始和结束●重做日志归档信息●备份信息控制文件是一种较小的Oracle数据库文件,尺寸一般在2M~10M之间,变化尺寸主要由永久参数和RMAN信息决定。
执行CREATE DATABASE命令建立数据库时,通过设置永久参数可以设置Oracle数据库的最大实例个数、最大数据文件数量、最大日志组数量、最大日志成员数量以及最大日志历史个数等信息。
为了存放数据文件、日志组、日志成员、日志历史等信息,控制文件需要为它们提供预留空间。
这些永久参数包括:●MAXINSTANCES 用于指定可以同时访问数据库的最大例程数量。
●MAXDA TAFILES 用于指定Oracle数据库的最大数据文件数量。
●MAXLOGFILES 用于指定Oracle数据库的最大日志组数量。
●MAXLOGMEMBERS 用于指定每个日志组的最大日志成员数量。
●MAXLOGHISTORY 用于指定控制文件可记载日志历史的最大数量。
使用RMAN执行备份操作时,RMAN会将备份信息记载到控制文件中。
初始化参数CONTROL_FILE_RECORD_KEEP_TIME指定了RMAN备份信息在控制文件中的保留时间,其默认值为7。
该参数设置越大,RMAN备份信息的保留时间也就越长,控制文件也会越大。
oracle用脚本创建数据库等过程参考
一、数据库创建过程STEP1、编写初始化文件1、将%ORACLE_HOME%\admin\sample\pfile文件复制到%ORACLE_HOME%\database下更改命名为spfile.ora2、修改初始化参数文件新增参数instance_name=orcldb_domain=修改参数db_name=orcldb_block_size=8192remote_login_passwordfile=exclusiveSTEP2、设置操作系统环境变量在系统环境变量中修改oracle_sid为orclSTEP3、1、创建实例oradim -new -sid orcl -intpwd sys123 -startmode suto2、以管理员身份登录数据库sqlplus /nologconn / as sysdbacreate spfile from pfile;启动实例到nomount状态startup nomountSTEP4、执行创建数据库脚本create database orcldatafile 'C:\database\orcl\system_01.dbf' size 256m autoextend on next 10m maxsize unlimitedsysaux datafile 'C:\database\orcl\systemaux_01.dbf' size 100m autoextend on next 10m maxsize unlimitedlogfilegroup 1('C:\database\orcl\log_1_01.rdo') size 10m,group 2('C:\database\orcl\log_2_01.rdo') size 10m character set zhs16gbk;STEP5、运行数据字典脚本1、conn / as sysdba@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql 2、conn system/manager@C:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql 二、控制文件和重做日志文件多录化多路控制文件(利用spfile文件)1、超级用户sys登录2、查询数据字典v$controlfile得到控制文件的信息select name from v$controlfile; --执行得到控制文件名称和位置3、更改spfile中控制文件信息SQL> alter system set cntrolfiles='c:\oracle\product\10.2.0\db_1\database\CTL1ORCL.ora','d:\oradata\CTL2ORCL.ora','e:\oradata\CTL3ORCL.ora'scope=spfile;4、关闭数据库shutdown immediate5、将c:\oracle\product\10.2.0\db_1\database目录下的CTL1ORCL.ora拷贝到指定的位置,并更改为对应的名称。
alter database create standby controlfile -回复
alter database create standby controlfile -回复如何在Oracle数据库中创建备用控制文件在Oracle数据库中,控制文件是记录了数据库的结构信息的关键文件之一。
它包含了数据库的物理结构以及其他重要信息,如表空间的创建和维护,日志文件的管理,以及数据库备份和恢复的必要信息。
由于控制文件的重要性,当控制文件发生故障或损坏时,数据库可能无法正常启动或运行。
为了应对这种情况,我们可以使用备用控制文件,它是控制文件的一个备份副本,可以在控制文件损坏时使用。
本文将一步一步介绍如何在Oracle数据库中创建备用控制文件。
步骤一:确认数据库状态和备份控制文件在开始创建备用控制文件之前,我们需要确认数据库的当前状态,并确保我们有最新的控制文件备份。
首先,使用sysdba用户登录到Oracle数据库,然后执行以下命令来查看数据库的状态:SQL> SELECT STATUS FROM VINSTANCE;如果状态显示为OPEN,则说明数据库处于正常运行状态,可以继续创建备用控制文件。
否则,我们需要先将数据库打开。
例如,如果数据库处于MOUNT状态,则可以执行以下命令将其打开:SQL> ALTER DATABASE OPEN;接下来,我们需要确认我们有最新的控制文件备份。
控制文件备份通常是在数据库备份过程中进行的,因此我们应该检查我们的备份策略并确保我们有可用的备份。
步骤二:创建备用控制文件的脚本在确认数据库状态和备份控制文件后,我们可以开始创建备用控制文件的脚本。
我们可以使用SQL*Plus工具来执行以下命令来生成创建备用控制文件的脚本:SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS'/path/to/standby_controlfile.sql';上述命令会将创建备用控制文件的SQL脚本保存到指定的文件'/path/to/standby_controlfile.sql'中。
Oracle控制文件
Oracle控制⽂件⼀、控制⽂件的作⽤Control File 是⼀个较⼩的⼆进制⽂件,描述数据库结构,包括:01、数据库建⽴的⽇期;02、数据库名;03、数据库中所有数据⽂件和⽇志⽂件的⽂件名及路径;04、恢复数据库时所需的同步信息;05、在打开和存取数据库时都要访问该⽂件;记录控制⽂件名及路径的参数为:CONTROL_FILES总结以下⼏点:01.⼆进制⽂件;02.记录了数据库当前实例的结构和⾏为,数据⽂件⽇志⽂件的信息,维护数据库⼀致性;03.参数⽂件中定义了控制⽂件的位置和⼤⼩;04.很⼩的⼆进制⽂件,⼀般不超过 100MB;05.mount 阶段 open 以后,⼀直在⽤;06.⼀套控制⽂件只能连接⼀个 database;07.可以分散放置,⾄少⼀份,最多⼋份;控制⽂件相关视图:01. v$controlfile ----> 列出实例的所有控制⽂件的名字和状态02. v$parameter ----> 列出所有参数的位置和状态(where name='control_files')03.v$controlfile_recode_section ----> 提供控制⽂件的记录部分的信息04.show parameter control_files ----> 列出控制⽂件的名字、状态和位置select * from v$controlfile;select name,type,value from v$parameter where name like '%control%';select * from v$controlfile_record_section;查看控制⽂件中关于数据⽂件中的数据记录信息:(注意 DATAFILE ⼀定要⼤写,否则会提⽰"未选定⾏")在 Linux 环境下:Control File 丢失(丢失其中⼀个,不全部丢失),系统还是可以 checkpoint 和 switch logfile 的。
Oracle 复合控制文件
Oracle 复合控制文件因为控制文件非常重要,所以为了防止控制文件的损坏或丢失,应用将控制文件复合。
Oracle建议每个数据库应该包含两个或两个以上的控制文件。
但需要注意,Oracle数据库最多可以包含8个控制文件。
当复合控制文件时,为了防止磁盘损坏导致控制文件丢失或损坏。
应该将控制文件分布到不同的磁盘上,如图11-1所示。
成员1成员2成员1成员2成员1成员2日志组1日志组2日志组3磁盘1磁盘2图11-1 复合控制文件如果在启动实例时使用了PFILE,在需要手动编辑文本参数文件,并修改初始化参数CONTROL_FILE,修改控制文件为复合形式。
具体步骤如下:(1)手动修改初始化参数CONTROL_FILE。
因为Oracle是通过初始化参数CONTROL_FILE来定位并打开控制文件,所以为了复合控制文件,必须手动修改初始化参数。
例如:control_files=("d:\app\Administrator\oradata\orcl\control01.ctl","d:\app\Administrator\oradata\orcl\control02.ctl","d:\app\Administrator\oradata\orcl\control03.ctl","e:\oradata\orcl\control01b.ctl","e:\oradata\orcl\control02b.ctl","d:\oradata\orcl\control03b.ctl")需要注意,在编辑PFILE文件时,在D盘上的控制文件是原有控制文件,而在E盘上的控制文件为新加的控制文件,目前还不存在。
(2)关闭数据库。
修改了静态参数CONTROL_FILES后,必须先关闭Oracle数据库,然后重新启动数据库,参数设置才能生效。
oracle sqlloader用法
oracle sqlloader用法Oracle SQL*Loader是一个数据加载工具,用于将大量的数据从外部文件(如文本文件、CSV文件)加载到Oracle数据库中。
SQL*Loader的基本用法如下:1. 创建一个控制文件(control file),控制文件指定了数据文件的格式、目标表的结构以及加载时的行为规则。
控制文件通常是一个文本文件,可以使用任何文本编辑器创建和编辑。
2. 编写控制文件时需要指定以下信息:- LOAD DATA:表示接下来的数据将被加载。
- INFILE:指定数据文件的路径和文件名。
- INTO TABLE:指定目标表的名字。
- FIELDS TERMINATED BY:指定字段之间的分隔符。
- TRAILING NULLCOLS:表示允许目标表中的列接受空值。
- (列1, 列2, …):指定数据文件中每行数据对应的目标表的列。
3. 保存控制文件,并在命令行中使用sqlldr命令执行它。
例如: ```sqlldr userid=<用户名>/<密码> control=<控制文件路径和文件名> log=<日志文件路径和文件名>```其中,`<用户名>`和`<密码>`是登录Oracle数据库的用户名和密码,`<控制文件路径和文件名>`是控制文件的路径和文件名,`<日志文件路径和文件名>`是执行日志的路径和文件名。
4. 执行sqlldr命令后,SQL*Loader会根据控制文件加载数据,并生成一个执行日志。
5. 查看执行日志,判断数据加载是否成功。
需要注意的是,在使用SQL*Loader加载数据之前,需要先创建目标表,以确保加载的数据能够正确地插入到表中。
另外,控制文件中也可以指定其他高级的加载选项,例如数据转换、条件过滤等,以满足不同的数据加载需求。
详细的用法和选项可以参考Oracle官方文档。
Oracle-重建控制文件的方式
Oracle-重建控制⽂件的⽅式简介控制⽂件记录了当前数据库的结构信息,如数据⽂件,⽇志⽂件的信息和相关的状态等。
它是⼀个⼆进制⽂件。
在参数⽂件中描述控制⽂件的位置和数量,在数据库实例启动到mount状态时读取控制⽂件的信息,在open状态中⼀直被使⽤,以维护数据库的⼀致性。
控制⽂件位置SHOW PARAMETER CONTROL_FILESset lines 168 pages 99col name for a60select * from v$controlfile;控制⽂件的内容数据字典中查看col type for a32select * from V$CONTROLFILE_RECORD_SECTION;strings 查看控制⽂件内容数据库的名字,ID、创建的时间戳表空间的名字联机⽇志⽂件、数据⽂件的位置、个数、名字联机⽇志的Sequence号码检查点的信息撤销段的开始或结束归档信息备份信息重建控制⽂件注意事项重建控制⽂件时,需要相应的redo logfile和数据⽂件已存在。
set和reuse databaseset database:将数据⽂件头的db_name改成脚本中指定的名称reuse database: 读取数据⽂件头中的db_name并校验脚本中指定的名称是否⼀致resetlogs和noresetlogsnoresetlogs: 从current的redo logfile中得到系统scn号,数据⽂件scn号resetlogs: 将redo logfile内容清空,sequence#从1开始tempfile控制⽂件不包含tempfile,可以在open数据库后再创建。
问题描述当⽆备份控制⽂件的情况下,如何重建处理⽅案获取控制⽂件的⽅式trace⽂件(需要在mount或open状态)⽣成trace⽂件alter database backup controlfile to trace as '/tmp/control_rebuild.trc';⽣成的trace⽂件包含了resetlogs和noresetlogs 两个部分。
Oracle 重建控制文件
ORACLE的控制文件是数据库的非常重要的文件,它保存着数据库的连接实例(instance)和database的一个桥梁,它定义了当前数据库物理信息的状态。
因此控制文件对于一个数据库来说是非常重要的,在某些时候我们需要重新创建控制文件:1。
当控制文件丢失的时候,并且没有最近的文件Copy备份(一般在建库完成后的生成一个创建ControlFile的的脚本)。
2。
需要修改数据库初始物理信息,如Log文件数量,数据文件的数量等,这些信息是在建库的时候写在ControlFIle里的,如果需要修改,可以通过重建ControlFile来调整。
以下是一种较好的重建控制文件的方法:1. 在重建Contrl前,建议备份数据库中的数据,以防不测。
2. sqlplus /nolog3. SQL>connect /as sysdbal4. SQL>alter database backup controlfile to trace; 备份创建控制文件的脚本到TRC文件5. 在$ORACLE_HOME/admin/SID/udump下可找到最新生成的TRACE文件,如ora_23456.trc,此文件就包含了当前控制文件的参数及生成语法。
6. 提取ora_23456.trc中有关控制文件生成的语句另存为recreatctl.sq l。
7. recreatctl.sql的内容为:STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOGMAXLOGFILES 32MAXLOGMEMBERS 2MAXDATAFILES 50MAXINSTANCES 8MAXLOGHISTORY 800LOGFILEGROUP 1 '/dev/vg00/roraredoa1' SIZE 10M,GROUP 2 '/dev/vg00/roraredoa2' SIZE 10M,GROUP 3 '/dev/vg00/roraredoa3' SIZE10MDATAFILE'/dev/vg00/rorclsys','/dev/vg00/rorclrbs','/dev/vg00/rorcltemp','/dev/vg00/rorcltools','/dev/vg00/rorcluser';8. 如果需要修改,可按自己的需要编辑creatctl.sql中的参数,如maxdatafiles、maxinstances等。