dm不停機找回丟失表資料
一、建立測試表並建立備份
建立表插入資料:
[dmdba@dm001 dmdbms]$ disql test/qweqwe123
行號 file_lsn
1 59775
查詢test表剩餘資料:
sql> select * from test;
行號 id name
1 4 yhn
2 5 tgb
[dmdba@dm001 bin]$ ./dminit path=/home/dmdba/data page_size=8 case_sensitive=1 charset=1 length_in_char=0
initdb v8.1.0.147-build(2019.03.27-104581)ent
db version: 0x7000a
file dm.key not found, use default license!
license will expire on 2020-06-10
log file path: /home/dmdba/data/dameng/dameng01.log
log file path: /home/dmdba/data/dameng/dameng02.log
write to dir [/home/dmdba/data/dameng].
create dm database success.
恢復全備:
rman> restore database 『/home/dmdba/data/dameng/dm.ini』 from backupset 『/home/dmdba/dmdbms/data/dameng/bak/db_dameng』;
restore database 『/home/dmdba/data/dameng/dm.ini』 from backupset 『/home/dmdba/dmdbms/data/dameng/bak/db_dameng』;
restore database check…
total 0 packages processed…
restore database,dbf collect…
restore database,dbf refresh …
restore backupset [/home/dmdba/dmdbms/data/dameng/bak/db_dameng] start…
total 5 packages processed…
total 9 packages processed…
restore database,update ctl file…
restore database,rebuild key file…
restore database,check db info…
restore database,update db info…
total 9 packages processed…
total 9 packages processed!
cmd end.code:[0]
restore successfully.
time used: 28756.644(ms)
利用歸檔將資料庫恢復到表資料被刪除前:
rman> recover database 『/home/dmdba/data/dameng/dm.ini』 with archivedir 『/home/dmdba/dmdbms/arch』 until lsn 59775;
recover database 『/home/dmdba/data/dameng/dm.ini』 with archivedir 『/home/dmdba/dmdbms/arch』 until lsn 59775;
ep[0] max_lsn: 59733
recover from archive log finished, time used:0.135s.
ep[0]'s begin_lsn[59775] >= end_lsn[59772]
recover successfully!
time used: 327.245(ms)
更新db_magic
rman> recover database 『/home/dmdba/data/dameng/dm.ini』 update db_magic;
recover database 『/home/dmdba/data/dameng/dm.ini』 update db_magic;
ep[0] max_lsn: 59775
ep[0]'s begin_lsn[59775] >= end_lsn[59772]
recover successfully!
time used: 950.976(ms)
四、啟動恢復完成的資料庫,邏輯匯出所需表資料
啟動資料庫:
[dmdba@dm001 bin]$ ./dmserver /home/dmdba/data/dameng/dm.ini
file dm.key not found, use default license!
version info: develop
use normal os_malloc instead of hugetlb
use normal os_malloc instead of hugetlb
dm database server x64 v8.1.0.147-build(2019.03.27-104581)ent startup…
license will expire on 2020-06-10
ckpt lsn: 59775
ndct db load finished
ndct fill fast pool finished
iid page』s trxid[4907]
next trx id = 4908
pseg_collect_items, collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages
pseg_process_collect_items end, 0 active trx, 0 active pages, 0 committed trx, 0 committed pages
total 0 active crash trx, pseg_crash_trx_rollback begin …
pseg_crash_trx_rollback end
purg2_crash_cmt_trx end, total 0 page purged
set ep[0]'s pseg state to inactive
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
total 0 active crash trx, pseg_crash_trx_rollback begin …
pseg_crash_trx_rollback end
system is ready.
查詢當前資料庫中test表資料:
sql> select * from test.test;
行號 id name
1 1 abc
2 2 qwe
3 3 cde
dexp匯出test表資料:
[dmdba@dm001 bin]$ ./dexp sysdba/[email protected]:5237 directory=/home/dmdba/ file=test.dmp tables=test.test rows=y
dexp v8.1.0.147-build(2019.03.27-104581)ent
----- [2020-05-27 17:45:02]匯出表:test -----
匯出模式下的物件許可權…
表test匯出結束,共匯出 3 行資料
整個匯出過程共花費 0.088 s
成功終止匯出, 沒有出現警告
五、匯入test表被刪除的資料
源庫中匯入新庫中匯出的test表資料:
[dmdba@dm001 bin]$ ./dimp sysdba/qweqwe123 directory=/home/dmdba/ file=test.dmp tables=test.test rows=y ignore=y
dimp v8.1.0.147-build(2019.03.27-104581)ent
----- [2020-05-27 17:53:10]匯入表:test -----
匯入表 test 的資料:3 行被處理
整個匯入過程共花費 0.041 s
成功終止匯入, 沒有出現警告
查詢test表資料:
sql> select * from test;
行號 id name
1 4 yhn
2 5 tgb
3 1 abc
4 2 qwe
5 3 cde
Oracle資料檔案丟失,不停機恢復
歸檔模式 僅供參考 手誤刪除乙個資料檔案,此時資料庫還能正常使用,相關表也能查詢 修改資料 在修復資料檔案的過程中會影響與此表空間相關表的查詢等操作 1.根據資料檔名找到檔案號 2.使資料檔案offline alter database datafile 43 offline 3.進入rman恢復資...
MYSQL分庫分表和不停機更改表結構
在mysql分庫分表中我們一般是基於資料量比較大的時間對mysql資料庫一種優化的做法,下面我簡單的介紹一下mysql分表與分庫的簡單做法。1 分庫分表 很明顯,乙個主表 也就是很重要的表,例如使用者表 無限制的增長勢必嚴重影響效能,分庫與分表是乙個很不錯的解決途徑,也就是效能優化途徑,現在的案例是...
不停機公升級ORACLE資料庫的方法簡介
如果你需要安裝的資料庫伺服器比較多,使用圖形化方式安裝資料庫軟體的速度還是很慢,而且也比較麻煩。oracle 11g 提供了clone安裝的方法。clone安裝的方法就是複製已經安裝好的乙個oracle到另乙個服務上。步驟如下 使用正常方法在伺服器a上安裝好oracle。將a機器上的 oracle ...