oracle11g安裝配置手冊(cè)_第1頁
oracle11g安裝配置手冊(cè)_第2頁
oracle11g安裝配置手冊(cè)_第3頁
oracle11g安裝配置手冊(cè)_第4頁
oracle11g安裝配置手冊(cè)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oracle安裝配置手冊(cè)V1.0版1 安裝Oracle前的系統(tǒng)準(zhǔn)備工作1.1 檢查需要的軟件包以root用戶登錄系統(tǒng),使用rpm -q 軟件包關(guān)鍵詞命令進(jìn)行檢測(cè)rpm -q -qf binutils compat-libstdc+-33 elfutils-libelf elfutils-libelf-devel gcc glibc gcc-c+ glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc libstdc+-devel make sysstat unixODBC unixODBC-devel

2、將缺少的軟件包用命令: rpm ivh加上缺少的軟件包名稱進(jìn)行安裝,如:# rpm ivh 【注釋:本系統(tǒng)缺少3個(gè)軟件安裝包,詳細(xì)見附錄/SQMPMS/soft/oracle/package下,名稱:.rpm,.rpm,】1.2 修改系統(tǒng)內(nèi)核參數(shù)在/etc/sysctl.conf中添加以下行: vi /etc/sysctl.conffs.aio-max-nr = 1048576fs.file-max = 6815744#kernel.shmall = 2097152#kernel.shmmax = 536870912kernel.shmmni = 4096kernel.sem = 250 32

3、000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586運(yùn)行下面的命令應(yīng)用以上OS參數(shù):/sbin/sysctl p添加以下行到/etc/security/limits.conf文件中:vi /etc/security/limits.conf* soft nproc 2047* hard nproc 16384* soft

4、 nofile 1024* hard nofile 65536如果/etc/pam.d/login文件中沒有以下行,則添加以下內(nèi)容:vi /etc/pam.d/loginsession required pam_limits.so修改/etc/selinux/config文件來關(guān)閉linux防火墻,確保SELINUX設(shè)置如下:vi /etc/selinux/configSELINUX=disabled1.3 創(chuàng)建oracle組和用戶groupadd oinstall groupadd dba useradd -g oinstall -G dba oraclepasswd oracle1.4 創(chuàng)

5、建oracle安裝目錄mkdir /oraclechown -R oracle:oinstall /oraclechmod -R 775 /oracle1.5 設(shè)置oracle用戶環(huán)境變量以oracle用戶登陸系統(tǒng),覆蓋.bash_profile文件內(nèi)容:vi /home/oracle/.bash_profile# Get the aliases and functionsif -f /.bashrc ; then. /.bashrcfi# User specific environment and startup programsORACLE_SID=sqmpmsORACLE_BASE=/o

6、racleexport ORACLE_SID ORACLE_BASE ORACLE_HOMEPATH=$PATH:$ORACLE_HOME/bin:$HOME/binexport PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport CLASSPATHif $USER = oracle ; then if $SHELL = /bin/ksh ; then u

7、limit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifi2 安裝Oracle 2.1 解壓縮安裝文件$ mkdir /oracle/soft通過SSH上傳安裝包到/oracle/soft/目錄下【SSH的實(shí)用詳細(xì)見SSH實(shí)用說明】使用命令unzip 文件名 解壓安裝包$ cd /oracle/softunzip p10404530_112030_Linux-x86-64_1of7.zipunzip p10404530_112030_Linux-x86-64_2of7.zip設(shè)置oracle帳戶可以操作安裝文件所在的目錄c

8、hown -R oracle:oinstall /oracle/soft/chmod -R 755 /oracle/soft/【注釋:安裝包見:附錄/SQMPMS/soft/oracle目錄下,名稱為:p10404530_112030_Linux-x86-64_1of7.zip,p10404530_112030_Linux-x86-64_2of7.zip】2.2 安裝ORACLE用oracle帳戶進(jìn)入安裝文件所在目錄,執(zhí)行如下命令即可看到安裝界面# su oracle $ cd /oracle/soft/database$ ./runInstaller如果無法看到安裝界面,請(qǐng)使用root帳戶執(zhí)

9、行如下命令后再運(yùn)行安裝程序:# export DISPLAY=:0.0或者ip:0.0# xhost +# su oracle$ cd /oracle/soft/database$ ./runInstaller 或 ./runInstaller -ignoreSysPreReqs (跳過系統(tǒng)檢查)如果出現(xiàn)界面亂碼現(xiàn)象,執(zhí)行以下命令:export LANG=en出現(xiàn)安裝界面后,根據(jù)界面提示進(jìn)行相關(guān)的設(shè)置:如果出現(xiàn)程序包警告異常,選擇全部忽略,并執(zhí)行下一步安裝完成的最后步驟,操作如下:$ su - root# cd /oracle/oralnventory/# ./orainstRoot.sh #

10、 cd /# ./root.sh# 回車完成3 創(chuàng)建數(shù)據(jù)庫(kù)3.1 配置監(jiān)聽1、 以oracle用戶登錄系統(tǒng)運(yùn)行netca命令,操作步驟如下:1) :# su - oracle2) 先進(jìn)入oracle bin目錄,命令:# 3) :$ netca4) :系統(tǒng)會(huì)彈出彈出操作窗口,如下圖2、添加監(jiān)聽程序,如圖3、輸入監(jiān)聽程序名,如圖4、使用默認(rèn)端口1521(生產(chǎn)環(huán)境下,不能使用默認(rèn)端口,需改為1522,因?yàn)閲?guó)網(wǎng)安全測(cè)試通不過)5、完成配置6、啟動(dòng)監(jiān)聽,命令如下:$ lsnrctl start3.2 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例切換到oracle用戶,運(yùn)行dbca命令創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,命令:$ dbca,系統(tǒng)彈出數(shù)據(jù)

11、庫(kù)實(shí)例創(chuàng)建操作界面,如下圖1、選擇創(chuàng)建數(shù)據(jù)庫(kù)2、選擇創(chuàng)建數(shù)據(jù)庫(kù)模板,選 一般用途或事務(wù)處理3、輸入數(shù)據(jù)庫(kù)全局名及SID: sqmpms4、設(shè)定數(shù)據(jù)庫(kù)賬號(hào)密碼(建議生成環(huán)境下,選擇不同用戶不同密碼管理)【當(dāng)前密碼為Oracle123】5、設(shè)置閃回區(qū)大小,這里選擇默認(rèn)值大小6、設(shè)置數(shù)據(jù)庫(kù)實(shí)例SGA、PGA大小,視操作系統(tǒng)內(nèi)存大小,一般如果此系統(tǒng)只有ORACLE應(yīng)用,建議分配給ORACLE實(shí)例80%的大小,如果數(shù)據(jù)庫(kù)為OLTP應(yīng)用的,則其應(yīng)用一般都是小的短的進(jìn)程,所需要的pga也相應(yīng)較少,所以該值通常為總共分配給Oracle實(shí)例的20%,另外的80%給SGA,如果是OLAP的應(yīng)用,建議各占50%。而

12、如果數(shù)據(jù)庫(kù)是混合類型的,一般會(huì)先分配給pga 40%的初始值,然后隨著應(yīng)用不斷監(jiān)控和調(diào)整PGA。7、設(shè)置數(shù)據(jù)庫(kù)實(shí)例數(shù)據(jù)塊大小及用戶最大進(jìn)程數(shù)(生產(chǎn)環(huán)境下,建議連接數(shù)至少為1500以上)8、設(shè)置數(shù)據(jù)庫(kù)實(shí)例字符集(一般建議選AL32UTF8)9、檢查參數(shù)文件及所有數(shù)據(jù)文件位置是否正確10、點(diǎn)擊 完成 開始創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,直至實(shí)例安裝成功。3.3 檢查oracle實(shí)例是否安裝成功1、終端中切換到oracle用戶,命令:su - oracle2、$ sqlplus / as sysdba;SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 21 15:

13、11:28 2012Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing options3、在調(diào)出的sqlplus命

14、令模式中,運(yùn)行命令:select * from v$version,如果有數(shù)據(jù)庫(kù)版本信息顯示,則表示數(shù)據(jù)庫(kù)實(shí)例創(chuàng)建成功。SQL select * from v$version;BANNER-Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionPL/SQL Release 11.2.0.3.0 - ProductionCORE 11.2.0.3.0 ProductionTNS for Linux: Version 11.2.0.3.0 - ProductionNLSRTL Version 11.2

15、.0.3.0 - Production4、退出sqlplus命令模式,命令:exit;SQLexit;3.4 設(shè)置開機(jī)自啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例1、 切換到root用戶登錄,命令:su root,2、 執(zhí)行以下命令:# vi /oracle/oraclestart.sh,編輯oraclestart.sh文件,添加以下內(nèi)容# !/bin/sh su - oracle EON export ORACLE_SID=sqmpms lsnrctl start sqlplus /nolog /etc/rc.loca4 數(shù)據(jù)庫(kù)配置4.1 數(shù)據(jù)庫(kù)基本信息 數(shù)據(jù)庫(kù)類型:Oracle 數(shù)據(jù)庫(kù)版本: 數(shù)據(jù)庫(kù)SID:sqmpm

16、s 數(shù)據(jù)庫(kù)別名: sqmpms 語言:AMERICAN_AMERICA 數(shù)據(jù)庫(kù)字符集(NLS_CHARACTERSET):UTF8 國(guó)家區(qū)域字符集(NLS_NCHAR_CHARACTERSET):UTF84.2 修改ORACLE核心參數(shù)1、 切換到oracle用戶,命令:su oracle 2、 執(zhí)行以下命令:$ sqlplus / as sysdba;3、 逐句執(zhí)行以下命令:alter system set nls_length_semantics = CHAR scope=both; (如果字符集選的是UTF-8,一定要執(zhí)行此語句,利于建表語句中字符字段長(zhǎng)度的規(guī)范。原來的值為spfile;

17、)alter system set sessions=3000 scope=spfile;alter system set processes=2500 scope=spfile;alter system set open_cursors=3000 scope=both;alter system set db_files=500 scope=spfile ;alter system set job_queue_processes=30 scope=both;alter system set nls_date_format=YYYY-MM-DD scope=spfile;4、關(guān)閉數(shù)據(jù)庫(kù),命令:s

18、hutdown immediate;5、啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,命令:startup;4.3 導(dǎo)入數(shù)據(jù)1、根據(jù)“附錄/SQMPMS/data/數(shù)據(jù)庫(kù)腳本”中的數(shù)據(jù)腳本,按照建立表空間、新建用戶、數(shù)據(jù)庫(kù)表結(jié)構(gòu)初始化、建立索引、平臺(tái)數(shù)據(jù)依次執(zhí)行各個(gè)腳本(執(zhí)行腳本之前必須先認(rèn)真閱讀文件夾下的“重要說明.txt”文件)。4.4 編譯數(shù)據(jù)庫(kù)失效對(duì)象1、以oracle用戶執(zhí)行命令:$ sqlplus / as sysdba; (如果沒有切換或者退出當(dāng)前用戶,則不用執(zhí)行此命令,直接執(zhí)行以下腳本)2、執(zhí)行以下數(shù)據(jù)庫(kù)編譯腳本/oracle5 系統(tǒng)故障處理5.1 數(shù)據(jù)庫(kù)文件損壞口令文件損壞處理方法: 重新生成口令文件即可

19、,采用orapwd命令進(jìn)行生成相應(yīng)的口令文件到指定的位置,然后重啟數(shù)據(jù)庫(kù)即可單個(gè)控制文件損壞處理方法:1、 停止數(shù)據(jù)庫(kù),shutdown immediate;2、 查看初始化文件/initpmdb.ora,確定所有控制文件的路徑,一般初始化參數(shù)文件路徑在$ORACLE_BASE/admin/pfile3、 用操作系統(tǒng)命令將其它正確的控制文件覆蓋錯(cuò)誤的控制文件4、 重啟數(shù)據(jù)庫(kù),startup5、 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份全部控制文件損壞處理方法:1. 確保數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉,如果沒有用下面的命令來關(guān)閉數(shù)據(jù)庫(kù): shutdown immediate;2. 從相應(yīng)的備份結(jié)果集中恢復(fù)最近的控制文件。對(duì)

20、于沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上將最近的控制文件備份恢復(fù)到相應(yīng)目錄;對(duì)于采用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來恢復(fù)最近的控制文件3. 用下面的命令來創(chuàng)建產(chǎn)生數(shù)據(jù)庫(kù)控制文件的腳本:startup mount;alter database backup controlfile to trace noresetlogs;4. 修改第三步產(chǎn)生的trace文件,將其中關(guān)于創(chuàng)建控制文件的一部分語句拷貝出來并做些修改,使得它能夠體現(xiàn)最新的數(shù)據(jù)庫(kù)結(jié)構(gòu)。假設(shè)產(chǎn)生的sql文件名字為createcontrol.sql.注意:Trace文件的具體路徑可以在執(zhí)行完第3)步操作后查看$ORACLE_BASE/adm

21、in/bdump/alert_ORCL.ora文件來確定5. 用下面命令重新創(chuàng)建控制文件:shutdown abort;startup nomount;createcontrol.sql;6. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份重做日志文件損壞處理方法:(1)、確定損壞的重做日志的位置及其狀態(tài): 1. 如果數(shù)據(jù)庫(kù)處于可用狀態(tài): select * from v$logfile;select * from v$log;2. 如果數(shù)據(jù)庫(kù)處于已經(jīng)異常終止:startup mount;select * from v$logfile;select * from v$log;其中,logfile的狀態(tài)為INVAL

22、ID表示這組日志文件出現(xiàn)已經(jīng)損壞;log狀態(tài)為Inactive:表示重做日志文件處于非激活狀態(tài);Active: 表示重做日志文件處于激活狀態(tài);Current:表示是重做日志為當(dāng)前正在使用的日志文件(2)、損壞的日志文件處于非激活狀態(tài):1. 刪除相應(yīng)的日志組:alter database drop logfile group group_number;2. 重新創(chuàng)建相應(yīng)的日志組:alter database add log file group group_number (log_file_descritpion,) size log_file_size;(3)、損壞的日志文件處于激活狀態(tài)且為非

23、當(dāng)前日志:1. 清除相應(yīng)的日志組:alter database clear unarchived logfile group group_number;損壞的日志文件為當(dāng)前活動(dòng)日志文件:用命令清除相應(yīng)的日志組:alter database clear unarchived logfile group group_number;如果清除失敗,則只能做基于時(shí)間點(diǎn)的不完全恢復(fù)。打開數(shù)據(jù)庫(kù)并且用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份:alter database open;非system表空間的數(shù)據(jù)文件損壞 :1. 確定損壞的文件名字: select name from v$datafile where stat

24、us=INVALID; 2. 將損壞的數(shù)據(jù)文件處于offline狀態(tài): alter database datafile datafile_name offline; 3. 從相應(yīng)的備份結(jié)果集中恢復(fù)關(guān)于這個(gè)數(shù)據(jù)文件的最近的備份。對(duì)于沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上恢復(fù);對(duì)于用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來恢復(fù)。 4. 恢復(fù)數(shù)據(jù)文件: alter database recover datafile file_name; 5. 使數(shù)據(jù)庫(kù)文件online: alter database datafile datafile_name online; 6. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份。syste

25、m表空間的數(shù)據(jù)文件損壞: 1. 以mount方式啟動(dòng)數(shù)據(jù)庫(kù) startup mount; 2. 從相應(yīng)的備份結(jié)果集中恢復(fù)關(guān)于這個(gè)數(shù)據(jù)文件的最近的備份。對(duì)于沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上恢復(fù);對(duì)于用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來恢復(fù)。 3. 恢復(fù)system表空間: alter database recover datafile datafile_name; 4. 打開數(shù)據(jù)庫(kù): alter database open; 5. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份非system表空間損壞: 1. 將損壞的表空間處于offline狀態(tài): alter tablespace tablespace_na

26、me offline; 2. 從相應(yīng)的備份結(jié)果集中恢復(fù)關(guān)于這個(gè)表空間最近的備份。對(duì)于沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上恢復(fù);對(duì)于用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來恢復(fù)。 3. 恢復(fù)表空間: alter database recover tablespace tablespace_name; 4. 使表空間online: alter tablespace tablespace_name online; 5. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份. system表空間損壞: 1. 以mount方式啟動(dòng)數(shù)據(jù)庫(kù) startup mount; 2. 從相應(yīng)的備份結(jié)果集中恢復(fù)system表空間最近的備份。對(duì)于

27、沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上恢復(fù);對(duì)于用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來恢復(fù)。 3. 恢復(fù)system表空間: alter database recover tablespace system; 4. 打開數(shù)據(jù)庫(kù): alter database open; 5. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份。 整個(gè)數(shù)據(jù)庫(kù)的所有文件損壞: 整個(gè)數(shù)據(jù)庫(kù)所有文件的損壞一般是在共享磁盤陣列發(fā)生無法恢復(fù)的災(zāi)難時(shí)才發(fā)生,這種情況下只能對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。若數(shù)據(jù)庫(kù)的歸檔目錄也已經(jīng)丟失,則數(shù)據(jù)庫(kù)不可能做完全恢復(fù),會(huì)有用戶數(shù)據(jù)的丟失。 沒采用帶庫(kù)備份的現(xiàn)場(chǎng): 1. 將最近的備份從磁帶上把各個(gè)文件解包到相應(yīng)的目錄下。 2

28、. 以mount方式打開數(shù)據(jù)庫(kù): startup mount; 3. 恢復(fù)數(shù)據(jù)庫(kù): recover database until cancel; 4. 打開數(shù)據(jù)庫(kù): alter database open resetlogs; 5. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份。 采用帶庫(kù)備份的現(xiàn)場(chǎng): 1. 以nomount方式打開數(shù)據(jù)庫(kù): startup nomount; 2. 通過相應(yīng)的rman腳本進(jìn)行數(shù)據(jù)庫(kù)軟恢復(fù)。 $rman cmdfile=hot_database_restore.rcv 3. 打開數(shù)據(jù)庫(kù): alter database open resetlogs; 4. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全

29、備份。 存在最近的數(shù)據(jù)庫(kù)完整冷備份前提下的一些經(jīng)典緊急情況的處理: 數(shù)據(jù)文件,歸檔重作日志和控制文件同時(shí)丟失或損壞: 無新增archives 時(shí)的狀況: 條件和假設(shè):自上次鏡像備份以來尚未生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的鏡像(冷)拷貝 恢復(fù)步驟: 1. 將鏡像拷貝的datafile(s) 和control file(s) 抄送回原始地點(diǎn): $ cp /backup/good_one.dbf /orig_loc/bad_one.dbf $ cp /backup/control1.ctl

30、/disk1/control1.ctl 2. 以mount 選項(xiàng)啟動(dòng)數(shù)據(jù)庫(kù): $ sqlplus /nolog connect / as sysdba startup mount 3. 以舊的control file 來恢復(fù)數(shù)據(jù)庫(kù): recover database using backup controlfile until cancel; * 介質(zhì)恢復(fù)完成 (必須馬上cancel ) 4. Reset the logfiles (對(duì)啟動(dòng)而言不可省略): alter database open resetlogs; 5. 關(guān)閉數(shù)據(jù)庫(kù)并做一次全庫(kù)冷備份。 新增archives 時(shí)的狀況: 條件

31、和假設(shè):自上次鏡像備份以來已經(jīng)生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的鏡像(冷)拷貝;archive log(s) 可用。 恢復(fù)步驟: 1. 如果數(shù)據(jù)庫(kù)尚未關(guān)閉,則首先把它關(guān)閉: $ sqlplus /nolog connect /as sysdba shutdown abort 2. 將備份文件抄送回原始地點(diǎn): 所有Database Files 所有Control Files(沒有archive(s) 或redo(s) 的情況下,control files 的更新無任何意義) 所有On-Li

32、ne Redo Logs (Not archives) init.ora file(選項(xiàng)) 3. 啟動(dòng)數(shù)據(jù)庫(kù): $ sqlplus /nolog connect /as sysdba startup數(shù)據(jù)文件, 重作日志和控制文件同時(shí)丟失或損壞: 條件和假設(shè):Archivelog Mode; 有同步的所有所失文件的鏡像(冷)拷貝;archive log(s) 可用 恢復(fù)步驟(必須采用不完全恢復(fù)的手法): 1. 如果數(shù)據(jù)庫(kù)尚未關(guān)閉,則首先把它關(guān)閉: $ sqlplus /nolog connect /as sysdba shutdown abort 2. 將備份文件抄送回原始地點(diǎn): 所有Datab

33、ase Files 所有Control Files 所有On-Line Redo Logs(Not archives) init.ora file(選項(xiàng)) 3. 啟動(dòng)數(shù)據(jù)庫(kù)然而并不打開: startup mount 4. 做不完全數(shù)據(jù)庫(kù)恢復(fù),應(yīng)用所有從上次鏡像(冷)備份始積累起來的archives: recover database until cancel using backup controlfile; . . cancel 5. Reset the logfiles (對(duì)啟動(dòng)而言不可省略): alter database open resetlogs; 6. 關(guān)閉數(shù)據(jù)庫(kù)并做一次全庫(kù)冷備

34、份。 數(shù)據(jù)文件和控制文件同時(shí)丟失或損壞: 條件和假設(shè):Archivelog Mode; 有同步的datafile(s) 和control file(s) 的冷拷貝;archive log(s) 可用 恢復(fù)步驟: 1. 將冷拷貝的datafiles(s) 和control file(s) 抄送回原始地點(diǎn): $ cp /backup/good_one.dbf /orig_loc/bad_one.dbf $ cp /backup/control1.ctl /disk1/control1.ctl 2. 以mount 選項(xiàng)啟動(dòng)數(shù)據(jù)庫(kù): $ sqlplus /nolog connect /as sysdb

35、a startup mount 3. 以舊的control file 來恢復(fù)數(shù)據(jù)庫(kù): recover database until cancel using backup controlfile; * 介質(zhì)恢復(fù)完成 (須在應(yīng)用完最后一個(gè)archive log 后cancel ) 4. Reset the logfiles (對(duì)啟動(dòng)而言不可省略): alter database open resetlogs; 重作日志和控制文件同時(shí)丟失或損壞時(shí): 條件和假設(shè):Control Files 全部丟失或損壞;Archivelog Mode; 有Control Files 的鏡像(冷)拷貝。 恢復(fù)步驟:

36、 1. 如果數(shù)據(jù)庫(kù)尚未關(guān)閉,則首先把它關(guān)閉: $ sqlplus /nolog connect /as sysdba shutdown abort exit 2. 以Control File 的鏡像(冷)拷貝覆蓋損壞了的Control File: $ cp /backup/control1.ctl /disk1/control1.ctl 3. 啟動(dòng)數(shù)據(jù)庫(kù)然而并不打開: $ sqlplus /nolog connect /as sysdba startup mount 4. Drop 壞掉的redo log (排除硬件故障): alter database drop logfile group

37、2; 5. 重新創(chuàng)建redo log: alter database add logfile group 2 /orig_loc/log2.dbf size 10M; 6. 以舊的control file 來恢復(fù)數(shù)據(jù)庫(kù): recover database until cancel using backup controlfile; (必須馬上cancel ) 7. Reset the logfiles (對(duì)啟動(dòng)而言不可省略): alter database open resetlogs; 8. 關(guān)閉數(shù)據(jù)庫(kù)并做一次全庫(kù)冷備份只發(fā)生歸檔重作日志丟失或損壞時(shí): 根據(jù)不同環(huán)境和情況,選擇下述手段之一:

38、 a. 馬上backup 全部datafiles (如果系統(tǒng)采用一般熱備份或RMAN 熱備份) b. 馬上正常關(guān)閉數(shù)據(jù)庫(kù)并進(jìn)行冷備份(如果系統(tǒng)采用冷備份) c. 冒險(xiǎn)前進(jìn)!不做備份而讓數(shù)據(jù)庫(kù)接著跑,直等到下一個(gè)備份周期再做備份。這是在賭數(shù)據(jù)庫(kù)在下一個(gè)備份周期到來之前不會(huì)有需要恢復(fù)的錯(cuò)誤發(fā)生。 注意:冒險(xiǎn)前進(jìn)的選擇:如果發(fā)生錯(cuò)誤而需要數(shù)據(jù)庫(kù)恢復(fù),則最多只能恢復(fù)到出問題archive log 之前的操作現(xiàn)場(chǎng)。從另一個(gè)角度講,archive log(s) 出現(xiàn)問題時(shí),數(shù)據(jù)庫(kù)若不需要恢復(fù)則其本身并沒有任何問題。 5.2 Oracle邏輯結(jié)構(gòu)故障的處理方法邏輯結(jié)構(gòu)的故障一般指由于人為的誤操作而導(dǎo)致重要數(shù)

39、據(jù)丟失的情況。在這種情況下數(shù)據(jù)庫(kù)物理結(jié)構(gòu)是完整的也是一致的。對(duì)于這種情況采取對(duì)原來數(shù)據(jù)庫(kù)的全恢復(fù)是不合適的,我們一般采用三種方法來恢復(fù)用戶數(shù)據(jù)。 采用exp/imp工具來恢復(fù)用戶數(shù)據(jù): 如果丟失的數(shù)據(jù)存在一個(gè)以前用exp命令的備份,則可以才用這種方式。 1. 在數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建一個(gè)臨時(shí)用戶: create user test_user identified by test; grant connect,resource to test_user; 2. 從以前exp命令備份的文件中把丟失數(shù)據(jù)的表按照用戶方式倒入測(cè)試用戶: $imp system/manager file=export_file_n

40、ame tables=(lost_data_table_name) fromuser=lost_data_table_owner touser=test_user constraint=n; 3. 用相應(yīng)的DML語句將丟失的數(shù)據(jù)從測(cè)試用戶恢復(fù)到原用戶。 4. 將測(cè)試用戶刪除: drop user test_user cascede; 采用logminer來恢復(fù)用戶數(shù)據(jù): Logminer是oracle提供的一個(gè)日志分析工具。它可以根據(jù)數(shù)據(jù)字典對(duì)在線聯(lián)機(jī)日志、歸檔日志進(jìn)行分析,從而可以獲得數(shù)據(jù)庫(kù)的各種DML操作的歷史記錄以及各種DML操作的回退信息。根據(jù)這些用戶就可以將由于誤操作而丟失的數(shù)據(jù)重新加入數(shù)據(jù)庫(kù)內(nèi)。 1. 確認(rèn)數(shù)據(jù)庫(kù)的utl_file_dir參數(shù)已經(jīng)設(shè)置,如果沒有則需要把這個(gè)參數(shù)加入oracle的初始化參數(shù)文件,然后重新啟動(dòng)數(shù)據(jù)庫(kù)。下面例子中假設(shè)utl_file_dir=/opt/oracle/db01; 2. 創(chuàng)建logminer所需要的數(shù)據(jù)字典信息,假設(shè)生成的數(shù)據(jù)字典文本文件為dict.ora: execute dbms_logmnr_d.build(dictionary_filename=dict.ora, dictionary_location=/opt/oracle/db01); 3. 確定所需

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論