日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 操作oracle 最佳方式_oracle备份恢复基础详解

發(fā)布時間:2025/3/15 c/c++ 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 操作oracle 最佳方式_oracle备份恢复基础详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Oracle備份方式分類:

Oracle有兩類備份方式:

(1)物理備份:是將實(shí)際組成數(shù)據(jù)庫的操作系統(tǒng)文件從一處拷貝到另一處的備份過程,通常是從磁盤到磁帶。

物理備份又分為冷備份、熱備份;

(2)邏輯備份:是利用SQL語言從數(shù)據(jù)庫中抽取數(shù)據(jù)并存于二進(jìn)制文件的過程。

邏輯備份使用導(dǎo)入導(dǎo)出工具:EXPDP/IMPDP或EXP/IMP;

備份方式的優(yōu)缺點(diǎn)及使用時機(jī)比較如下圖:

二、Oracle備份方式介紹:

1、物理備份之冷備份(條件-NonArchiveLog):

當(dāng)數(shù)據(jù)庫可以暫時處于關(guān)閉狀態(tài)時,我們需要將它在這一穩(wěn)定時刻的數(shù)據(jù)相關(guān)文件轉(zhuǎn)移到安全的區(qū)域,當(dāng)數(shù)據(jù)庫遭到破壞,再從安全區(qū)域?qū)浞莸臄?shù)據(jù)庫相關(guān)文件拷貝回原來的位置,這樣,就完成了一次快捷安全等數(shù)據(jù)轉(zhuǎn)移。由于是在數(shù)據(jù)庫不提供服務(wù)的關(guān)閉狀態(tài),所以稱為冷備份。冷備份具有很多優(yōu)良特性,比如上面圖中我們提到的,快速,方便,以及高效。一次完整的冷備份步驟應(yīng)該是:

(1)首先關(guān)閉數(shù)據(jù)庫(shutdown normal)

(2)拷貝相關(guān)文件到安全區(qū)域(利用操作系統(tǒng)命令拷貝數(shù)據(jù)庫的所有的數(shù)據(jù)文件、日志文件、控制文件、參數(shù)文件、口令文件等(包括路徑))

(3)重新啟動數(shù)據(jù)庫(startup)

物理冷備份的恢復(fù):

恢復(fù)的時候,相對比較簡單了,我們停掉數(shù)據(jù)庫,將文件拷貝回相應(yīng)位置,重啟數(shù)據(jù)庫就可以了,當(dāng)然也可以用腳本來完成。

2、物理備份之熱備份:(條件-ArchiveLog)

當(dāng)我們需要做一個精度比較高的備份,而且我們的數(shù)據(jù)庫不可能停掉(少許訪問量)時,這個情況下,我們就需要?dú)w檔方式下的備份,就是下面討論的熱備份。熱備份可以非常精確的備份表空間級和用戶級的數(shù)據(jù),由于它是根據(jù)歸檔日志的時間軸來備份恢復(fù)的,理論上可以恢復(fù)到前一個操作,甚至就是前一秒的操作。具體步驟如下:

(1)通過視圖v$database,查看數(shù)據(jù)庫是否在Archive模式下:

SQL> select log_mode from v$database; 如果不是Archive模式,則設(shè)定數(shù)據(jù)庫運(yùn)行于歸檔模式下: SQL>shutdown immediate SQL>startup mount SQL>alter database archivelog; SQL>alter database open;

如果Automaticarchival顯示為“Enabled”,則數(shù)據(jù)庫歸檔方式為自動歸檔。否則需要手工歸檔,或者將歸檔方式修改為自動歸檔,如:

正常shutdown數(shù)據(jù)庫,在參數(shù)文件中init.ora中加入如下參數(shù)

SQL>shutdown immediate 修改init.ora: LOG_ARCHIVE_START=TRUE LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(歸檔日志存放位置可以自己定義) SQL>startup

然后,重新啟動數(shù)據(jù)庫,此時Oracle數(shù)據(jù)庫將以自動歸檔的方式工作在Archive模式下。其中參數(shù)LOG_ARCHIVE_DEST1是指定的歸檔日志文件的路徑,建議與Oracle數(shù)據(jù)庫文件存在不同的硬盤,一方面減少磁盤I/O競爭,另外一方面也可以避免數(shù)據(jù)庫文件所在硬盤毀壞之后的文件丟失。歸檔路徑也可以直接指定為磁帶等其它物理存儲設(shè)備,但可能要考慮讀寫速度、可寫條件和性能等因素。

(2)表空間文件備份步驟:

a,首先,修改表空間文件為備份模式 ALTER TABLESPACE tablespace_name BEGIN BACKUP;

b,然后,拷貝表空間文件到安全區(qū)域 !CP tablespace_name D_PATH;

c,最后,將表空間的備份模式關(guān)閉 ALTER TABLESPACE tablespace_name END BACKUP;

(3)歸檔日志文件備份步驟:

停止歸檔進(jìn)程-->備份歸檔日志文件-->啟動歸檔進(jìn)程

如果日志文檔比較多,我們將它們寫入一個文件成為一個恢復(fù)的參考:$ files `ls /arch*.dbf`;export files

(4)控制文件備份步驟:

SQL> alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;

物理熱備份的恢復(fù):

熱備份的恢復(fù),對于歸檔方式數(shù)據(jù)庫的恢復(fù)要求不但有有效的日志備份還要求有一個在歸檔方式下作的有效的全庫備份。歸檔備份在理論上可以無數(shù)據(jù)丟失,但是對于硬件以及操作人員的要求都比較高。在我們使用歸檔方式備份的時候,全庫物理備份也是非常重要的。歸檔方式下數(shù)據(jù)庫的恢復(fù)要求從全備份到失敗點(diǎn)所有的日志都要完好無缺。

恢復(fù)步驟:LOG_ARCHIVE_DEST_1

(1)shutdown數(shù)據(jù)庫。

(2)將全備份的數(shù)據(jù)文件放到原來系統(tǒng)的目錄中。

(3)將全備份到失敗點(diǎn)的所有歸檔日志放到參數(shù)LOG_ARCHIVE_DEST_1所指定的位置。

(4)利用sqlplus登陸到空實(shí)例。(connect / as sysdba)

startup mount set autorecovery on recover database; alter database open;

3、邏輯備份之EXP/IMP:

EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。

EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用。

IMP只適用于EXP導(dǎo)出的文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出的文件,而不適用于EXP導(dǎo)出文件。

(1)導(dǎo)出表:

E:>exp system/oracle TABLES=scott.dept,scott.emp FILE=a.dmp

(2)導(dǎo)出方案:

E:>exp system/oracle OWNER=scott FILE=b.dmp

(3)導(dǎo)出數(shù)據(jù)庫:

E:>exp system/oracle FILE=c.dmp FULL=Y

(4)導(dǎo)入表:

SQL> drop table scott.emp;

SQL> drop table scott.dept;

E:>impdp scott/tiger file=a.dmp tables=dept,emp

(5)導(dǎo)入方案:

SQL> drop user scott cascade;

SQL> create user scott identified by tiger;

SQL> grant dba to scott;

E:>impdp scott/tiger file=b.dmp

E:>impdp system/oracle file=b.dmp owner=scott

(6)導(dǎo)入數(shù)據(jù)庫:

impdp system/oracle file=c.dmp full=y

4、邏輯備份之EXPDP/IMPDP

使用數(shù)據(jù)泵(Data Dump)導(dǎo)出/導(dǎo)入包括4種方式:導(dǎo)出表、導(dǎo)出方案、導(dǎo)出表空間、導(dǎo)出數(shù)據(jù)庫。

(1)導(dǎo)出表

在E盤建立目錄oracledump;

SQL> CREATE DIRECTORY dump_dir AS 'E:oracledump';SQL> GRANT READ,WRITE ON DIRECTORY dump_dir TO scott;E:>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

(2)導(dǎo)出方案:

E:>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schemaScott.dmp SCHEMAS='SCOTT';

(3)導(dǎo)出表空間:

E:>expdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp ESTIMATE_ONLY

(4)導(dǎo)出數(shù)據(jù)庫:

E:>expdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y

(5)導(dǎo)入表:

SQL> drop table scott.emp;SQL> drop table scott.dept;E:>impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp

(6)導(dǎo)入方案:

SQL> drop user scott cascade;SQL> create user scott identified by tiger;SQL> grant dba to scott;E:>impdp system/oracle directory=dump_dir dumpfile=schemaScott.dmp schemas=scott

(7)導(dǎo)入表空間:

impdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp tablespaces=users

(8)導(dǎo)入數(shù)據(jù)庫:

impdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y

后面會分享更多DBA備份恢復(fù)方面的內(nèi)容,感興趣的朋友可以關(guān)注下!!

總結(jié)

以上是生活随笔為你收集整理的c++ 操作oracle 最佳方式_oracle备份恢复基础详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。