一 數據庫備份相關概念
備份就是數據庫在某一個時間點的副本
數據庫備份目的:防止數據丟失,防止天災人禍(地震、火災、人為操作、硬件故障)
備份主要有物理備份和邏輯備份
物理備份主要是備份使用過的有效的數據頁,邏輯備份主要是備份數據庫對象(表,索引,視圖,存儲過程等)
物理備份:分為聯機備份和脫機備份;完全備份和增量備份
完全備份:備份的是整個數據庫或者表空間的全部數據
增量備份:備份的是上一次全備或增備后,以后每次備份只需要備份修改過的數據頁
還原就是將某個時間點的數據庫副本拷貝到對應的目錄下。
恢復就是在完成數據庫還原之后,應用部分或者是全部歸檔日志
二 物理備份
冷備:
冷備不需要開啟歸檔,需要開啟DmAP服務,需要關閉數據庫實例,針對整庫做備份
1、console工具備份
[dmdba@localhost bin]$./DmServiceDMSERVER stop
2、用dmrman工具備份,只支持冷備
[dmdba@localhost backup]$cd /dm8/bin
[dmdba@localhost bin]$./dmrman
dmrman V8
RMAN>backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup';
出現以上錯誤,說明'/dm8/backup'目錄已存在。
可以刪掉目錄下文件或者更換目錄
2.1配置本地歸檔
熱備:需要開啟歸檔,數據庫需要打開(open)
可以備份數據庫、表空間、表、歸檔日志
查看數據庫歸檔模式:
SQL>select name,arch_mode from v$database;
2.1.1在管理工具中開啟歸檔模式
打開管理工具后,右鍵數據庫實例,選擇管理服務器,然后點擊“系統管理”,選擇“配置”后點擊“轉換”,成功后點擊“確定”
選擇“歸檔配置”,選擇“歸檔目標”后,點擊“歸檔”,然后“確定”。
2.1.2在DIsql里聯機開啟歸檔模式
#打開DIsql
#修改數據庫狀態為MOUNT
SQL> alter database mount;
#配置本地歸檔
SQL> alter database add archivelog 'type=local,dest=/home/dmdba/dmdbms/arch,file_size=64,space_limit=0';
#開啟歸檔模式
SQL> alter database archivelog;
#修改數據庫為OPEN狀態
SQL> alter database open;
2.1.3手動啟歸檔模式
vi dmarch.ini
ARCH_TYPE = LOCAL #本地歸檔類型
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch #本地歸檔文件存放路徑
ARCH_FILE_SIZE = 128 #單位 Mb,本地單個歸檔文件最大值
ARCH_SPACE_LIMIT = 0 #單位 Mb,0 表示無限制,范圍 1024~4294967294M
vi dm.ini
再查看數據庫歸檔模式:
3、備份(脫機)
3.1 用manager工具做熱備整庫備份
3.1.1 查看備份
3.1.2 命令行做全備:disql工具
SQL>backup database full to "DB_DAMENG_FULL";--備份到參數文件中的備份路徑。默認是‘/dm8/data/DAMENG/bak’
SQL>backup database full to "DB_DAMENG_FULL2" BACKUPSET '/dm8/backup';
3.2 做增量備份
3.2.1 manager工具做增量備份
3.2.2 指令做增量備份
SQL>backup database increment to "DB_DAMENG_INCRE_2020_11_30_14_24_14"
backupset'DB_DAMENG_INCRE_2020_11_30_14_24_14';
3.3 表空間備份
表空間備份只能聯機,還原只能脫機
3.3.1 用manager工具
3.3.2 用disql
SQL>backup tablespace "DMHR" full to "TS_DMHR_FULL_2020_11_30_14_31_44"
backupset 'TS_DMHR_FULL_2020_11_30_14_31_44';
3.4 表備份
3.4.1 用manager工具
3.4.2 用disql
SQL>backup table "DMHR"."DEPARTMENT" to "TAB_DMHR_DEPARTMENT_2020_11_30_14_34_57"
backupset 'TAB_DMHR_DEPARTMENT_2020_11_30_14_34_57';
3.5 歸檔備份:
SQL>backup archivelog all to "ARCH_2020_11_30_14_36_55" backupset 'ARCH_2020_11_30_14_36_55';
三 物理還原與還原(脫機)
1、檢查備份集是否有效
#校驗備份
2、Console工具還原
3、Console工具恢復
dmrman工具還原
#還原數據庫
RMAN>restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup'
#恢復數據庫
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/arch';
#更新magic
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
表空間還原
RMAN>restore database '/dm8/data/DAMENG/dm.in i 'tablespace MAIN from
backupse t'/dm8/backup';
RMAN>recover database '/dm8/data/DAMENG/dm.ini 'tablespace MAIN;
四 邏輯備份
備份的是數據庫對象
邏輯備份可以用來遷移和重組數據庫,是數據庫輔助型備份
dexp/dimp
四個級別導入導出:庫級別 ,用戶, 模式 ,表
全庫導出:[dmdba@localhost bin]$./dexp SYSDBA/SYSDBA file=full.dmp log=full.log directory=/dm8/backup full=y
用戶導出:[dmdba@localhost bin]$./dexp SYSDBA/SYSDBA file=dmhr.dmp log=dmhr.log directory=/dm8/backup owner=dmhr
導出表:[dmdba@localhost bin]$./dexp SYSDBA/SYSDBA file=emp.dmp log=emp.log directory=/dm8/backup tables=emp
全庫導入:[dmdba@localhost bin]$./dimp SYSDBA/SYSDBA file=full.dmp log=imp_full.log directory=/dm8/backup full=y
注意事項:執行用戶導入時,如果用戶不存在,要先創建用戶。