国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

oracle FAQ之備份與恢復

2019-09-08 23:30:42
字體:
來源:轉載
供稿:網友
[Q]如何開啟/關閉歸檔
[A]如果開啟歸檔,請保證log_archive_start=true開啟自動歸檔,否則只能手工歸檔,如果是關閉了歸檔,則設置該參數為false
注意:如果是OPS/RAC環境,需要先把parallel_server = true注釋掉,然后執行如下步驟,最后用這個參數重新啟動
1、開啟歸檔
a. 關閉數據庫shutdown immediate
b. startup mount
c. alter database archivelog
d. alter database opne
2、禁止歸檔
a. 關閉數據庫shutdown immediate
b. startup mount
c. alter database noarchivelog
d. alter database open
歸檔信息可以通過如下語句查看
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:/oracle/ora92/database/archive
Oldest online log sequence 131
Next log sequence to archive 133
Current log sequence 133

[Q]怎樣設置定時歸檔
[A]9i以上版本,保證歸檔的最小間隔不超過n秒
設置Archive_lag_target = n
單位:秒 范圍:0~7200

[Q]不同版本怎么導出/導入
[A]導出用低版本,導入用當前版本
如果版本跨越太大,需要用到中間版本過渡

[Q]不同的字符集之前怎么導數據
[A]a.前條件是保證導出/導入符合其他字符集標準,如客戶環境與數據庫字符集一致。
b.修改dmp文件的2、3字節為目標數據庫的字符集,注意要換成十六進制。
參考函數(以下函數中的ID是十進制的):
nls_charset_name 根據字符集ID獲得字符集名稱
nls_charset_id 根據字符集名稱獲得字符集ID

[Q]怎么樣備份控制文件
[A]再線備份為一個二進制的文件
alter database backup controlfile to '$BACKUP_DEPT/controlfile.000' [reuse];
備份為文本文件方式
alter database backup controlfile to trace [resetlogs|noresetlogs];

[Q]控制文件損壞如何恢復
[A]1、如果是損壞單個控制文件
只需要關閉數據庫,拷貝一個好的數據文件覆蓋掉壞的數據文件即可
或者是修改init.ora文件的相關部分
2、如果是損失全部控制文件,則需要創建控制文件或從備份恢復
創建控制文件的腳本可以通過alter database backup controlfile to trace獲取。

[Q]怎么樣熱備份一個表空間
[A]Alter tablespace 名稱 begin backup;
host cp 這個表空間的數據文件 目的地;
Alter tablespace 名稱 end backup;
如果是備份多個表空間或整個數據庫,只需要一個一個表空間的操作下來就可以了。

[Q]怎么快速得到整個數據庫的熱備腳本
[A]可以寫一段類似的腳本
SQL>set serveroutput on
begin
dbms_output.enable(10000);
for bk_ts in (select t.ts#,t.name from v$tablespace t,v$datafile d where t.ts#=d.ts#) loop
dbms_output.put_line('--'||bk_ts.name);
dbms_output.put_line('alter tablespace '||bk_ts.name||' begin backup;');
for bk_file in (select file#,name from v$datafile where ts#=bk_ts.ts#) loop
dbms_output.put_line('host cp '||bk_file.name||' $BACKUP_DEPT/');
end loop;
dbms_output.put_line('alter tablespace '||bk_ts.name||' end backup;');
end loop;
end;
/

[Q]丟失一個數據文件,但是沒有備份,怎么樣打開數據庫
[A]如果沒有備份只能是刪除這個數據文件了,會導致相應的數據丟失。
SQL>startup mount
--ARCHIVELOG模式命令
SQL>Alter database datafile 'file name' offline;
--NOARCHIVELOG模式命令
SQL>Alter database datafile 'file name' offline drop;
SQLl>Alter database open;
注意:該數據文件不能是系統數據文件

[Q]丟失一個數據文件,沒有備份但是有該數據文件創建以來的歸檔怎么恢復
[A]保證如下條件
a. 不能是系統數據文件
b. 不能丟失控制文件
如果滿足以上條件,則
SQL>startup mount
SQL>Alter database create datafile 'file name' as 'file name' size ... reuse;
SQL>recover datafile n; -文件號
或者
SQL>recover datafile 'file name';
或者
SQL>recover database;
SQL>Alter database open;

[Q]聯機日志損壞如何恢復
[A]1、如果是非當前日志而且歸檔,可以使用
Alter database clear logfile group n來創建一個新的日志文件
如果該日志還沒有歸檔,則需要用
Alter database clear unarchived logfile group n
2、如果是當前日志損壞,一般不能clear,則可能意味著丟失數據
如果有備份,可以采用備份進行不完全恢復
如果沒有備份,可能只能用_allow_resetlogs_corruption=true來進行強制恢復了,但是,這樣的方法是不建議的,最好在有Oracle support的指導下進行。

[Q]怎么樣在恢復的時候移動數據文件,恢復到別的地點
[A]給一個RMAN的例子
run {
set until time 'Jul 01 1999 00:05:00';
allocate channel d1 type disk;
set newname for datafile '/u04/oracle/prod/sys1prod.dbf'
to '/u02/oracle/prod/sys1prod.dbf';
set newname for datafile '/u04/oracle/prod/usr1prod.dbf'
to '/u02/oracle/prod/usr1prod.dbf';
set newname for datafile '/u04/oracle/prod/tmp1prod.dbf'
to '/u02/oracle/prod/tmp1prod.dbf';
restore controlfile to '/u02/oracle/prod/ctl1prod.ora';
replicate controlfile from '/u02/oracle/prod/ctl1prod.ora';
restore database;
sql "alter database mount";
switch datafile all;
recover database;
sql "alter database open resetlogs";
release channel d1;
}

數據庫 Oracle

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 古蔺县| 怀远县| 桂阳县| 扎赉特旗| 景泰县| 汤原县| 历史| 北流市| 炉霍县| 屏南县| 临潭县| 乌海市| 崇仁县| 马山县| 绥江县| 北京市| 茂名市| 义乌市| 丰县| 防城港市| 承德县| 理塘县| 海林市| 台东县| 蒲江县| 南陵县| 开封县| 盐池县| 九江县| 双流县| 巫溪县| 大石桥市| 米易县| 宜昌市| 澄迈县| 青阳县| 东城区| 宁城县| 原平市| 南宁市| 交口县|