亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle控制文件操作

系統(tǒng) 2385 0


控制文件是連接instance和 database的紐帶。記錄了database的結(jié)構(gòu)信息。
控制文件是1個(gè)2進(jìn)制文件。記錄的是當(dāng)前database的狀態(tài)。
控制文件可以有多個(gè),在參數(shù)文件中通過(guò)control_files參數(shù)指定位置,在需要向控制文件寫(xiě)入時(shí),會(huì)同步的向多個(gè)控制文件寫(xiě)入。讀取控制文件時(shí),只會(huì)讀取第一個(gè)控制文件。如果任意一個(gè)控制文件損壞,則實(shí)例會(huì)abort。
控制文件只能和1個(gè)database相關(guān)聯(lián)。
控制文件是在創(chuàng)建database的時(shí)候創(chuàng)建的。也可以在啟動(dòng)到nomount狀態(tài)時(shí)重建。
與control file相關(guān)的視圖
v$controlfile:當(dāng)前instance中所有的控制文件的信息。
v$controlfile_record_section: 控制文件中所有的section信息。


查看當(dāng)前控制文件信息:
?select * from v$controlfile;
?select * from v$parameter where name like '%control%';
?show parameter control;
?select * from v$controlfile_record_section;

?

用命令修改控制文件的路徑

alter system set control_files='/u01/app/oracle/oradata/saigon/control01.ctl',
?????????????????????????????? '/u01/app/oracle/oradata/saigon/control02.ctl',
?????????????????????????????? '/u01/app/oracle/oradata/saigon/control03.ctl' scope=spfile;

?

?

使用spfile增加控制文件個(gè)數(shù)或修改控制文件路徑
(1)利用v$controlfile 來(lái)獲取現(xiàn)有控制文件名字和位置.
(2)修改spfile,使用
alter system set control_files=
'D:\DISK3\CONTROL01.CTL',
'D:\DISK6\CONTROL02.CTL',
'D:\DISK9\CONTROL03.CTL' SCOPE=SPFIL;
(3)正常關(guān)閉數(shù)據(jù)庫(kù),(shutdown,shutdown immediate).
(4)使用操作系統(tǒng)的復(fù)制命令將現(xiàn)有控制文件復(fù)制到指定位置.
(5)重新啟動(dòng)oracle數(shù)據(jù)庫(kù)(startup)
(6)利用數(shù)據(jù)字段v$controlfile來(lái)驗(yàn)證新的控制文件名字是否正確.
(7)如有錯(cuò)誤,重復(fù)上述操作:如果無(wú)誤,刪除原有的控制文件.

?

使用pfile增加控制文件個(gè)數(shù)或修改控制文件路徑
?1.干凈的關(guān)閉數(shù)據(jù)庫(kù)。
?2.在操作系統(tǒng)上復(fù)制1個(gè)新的控制文件并改名。
?3.在initSID.ora中的control_files參數(shù)中添加之前的參數(shù)文件。
?4.啟動(dòng)數(shù)據(jù)庫(kù)。

在oracle運(yùn)行過(guò)程中備份控制文件
?1.alter database backup controlfile to 'D:\aaa.bak';
?2.alter database backup controlfile to trace;? 把控制文件翻譯成創(chuàng)建控制文件的腳本,路徑在用戶(hù)警告文件的目錄下(可以通過(guò)show parameter user_dump;查看),后綴名為trc。

或根據(jù)下面方式找到:

SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
/

3.

run{
backup current controlfile format'/backup1/controlfile_%d_%s.ctl';
}

?

控制文件的的恢復(fù)

resetlog方式打開(kāi)數(shù)據(jù)只要擁有當(dāng)前的日志文件是可以實(shí)現(xiàn)完全恢復(fù)的。?
是否需要使用resetlogs方式打開(kāi),則取決于是否使用的是備份的控制文件。
如果使用的是備份的控制文件則需要使用resetlogs方式打開(kāi)數(shù)據(jù)庫(kù);
如果擁有當(dāng)前的控制文件或者通過(guò)重建控制文件來(lái)恢復(fù),就不需要通過(guò)resetlogs方式打開(kāi)。

RMAN>restore controlfile to '/tmp/control01.ctl' from 'c-3152029224-20051221-00'

-------恢復(fù)控制文件用戶(hù)resetlogs方式打開(kāi)

run{
startup force nomount;

set dbid=
restore controlfile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;
}

-------恢復(fù)控制文件用正常方式打開(kāi)
1.startup nomount;
2.RMAN>restore controlfile from autobackup;
3.alter database mount;
4.SQL>alter database backup controlfile to trace;
5.找到trace文件
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
/
6.重建控制文件打開(kāi)數(shù)據(jù)庫(kù)

?

重建控制文件方法如下:

A,確定控制文件,重做日志文件,數(shù)據(jù)文件位置(A某些情況下需要);

select * from v$controlfile;

select * from v$logfile;

select file#,name from v$datafile;

B,生成可以重建控制文件的腳本

alter database backup controlfile to trace;

C,獲取trc文件位置的腳本

SELECT??? d.VALUE
?????? || '/'
?????? || LOWER (RTRIM (i.INSTANCE, CHR (0)))
?????? || '_ora_'
?????? || p.spid
?????? || '.trc' trace_file_name
? FROM (SELECT p.spid
????????? FROM v$mystat m, v$session s, v$process p
???????? WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
?????? (SELECT t.INSTANCE
????????? FROM v$thread t, v$parameter v
???????? WHERE v.NAME = 'thread'
?????????? AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
?????? (SELECT VALUE
????????? FROM v$parameter
???????? WHERE NAME = 'user_dump_dest') d
/

D,查看trc文件內(nèi)容

?

[oracle@orcl admin]$ cat /home/oracle/admin/orcl/udump/orcl_ora_10202.trc

/home/oracle/admin/orcl/udump/orcl_ora_10202.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

ORACLE_HOME = /home/oracle/oracle

System name:?? Linux

Node name:???? orcl

Release:?????? 2.6.18-164.el5

Version:?????? #1 SMP Tue Aug 18 15:51:54 EDT 2009

Machine:?????? i686

Instance name: orcl

Redo thread mounted by this instance: 1

Oracle process number: 15

Unix process pid: 10202, image: oracle@orcl (TNS V1-V3)

?

*** SERVICE NAME:(SYS$USERS) 2012-05-27 12:14:16.466

*** SESSION ID:(159.3) 2012-05-27 12:14:16.466

*** 2012-05-27 12:14:16.466

-- 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

-- need to re-create the control file.

--

--??? 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 PERFORMANCE

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG

?? MAXLOGFILES 16

?? MAXLOGMEMBERS 3

?? MAXDATAFILES 100

?? MAXINSTANCES 8

?? MAXLOGHISTORY 292

LOGFILE

?GROUP 1 '/home/oracle/oradata/orcl/redo01.log' SIZE 50M,

?GROUP 2 '/home/oracle/oradata/orcl/redo02.log' SIZE 50M,

?GROUP 3 '/home/oracle/oradata/orcl/redo03.log' SIZE 50M

-- STANDBY LOGFILE

DATAFILE

?'/home/oracle/oradata/orcl/system01.dbf',

?'/home/oracle/oradata/orcl/undotbs01.dbf',

?'/home/oracle/oradata/orcl/sysaux01.dbf',

?'/home/oracle/oradata/orcl/users01.dbf',

?'/home/oracle/oradata/orcl/example01.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 '/home/oracle/flash_recovery_area/ORCL/archivelog/2012_05_27/o1_mf_1_1_%u_.arc';

-- ALTER DATABASE REGISTER LOGFILE '/home/oracle/flash_recovery_area/ORCL/archivelog/2012_05_27/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 '/home/oracle/oradata/orcl/temp01.dbf'

??? SIZE 22020096 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 PERFORMANCE

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG

?? MAXLOGFILES 16

?? MAXLOGMEMBERS 3

?? MAXDATAFILES 100

?? MAXINSTANCES 8

?? MAXLOGHISTORY 292

LOGFILE

?GROUP 1 '/home/oracle/oradata/orcl/redo01.log' SIZE 50M,

?GROUP 2 '/home/oracle/oradata/orcl/redo02.log' SIZE 50M,

?GROUP 3 '/home/oracle/oradata/orcl/redo03.log' SIZE 50M

-- STANDBY LOGFILE

DATAFILE

?'/home/oracle/oradata/orcl/system01.dbf',

?'/home/oracle/oradata/orcl/undotbs01.dbf',

?'/home/oracle/oradata/orcl/sysaux01.dbf',

?'/home/oracle/oradata/orcl/users01.dbf',

?'/home/oracle/oradata/orcl/example01.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 '/home/oracle/flash_recovery_area/ORCL/archivelog/2012_05_27/o1_mf_1_1_%u_.arc';

-- ALTER DATABASE REGISTER LOGFILE '/home/oracle/flash_recovery_area/ORCL/archivelog/2012_05_27/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 '/home/oracle/oradata/orcl/temp01.dbf'

??? SIZE 22020096 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

-- End of tempfile additions.

E,獲取創(chuàng)建控制文件的腳本,根據(jù)數(shù)據(jù)庫(kù)不同狀況,可以選擇是使用RESETLOGS(沒(méi)有重做日志的情況)/NORESETLOGS(有重做日志的情況)來(lái)重建控制文件,下面為NORESETLOGS.

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG

?? MAXLOGFILES 16

?? MAXLOGMEMBERS 3

?? MAXDATAFILES 100

?? MAXINSTANCES 8

?? MAXLOGHISTORY 292

LOGFILE

?GROUP 1 '/home/oracle/oradata/orcl/redo01.log' SIZE 50M,

?GROUP 2 '/home/oracle/oradata/orcl/redo02.log' SIZE 50M,

?GROUP 3 '/home/oracle/oradata/orcl/redo03.log' SIZE 50M

-- STANDBY LOGFILE

DATAFILE

?'/home/oracle/oradata/orcl/system01.dbf',

?'/home/oracle/oradata/orcl/undotbs01.dbf',

?'/home/oracle/oradata/orcl/sysaux01.dbf',

?'/home/oracle/oradata/orcl/users01.dbf',

?'/home/oracle/oradata/orcl/example01.dbf'

CHARACTER SET WE8ISO8859P1;

RECOVER DATABASE

ALTER DATABASE OPEN;

ALTER TABLESPACE TEMP ADD TEMPFILE '/home/oracle/oradata/orcl/temp01.dbf'

??? SIZE 22020096 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

F,運(yùn)行腳本重建控制文件

SQL> set echo on

SQL> STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG

?? MAXLOGFILES 16

?? MAXLOGMEMBERS 3

?? MAXDATAFILES 100

?? MAXINSTANCES 8

?? MAXLOGHISTORY 292

LOGFILE

?GROUP 1 '/home/oracle/oradata/orcl/redo01.log' SIZE 50M,

?GROUP 2 '/home/oracle/oradata/orcl/redo02.log' SIZE 50M,

?GROUP 3 '/home/oracle/oradata/orcl/redo03.log' SIZE 50M

-- STANDBY LOGFILE

DATAFILE

?'/home/oracle/oradata/orcl/system01.dbf',

?'/home/oracle/oradata/orcl/undotbs01.dbf',

?'/home/oracle/oradata/orcl/sysaux01.dbf',

?'/home/oracle/oradata/orcl/users01.dbf',

?'/home/oracle/oradata/orcl/example01.dbf'

CHARACTER SET WE8ISO8859P1;

RECOVER DATABASE

ALTER DATABASE OPEN;

ALTER TABLESPACE TEMP ADD TEMPFILE '/home/oracle/oradata/orcl/temp01.dbf'

??? SIZE 22020096 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

ORACLE instance started.

Total System Global Area 167772160 bytes

Fixed Size???????????????? 1218316 bytes

Variable Size???????????? 71305460 bytes

Database Buffers????????? 92274688 bytes

Redo Buffers?????????????? 2973696 bytes

SQL>? 2?? 3?? 4?? 5?? 6?? 7?? 8?? 9? 10? 11? 12? 13? 14? 15? 16? 17? 18

Control file created.

SQL> Media recovery complete.

SQL>

Database altered.

SQL>? 2

Tablespace altered.

?

?

Oracle控制文件操作


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 最近手机中文字幕1页 | 亚洲精品免费视频 | 免费国产成人高清在线观看麻豆 | 99精品影视| 欧美激情在线免费观看 | 一日本道加勒比高清一二三 | 国产精品免费视频播放 | 97夜夜操| 成人99国产精品一级毛片 | 不卡网| 欧美日韩性视频在线 | 色婷婷婷丁香亚洲综合不卡 | 亚洲欧美二区三区久本道 | 国产a精品| 青草精品视频 | 全免费午夜一级毛片一级毛 | 亚洲狠狠色丁香婷婷综合 | 欧美精品专区免费观看 | 久久久久久九九 | 波多野结衣3女同在线观看 波多野结衣av1区2区3区 | 欧美草逼视频 | 国产成人永久在线播放 | 99热精品久久 | 青青青国产色视频在线观看 | 国产成年网站v片在线观看 国产成人 免费观看 | 福利一区在线视频 | 久久在线影院 | 中文字幕免费视频精品一 | 欧美手机手机在线视频一区 | 色婷婷狠狠久久综合五月 | 91色爱| 久久香蕉综合精品国产 | 亚洲国产成人久久一区久久 | 国产精品久久久久三级 | 添bbb免费观看高清视频 | 成人啪啪免费看 | 亚洲综合精品香蕉久久网 | 国产精品国产三级国产a | 日韩一区二区三区视频在线观看 | 久久夜靖品 | 手机看片国产福利 |