備份恢復與還原
備份:就是數據庫在某一個時間點的副本,備份主要是為了防止數據丟失(地震、火災、人 為操作、硬件故障)。
還原:就是將數據庫在某個時間點的副本拷貝到對應的數據庫目錄下
恢復:就是在數據庫還原之后,應用部分或者是全部的歸檔日志
物理備份:備份的是使用過的有效的數據頁,分為聯機備份(熱備)和脫機備份(冷備); 完全備份和增量備份。
邏輯備份:備份的是數據庫對象(表、視圖、索引、過程、觸發器、序列)
聯機備份:數據庫在正常訪問的情況下,做的備份
脫機備份:數據庫在關閉后,做的備份
全量備份:備份指定的數據庫或者表空間的全部數據。
增量備份:是指在一次全備或增備后,以后每次的備份只需要備份與前一次相比增加或者被 修改的數據頁。
脫機備份可通過console控制台工具和DMRMAN命令行的方式進行備份,聯機備份可通過達夢Manager管理工具和使用SQL命令的方式進行備份。
物理備份與還原
物理備份備份的是使用過的有效的數據頁,分為聯機備份(熱備)和脫機備份(冷備);完全備份和增量備份。
1、脫機備份與還原(冷備)
冷備可以不用開歸檔,需要開啟DmAP服務,需要關閉數據庫實例,針對整庫做備份
1.1、console工具備份
1)備份之前關閉數據庫服務
2)、打開console工具
填寫備份集名稱和備份集目錄,可選全備和增備,增備必須要有基備份目錄。
1.2、console工具還原與恢復
1)、關閉數據庫實例服務
2)、打開console工具
先配置獲取備份的路徑,再點擊獲取備份,最后選擇上要恢復的備份集
3)點擊還原,確定dm.ini路徑后點擊確定,即可還原成功
4)點擊恢復
確定好備份集和dm.ini路徑后點擊確定即可恢復
5)更新魔數,即可完成還原的全部流程
1.3、dmrman工具備份
dmrman工具只支持冷備。負責庫級脫機備份、脫機還原、數據庫恢復等相關操作,該工具支持命令行指定參數方式和控制台交互方式執行,降低了用戶的操作難度。
1)備份庫
全備:
RMAN>backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' full backupset '/home/dmdba/dmdbms/data/DAMENG/bak/db_full_bak_2021-2-5'
增備:
RMAN>backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' increment with backupdir '/home/dmdba/dmdbms/data/DAMENG/bak/' backupset '/home/dmdba/dmdbms/data/DAMENG/bak/db_increment_bak_2021-2-5';
1.4、dmrman工具還原恢復
-
檢查數據庫備份
RMAN> check backupset '/home/dmdba/dmdbms/data/DAMENG/bak/db_full_bak_2021-2-5';
-
還原數據庫
RMAN> restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/bak/db_full_bak_2021-2-5';
-
恢復數據庫
RMAN> recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/bak/db_full_bak_2021-2-5';
-
更新magic
RMAN> recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic;
2、聯機備份與還原(熱備)
需要開啟歸檔,數據庫需要打開(open)可以備份數據庫、表空間、表、歸檔日志
2.1、開啟歸檔
(1)使用達夢管理工具
-- 查看是否歸檔
select arch_mode from v$database;
N表示未開啟
-
打開本地歸檔
切換狀態為配置模式。
最后再把狀態切換為open
select arch_mode from v$database;
再次查看,歸檔模式開啟。
(2)使用disql開啟歸檔
# 修改數據庫狀態為mount
ALTER DATABASE MOUNT;
# 配置本地歸檔
alter database add archivelog 'type=local,dest=/home/dmdba/dmdbms/arch,file_size=64,space_limit=10240';
# 開啟歸檔模式
alter database archivelog;
# 修改數據庫為OPEN狀態
alter database open;
(3)手動配置歸檔
將dm.ini里面的額ARCH_INI參數置為1
vi /home/dmdba/dmdbms/data/DAMENG/dmarch.ini
[ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 10240
2.2、聯機備份
2.2.1、使用manager工具
1)庫備份
右擊庫備份,新建備份,設置備份名和備份集目錄即可,可選擇增備和全備
2)表空間備份
表空間備份必須聯機,還原脫機
3)表備份
表備份可以直接使用manager工具聯機還原
4)歸檔備份
可以指定備份多有歸檔,也可以指定某一時間段的歸檔
2.2.2、使用SQL語句
1)庫備份
全備:
backup database full backupset 'DB_DAMENG_FULL_2021_02_05_15_53_19';
增備:
backup database increment base on backupset'/home/dmdba/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_2021_02_05_15_50_19' to "DB_DAMENG_INCRE_2021_02_05_15_50_19" backupset 'DB_DAMENG_INCRE_2021_02_05_15_50_19';
2)表空間備份
全備:
backup tablespace "MAIN" full to "TS_TEST" backupset '/home/dmdba/dmdbms/data/DAMENG/bak/TS_TEST';
增備:
backup tablespace "MAIN" increment base on backupset '/home/dmdba/dmdbms/data/DAMENG/bak/TS_TEST' to "TS_DAMENG_INCRE_2021_02_05_15_50_19" backupset 'TS_DAMENG_INCRE_2021_02_05_15_50_19';
3)表備份
backup table "USER01"."USERS01" to "TAB_USER01_USERS01_2021_02_05_15_31_17" backupset 'TAB_USER01_USERS01_2021_02_05_15_31_17';
4)歸檔備份
備份所有歸檔:
backup archivelog all to "ARCH_2021_02_05_15_27_48" backupset 'ARCH_2021_02_05_15_27_48';
基於時間點的歸檔:
backup archivelog time between '2021-02-05 16:00:53' and '2021-02-05 16:21:53'
to "ARCH_2021_02_05_16_21_53" backupset 'ARCH_2021_02_05_16_21_53';
2.3、還原
關閉數據庫實例
1)庫還原
還原過后,恢復的時候可以選擇指定歸檔恢復,可以恢復到發生故障之前的那一刻數據庫的數據。
2)表空間還原
使用console工具:
使用dmrman工具:
RESTORE DATABASE 'home/dmdba/dmdbms/data/DAMENG/dm.ini' tablespace "MAIN" FROM BACKUPSET '/home/dmdba/dmdbms/data/DAMENG/bak/TS_TEST'; RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' TABLESPACE MAIN WITH ARCHIVEDIR '/home/dmdba/dmdbms/arch';
注意:還原表空間的時候默認會應用所有歸檔日志不能做不完全恢復,所以,你備份后刪除表的記錄,也會記錄下來,恢復后表空間里的表還是修改或刪除后的狀態。
3)歸檔還原
使用conclose工具:
使用dmrman工具
RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dmdba/dmdbms/data/DAMENG/bak/ARCH_2021_02_05_15_20_06' TO DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini'OVERWRITE 2;
邏輯備份與還原
備份的是數據庫對象
邏輯備份可以用來遷移和重組數據庫,是數據庫的輔助備份
dexp/dimp
四個級別:
導入導出庫級別、用戶級別、模式級別、表級別
1、邏輯導出dexp
針對數據庫對象,有FULL、OWNER、SCHEMAS、TABLES四種導出方式可供選擇。一次導出只能指定一種方式。可選參數,缺省為SCHEMA。
導出環境:192.168.138.120:5236 、linux 、SYSDBA/SYSDBA
導出整個數據庫:
[dmdba@dameng03 bin]$ ./dexp SYSDBA/SYSDBA@192.168.138.120:5236 file=dexp01.dmp log=dexp01.log directory=/home/dmdba/dmdbms/data/ full=y
導出用戶:
[dmdba@dameng03 bin]$ ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/home/dmdba/dmdbms/data/
導出模式
[dmdba@dameng03 bin]$ ./dexp SYSDBA/SYSDBA@192.168.138.120:5236 FILE=dexp_sch.dmp LOG=dexp_sch.log SCHEMAS=USER01 DIRECTORY=/home/dmdba/dmdbms/data/dexp_sch
導出表:
[dmdba@dameng03 bin]$ ./dexp SYSDBA/SYSDBA@192.168.138.120:5236 FILE=dexp_tab.dmp LOG=dexp_tab.log TABLES=USERS DIRECTORY=/home/dmdba/dmdbms/data/dexp_tab
2、邏輯導入dimp
導入環境:192.168.138.120:5237 、linux 、SYSDBA/SYSDBA
導入整個數據庫:
[dmdba@dameng03 bin]$ ./dimp SYSDBA/SYSDBA@192.168.138.120:5237 FILE=/home/dmdba/dmdbms/data/dexp01.dmp log=dimp.log directory=/home/dmdba/dmdbms/data/ full=y
導入用戶:
[dmdba@dameng03 bin]$ ./dimp SYSDBA/SYSDBA@192.168.138.120:5237 file=/home/dmdba/dmdbms/data/dexp_user/dexp_user.dmp log=dimp_user.log owner=USER01 directory=/home/dmdba/dmdbms/data/dimp_user
導入模式:
[dmdba@dameng03 bin]$ ./dimp SYSDBA/SYSDBA@192.168.138.120:5237 FILE=/home/dmdba/dmdbms/data/dexp_sch/dexp_sch.dmp LOG=dimp_sch.log SCHEMAS=USER01 DIRECTORY=/home/dmdba/dmdbms/data/dimp_sch
導入表:
[dmdba@dameng03 bin]$ ./dimp SYSDBA/SYSDBA@192.168.138.120:5237 file=/home/dmdba/dmdbms/data/dexp_tab/dexp_tab.dmp log=dimp_tab.log tables=USERS directory=/home/dmdba/dmdbms/data/dimp_tab