aix oracle 10g實現資料庫的遠端自動備份
[ 實施目標]
實現資料庫的遠端自動備份
[ 專案環境]
作業系統 AIX5.3
主機名 AIX229
資料庫版本 oracle 10.2.0
例項名 prod
[ 前期工作進展]
清理環境
一、解除安裝原來系統中 RAC 環境
1、解除安裝資料庫
用 dbca 自動刪庫
2、解除安裝 ORACLE 軟體
手工刪除資料庫軟體:
(1)先刪除/u01/app 下的/oracle 資料夾
rm -fr /u01/app/oracle
(2)刪除/usr/local/bin 下的 coraenv dbhome oraenv
rm -fr /usr/local/bin/coraenv
rm -fr /usr/local/bin/dbhome
rm -fr /usr/local/bin/oraenv
(3)刪除/etc 下的帶 ora 的
ls /etc |grep ora
rm -fr /etc/ora*
(4)刪除/opt 下的 ORCLfmap
rm -fr /opt/ORCLfmap/
(5)刪除/u01 下與 oracle 相關的
rm –rf /u01/ora*
(6)刪除/var 下與 oracle 相關的
rm –rf /var/ora*
3、解除安裝叢集軟體
(1)在所有節點停止 nodeapps
#srvctl stop nodeapps -n aix229
#srvctl stop nodeapps -n aix230
#stopsrc -s clsmuxpdES
#stopsrc -s clstrmgrES
(2)刪除 crs 自動啟動程式
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
(3)kill css/crs/evm 程式,並重啟
ps -ef | grep css/crs/evm
kill -9 processid
(4)刪除其他相關檔案
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /etc/oracle/orc.loc
rm -rf /opt/ORCLcluster
rm -rf /tmp/Ora*
rm -rf /tmp/CVU*
(5)刪除 crs 安裝目錄
rm -rf /u01/crs_1
rm -rf /u01/app/oracle/oraInventory
二、解除安裝 HACMP
1、修改/etc/inittab 檔案以防止刪除 hacmp 後自動重啟
#vi /etc/inittab
註釋以下語句
clcomdES:2:once:startsrc -s clcomdES >/dev/console 2>&1
hacmp6000:2:wait:/usr/es/sbin/cluster/etc/rc.cluster -boot -b
h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 2、使用 smit 刪除 hacmp
#stopsrc -s clcomdES
# smit remove
刪除 cluster 相關的檔案
#lslpp -l |grep cluster
確保沒有殘留
三、刪除 RAC 共享的磁碟
1、先刪除 VG 上的 LV
#lspv
#smit reducevg
2、再將 hdisk1 從系統中刪除
#varyonvg racvg
#rmdev -l hdisk1 –d
3、最後在陣列中把共享磁碟刪除
volslice list
volslice remove aix229_230
[ 實施步驟]
一、構建單例項庫環境
1、安裝 oracle 10.2.0 軟體
2、從陣列上劃分一塊 20G 的磁碟給系統
A、在陣列上:建立一塊 20G 的磁碟
vol list
volslice list
volslice create aix229 -z 20gb v01
volslice list
B、在主機上:讀取主機網路地址程式碼
#lscfg -vpl fcs0
Network Address.............10000000C95C8BC8
C、在陣列上:使主機與陣列上的 lun 相關聯
volslice list
lun perm lun 14 rw wwn 10000000C95C8BC8
lun perm list
D、在主機上:使系統識別陣列的相關聯的磁碟
#cfgmgr -v
3、構建 3 個檔案系統
A、建立 datavg
#smit mkvg
B、建立、掛載檔案系統
#smit fs #建立 /disk1 /disk2 /disk3 三個檔案系統
#lsvg -l datavg
#mount -a #掛載新建立的三個檔案系統
#chown -R oracle:dba /disk1
#chown -R oracle:dba /disk2
#chown -R oracle:dba /disk3 #修改使用者和組
4、dbca 建庫將 datafile、redo logfile、archive logfile 儲存在不同的
檔案系統
datafile-------?/disk3
redo logfile---?/disk1 /disk2
controlfile ---?/disk1 /disk2
archive logfile?/disk2
啟用塊跟蹤
SQL>alter database enable block change tracking using file
'/home/oracle/rman_bak/tracking.log';
二、將備份伺服器共享目錄 mount 到本地檔案系統
1、建立掛載目錄
#mkdir /backup
2、修改 hosts 資訊
#vi /etc/hosts
192.168.8.152 rehl152
#showmount -e rehl152
3、利用 smit nfs 將備份伺服器共享目錄 mount 到本地檔案系統
4、修改檔案系統資訊
#vi /etc/filesystems
/backup:
dev = /backup/cuug03/storage05
vfs = nfs
nodename = rhel152
mount = true
options = rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,sec=sys
account = false
5、新增系統啟動資訊以保證開機自動掛載
#vi /etc/rc.d/rc2.d/Src.local
nfso -o nfs_use_reserved_ports=1
mount -o rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,
sec=sys rhel152:/backup/cuug03/storage05 /backup
三、配置 rman 引數
CONFIGURE RETENTION POLICY TO REDUNDANCY 2; #冗餘度為 2
CONFIGURE BACKUP OPTIMIZATION ON; #開啟備份優化
CONFIGURE CONTROLFILE AUTOBACKUP ON; #開啟自動備份控制檔案
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/home/oracle/backup/control/%F'; #備份控制檔案路徑
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET; #併發度為 2,壓縮備份
四、建立 rman 備份指令碼
1、差異增量備份 0 級 /home/oracle/script/bin/dif_bak_0.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / <
run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_0.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_0.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
2、差異增量備份 1 級 /home/oracle/script/bin/dif_bak_1.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / <
run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_1.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_1.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
五、通過 crontab 建立備份計劃
編輯 crontab 指令碼
整點執行 di_bak_0.sh 實現 0 級增量備份
每 15 分鐘、30 分鐘或 45 分鐘執行 dif_bak_1.sh 實現 1 級增量備份
$crontab -e
0 * * * * sh /home/oracle/script/bin/dif_bak_0.sh >
/home/oracle/script/log/backup0.log 2>&1
15,30,45 * * * * sh /home/oracle/script/bin/dif_bak_1.sh >
/home/oracle/script/log/backup1.log 2>&1
[ 專案驗收]
經過多次測試,專案成功實現:
1、集中備份到備份伺服器
2、整點做 0 級備份
3、非整點每 15 分鐘做 1 級備份
4、備份同時記錄日誌
5、備份刪除 obsolete 備份
實現資料庫的遠端自動備份
[ 專案環境]
作業系統 AIX5.3
主機名 AIX229
資料庫版本 oracle 10.2.0
例項名 prod
[ 前期工作進展]
清理環境
一、解除安裝原來系統中 RAC 環境
1、解除安裝資料庫
用 dbca 自動刪庫
2、解除安裝 ORACLE 軟體
手工刪除資料庫軟體:
(1)先刪除/u01/app 下的/oracle 資料夾
rm -fr /u01/app/oracle
(2)刪除/usr/local/bin 下的 coraenv dbhome oraenv
rm -fr /usr/local/bin/coraenv
rm -fr /usr/local/bin/dbhome
rm -fr /usr/local/bin/oraenv
(3)刪除/etc 下的帶 ora 的
ls /etc |grep ora
rm -fr /etc/ora*
(4)刪除/opt 下的 ORCLfmap
rm -fr /opt/ORCLfmap/
(5)刪除/u01 下與 oracle 相關的
rm –rf /u01/ora*
(6)刪除/var 下與 oracle 相關的
rm –rf /var/ora*
3、解除安裝叢集軟體
(1)在所有節點停止 nodeapps
#srvctl stop nodeapps -n aix229
#srvctl stop nodeapps -n aix230
#stopsrc -s clsmuxpdES
#stopsrc -s clstrmgrES
(2)刪除 crs 自動啟動程式
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
(3)kill css/crs/evm 程式,並重啟
ps -ef | grep css/crs/evm
kill -9 processid
(4)刪除其他相關檔案
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /etc/oracle/orc.loc
rm -rf /opt/ORCLcluster
rm -rf /tmp/Ora*
rm -rf /tmp/CVU*
(5)刪除 crs 安裝目錄
rm -rf /u01/crs_1
rm -rf /u01/app/oracle/oraInventory
二、解除安裝 HACMP
1、修改/etc/inittab 檔案以防止刪除 hacmp 後自動重啟
#vi /etc/inittab
註釋以下語句
clcomdES:2:once:startsrc -s clcomdES >/dev/console 2>&1
hacmp6000:2:wait:/usr/es/sbin/cluster/etc/rc.cluster -boot -b
h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 2、使用 smit 刪除 hacmp
#stopsrc -s clcomdES
# smit remove
刪除 cluster 相關的檔案
#lslpp -l |grep cluster
確保沒有殘留
三、刪除 RAC 共享的磁碟
1、先刪除 VG 上的 LV
#lspv
#smit reducevg
2、再將 hdisk1 從系統中刪除
#varyonvg racvg
#rmdev -l hdisk1 –d
3、最後在陣列中把共享磁碟刪除
volslice list
volslice remove aix229_230
[ 實施步驟]
一、構建單例項庫環境
1、安裝 oracle 10.2.0 軟體
2、從陣列上劃分一塊 20G 的磁碟給系統
A、在陣列上:建立一塊 20G 的磁碟
vol list
volslice list
volslice create aix229 -z 20gb v01
volslice list
B、在主機上:讀取主機網路地址程式碼
#lscfg -vpl fcs0
Network Address.............10000000C95C8BC8
C、在陣列上:使主機與陣列上的 lun 相關聯
volslice list
lun perm lun 14 rw wwn 10000000C95C8BC8
lun perm list
D、在主機上:使系統識別陣列的相關聯的磁碟
#cfgmgr -v
3、構建 3 個檔案系統
A、建立 datavg
#smit mkvg
B、建立、掛載檔案系統
#smit fs #建立 /disk1 /disk2 /disk3 三個檔案系統
#lsvg -l datavg
#mount -a #掛載新建立的三個檔案系統
#chown -R oracle:dba /disk1
#chown -R oracle:dba /disk2
#chown -R oracle:dba /disk3 #修改使用者和組
4、dbca 建庫將 datafile、redo logfile、archive logfile 儲存在不同的
檔案系統
datafile-------?/disk3
redo logfile---?/disk1 /disk2
controlfile ---?/disk1 /disk2
archive logfile?/disk2
啟用塊跟蹤
SQL>alter database enable block change tracking using file
'/home/oracle/rman_bak/tracking.log';
二、將備份伺服器共享目錄 mount 到本地檔案系統
1、建立掛載目錄
#mkdir /backup
2、修改 hosts 資訊
#vi /etc/hosts
192.168.8.152 rehl152
#showmount -e rehl152
3、利用 smit nfs 將備份伺服器共享目錄 mount 到本地檔案系統
4、修改檔案系統資訊
#vi /etc/filesystems
/backup:
dev = /backup/cuug03/storage05
vfs = nfs
nodename = rhel152
mount = true
options = rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,sec=sys
account = false
5、新增系統啟動資訊以保證開機自動掛載
#vi /etc/rc.d/rc2.d/Src.local
nfso -o nfs_use_reserved_ports=1
mount -o rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,
sec=sys rhel152:/backup/cuug03/storage05 /backup
三、配置 rman 引數
CONFIGURE RETENTION POLICY TO REDUNDANCY 2; #冗餘度為 2
CONFIGURE BACKUP OPTIMIZATION ON; #開啟備份優化
CONFIGURE CONTROLFILE AUTOBACKUP ON; #開啟自動備份控制檔案
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/home/oracle/backup/control/%F'; #備份控制檔案路徑
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET; #併發度為 2,壓縮備份
四、建立 rman 備份指令碼
1、差異增量備份 0 級 /home/oracle/script/bin/dif_bak_0.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / <
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_0.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_0.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
2、差異增量備份 1 級 /home/oracle/script/bin/dif_bak_1.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / <
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_1.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_1.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
五、通過 crontab 建立備份計劃
編輯 crontab 指令碼
整點執行 di_bak_0.sh 實現 0 級增量備份
每 15 分鐘、30 分鐘或 45 分鐘執行 dif_bak_1.sh 實現 1 級增量備份
$crontab -e
0 * * * * sh /home/oracle/script/bin/dif_bak_0.sh >
/home/oracle/script/log/backup0.log 2>&1
15,30,45 * * * * sh /home/oracle/script/bin/dif_bak_1.sh >
/home/oracle/script/log/backup1.log 2>&1
[ 專案驗收]
經過多次測試,專案成功實現:
1、集中備份到備份伺服器
2、整點做 0 級備份
3、非整點每 15 分鐘做 1 級備份
4、備份同時記錄日誌
5、備份刪除 obsolete 備份
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29767738/viewspace-1275698/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Rman-ORACLE資料庫RMAN實現自動備份Oracle資料庫
- SQL Server 2005 自動遠端資料庫備份SQLServer資料庫
- 自動備份Oracle資料庫Oracle資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 資料庫自動備份資料庫
- Mysql資料庫自動備份MySql資料庫
- 遠端備份資料庫和檔案的方法資料庫
- Oracle自動備份指令碼的實現Oracle指令碼
- Oracle自動備份資料(轉)Oracle
- windowns系統,oracle資料庫expdp自動備份Oracle資料庫
- 在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)Linux資料庫
- 快速實現本地資料備份與FTP遠端資料遷移FTP
- Facebook如何實現PB級別資料庫自動化備份資料庫
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- windows下oracle資料庫的exp自動備份指令碼WindowsOracle資料庫指令碼
- Aix下使用rman備份Oracle RAC資料庫(轉)AIOracle資料庫
- windowns系統下oracle資料庫exp自動備份Oracle資料庫
- NAS如何遠端備份資料
- Rsync資料遠端同步備份
- 在SQL Server 2005資料庫中實現自動備份SQLServer資料庫
- 寫一個遠端資料庫備份&還原的javabean資料庫JavaBean
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- 實現MySQL資料庫的實時備份MySql資料庫
- linux系統中實現mongodb3.0.5資料庫自動備份LinuxMongoDB資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- oracle 10g資料庫備份與還原總結Oracle 10g資料庫
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- oracle 10g rac資料庫不能自動啟動Oracle 10g資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- oracle資料庫備份之exp增量備份Oracle資料庫
- linux下自動備份oracle資料庫-rmanLinuxOracle資料庫
- 8種手動和自動備份MySQL資料庫的方法MySql資料庫
- DB2資料庫自動備份方法TRDB2資料庫
- 從遠端把mysql透過mysqldump備份資料庫到本地MySql資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼